Mitaka 系列发布说明

8.4.0

已知问题

  • 在内核 < 3.19 中,net.ipv4.ip_nonlocal_bind 不是每个命名空间的内核选项。L3 HA 将此选项设置为零,以避免为处理过程中删除的 IP 地址发送不必要的 ARP。如果发生这种情况,可能会发送不必要的 ARP,这可能会填充对等机器的 ARP 缓存,其中包含错误的 MAC 地址。

升级说明

  • 服务器在 HA 路由器接口端口状态变为活动状态时通知 L3 HA 代理。然后 L3 HA 代理会生成 keepalived 进程。因此,在升级期间,必须先重启服务器,然后再重启 L3 代理。

错误修复

  • keepalived 版本 < 1.2.20 不会在 keepalived 进程收到 SIGHUP 信号时发送不必要的 ARP。这些版本未打包在某些 Linux 发行版中,例如 RHEL、CentOS 或 Ubuntu Xenial。不发送不必要的 ARP 可能会导致对等 ARP 缓存包含有关浮动 IP 地址的错误信息,直到该条目失效。Neutron 现在为路由器命名空间中所有非 HA 接口上出现的新 IP 地址发送不必要的 ARP,这模拟了 keepalived 新版本的行为。

8.3.0

序言

Neutron 服务器不再需要配置防火墙驱动程序,并且可以支持混合 iptables 防火墙和纯 OVS 防火墙的混合环境。

默认情况下,Open vSwitch 和 Linuxbridge 代理的 QoS 驱动程序将突发值计算为可用带宽的 80%。

新特性

  • Neutron 服务器不再需要配置防火墙驱动程序,并且可以支持混合 iptables 防火墙和纯 OVS 防火墙的混合环境。

升级说明

  • 已添加一个新的选项 ha_keepalived_state_change_server_threads,用于配置为 keepalived 服务器连接请求生成的并发线程数。较高的值会增加代理节点上的 CPU 负载。默认值为节点上 CPU 数量的一半。这允许操作员调整线程数以适应其环境。使用更多线程,可以更快地处理多个 HA 路由器的状态变化的并发请求。

错误修复

  • 修复了 bug 1572670

  • 允许 SR-IOV 代理在 0 个 vfs 的情况下运行

8.2.0

序言

添加选项以指定 neutron 的外部 dns 驱动程序,用于基于 SSL 的连接。这使得在端点基于 SSL 的情况下使用 neutron 与 designate 成为可能。用户可以在 neutron.conf 文件的 [designate] 部分中指定跳过证书验证或指定有效证书的路径。

支持在 OVS 中使用 IPv6 地址作为隧道端点。

新特性

  • 已添加两个新的选项到 [designate] 部分以支持 SSL。

  • 第一个选项 insecure 允许在创建与 designate 客户端建立会话的 keystone 会话时跳过 SSL 验证。默认值为 False,这意味着始终验证连接。

  • 第二个选项 ca_cert 允许设置有效证书文件的路径。默认值为 None。

  • ml2_conf.ini 中的 local_ip 值现在可以设置为系统上配置的 IPv6 地址。

其他说明

  • 需要 OVS 2.5+ 版本或更高版本以及 linux 内核 4.3 或更高版本。有关更多信息,请参阅 OVS github 页面

8.1.0

序言

支持配置用于 WSGI 的 greenthreads 池。

可以使用 SR-IOV 多个 NIC 用于物理网络。

错误修复

  • sriov_nic 配置的 ‘physical_device_mappings’ 现在可以接受每个物理网络多个 NIC。例如,如果 ‘physnet2’ 连接到 enp1s0f0 和 enp1s0f1,则 ‘physnet2:enp1s0f0,physnet2:enp1s0f1’ 将是一个有效的选项。

其他说明

  • 运营商可能希望根据此 邮件列表帖子 中概述的调查来调整 max_overflowwsgi_default_pool_size 配置选项。 wsgi_default_pool_size 的默认值继承自 oslo.config,当前为 100。这是从以前的 Neutron 特定值 1000 的变化。

