Victoria 系列发布说明¶
17.4.1-84¶
新特性¶
添加了删除 ML2/OVN agent 的支持。 之前,删除 agent 会返回 Bad Request 错误。 除了删除 agent 之外,此更改还大大提高了 ML2/OVN agent 处理代码的可扩展性。
添加
use_random_fully设置,允许操作员禁用 iptables 规则上的 iptables random-fully 属性。
已知问题¶
在隔离网络上,元数据服务的可用性受到限制或根本不存在。 当管理它的 DHCP agent 是冗余时,IPv4 元数据是冗余的,但恢复与 DHCP 租约的续订相关联,这使得大多数恢复非常缓慢。 IPv6 元数据根本不冗余,因为 IPv6 元数据地址只能在同一时间在单个位置配置,因为它是链路本地的。 多个 agent 尝试配置它将生成 IPv6 重复地址检测失败。
管理员可能会在 DHCP 命名空间中看到 IPv6 元数据地址处于“dadfailed”状态,这是因为上述原因,仅表示它不可用性很高。 在对隔离的元数据服务进行重新设计之前,没有更好的部署选项。 请参阅 bug 1953165 以获取更多信息。
如果禁用
use_random_fully设置,它将阻止使用 random fully,如果两个 guest 位于不同的网络中,使用相同的 source_ip 和 source_port,并且它们尝试访问相同的 dest_ip 和 dest_port,由于竞争的元组生成,内核可能会丢弃数据包。 仅当 source_port 非常重要(例如在网络防火墙 ACL 中)并且平台内的 source_ip 绝不重复时,才应禁用此设置。
错误修复¶
1986003 修复了并发请求激活相同的端口绑定时,其中一个请求返回 500 内部服务器错误的问题。 使用修复后,一个请求将成功返回,而另一个将返回 409 Conflict(绑定已激活)。 这修复了 nova 实时迁移中可能发送这些并发请求时出现的错误。 Nova 可以正常处理 409/Conflict 响应。
对于 IPv4 子网,如果子网中未设置 dns_nameservers,则使用在 ‘ovn/dns_servers’ 配置选项或系统的 resolv.conf 中定义的服务器,但对于 IPv6 子网,则不使用这些服务器。 现在,IPv6 子网也将使用相同的服务器。 此外,在 ‘ovn/dns_servers’ 配置选项或系统的 resolv.conf 中添加的 dns 服务器将根据子网的 IP 版本进行过滤。 有关更多信息,请参阅 bug 报告 1951816。
修复了 OVN 驱动程序中的一个问题,即使是意外删除,网络元数据也可能变得不可用。 要重新创建端口,用户现在可以使用 Neutron API 禁用然后启用与网络关联的一个子网的 DHCP。 这将尝试创建端口,类似于 ML2/OVS 中 DHCP agent 中发生的情况。 有关更多信息,请参阅 bug 2015377。
其他说明¶
将缺失的扩展
uplink-status-propagation添加到 ML2/OVN 机制驱动程序。 此扩展由 ML2/SR-IOV 机制驱动程序使用,可以与 ML2/OVN 一起加载。 现在可以创建定义了“uplink-status-propagation”标志的端口。
17.4.0¶
错误修复¶
强制执行浮动 IP 的 ‘qos_policy_id’ 属性的策略,以便只有授权用户才能设置/取消设置它。 有关更多信息,请参阅 bug LP#1957175。
其他说明¶
OVN 机制驱动程序仅允许每个桥接一个物理网络。
17.3.0¶
错误修复¶
更改了使用 OVN 驱动程序时的 API 行为,以强制不允许删除路由器端口上的所有 IP。 有关更多信息,请参阅 bug LP#1948457
现在,agent 向服务器报告状态时,将使用设置为 report_interval 配置选项值的 RPC 超时时间。 请参阅 1948676。
17.2.1¶
安全问题¶
修复 bug 1939733,方法是在传递给 dnsmasq 之前,从 dhcp 额外选项值中删除第一个换行符 (
\n) 之后的所有内容。
17.2.0¶
已知问题¶
在使用最小带宽 QoS 功能时,由于 bug https://launchpad.net/bugs/1921150,物理 NIC 资源提供程序在一段时间内被创建,其父级不正确(即超visor RP)。 现在已部分修复,新的资源提供程序将使用预期的父级(即 agent RP)创建。 但是,Placement 不允许重新父级已经存在的资源提供程序,因此在修复 bug 1921150 之后,可能需要更新 Placement DB:neutron/tools/bug-1921150-re-parent-device-rps.sql。 在所有资源提供程序都具有正确的父级之前,neutron-server 将重试重新父级更新,每次都会被拒绝,因此预计日志会受到污染,并且 Placement 上会浪费一些负载。 但是,请注意,即使资源提供程序父级不正确,带宽感知调度也应该可以工作。
错误修复¶
1926693 引入的检测 hypervisor 主机名的逻辑,由 change 69660 引入,已得到修复,现在返回与 libvirt 一致的结果。
添加了新的
resource_provider_defualt_hypervisor选项,以替换默认的 hypervisor 名称以查找根资源提供程序,而无需在resource_provider_hypervisors选项中提供完整的接口或桥接列表。 此选项位于[ovs]ini 部分用于ovs-agent和[sriov_nic]ini 部分用于sriov-agent。
17.1.2¶
其他说明¶
OVN Metadata Agent现在创建的网络命名空间包括 Neutron 网络 UUID 在其名称中。 以前,使用了 OVN datapath UUID,并且对于操作员和调试来说,很难确定哪个命名空间对应于哪个 Neutron 网络。
17.1.1¶
错误修复¶
修复了 OVN 驱动程序中的配置问题,该问题阻止了外部 IGMP 查询到达虚拟机。 有关详细信息,请参阅 bug 1918108。
其他说明¶
为了提高 DHCP agent 的性能,它将不再为 Neutron 中创建的每个端口类型配置 DHCP 服务器。 例如,对于浮动 IP 或路由器 HA 接口,不需要,因为客户端不会为它们发出 DHCP 请求
17.1.0¶
已知问题¶
即使 “igmp_snooping_enable” 配置选项表明启用此选项时不会将流量泛洪到未注册的 VM,ML2/OVN 驱动程序也没有遵循该行为。 现在已修复此问题,并且当设置此配置选项为 True 时,ML2/OVN 将不再将流量泛洪到未注册的 VM。
错误修复¶
停止从 ovs agent 发送 agent heartbeat,当它检测到 OVS 已死机时。 这有助于提醒云操作员给定节点上存在问题。
修复了启用 ovs offload 时的 MAC 学习问题。 OVS 防火墙减少了正常操作的使用量以减少 CPU 利用率。 这导致了泛洪规则,因为没有在入站流量上进行 MAC 学习。 虽然这对于非 offload 情况来说是可以的,但在使用 ovs offload 时,泛洪规则不会被 offload。 此修复程序修复了 offload 中的 MAC 学习,因此我们避免了泛洪规则。 #1897637。
17.0.0¶
序言¶
添加了对 OVN 中浮动 IP 端口转发的支持。
新功能¶
添加了一个新的配置选项
http_retries。 此选项允许配置 nova 或 ironic 客户端在 HTTP 调用失败时重试的次数。
添加了新的配置选项
keepalived_use_no_track。 如果部署中使用的 keepalived 版本不支持其配置文件中的no_track标志(例如 keepalived 1.x),则应将此选项设置为False。 此选项的默认值为True。
DVR路由器现在支持flat网络。
dns 分配将反映网络中定义的 dns 域或用户在创建端口时使用 --dns-domain 发送的 dns 域,而不是仅获取 neutron 配置中定义的 dns 域
已添加对 OVN 后端的浮动 IP 端口转发的支持。
使元数据服务可通过 IPv6 链路本地地址
fe80::a9fe:a9fe提供。 IPv6 元数据在连接到 Neutron 路由器的网络以及双栈和仅 IPv6 网络上工作。 没有新的配置选项。 通常的配置选项(enable_isolated_metadata、force_metadata、enable_metadata_proxy)现在控制 IPv4 和 IPv6 上的元数据服务。 此更改仅影响 guest 通过租户网络访问元数据服务。 此功能不会更改 metadata-agent 与 Nova 元数据服务的通信方式。 预计 guest OS 将从路由器通告中获取路由,以便此功能工作。 至少以下 IPv6 子网模式有效--ipv6-ra-mode slaac --ipv6-address-mode slaac--ipv6-ra-mode dhcpv6-stateless --ipv6-address-mode dhcpv6-stateless--ipv6-ra-mode dhcpv6-stateful --ipv6-address-mode dhcpv6-stateful
请注意,元数据 IPv6 地址(是链路本地的)在没有区域标识符的情况下是不完整的(在 Linux guest 中,通常是接口名称后跟百分号)。 另外请注意,在 URL 中,您应该对百分号本身进行 URL 编码。 例如,假设 guest 中的主网络接口是
eth0,则基本元数据 URL 是http://[fe80::a9fe:a9fe%25eth0]:80/。
添加了对 OVN 中路由器可用性区域的支持。 OVN 驱动程序现在可以从路由器的 availability_zone_hints 字段读取,并根据给定的可用性区域相应地调度路由器端口。
neutron-server 子进程名称的先前更改也修改了 neutron agent 的名称。 这可能会影响依赖于 /proc/PID/environ 格式或 ps -e 输出的监控系统。 现在,所有 neutron agent 都有格式化的进程名称(显示旧样式的进程名称和可见于最新版本中的完整进程名称)
neutron-agent-name(原始 进程 名称 包括 解释器)有关更多详细信息,请参阅 bug 1881297。
升级说明¶
配置选项
firewall_driver不再由 neutron-server 使用,它仅适用于 L2 agent。 这对于混合插件的向后兼容性是必需的,但自 Newton 发布以来,L2 agent 能够报告混合插件是否需要在其报告消息中返回给服务器。
限制数据库引擎中 ML2 VLAN 分配的值为 [1, 4094]。 数据库引擎目前无法支持此约束。 在这种情况下,它将被忽略。 有关更多信息,请参阅
neutron.db.migration.alembic_migrations.versions.victoria.expand.dfe425060830_limit_vlan_allocation_id_values.py中的说明。
IPv6 元数据功能使得每次 dhcp-agent 重启都会触发对 dhcp-agent 控制的元数据代理的快速重启,以便它们可以获取新的配置,从而也绑定到
fe80::a9fe:a9fe。 这些重启会导致元数据服务短暂不可用。 这是为了能够在升级期间为预先存在的隔离网络启用元数据服务。 请注意,预先存在的实例可能需要重新获取通过路由器发现和/或 DHCP 获取的所有信息,此功能才能开始工作。
对于 ML2/OVN 驱动程序,
metadata_workers配置选项的默认值已更改为 2。 对于 ML2/OVS,默认值保持不变。 每个驱动程序在向实例提供元数据时采用不同的方法,并且之前的默认值“<CPU 数量> / 2” 对于 ML2/OVN 来说没有意义,因为 OVN 元数据代理是在计算节点上分布式运行的,而不是在控制器节点上。 事实上,之前的默认值可能会导致 ML2/OVN 的可伸缩性问题,并且已被部署工具覆盖以避免问题。
升级后应检查依赖于精确进程名称的监控工具,并在必要时进行修改。
弃用说明¶
neutron.agent.linux.interface.LinuxInterfaceDriver 类的抽象方法
plug_new现在接受一个可选参数link_up。 未使用link_up的此方法(该方法接受 5 到 9 个位置参数)的使用现在已被弃用,并且在 W 版本中将不再可能。 继承自此基类的第三方驱动程序应更新其plug_new方法的实现。
弃用在计量标签规则中使用
remote_ip_prefix,它将在未来的版本中删除。 应该使用source_ip_prefix和/或destination_ip_prefix参数。 有关更多详细信息,请参阅规范:https://review.opendev.org/#/c/744702/。
诸如
master和slave之类的术语已被更具包容性的词语(例如primary和backup)替换,尽可能地进行替换。对于 OpenvSwitch 和 SRIOV 机制驱动程序,配置选项
vnic_type_blacklist已被弃用,并替换为vnic_type_prohibit_list。 它们将在未来的版本中删除。
错误修复¶
1671448 现在使用标准的可配置 RBAC 策略(‘get_quota’、‘update_quota’、‘delete_quota’)管理 Neutron 配额的访问权限。
1875981 Neutron 现在在管理员删除端口、服务器或浮动 IP 时,会正确删除相关的 DNS 记录。
修复了错误 1876092,该错误导致在与
DVR路由器一起使用的flat网络上出现 DUP ICMP 响应。
修复了一个问题,即在双栈(IPv4 + IPv6)网络上的客户端无法从 dnsmasq DHCP 服务器获取配置。 请参阅错误:1876094。
其他说明¶
当启用
uplink-status-propagation扩展时,新创建的端口将默认将propagate_uplink_status的值设置为 True。