Manila/design/manila-newton-hpb-support
Manila 的分层端口绑定支持
LP-BP: https://blueprints.launchpad.net/manila/+spec/manila-hpb-support
问题描述
Manila 在 DHSS (驱动程序处理共享服务) == True 的情况下,基本上执行两项任务
- 创建/管理共享服务内的共享
- 创建从租户 VM 到共享服务/存储集群的网络
一些 Manila 驱动程序能够支持纯 VLAN 网络,但该技术将云中的实际网络数量限制为 4096 个。通过 HPB (分层端口绑定),可以通过在网络结构中使用 VXLAN 在 VLAN 之上来减少此障碍。通常,这对于底层存储是透明的,因为它只看到一个 VLAN。
在 Manila 的当前实现中,仅创建 neutron 端口以接收 IP 地址和分段 ID。底层网络结构会忽略该端口,因为根本没有进行端口绑定。
Nova 如何进行端口绑定
- Nova 识别它想要放置 VM 的主机
- Nova-compute 创建一个绑定到计算主机的端口
- Neutron 服务搜索正确的 agent 并发送 RPC 调用以绑定端口
- Neutron-agent 创建端口
- Neutron 服务向 nova 发送 RPC 调用,其中包含新的端口状态“ACTIVE”
提议的变更
- 增强 Manila 网络部分,以添加 binding_host、device_id 和 device_owner
- 等待端口变为“up”状态后,再启动共享服务
- 添加一个 manila-network-bind-agent
多段网络
- 用户创建一个共享
- 在共享服务器设置期间,将创建一个网络
- 端口创建将添加 binding_profile 信息,neutron 可以使用该信息绑定端口(参见 https://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/ironic-ml2-integration.html)
- 在多段网络的情况下,Manila mech 驱动程序将完成绑定,并将正确的 segmentation_id 设置到端口 vif_details