8.0.0

序言

ML2 插件支持通过从 ‘path_mtu’ 的值中减去覆盖协议开销来计算使用覆盖网络的实例的 MTU,理想情况下是物理(底层)网络的 MTU,并通过 DHCP 向实例提供较小的值。在 Mitaka 之前,‘path_mtu’ 默认值为 0,这禁用了此功能。在 Mitaka 中,‘path_mtu’ 默认值为 1500,这是物理网络的典型 MTU,以改善典型部署的“开箱即用”体验。

ML2 插件支持通过咨询 ‘segment_mtu’ 选项来计算实现为扁平或 VLAN 网络的网络的 MTU。在 Mitaka 之前,‘segment_mtu’ 默认值为 0,这禁用了此功能。这在查询 Neutron 网络时会产生略微令人困惑的 API 结果,因为支持 MTU API 扩展的插件会返回 MTU 等于零的网络。MTU 为零的网络毫无意义,因为无法传输任何内容。在 Mitaka 中,‘segment_mtu’ 现在默认值为 1500,这是以太网网络的标准 MTU,以改善典型部署的“开箱即用”体验。

LinuxBridge 代理现在支持 QoS 带宽限制。

现在可以使用 Liberty 中添加的 RBAC 框架来控制外部网络。这允许将网络提供给特定的租户(而不是所有租户),用作路由器和浮动 IP 的外部网关。

DHCP 和 L3 代理调度感知可用区。

“get-me-a-network”功能简化了使用基本网络连接(通过外部连接的私有租户网络)启动实例的过程。

支持与外部 DNS 服务的集成。

将流行的 IP 协议添加到安全组代码中。最终用户可以在 RESTful API 和 python-neutronclient CLI 中指定协议名称,而不是协议号。

ML2:端口现在可以从绑定失败状态恢复。

QoS 策略的 RBAC 支持

为安全组规则、网络、端口、路由器、浮动 IP 和子网池添加描述字段。

为网络资源添加标签机制

现在向 neutron 核心资源添加时间戳字段。

支持通过 BGP 发布租户前缀和浮动 IP 的主机路由

可以通过传递 None 以及空列表来清除允许的地址对。这是为了能够使用 –action=clear 选项与 neutron 客户端。neutron port-update <uuid> –allowed-address-pairs action=clear

核心配置文件会自动生成。

max_fixed_ips_per_port 已被弃用,将在 Newton 或 Ocata 周期中删除,具体取决于何时通过另一个配额系统满足选项的已识别用例。

OFAgent 在 Mitaka 周期中被分解和弃用。

为 SR-IOV 物理函数添加新的 VNIC 类型。

分布式虚拟路由器 (DVR) 的 SNAT 服务的 HA 支持。

配置为以 DVR 模式运行的 OVS 代理如果在启动时无法从服务器获取正确的 DVR 配置值,将无法启动。该代理将不再回退到非 DVR 模式,因为这可能会导致 DVR 启用的集群中不一致,因为 Neutron 服务器不区分 DVR 和非 DVR OVS 代理。

改进 DVR 在 Nova VM 实时迁移事件期间的弹性。

Linuxbridge 代理现在支持 l2 代理扩展。

添加 MacVtap ML2 驱动程序和 L2 代理作为新的 vswitch 选择

支持 MTU 选择和通告。

Neutron 现在提供网络 IP 可用性信息。

Neutron 与 Guru Meditation Reports 库集成。

oslo.messaging.notify.drivers 入口点已被弃用

