浮动 IP 分布式¶
Launchpad Bug: https://bugs.launchpad.net/neutron/+bug/1978039
Neutron 为每个浮动 IP 添加分布式属性。用户可以根据实际环境和使用需求设置此属性。
问题描述¶
Neutron 支持将浮动 IP 设置为分布式。外部流量可以直接到达计算节点,而无需经过网络节点,从而提高网络性能。这对于需要高性能网络的需求非常有用。
但是,我们可以通过设置配置选项(ovn 后端)或设置路由器“distributed”属性(ovs dvr 模式)来决定浮动 IP 是分布式还是集中式的。这是全局性的。配置后,所有浮动 IP 都是集中式的或分布式的。
实际使用可能比较复杂
并非所有具有浮动 IP 的虚拟机都需要高性能网络,可能只是为了对外提供服务。
由于设备条件限制,某些计算节点未配备外部网卡。如果启用分布式模式,则此计算节点的虚拟机将无法分配浮动 IP。
提议的变更¶
添加新的 API 扩展,以扩展 Neutron 中的 floatingip 资源,并添加 distributed 属性。如果未设置此属性,则浮动 IP 将使用路由器的 distributed 属性 [1]。
服务器端变更¶
将添加一个新的 Neutron API 扩展,为 floatingip 资源添加新的属性。这个新属性将被称为 distributed
RESOURCE_ATTRIBUTE_MAP = {
l3.FLOATINGIPS: {
"distributed": {
'allow_post': True,
'allow_put': True,
'convert_to': converters.convert_to_boolean_if_not_none,
'default': constants.ATTR_NOT_SPECIFIED,
'is_visible': True,
'is_filter': True
}
}
}
数据库影响¶
在 floatingips 表中扩展一个布尔型列 distributed。
REST API 影响¶
新的 API 扩展:floatingip-distributed 引入新的浮动 IP 属性:distributed。
客户端影响¶
OSC 和 openstacksdk 中的相关更改,以添加对新浮动 IP 属性的支持。要为浮动 IP 启用它,应该如下所示
openstack floating ip create --distributed
要禁用它
openstack floating ip create --centralized
并更新它
openstack floating ip update [--distributed | --centralized ]
测试¶
单元测试。
功能测试。
neutron-tempest-plugin 中的 Tempest 测试。
负责人¶
ZhouHeng <zhouhenglc@inspur.com>