Yoga 系列发布说明¶
20.5.0-40¶
新特性¶
远程地址组支持已添加到基于 iptables 的防火墙驱动程序(IptablesFirewallDriver 和 OVSHybridIptablesFirewallDriver),此前它仅在 OVSFirewallDriver 中可用。有关更多信息,请参阅 bug 2058138。
已知问题¶
对 bug 2048785 的修复仅修复了新创建的 trunk 父端口。 如果需要修复已经存在的 trunk,则需要删除并重新创建受影响的 trunk,或者手动设置 tpt 端口的 vlan_mode 和 tag:
ovs-vsctl set Port tpt-... vlan_mode=access tag=0
错误修复¶
修复了将浮动 IP 关联到 OVN 负载均衡器时的问题。有关更多详细信息,请参阅 LP#2068644。
在同步 OVN 数据库时,无论是运行迁移命令还是在启动期间,负责同步的代码只会清理具有 agent_type
OVN Controller agent的主机的 segment-to-host 映射。 之前,同步会清理(删除)非 OVN 主机的 segment-to-host 映射。修复了 bug:2040172。
其他说明¶
将扩展
subnetpool-prefix-ops添加到 ML2/OVN 机制驱动程序。
20.5.0¶
错误修复¶
[bug 2022914] Neutron-API 支持在 ML2/OVN 设置中使用中继作为南向连接。在此之前,API 的维护工作者需要一个仅限 leader 的连接,该连接已被删除。
修复了 DHCP agent 与 OVN 元数据 agent 结合部署以向 baremetal 节点提供元数据的情况。在这种情况下,DHCP agent 将不会设置 OVN 元数据 agent 服务所需的路由,导致 baremetal 节点无法查询元数据服务。有关更多信息,请参阅 bug 1982569。
对于 OVN 版本 v22.09.0 及更高版本,
mcast_flood_reports选项现在设置为false,适用于除“localnet”类型以外的所有端口。过去,此选项设置为true,作为核心 OVN 多播实现中一个 bug 的解决方法。
现在 ML2/OVN trunk 驱动程序会防止在父端口已绑定时创建 trunk。同样,如果正在 trunk 中使用的父端口已绑定,则无法删除 trunk。
在端口批量创建期间,如果 IPAM 分配失败(例如,如果 IP 地址超出子网 CIDR),则在引发异常之前,将删除已创建的其他 IPAM 分配。修复了 bug 2039550。
其他说明¶
添加了一个每天运行一次的维护任务,负责清理 5 天或更长时间未更新的 Hash Ring 节点。有关更多信息,请参阅 LP #2033281。
将缺失的扩展
uplink-status-propagation添加到 ML2/OVN 机制驱动程序。 此扩展由 ML2/SR-IOV 机制驱动程序使用,可以与 ML2/OVN 一起加载。 现在可以创建定义了“uplink-status-propagation”标志的端口。
20.4.0¶
已知问题¶
在使用 ML2/OVN 时,在升级过程中,存储的 OVS system-id 值可能会发生变化。ovn-controller 服务将基于此 OVS system-id 创建“Chassis”和“Chassis_Private”寄存器。如果 ovn-controller 进程未优雅停止,则可能导致 OVN 南向数据库中存在重复的“Chassis”和“Chassis_Private”寄存器。
错误修复¶
添加了一个新的 OVN 维护方法
remove_duplicated_chassis_registers。此方法将定期检查 OVN 南向“Chassis”和“Chassis_Private”表,查找重复的寄存器。较旧的寄存器(基于“Chassis_Private.nb_cfg_timestamp”值)将在多个寄存器具有相同的 hostname 时被删除,hostname 应该是唯一的。
其他说明¶
NAT 表中的 external_mac 条目用于分发/集中化 FIP 的流量。如果设置了 external_mac,则流量将被分发(DVR)。如果为空,则流量将通过网关端口集中化(无 DVR)。在端口状态过渡到 down 时,无论 DVR 是否启用,external_mac 都会被删除,从而导致 DVR 的 FIP 流量被集中化——尽管这对于不会接受流量的 down 端口来说无关紧要。
20.3.1¶
已知问题¶
在隔离网络上,元数据服务的可用性受到限制或根本不存在。 当管理它的 DHCP agent 是冗余时,IPv4 元数据是冗余的,但恢复与 DHCP 租约的续订相关联,这使得大多数恢复非常缓慢。 IPv6 元数据根本不冗余,因为 IPv6 元数据地址只能在同一时间在单个位置配置,因为它是链路本地的。 多个 agent 尝试配置它将生成 IPv6 重复地址检测失败。
管理员可能会在 DHCP 命名空间中看到 IPv6 元数据地址处于“dadfailed”状态,这是因为上述原因,仅表示它不可用性很高。 在对隔离的元数据服务进行重新设计之前,没有更好的部署选项。 请参阅 bug 1953165 以获取更多信息。
如果连接到路由器的所有租户网络都是 VLAN 或 FLAT 类型,则仅使用 redirect-type=bridged 选项。在这种情况下,它们的流量将被分发。但是,如果同一路由器连接了 VLAN/FLAT 和 geneve 网络,则不设置 redirect-type 选项,因此 VLAN/FLAT 网络的流量也将被集中化,但未进行隧道传输。
错误修复¶
1986003 修复了并发请求激活相同的端口绑定时,其中一个请求返回 500 内部服务器错误的问题。 使用修复后,一个请求将成功返回,而另一个将返回 409 Conflict(绑定已激活)。 这修复了 nova 实时迁移中可能发送这些并发请求时出现的错误。 Nova 可以正常处理 409/Conflict 响应。
修复了 OVN 驱动程序中的一个问题,即使是意外删除,网络元数据也可能变得不可用。 要重新创建端口,用户现在可以使用 Neutron API 禁用然后启用与网络关联的一个子网的 DHCP。 这将尝试创建端口,类似于 ML2/OVS 中 DHCP agent 中发生的情况。 有关更多信息,请参阅 bug 2015377。
[bug 2003455] 作为先前提交的一部分 (https://review.opendev.org/c/openstack/neutron/+/875644),redirect-type=bridged 选项已设置为所有路由器网关端口(cr-lrp ovn 端口)。但是,这破坏了通过这些路由器连接到提供商网络的 geneve 租户网络的 N/S 流量,而这些路由器启用了 redirect-type 选项。为了解决此问题,我们确保仅当连接到路由器的所有网络都是 VLAN 或 FLAT 类型时,才设置 redirect-type 选项,否则我们将回退到默认选项。这意味着如果同一路由器连接了 VLAN 和 geneve 租户网络的混合网络,VLAN 流量将被集中化(但未进行隧道传输)。如果需要分发 VLAN/FLAT 流量,则应使用不同的路由器。
20.3.0¶
新特性¶
地址范围现在已添加到北向的所有 OVN LSP 端口寄存器中。Northd 然后将地址范围从北向写入南向,以便可以在那里由 ovn-bgp-agent 使用。
在端口被认为是已配置之后,Nova 端口绑定更新可能未被接收,导致端口未绑定。现在端口配置方法具有主动等待,它将重试多次,等待端口绑定更新。如果收到,则如果设置了 admin state 标志,端口状态将被设置为 active。
核心 OVN 现在可以在实时迁移期间在逻辑交换机端口上设置目标主机。这使得能够提前准备目标主机,从而实现更快的实时迁移和主机之间切换期间的更短停机时间。Neutron 在端口选项中包含此信息。
添加了一个新的脚本来删除重复的端口绑定。此脚本将列出数据库中的所有
ml2_port_bindings记录,找到具有相同端口 ID 的记录。然后,该脚本删除状态为 INACTIVE 的记录。此脚本对于删除在失败的实时迁移后保留在数据库中的残留物很有用。重要的是要注意,不应在任何实时迁移过程中执行此脚本。
添加
use_random_fully设置,允许操作员禁用 iptables 规则上的 iptables random-fully 属性。
已知问题¶
在 OVN bug (https://bugzilla.redhat.com/show_bug.cgi?id=2162756) 修复之前,需要将与 vlan 提供商网络关联的逻辑路由器端口的“reside-on-redirect-chassis”设置为 true。此解决方法使流量集中化,但未进行隧道传输,从而避免 MTU 问题。
如果禁用
use_random_fully设置,它将阻止使用 random fully,如果两个 guest 位于不同的网络中,使用相同的 source_ip 和 source_port,并且它们尝试访问相同的 dest_ip 和 dest_port,由于竞争的元组生成,内核可能会丢弃数据包。 仅当 source_port 非常重要(例如在网络防火墙 ACL 中)并且平台内的 source_ip 绝不重复时,才应禁用此设置。
升级说明¶
对于 ML2/OVN 驱动程序,
metadata_workers配置选项的默认值已更改为 0。由于 [OVN] 允许在本地线程中执行“MetadataProxyHandler”,OVN 元数据代理处理程序可以在 OVN 元数据 agent 的同一进程中,在本地线程中生成。这减少了 OVN SB 数据库连接的数量到 1。
错误修复¶
[bug 2003455] 添加了额外的检查,以确保将“reside-on-redirect-chassis”设置为 true,用于与 vlan 提供商网络关联的逻辑路由器端口,无论是否启用了“ovn_distributed_floating_ip”。这是必要的,因为存在一个 OVN bug (https://bugzilla.redhat.com/show_bug.cgi?id=2162756) 导致它无法按预期工作。在修复该 bug 之前,我们需要这些解决方法,使流量集中化,但未进行隧道传输,从而避免 MTU 问题。
标准化 OVN agent 心跳时间戳格式,以匹配其他 agent 类型。这修复了某些客户端(例如 gophercloud)解析
GET /v2.0/agents的问题。
修复了 ML2/OVN 驱动程序中网络段标签未在 OVN 北向数据库中更新的问题。有关更多信息,请参阅 bug 1944708。
Neutron 可以使用 OVN 21.12 中引入的与日志相关的功能记录完整的连接。有关更多信息,请参阅 bug LP#<https://bugs.launchpad.net/neutron/+bug/2003706>
其他说明¶
OVN 迁移默认执行验证。此验证意味着在迁移完成后会生成一个实例并由简单的 ping 进行测试。它还尝试在迁移后创建新的工作负载。这对于非常简单的场景测试很有用,但对于生产环境来说并不真正有用,因为生产环境可能已经有正在运行的工作负载。更有意义的是显式要求验证,而不是隐式地将其作为迁移运行,因为迁移主要用于生产环境。VALIDATE_MIGRATION 现在默认为 False,如果需要按需验证,则需要将其更改为 True。
自 OVN 20.06 以来,“Chassis”寄存器配置存储在“other_config”字段中,并复制到“external_ids”。在 OVN 22.09 中停止了此复制。ML2/OVN 插件首先尝试从“other_config”字段检索“Chassis”配置;如果此字段不存在(在 OVN 20.06 之前的版本中),则插件将使用“external_ids”字段。Neutron 将与不同的 OVN 版本(有和没有“other_config”字段)兼容。
20.2.0¶
新特性¶
OVN 机制驱动程序拒绝将端口绑定到已失效的 agent。
其他说明¶
OVN 驱动程序已恢复为使用有状态 NAT 实现浮动 IP。之前的切换到无状态没有实现预期的性能优势,反而引入了潜在硬件卸载的问题。
20.0.0¶
新特性¶
在安全组 API 响应中添加共享字段,并支持在查询过滤器中使用共享字段。有关更多信息,请参阅 bug 1942615。
Neutron 现在支持使用直接物理 vnic_type 的保证最小带宽 QoS 规则类型的 Placement 强制执行。这种规则和 vnic_type 组合的数据平面强制执行目前尚不支持。
在路由器回调事件有效负载中添加
request_body字段。该字段记录来自用户的原始请求体。
为路由器网关添加
BEFORE_UPDATE回调事件。
本地 IP - 可以在多个端口/VM 之间共享的虚拟 IP(类似于 anycast IP),并且保证只能在同一物理服务器/节点边界内可达。此功能主要侧重于非常大规模云和/或具有高网络吞吐量需求的云的网络数据平面的高效率和性能。
添加了两个新的 API 方法到
QuotaDriverAPI类。get_resource_usage返回当前的资源使用情况。quota_limit_check检查当前资源使用情况与一组 delta(资源名称和资源计数词典)的对比。
在 OVN 中添加对 VNIC 类型
remote-managed的支持。OVN 驱动程序现在可以将远程管理的端口绑定到 SmartNIC DPU。SmartNIC DPU 端口绑定需要 OVN 版本 21.12 或更高版本,并使用 OVN VIF 版本 21.12 或更高版本编译。
从这个版本开始,无状态安全组的支持是强制性的。最低 OVN NB schema 版本必须为 5.17。
虚拟端口自 OVN 版本 2.12 起得到支持。自 Yoga 以来,此支持是强制性的。最低 OVN SB schema 版本必须为 2.5。
将 OVS 代理资源提供商上的数据包处理能力报告为新的
NET_PACKET_RATE_KILOPACKET_PER_SEC、NET_PACKET_RATE_EGR_KILOPACKET_PER_SEC或NET_PACKET_RATE_IGR_KILOPACKET_PER_SEC资源库存。这类似于带宽资源报告的方式。前者用于非硬件卸载的 OVS 部署,其中来自入站和出站方向的数据包由相同的 CPU 核心处理。其余库存用于硬件卸载的 OVS,其中传入和传出的数据包由独立的硬件资源处理。
添加了 port-resource-request-groups API 扩展,该扩展提供对端口的
resource_request和binding:profile.allocation属性的新格式的支持。新格式允许从同一 RP 子树请求多个资源和特征组。将具有
minimum_packet_rate规则的QoS 策略分配给已 绑定 端口会更新 Placement 中的分配。注意:如果原始 QoS 策略没有minimum_packet_rate规则,则不支持 Placement 分配更新。从无方向的minimum_packet_rate规则更改为有方向的minimum_packet_rate规则不受支持。
neutron-ovs-agent 下的 section
[ovs]中的新配置选项:resource_provider_packet_processing_without_direction、resource_provider_packet_processing_with_direction和resource_provider_packet_processing_inventory_defaults。resource_provider_packet_processing_without_direction控制 OVS 后端可以保证的最小数据包速率,单位为千包/秒 (kpps)。resource_provider_packet_processing_with_direction类似于第一个选项,但用于 OVS 后端具有硬件卸载功能时。最后一个选项可用于调整其他字段(allocation_ratio、min_unit、max_unit、reserved、step_size)的资源提供商库存。
对于 OVN L3 插件 QoS 扩展,现在支持浮动 IP QoS 网络继承。如果托管浮动 IP 的网络具有关联的 QoS,则浮动 IP 地址将继承网络 QoS 策略,并在 OVN 后端应用。
添加了
qos-pps-minimum-rule-aliasAPI 扩展,以支持对 QoS 最小数据包速率规则进行 GET、PUT 和 DELETE 操作,而无需指定策略 ID。
在 OVS 后端启用了 QoS 最小数据包速率规则的 Placement 强制执行。
为 Neutron 服务器中的 QoS 服务插件添加了新的 API 扩展,以支持 QoS 最小数据包速率规则的 CRUD 操作。
添加了一个检查,以验证数据库中
ml2_port_bindings表的所有行是否使用profile列的新格式。此检查是升级检查的一部分,可以使用neutron-status upgrade check命令执行。如果某些行使用过时的格式,可以使用可以使用neutron-sanitize-port-binding-profile-allocation命令执行的脚本进行清理。
升级说明¶
在 networksegments 表中添加了 (network_id, network_type, physical_network) 的唯一约束。这是为了防止动态段分配上的竞争条件。具有多个段的网络(例如,在使用分层端口绑定时)的运营商应检查此约束是否违反了包含的升级检查。
弃用说明¶
配置选项
allow_overlapping_ips现在已弃用并将被删除。该选项的默认值现在已更改为 Neutron 的默认 IPAM 模块中的True,因为将其默认设置为False的唯一原因是为了与已删除的 Nova 安全组代码保持兼容。该配置选项将在Z版本中删除。
ML2 OVS 机制驱动程序配置的
[agent] veth_mtu参数已被弃用。此参数自 Wallaby 版本以来一直没有效果。
错误修复¶
更改了使用 OVN 驱动程序时的 API 行为,以强制不允许删除路由器端口上的所有 IP。 有关更多信息,请参阅 bug LP#1948457
现在,OVN 驱动程序正确地通告了属于 DNS 集成的扩展
dns_domain_ports和subnet_dns_publish_fixed_ip。有关更多信息,请参阅 bug 1947127
对于 IPv4 子网,如果子网中未设置 dns_nameservers,则使用在 ‘ovn/dns_servers’ 配置选项或系统的 resolv.conf 中定义的服务器,但对于 IPv6 子网,则不使用这些服务器。 现在,IPv6 子网也将使用相同的服务器。 此外,在 ‘ovn/dns_servers’ 配置选项或系统的 resolv.conf 中添加的 dns 服务器将根据子网的 IP 版本进行过滤。 有关更多信息,请参阅 bug 报告 1951816。
修复了 bug 1943724。
现在,agent 向服务器报告状态时,将使用设置为 report_interval 配置选项值的 RPC 超时时间。 请参阅 1948676。
其他说明¶
neutron.agent.linux.interface.LinuxInterfaceDriver 中的抽象方法
plug_new现在具有额外的位置参数link_up。现在无法在没有link_up的情况下使用此方法。从该基类继承的第三方驱动程序现在必须更新其plug_new方法的实现。
删除了类“PortBindingMixin”。该类在树内的最后一次使用是在 Kilo 版本中,在“N1kvNeutronPluginV2”和“SdnvePluginV2”类中。没有活动项目使用它。数据库中的表“portbindingports”已被删除;它仅在“PortBindingMixin”中使用。
任何 L3 代理扩展都必须继承自
neutron_lib.agent.l3_extension.L3AgentExtension。L3AgentExtensionsManager在初始加载期间会进行此检查。如果未满足条件,将引发L3ExtensionException。
可以配置新的服务插件和 openvswitch 代理扩展,以启用本地 IP 功能:
local_ip
OVN 机制驱动程序仅允许每个桥接一个物理网络。
现在假设 OVN 默认支持 Northbound 表
Port_Group。此表已添加到 DB schema 版本 5.11 中。如果在ml2.mechanism_drivers配置选项中定义了 OVN,则会包含一个健全性检查。
OVN 驱动程序现在使用无状态 NAT 实现浮动 IP。这允许避免命中 conntrack,可能提高性能,并允许将 NAT 规则卸载到硬件。