新特性

  • 在 Mitaka 中,‘path_mtu’ 默认值为 1500 和 ‘advertise_mtu’ 默认值为 True 的组合为实例通过 DHCP 提供考虑任何覆盖协议开销的网络 MTU 值。例如,连接到 VXLAN 网络的实例从 DHCP 接收到 1450 MTU,该 MTU 考虑了使用 IPv4 端点时 VXLAN 覆盖协议的 50 字节开销。

  • 在 Mitaka 中,对网络对象进行 Networking API 查询现在将返回包含合理 MTU 值的网络对象。

  • LinuxBridge 代理现在可以配置基本的带宽限制 QoS 规则,这些规则适用于端口和网络。它引入了 LinuxBridge 代理的两个新配置选项。第一个是 ‘kernel_hz’ 选项,即主机内核 HZ 设置的值。这对于在 tbf qdisc 设置中正确计算最小突发值是必要的。第二个是 ‘tbf_latency’,即要在 tc-tbf 设置中配置的延迟值。有关此选项的详细信息,请参阅 tc-tbf 手册

  • 现在可以使用 Liberty 中添加的 RBAC 框架来控制外部网络。这允许将网络提供给特定的租户(而不是所有租户),用作路由器和浮动 IP 的外部网关。默认情况下,此功能还将允许普通租户将其网络作为外部网络提供给其他单个租户(甚至他们自己),但他们被阻止使用通配符来共享给所有租户。可以通过 policy.json 由操作员根据需要调整此行为。

  • DHCP 代理分配给一个可用区;网络将由指定用户指定的可用区的 DHCP 代理托管。

  • L3 代理分配给一个可用区;路由器将由指定用户指定的可用区的 L3 代理托管。这支持在 HA 路由器中使用可用区。由于 L3HA 和 DVR 集成尚未完成,因此现在不支持 DVR。

  • 一旦 Nova 利用此功能,用户就可以在显式配置网络资源的情况下启动实例。

  • 浮动 IP 可以具有与其关联的 dns_name 和 dns_domain 属性

  • 端口可以具有与其关联的 dns_name 属性。创建端口的网络可以具有与其关联的 dns_domain。

  • 如果它们具有关联的 dns_name 和 dns_domain 属性,则浮动 IP 和端口将在外部 DNS 服务中发布。

  • 参考驱动程序将 neutron 与 designate 集成

  • 可以实现其他 DNSaaS 的驱动程序

  • 驱动程序在 neutron.conf 的默认部分中使用参数 ‘external_dns_driver’ 进行配置

  • 当 L2 代理离线时绑定失败的端口现在可以在代理重新上线后恢复。

  • Neutron 现在支持在租户子集之间共享 QoS 策略。

  • 安全组规则、网络、端口、路由器、浮动 IP 和子网池现在可以包含一个可选的描述,允许用户轻松存储有关实体的详细信息。

  • 用户可以在其网络资源上设置标签。

  • 可以按标签过滤网络。支持的过滤器是 ‘tags’、‘tags-any’、‘not-tags’ 和 ‘not-tags-any’。

  • 将时间戳字段 ‘created_at’、‘updated_at’ 添加到 neutron 核心资源(如网络、子网、端口和子网池)中。

  • 并支持按 changed-since 查询这些资源,它将返回在特定时间字符串(如 YYYY-MM-DDTHH:MM:SS)之后更改的资源

  • 默认情况下,DHCP 代理会向使用相应 DHCP 选项的实例提供网络 MTU 值,如果核心插件计算该值。对于 ML2 插件,通过将 [ml2] path_mtu 选项设置为大于零的值来启用计算机制。

  • 允许非管理员用户定义“外部”额外路由。

  • 通过集中式 Neutron 路由器网关端口作为下一跳发布租户子网通过 BGP

  • 通过集中式 Neutron 路由器网关端口作为下一跳发布浮动 IP 主机路由

  • 当浮动 IP 通过分布式路由器关联时,通过浮动 IP 代理网关作为下一跳发布浮动 IP 主机路由

  • Neutron 不再包含静态示例配置文件。而是使用 tools/generate_config_file_samples.sh 生成它们。文件以 .sample 扩展名生成。

  • 添加派生属性到网络,以告知用户网络位于哪些地址范围内。

  • 子网 API 现在包含一个新的 use_default_subnetpool 属性。此属性可以在创建子网时指定,而不是 subnetpool_id。两者是互斥的。如果指定为 True,将查找请求的 ip_version 的默认子网池并使用它。如果不存在默认值,将返回错误。

  • Neutron 现在支持创建端口以将物理函数作为网络设备暴露给客户机。

  • 分布式虚拟路由器 (DVR) 上 SNAT 服务的 HA 支持。现在可以创建标志 distributed=True 和 ha=True 的路由器。创建的路由器将提供分布式虚拟路由以及配置为 dvr_snat 模式的 l3 代理上的 SNAT 高可用性。

  • 使用网络的 ‘mtu’ 属性值来确定与特定网络相关的虚拟网络接口(如 veth 对、补丁端口和 tap 设备)的 MTU。

  • 通过将扁平或 VLAN 网络与覆盖网络之间的 MTU 不匹配从第 2 层设备移动到支持路径 MTU 发现 (PMTUD) 的第 3 层设备,从而启用实例和提供程序/公共网络之间的任意 MTU(包括巨型帧)的端到端支持。

  • Linuxbridge 代理现在可以通过可插拔机制由第三方扩展。

  • Libvirt qemu/kvm 实例现在可以通过桥接模式使用 MacVtap 附加到网络。支持 VLAN 和 FLAT 附件。不支持其他附件。

  • 当配置中设置 advertise_mtu 时,Neutron 支持使用路由器通告通告 LinkMTU。

  • 提供了一个新的 API 端点 /v2.0/network-ip-availabilities,允许管理员快速获取网络(或网络)的 used_ips 和 total_ips 的计数。新的端点允许按 network_id、network_name、tenant_id 和 ip_version 进行过滤。响应返回包含已用和总 IP 的网络和嵌套子网数据。

  • SriovNicSwitchMechanismDriver 驱动程序现在为具有 vnic 类型 ‘direct-physical’(用于 SR-IOV PF 直通)的端口公开了一种新的 VIF 类型 ‘hostdev_physical’。这将使 Nova 能够将 PF 作为 Neutron 端口配置。

  • RPC 和通知队列已分离到不同的队列中。在配置文件的 [oslo_messaging_notifications] 部分中指定要用于通知的 transport_url。如果在 [oslo_messaging_notifications] 中未指定 transport_url,则将用于 RPC 的 transport_url。

  • Neutron 服务应响应 SIGUSR2 信号,将有价值的调试信息转储到标准错误输出。

  • 引入了新的安全组防火墙驱动程序。它基于使用连接跟踪的 OpenFlow。

  • Neutron 可以与 keystone v3 交互。

