用于实时迁移的网络平面拆分¶
https://blueprints.launchpad.net/nova/+spec/split-network-plane-for-live-migration
本规范旨在将实时迁移的网络平面与管理网络分离,以避免由实时迁移生成的数据传输对网络性能造成的影响。
问题描述¶
在使用 QEMU/KVM 驱动程序进行实时迁移时,我们使用目标计算节点的hostname作为实时迁移的目标。因此,RPC 调用和实时迁移流量将在相同的网络平面内。实时迁移会对网络性能产生影响,即使设置了 CONF.libvirt.live_migration_bandwidth,当大量实时迁移并发发生时,这种影响也十分显著。
用例¶
OpenStack 部署者计划为实时迁移配置一个特定的网络平面,该网络平面与管理网络分离。由于实时迁移的数据传输在此特定网络平面内流动,其对网络性能的影响将限制在该网络平面内,并且不会对管理网络产生影响。最终用户不会注意到此更改。
提议的变更¶
在配置文件中添加一个新的选项 CONF.my_live_migration_ip,默认值为 None。当目标主机中的 pre_live_migration() 执行时,如果该选项不为 None,则将其设置到 pre_migration_data 中。当源主机中的 driver.live_migration() 执行时,如果 pre_migration_data 中存在此选项,则使用该 IP 地址代替 CONF.libvirt.live_migration_uri 作为实时迁移的 URI,如果为 None,则机制保持不变。
本规范侧重于 QEMU/KVM 驱动程序,其他驱动程序的实现应在单独的蓝图(blueprint)中完成。
备选方案¶
配置实时迁移 URI,如下所示
live_migration_uri = "qemu+tcp://%s.INTERNAL/system"
然后修改 OpenStack 部署中的 DNS 配置
target_hostname 192.168.1.5
target_hostname.INTERNAL 172.150.1.5
但是,由于许多组织的组织程序限制,要求进行此类 DNS 更改以部署和使用 OpenStack 可能不切实际。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
此功能对安全性没有负面影响。分离数据传输和管理在某种程度上会提高安全性,从而降低管理平面拒绝服务攻击的可能性。
通知影响¶
无
其他最终用户影响¶
对最终用户没有影响。
性能影响¶
使用专门规划的网络平面,在实时迁移时,数据传输对网络性能的影响将不再存在。实时迁移对网络性能的影响将限制在其自身网络平面内。
其他部署者影响¶
添加的配置选项 CONF.my_live_migration_ip 将适用于所有驱动程序,默认值为 None。因此,当 OpenStack 升级时,现有的实时迁移机制保持不变,如果设置了 CONF.my_live_migration_ip 选项,则该选项将用于实时迁移的目标 URI。如果部署者想要使用此功能,则必须提前规划一个独立的网络平面。
开发人员影响¶
所有驱动程序都可以使用相同的机制来实现此功能。
实现¶
负责人¶
- 主要负责人
Rui Chen <chenrui.momo@gmail.com>
- 其他贡献者
Zhenyu Zheng <zhengzhenyu@huawei.com>
工作项¶
在 [DEFAULT] 组中添加新的配置选项 CONF.my_live_migration_ip。
修改现有的实时迁移实现,当目标主机中的 pre_live_migration() 执行时,如果该选项不为 None,则将其设置到 pre_migration_data 中。
在 QEMU/KVM 驱动程序中,当源主机中的 driver.live_migration() 执行时,如果 pre_migration_data 中存在此选项,则使用该 IP 地址代替 CONF.libvirt.live_migration_uri 作为实时迁移的 URI,如果为 None,则机制保持不变。
依赖项¶
无
测试¶
将对实时迁移进行更改,因此将添加相关的单元测试。
文档影响¶
将在 OpenStack 配置参考手册中添加有关新配置选项 CONF.my_live_migration_ip 的说明。
操作员可以为实时迁移规划一个特定的网络平面,例如:172.168.*.*,将其与管理网络(192.168.*.*)分离,然后在每个 nova-compute 主机上的 nova.conf 中根据规划的 IP 地址添加该选项,如下所示:CONF.my_live_migration_ip=172.168.1.15。
新选项的默认值为 None,因此默认情况下,实时迁移工作流与原始工作流相同。
参考资料¶
无
历史¶
无