Xena 系列发布说明¶
19.7.0-92¶
新特性¶
OVN 机制驱动程序拒绝将端口绑定到已失效的 agent。
已知问题¶
在隔离网络上,元数据服务的可用性受到限制或根本不存在。 当管理它的 DHCP agent 是冗余时,IPv4 元数据是冗余的,但恢复与 DHCP 租约的续订相关联,这使得大多数恢复非常缓慢。 IPv6 元数据根本不冗余,因为 IPv6 元数据地址只能在同一时间在单个位置配置,因为它是链路本地的。 多个 agent 尝试配置它将生成 IPv6 重复地址检测失败。
管理员可能会在 DHCP 命名空间中看到 IPv6 元数据地址处于“dadfailed”状态,这是因为上述原因,仅表示它不可用性很高。 在对隔离的元数据服务进行重新设计之前,没有更好的部署选项。 请参阅 bug 1953165 以获取更多信息。
在使用 ML2/OVN 时,在升级过程中,存储的 OVS system-id 值可能会发生变化。ovn-controller 服务将基于此 OVS system-id 创建“Chassis”和“Chassis_Private”寄存器。如果 ovn-controller 进程未优雅停止,则可能导致 OVN 南向数据库中存在重复的“Chassis”和“Chassis_Private”寄存器。
错误修复¶
配置选项
agent_down_time现在限制为最大值 2147483,因为如果配置更高,neutron-server 将无法启动。有关更多信息,请参阅 bug 2028724。
[bug 2022914] Neutron-API 支持在 ML2/OVN 设置中使用中继作为南向连接。在此之前,API 的维护工作者需要一个仅限 leader 的连接,该连接已被删除。
修复了 DHCP agent 与 OVN 元数据 agent 结合部署以向 baremetal 节点提供元数据的情况。在这种情况下,DHCP agent 将不会设置 OVN 元数据 agent 服务所需的路由,导致 baremetal 节点无法查询元数据服务。有关更多信息,请参阅 bug 1982569。
修复了将浮动 IP 关联到 OVN 负载均衡器时的问题。有关更多详细信息,请参阅 LP#2068644。
对于 OVN 版本 v22.09.0 及更高版本,
mcast_flood_reports选项现在设置为false,适用于除“localnet”类型以外的所有端口。过去,此选项设置为true,作为核心 OVN 多播实现中一个 bug 的解决方法。
修复了 OVN 驱动程序中的一个问题,即使是意外删除,网络元数据也可能变得不可用。 要重新创建端口,用户现在可以使用 Neutron API 禁用然后启用与网络关联的一个子网的 DHCP。 这将尝试创建端口,类似于 ML2/OVS 中 DHCP agent 中发生的情况。 有关更多信息,请参阅 bug 2015377。
现在 ML2/OVN trunk 驱动程序会防止在父端口已绑定时创建 trunk。同样,如果正在 trunk 中使用的父端口已绑定,则无法删除 trunk。
在端口批量创建期间,如果 IPAM 分配失败(例如,如果 IP 地址超出子网 CIDR),则在引发异常之前,将删除已创建的其他 IPAM 分配。修复了 bug 2039550。
添加了一个新的 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 端口来说无关紧要。
添加了一个每天运行一次的维护任务,负责清理 5 天或更长时间未更新的 Hash Ring 节点。有关更多信息,请参阅 LP #2033281。
将缺失的扩展
uplink-status-propagation添加到 ML2/OVN 机制驱动程序。 此扩展由 ML2/SR-IOV 机制驱动程序使用,可以与 ML2/OVN 一起加载。 现在可以创建定义了“uplink-status-propagation”标志的端口。
19.7.0¶
已知问题¶
如果连接到路由器的所有租户网络都是 VLAN 或 FLAT 类型,则仅使用 redirect-type=bridged 选项。在这种情况下,它们的流量将被分发。但是,如果同一路由器连接了 VLAN/FLAT 和 geneve 网络,则不设置 redirect-type 选项,因此 VLAN/FLAT 网络的流量也将被集中化,但未进行隧道传输。
错误修复¶
1986003 修复了并发请求激活相同的端口绑定时,其中一个请求返回 500 内部服务器错误的问题。 使用修复后,一个请求将成功返回,而另一个将返回 409 Conflict(绑定已激活)。 这修复了 nova 实时迁移中可能发送这些并发请求时出现的错误。 Nova 可以正常处理 409/Conflict 响应。
[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 流量,则应使用不同的路由器。
19.6.0¶
已知问题¶
在 OVN bug (https://bugzilla.redhat.com/show_bug.cgi?id=2162756) 修复之前,需要将与 vlan 提供商网络关联的逻辑路由器端口的“reside-on-redirect-chassis”设置为 true。此解决方法使流量集中化,但未进行隧道传输,从而避免 MTU 问题。
错误修复¶
[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的问题。
Neutron 可以使用 OVN 21.12 中引入的与日志相关的功能记录完整的连接。有关更多信息,请参阅 bug LP#<https://bugs.launchpad.net/neutron/+bug/2003706>
其他说明¶
OVN 迁移默认执行验证。此验证意味着在迁移完成后会生成一个实例并由简单的 ping 进行测试。它还尝试在迁移后创建新的工作负载。这对于非常简单的场景测试很有用,但对于生产环境来说并不真正有用,因为生产环境可能已经有正在运行的工作负载。更有意义的是显式要求验证,而不是隐式地将其作为迁移运行,因为迁移主要用于生产环境。VALIDATE_MIGRATION 现在默认为 False,如果需要按需验证,则需要将其更改为 True。
19.5.0¶
新功能¶
地址范围现在已添加到北向的所有 OVN LSP 端口寄存器中。Northd 然后将地址范围从北向写入南向,以便可以在那里由 ovn-bgp-agent 使用。
在端口被认为是已配置之后,Nova 端口绑定更新可能未被接收,导致端口未绑定。现在端口配置方法具有主动等待,它将重试多次,等待端口绑定更新。如果收到,则如果设置了 admin state 标志,端口状态将被设置为 active。
添加了一个新的脚本来删除重复的端口绑定。此脚本将列出数据库中的所有
ml2_port_bindings记录,找到具有相同端口 ID 的记录。然后,该脚本删除状态为 INACTIVE 的记录。此脚本对于删除在失败的实时迁移后保留在数据库中的残留物很有用。重要的是要注意,不应在任何实时迁移过程中执行此脚本。
添加
use_random_fully设置,允许操作员禁用 iptables 规则上的 iptables random-fully 属性。
已知问题¶
如果禁用
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。
错误修复¶
修复了 ML2/OVN 驱动程序中网络段标签未在 OVN 北向数据库中更新的问题。有关更多信息,请参阅 bug 1944708。
其他说明¶
自 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”字段)兼容。
19.3.0¶
错误修复¶
现在,OVN 驱动程序正确地通告了属于 DNS 集成的扩展
dns_domain_ports和subnet_dns_publish_fixed_ip。有关更多信息,请参阅 bug 1947127
19.2.0¶
错误修复¶
强制执行浮动 IP 的 ‘qos_policy_id’ 属性的策略,以便只有授权用户才能设置/取消设置它。 有关更多信息,请参阅 bug LP#1957175。
更改了使用 OVN 驱动程序时的 API 行为,以强制不允许删除路由器端口上的所有 IP。 有关更多信息,请参阅 bug LP#1948457
对于 IPv4 子网,如果子网中未设置 dns_nameservers,则使用在 ‘ovn/dns_servers’ 配置选项或系统的 resolv.conf 中定义的服务器,但对于 IPv6 子网,则不使用这些服务器。 现在,IPv6 子网也将使用相同的服务器。 此外,在 ‘ovn/dns_servers’ 配置选项或系统的 resolv.conf 中添加的 dns 服务器将根据子网的 IP 版本进行过滤。 有关更多信息,请参阅 bug 报告 1951816。
其他说明¶
OVN 机制驱动程序仅允许每个桥接一个物理网络。
19.1.0¶
错误修复¶
现在,agent 向服务器报告状态时,将使用设置为 report_interval 配置选项值的 RPC 超时时间。 请参阅 1948676。
19.0.0¶
新功能¶
当使用
noauthauth_strategy 时,neutron 不再要求资源创建请求在请求主体中包含一个虚拟的“project_id”。在这种情况下,将自动填充默认 project_idfake_project_id,这将使noauth的使用更简单。
Neutron 现在支持创建带有前缀长度 /31 和 /32 的 IPv4 子网,方法是在子网上禁用 dhcp。有关更多信息,请参阅 bug 1580927。
添加了一个新的 OVS 代理扩展
dhcp,以支持计算节点上虚拟机直接的分布式 DHCP。要启用此功能,只需在[agent]部分将extensions=dhcp设置为 OVS 代理配置文件。我们还添加了一个新的配置部分[dhcp],其中包含选项enable_ipv6 = True/False,用于指示是否为 VM 端口启用 DHCPv6。
特殊关键字
<project_id>、<project_name>、<user_name>和<user_id>可用于网络、端口和浮动 IP 的dns_domain属性。这些特殊关键字将被请求上下文中的相应数据替换。这样,云管理员可以为共享网络和属于其他项目的端口定义 dns_domain,以便每个项目可以使用单独的 DNS 区域,这些区域需要由用户预先创建。要启用此功能,Neutron 配置中的 ML2 插件扩展dns_domain_keywords必须启用。同时启用多个 dns_integration 扩展会导致错误。
Neutron 现在支持 ECMP 路由,通过此更改,neutron 将合并具有相同目标地址的多个路由到一个 ECMP 路由中。有关更多信息,请参阅 bug 1880532。
添加了一个新的配额驱动程序:
DbQuotaNoLockDriver。与DbQuotaDriver不同,此驱动程序不会为每个 (resource, project_id) 创建唯一的锁。如果服务器请求的数量超过已解决的资源创建数量,这可能导致数据库死锁状态,如 LP#1926787 中所述。此驱动程序依赖于数据库事务隔离性,并计算已使用和保留的资源数量,并在单个数据库事务中创建新的资源预留(如果可用)。
添加了两个新的 API 方法到
QuotaDriverAPI类。get_resource_usage返回当前的资源使用情况。quota_limit_check检查当前资源使用情况与一组 delta(资源名称和资源计数词典)的对比。
为 OVN 驱动程序添加了网络可用区支持。当使用网络 AZ 时,OVN 的“external”端口现在将安排到属于网络所连接的 AZ 的节点上。此功能还消除了所有“external”端口都属于单个 HA Chassis Group(意味着它们都绑定到单个主机)的限制,现在“external”端口将更好地分布在不同的主机上。
支持使用最新的 OVN 21.06+ 的无状态安全组。有状态=False 的安全组映射到新的 OVN ACL 动词“allow-stateless”。
为 Neutron 服务器端 QoS 服务插件添加了新的 API 扩展,以支持数据包速率限制(每秒数据包)规则的 CRUD 操作。
port.mac_address字段经过清理,具有通用格式“xx:xx:xx:xx:xx:xx”。可以通过提供的脚本neutron-sanitize-port-mac-addresses清理数据库中存储的值,如果需要修复存储的 MAC 地址格式。端口 API 也已修改为清理用户输入。此更改是在 neutron-lib 2.12.0 中添加的,在 788300 中。
SR-IOV 代理现在可以处理来自不同网络且具有相同 MAC 地址的端口。此功能意味着代理和服务器 RPC 版本的升级(参见
neutron.plugins.ml2.rpc.RpcCallbacks版本 1.9)。一些代理 RPC 方法已更新为不仅传递设备 MAC 地址,还传递 PCI 插槽。如果存在多个具有相同 MAC 地址的端口,PCI 插槽将区分请求的端口。
如果不是所有路由下一跳都与任何网关子网 CIDR 具有连接性,则拒绝任何路由器路由或网关更新;换句话说,所有路由下一跳 IP 地址都应属于一个网关子网 CIDR。
已知问题¶
在使用最小带宽 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 上会浪费一些负载。 但是,请注意,即使资源提供程序父级不正确,带宽感知调度也应该可以工作。
当在较新的操作系统中使用 Linux Bridge 机制驱动程序时,这些操作系统默认使用
nftables,需要切换回旧工具,如Linux bridge mechanism driver的管理文档所述。
升级说明¶
ML2 插件过滤出 API 扩展的方式,这些扩展不受加载的机制驱动程序支持的方式已更改。以前,如果至少有一个机制驱动程序支持 API 扩展,则该扩展将位于列表中,但现在需要所有机制驱动程序都支持该扩展。如果至少有一个驱动程序过滤掉它,它将被删除到最终启用的 API 扩展列表中。目前,只有 OVN 机制驱动程序会过滤掉一些 ML2 API 扩展,因此如果该机制驱动程序与 Neutron 中的任何其他机制驱动程序一起加载,则启用的 API 扩展列表可能比以前小。
XenAPI 支持的配置选项已被删除,因为这些选项已经无效。
服务器和代理 RPC 版本已升级到 1.9;为了提供平滑的升级过渡,应遵循 升级过程,先升级服务器,然后再升级代理。代理 RPC 方法返回值未修改,以保持与其它代理(Linux Bridge、Open vSwitch)的兼容性。RPC 服务器端能够处理来自代理 API < 1.9 的调用,以便提供向后兼容性。如果未提供设备 PCI 插槽,则行为将与以前相同。
弃用说明¶
designate部分中的以下参数已被弃用,将在未来的版本中删除。应使用[designate] auth_type参数和所需的 keystoneauth 参数代替。admin_usernameadmin_passwordadmin_tenant_idadmin_tenant_nameadmin_auth_url
安全问题¶
修复 bug 1939733,方法是在传递给 dnsmasq 之前,从 dhcp 额外选项值中删除第一个换行符 (
\n) 之后的所有内容。
错误修复¶
将外部 DNS 服务 OverQuota 异常报告为新的 neutron ConflictException (409),即 ExternalDNSOverQuota。将失败报告为“资源:recordset 的外部 DNS 配额已超出”。
确保 OVN 机制驱动程序在
[ml2_type_geneve]/max_header_size设置低于必需的 38 时不会启动。LP#1868137
1926693 引入的检测 hypervisor 主机名的逻辑,由 change 69660 引入,已得到修复,现在返回与 libvirt 一致的结果。
添加了用于 RPC 代理步长自定义的配置选项:rpc_resources_processing_step - Neutron 将大型 RPC 调用数据集划分为多少个资源。如果发生 RPC 超时,可以减少它。默认值为 20。最佳值可以在您的环境中通过经验确定。
添加了新的
resource_provider_defualt_hypervisor选项,以替换默认的 hypervisor 名称以查找根资源提供程序,而无需在resource_provider_hypervisors选项中提供完整的接口或桥接列表。 此选项位于[ovs]ini 部分用于ovs-agent和[sriov_nic]ini 部分用于sriov-agent。
其他说明¶
Neutron 资源标签现在可以长达 255 个字符,以前资源标签限制为 60 个字符。