已知问题

  • ‘path_mtu’ 和 ‘advertise_mtu’ 的组合仅调整实例的 MTU,而不是实例和提供程序/公共网络之间的所有虚拟网络组件。特别是,将 ‘path_mtu’ 设置为大于 1500 的值可能会导致数据包丢失,即使物理网络支持它。此外,计算不考虑 IPv6 端点的额外开销。

  • 在使用 DVR 时,如果将浮动 IP 与固定 IP 关联,则当流量从 Neutron tenant 网络外部发送时(南北流量),无法直接访问固定 IP。在 tenant 网络之间发送的流量(东西流量)不受影响。在使用分布式路由器时,浮动 IP 将屏蔽固定 IP,使其无法访问,即使 tenant 子网正在通过集中式 SNAT 路由器通告为可访问的。在这种情况下,发送到实例的流量应定向到浮动 IP。这是 Neutron L3 agent 在使用 DVR 时的限制,将在未来的版本中解决。

  • 目前仅支持创建 dvr/ha 路由器。本版本不支持从其他类型的路由器升级到 dvr/ha 路由器。

  • Nova 和 Neutron 之间需要更多的同步,以正确处理双方的实时迁移失败。例如,如果实时迁移被撤销或取消,一些悬挂的 Neutron 资源可能会留在目标主机上。

  • 为了确保所有计算节点之间的任何类型的迁移都能正常工作,请确保在每个 MacVtap 计算节点上配置相同的 physical_interface_mappings。不同的映射可能导致实时迁移失败(如果配置的物理网络接口在目标主机上不存在),或者更糟糕的是,导致实例放置在错误的物理网络上(如果物理网络接口存在于目标主机上,但被另一个物理网络使用或根本不被 OpenStack 使用)。这样的实例将无法再访问其配置的网络。然后它将具有到另一个 OpenStack 网络或主机网络之一的二层连通性。

  • OVS 防火墙驱动程序与其他使用 openflow 的功能配合不好。

