2025.1 系列发布说明

26.0.2

错误修复

  • 在使用 ML2/OVN 后端时,禁止将元数据端口 IP 地址用作虚拟 IP 地址。这意味着不允许将此 IP 地址设置为其他端口的 allowed_address_pair,并且 API 在这种情况下将返回 400 错误。有关更多信息,请参阅 bug 2116249

  • ovn-db-sync 跳过了同时作为同步分段主机映射的网关的主机,但其他操作包含它们,因此将其添加到 ovn-db-sync 中进行同步。有关更多信息,请参阅 bug 2116960

  • 在使用 ML2/OVN 机制驱动程序时,仅具有最大带宽规则的 QoS 策略始终使用内部 OVN 策略器强制执行,无论方向和网络类型如何。QoS 策略是否具有 DSCP 规则无关紧要。

26.0.1

已知问题

  • ML2/OVN Placement 的初始配置现在在 Neutron API 进程中执行,并从维护工作进程中移除;由于迁移到 WSGI,API 和维护工作进程现在是不同的进程。当收到 OVN Chassis 创建事件时,将读取配置,创建一个 PlacementState 对象并发送到 Placement API。

错误修复

  • OVN QoS 浮动 IP 规则优先于 OVN QoS 路由器规则。如果两者都存在于同一路由器和端口(分配给浮动 IP 的端口)中,则浮动 IP 规则现在将适用。有关更多信息,请参阅 bug 2110018

其他说明

  • ML2/OVN Placement 扩展现在移除从更新的本地节点配置中删除的任何现有资源提供程序。如果资源提供程序具有分配,Placement 将返回异常并且不会被删除。

26.0.0