升级说明

  • 使用 ‘path_mtu’ 默认值为 0 的 ML2 插件的用户可能需要执行数据库迁移以更新现有网络的 MTU,并可能禁用针对 MTU 问题的现有解决方法,例如将物理网络 MTU 增加到 1550。

  • 使用 ML2 插件且具有现有数据的用户可能需要执行数据库迁移以更新现有网络的 MTU

  • 将流行的 IP 协议添加到安全组代码中。

  • 要禁用,请使用 [DEFAULT] advertise_mtu = False。

  • router_id 选项已被弃用,将在 ‘N’ 周期中删除。

  • 不会更改现有虚拟网络接口的 MTU。

  • 在现有网络上创建虚拟网络接口的操作,其 ‘mtu’ 属性包含大于零的值,可能会导致遍历现有和新虚拟网络接口的网络流量出现问题。

  • Hyper-V Neutron Agent 已从 Neutron 中完全分解。 neutron.plugins.hyperv.agent.security_groups_driver.HyperVSecurityGroupsDriver 防火墙驱动程序已被弃用,将在 ‘O’ 周期中删除。更新 Hyper-V 节点上的 neutron_hyperv_agent.conf 文件,以使用 hyperv.neutron.security_groups_driver.HyperVSecurityGroupsDriver,即 networking_hyperv 安全组驱动程序。

  • 在使用 ML2 和 Linux Bridge agent 时,L2Population 下 ARP Responder 的默认值已更改。现在禁用 responder 以提高与 allowed-address-pair 扩展的兼容性,并与 ML2 OVS agent 的默认行为相匹配。逻辑网络现在将通过覆盖利用传统的泛洪和学习。升级时,现有的 vxlan 设备将保留其旧设置,并且不受此标志更改的影响。要将此应用于使用 Liberty agent 创建的旧设备,必须删除 vxlan 设备,然后重新启动 Mitaka agent。代理将在重新启动时使用当前设置重新创建 vxlan 设备。要保持 Mitaka 之前的行为,请在启动更新的代理之前,在 Linux Bridge agent VXLAN 配置文件中启用 arp_responder。

  • Neutron 依赖于 keystoneauth 而不是 keystoneclient。

弃用说明

  • default_subnet_pools 选项现已被弃用,将在 Newton 版本中删除。现在可以通过使用 API 或客户端将 subnetpools 上的 is_default 属性设置为 True 来提供相同的功能。

  • ‘force_gateway_on_subnet’ 选项已被弃用,将在 ‘Newton’ 周期中删除。

  • ‘network_device_mtu’ 选项已被弃用,将在 ‘Newton’ 周期中删除。请使用系统范围的 segment_mtu 设置,代理在接线 VIF 时将考虑该设置。

  • max_fixed_ips_per_port 已被弃用,将在 Newton 或 Ocata 周期中删除,具体取决于何时通过另一个配额系统满足该选项的已识别用例。如果您依赖此配置选项来阻止租户消耗 IP 地址,请在 bug report 上留下评论。

  • ML2 配置的 ‘segment_mtu’ 选项已被弃用,并替换为 Neutron 主配置中的 ‘global_physnet_mtu’ 选项。该选项旨在供所有插件使用,以便操作员引用其物理网络的 MTU,而与后端插件无关。插件应通过添加到 neutron.plugins.common.utils 的 ‘get_deployment_physnet_mtu’ 方法访问此配置选项,以避免在任何潜在的重命名中被破坏。

错误修复

  • 在 Mitaka 之前,控制 radvd 守护程序发送的路由器通告的频率的设置无法进行调整。大型部署可能希望降低 radvd 发送多播流量的频率。L3 agent 配置文件中的 ‘min_rtr_adv_interval’ 和 ‘max_rtr_adv_interval’ 设置直接映射到生成的 radvd.conf 文件中的 ‘MinRtrAdvInterval’ 和 ‘MaxRtrAdvInterval’。有关更多详细信息,请参阅 radvd.conf 的手册页。

  • 修复 bug 1537734

  • 在 Mitaka 之前,实例中的名称解析需要通过 DHCP agent 配置文件的 ‘dnsmasq_dns_servers’ 选项或通过 neutron subnet 选项指定 DNS 解析器。在这种情况下,数据平面必须提供实例与上游 DNS 解析器之间的连接。省略这两种方法会导致 dnsmasq 服务向实例提供用于名称解析的其所在 IP 地址。但是,静态 dnsmasq ‘–no-resolv’ 进程参数会阻止通过 dnsmasq 进行名称解析,从而使实例无法进行名称解析。Mitaka 引入了 ‘dnsmasq_local_resolv’ 选项,默认值为 False 以保持向后兼容性,该选项启用 dnsmasq 服务通过运行 DHCP agent 的主机上的 DNS 解析器为实例提供名称解析。在这种情况下,数据平面必须提供主机与上游 DNS 解析器之间的连接,而不是实例与上游 DNS 解析器之间的连接。通过 DHCP agent 配置文件的 ‘dnsmasq_dns_servers’ 选项指定 DNS 解析器将覆盖所有使用 DHCP agent 的子网的 ‘dnsmasq_local_resolv’ 选项。

  • 在 Mitaka 之前,如果在配置中定义了默认 subnetpool,则创建 subnet 的请求将在未指定特定 subnet pool 的情况下回退到使用它。此行为破坏了在此场景下的 subnet 创建调用的语义,现在被认为是一个 API 错误。此错误已修复,因此在存在默认 subnet pool 时没有自动回退。依赖此新行为的工作流程需要进行修改,以便在创建 subnet 时设置新的 use_default_subnetpool 属性。

  • 在实时迁移事件期间,主动在目标节点上创建 DVR 路由器命名空间。这有助于最大限度地减少浮动 IP 流量的丢包。

  • 显式配置虚拟网络接口的 MTU,而不是使用默认值或不考虑覆盖协议开销的错误值。

  • 如果核心和 service 插件需要的任何声明的必需扩展未正确配置,服务器将无法启动。

  • 部分关闭 bug 1468803

  • Linuxbridge agent 现在支持在启用 L2Population 时切换本地 ARP responder。这确保了与 allowed-address-pairs 扩展的兼容性。关闭 bug 1445089

  • 修复 SR-IOV agent macvtap 分配的 VF 检查,当 linux kernel < 3.13 时

  • SR-IOV agent 加载的 agent 扩展现在显示在 agent 状态 API 中。

其他说明

  • 对于由 ML2 核心插件管理的覆盖网络,计算算法从 ‘path_mtu’ 的值中减去覆盖协议开销。DHCP agent 将结果(较小)MTU 提供给使用覆盖网络的实例。

  • 在运行 DHCP agent 的所有主机上,[DEFAULT] advertise_mtu 选项必须包含一致的值。

  • 典型的网络可以使用 [ml2] path_mtu = 1500。

  • Openflow Agent(OFAgent) 机制驱动程序已从 neutron 树中完全分解。在 Mitaka 中,OFAgent 驱动程序及其 agent 已被弃用,转而支持具有 “native” of_interface 的 OpenvSwitch 机制驱动程序,并在下一个版本中删除。

  • OVS 防火墙驱动程序需要 OVS 2.5 版本或更高版本,以及 linux kernel 4.3 或更高版本。有关更多信息,请访问 OVS github 页面

  • 为与 Icehouse 保持向后兼容而保留在树中的 oslo.messaging.notify.drivers 入口点已被弃用,并将删除在 liberty-eol 之后。使用 neutron.conf 中的 oslo_messaging 配置选项配置通知。