新特性

  • 对于 OVN 版本 24.03 及更高版本,您现在可以通过设置新的配置选项 [ovn]dns_records_ovn_owned 来配置本地于 OVN 的 DNS 记录。如果此选项设置为 True,DNS 记录将被视为本地于 OVN 控制器,并且它将响应对其已知记录和记录类型的查询,否则它将将其转发到配置的 DNS 服务器。有关更多信息,请参阅 bug 2059405。默认值为 False。

  • 对于 OVN,您现在可以通过设置新的配置选项 [ovn]ovn_live_migration_activation_strategy 来选择用于迁移端口的端口绑定激活策略。如果设置为一个空字符串,则不会使用任何激活策略,并且目标端口绑定将在创建后立即激活,而无需等待迁移完成。

  • 添加了一个新的 API 扩展 uplink_status_propagation_updatable。现在,端口属性 propagate_uplink_status` 可以在端口创建后更新。后端(ML2/SR-IOV)将接收更新并更新 VF 状态。

  • 添加了一个新的属性 qinqnetwork 资源。这个新的属性可以用来启用网络 VLAN 透明度,使用 802.1ad 标准,其中外部标签 (S-Tag) 帧具有 0x8a88 作为 ethertype,内部标签 (C-Tag) 具有 0x8100 ethertype。这种行为与现有的 vlan_transparent 扩展非常相似,区别在于用于外部标签的标准和 ethertype。 qinq 参数只能为 vlan 网络设置,并且与 vlan_transparent 属性互斥,因为同一个网络不能同时启用这两个属性。qinq 扩展目前仅受 ML2/OVN 后端支持。

  • 添加了一个新的 openvswitch 代理扩展 metadata_path,以实现一种分布式方法,使虚拟机在每个正在运行的主机上检索元数据,而无需传统的元数据代理及其依赖的路由器或 DHCP 命名空间。对于新主机,用户需要创建名为 br-meta 的 OVS 网桥。OVS 代理将隐式地将一个条目 meta:br-meta 添加到 bridge_mappings 列表中。新的配置选项 provider_cidrprovider_vlan_idprovider_base_machost_proxy_listen_port 被添加到 openvswitch 代理的 [METADATA] 部分。

  • 由于 eventlet 0.39.0,可以定义一个新的环境变量 EVENTLET_MONKEYPATCH=1,以便在 Python 启动时尽早进行修补。

  • HA 路由器现在可以运行“conntrackd”以及“keepalived”来同步路由器实例之间的连接跟踪状态。这确保了建立的连接可以在 HA 路由器故障转移中幸存下来。L3 代理主机必须安装“conntrackd”二进制文件。

    Conntrackd 支持默认情况下未启用,可以通过将 ha_conntrackd_enabled 选项设置为 true 来启用。

  • 为 OVN 机制驱动程序添加了对 address-group 的支持。

  • 由于 OVN 23.06.0,连接到具有 localnet 端口的 Logical_Switch 的 Logical_Switch_Port 上的最大带宽和最小带宽规则的 QoS 强制执行始终通过 TC 命令在连接到物理网桥的 localnet 端口上完成。为了实现这个目标,需要在 Logical_Switch_Port 的 options 字典字段中定义最大带宽和最小带宽规则,使用键 qos_min_rateqos_max_rateqos_burst

  • 现在,如果配置选项 [ovn]ovn_emit_need_to_frag 设置为 true,OVN 将始终在网关 Logical_Router_Port 中设置“gateway_mtu”选项。定义的值将是连接到此路由器的所有网络的最低 MTU。

  • 自 Epoxy (2025.1) 发布以来,Neutron 配额引擎始终在更新配额限制之前检查当前资源使用情况。只有当传递了 CLI “–force” 参数时,才会跳过此检查。这使 Neutron 配额引擎的行为与其他项目保持一致。

已知问题

  • 使用 ML2/OVN,现在可以定义一个只带有单个最小带宽规则的 QoS 策略并将其应用于绑定的端口。ML2/OVN QoS 扩展在这种情况下不会尝试添加 OVN QoS 寄存器。

升级说明

  • 已添加对每个资源标签数量的限制。如果存在超过 50 个标签的任何资源,则在删除其中一些标签之前,将无法创建或修改这些资源的现有标签。

  • 现在必须在 uWSGI 配置文件中定义 start-time=%t 变量。它将在实例启动时以秒为单位提供 Unix 时间,此值对于所有 worker 都是相同的,并且如果 uWSGI 进程重新启动任何 worker,则该值将保持不变。

  • PostgreSQL 已不再受支持。建议您迁移到受支持的数据库后端(MySQL 派生版本之一)。

  • OVN 的 ovn_emit_need_to_frag 选项现在默认启用。这可能会导致旧内核(早于 5.2)的性能问题。如果您仍然使用旧内核,可以考虑将其设置为 False

  • Neutron 可以读取环境变量 EVENTLET_MONKEYPATCH=1,以便不要修补系统库。如果设置了此环境变量并且 eventlet 版本较低,则该进程将不会被修补。

  • [DEFAULT] interface_driver 选项现在默认为 openvswitch,如果使用 openvswitch 机制驱动程序或 ovn 机制驱动程序,则不需要该选项。

  • OVN 的 allow_stateless_action_supported 配置选项已被删除。 stateful-security-group API 现在无条件启用。请将 OVN 升级到 21.06.0 或更高版本。

  • 基于 dibbler 的 IPv6 前缀委派实现已被从 L3 代理中移除。目前没有内置驱动程序支持此功能。要继续使用此功能,您需要切换到支持它的其他插件。

  • linuxbridge ML2 驱动程序已被移除。建议用户在升级之前迁移到不同的受支持驱动程序(OVS 或,最好是 OVN)。

  • TripleO 部署的迁移工具已被移除,因为 TripleO 项目已退役。

  • API 策略规则中各种资源 tags 属性相关的操作名称已更改。旧名称,例如“<action>_<resource_plural_name>_tags”,例如“update_networks_tags”已更改为新的模式“<action>_<resource_singular>:tags”,例如“update_network:tags”。

弃用说明

  • ovn_emit_need_to_frag 选项现在已弃用,即将移除。该配置选项将在 2026.1 版本中移除。

  • Neutron 配额命令现在始终检查资源限制。CLI 参数“–check-limits”不再需要,因为这是默认行为。

  • 与各种资源的 tags 属性相关的 API 策略操作的旧名称,模式为“<action>_<resource_plural_name>_tags”现在已弃用。如果在 Neutron 策略文件中定义了这些操作的自定义规则,请将其更新为新的模式,即“<action>_<resource_singular>:tags”。

错误修复

  • 修复 bug 2091410,该 bug 可能会通过向单个资源(例如 network)添加大量标签导致潜在的拒绝服务。现在,每个资源的标签限制为 50 个。

  • 修复了连接到位于分布式虚拟路由器后面的 allowed address pair 地址的问题,通过添加缺少的流。有关更多信息,请参阅 bug 2093248

  • 添加了对安全组规则 API 协议字段中关键字 any 的特殊处理,以匹配 api-ref 本身记录的内容。它已经在客户端中得到支持,其中 any 简单地更改为 None,因此在 API 本身中也这样做。有关更多信息,请参阅 bug 2074056

  • 对于 OVN DPDK 端口,不再使用期望由 QEMU 发送的 RARP 帧的实时迁移激活策略。这是因为对于 DPDK 端口,QEMU 不会发送 RARP 帧,这会影响 DPDK 端口在实时迁移完成后恢复网络连接的时间。请注意,由于此更改,在实时迁移期间可能会观察到来自这些端口的一些少量重复数据包。

  • 在 SNAT 命名空间中启用了宽松的 TCP 连接跟踪 (sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1)。

    在某些情况下,当通过 NAT 的 TCP 连接最终重新传输时,数据包可能会超出 Linux 内核连接跟踪认为属于有效 TCP 窗口的范围。当发生这种情况时,会触发 TCP 重置 (RST),从而终止发送方上的连接,而使接收方(连接到 Neutron 端口的 VM)处于挂起状态。

    由于许多防火墙供应商通常默认启用此功能以避免不必要的重置,因此我们现在也在 Neutron 路由器中执行此操作。

    有关更多信息,请参阅 bug 1804327

  • 修复了将浮动 IP 关联到 OVN 负载均衡器时的问题。有关更多详细信息,请参阅 LP#2068644

  • 子网策略已更新,允许其他用户对其进行操作。网络所有者和读取者现在可以检索子网,项目成员现在可以更新和删除子网。有关更多信息,请参阅 bug 2038646

  • 当 DVR 路由器为 allowed address pairs (AAP) 配置了 ARP 条目时,即使 AAP 具有不同的 MAC 地址,也会配置父端口 MAC 地址。确保如果设置了 AAP,则使用 AAP 的 MAC 地址,否则回退到父端口 MAC 地址。

其他说明

  • 现在,network_segment_ranges 寄存器将基于 Neutron API 的启动时间进行初始化。类型驱动程序类会清理数据库中与网络类型和“created_at”时间戳不匹配的那些寄存器,并使用线程安全的方法 NetworkSegmentRange.new_default 来创建新的寄存器。

  • 使用 WSGI 模块的 Neutron API 需要一个新的配置参数:[uwsgi]start-time=%t。uWSGI 进程在执行时将填充此值,从而定义 Neutron API 的启动时间。Neutron ML2/OVN 将使用此值来为每个 worker 创建 OVN 哈希环寄存器。