第 4 章 技术备注
本章包括了对通过 Content Delivery Network 发布的 Red Hat OpenStack Platform "Train" 勘误公告内容的补充信息。
本节中所包括的错误已在 RHEA-2020:0283 公告中解决。有关此公告的详情请点击以下链接:https://access.redhat.com/errata/RHEA-2020:0283.html。
对分发组件的更改:
- 在 Red Hat OpenStack Platform 16.0 中,Telemetry (遥测) 服务的一部分 ceilometer 客户端(较早的 RHOSP 发行版本中已弃用)不再受支持并已被删除。请注意,ceilometer 仍是 RHOSP 的一部分,只作为代理服务(没有客户端和 API)。(BZ#1518222)
对 openstack-cinder 组件的更改:
- 在以前的版本中,当使用 Red Hat Ceph Storage 作为块存储服务 (cinder) 卷和备份的后端时,当在第一次完全备份后再执行一个完全备份时,实际执行的是一个增量备份,且不发出任何警告信息。在 Red Hat OpenStack Platform 16.0 中,一个技术预览解决了这个问题。(BZ#1375207)
- Red Hat OpenStack Platform 块存储服务 (cinder) 现在会在克隆卷时自动更改加密密钥。请注意,此功能当前不支持将 Red Hat Ceph Storage 用作 cinder 后端。(BZ#1545700)
对 openstack-glance 组件的更改:
在以前的版本中,当一个加密的块存储服务 (cinder) 卷镜像被删除时,它的对应密钥不会被删除。
在 Red Hat OpenStack Platform 16.0 中,这个问题已解决。当镜像服务删除 cinder 卷镜像时,它还会删除镜像的密钥。(BZ#1481814)
- 在 Red Hat OpenStack Platform 16.0 中,向镜像服务 (glance) 中添加了一个技术预览,用于预缓存镜像,以便操作器可以在引导实例前预热缓存。(BZ#1706896)
对 openstack-heat 组件的更改:
- Red Hat OpenStack Platform 编排服务 (heat) 现在包含一个新的资源类型 OS::Glance::WebImage,用于使用 Glance v2 API 从 URL 创建镜像服务 (glance) 镜像。这个新资源类型代替了较早的类型 OS::Glance::Image。(BZ#1649264)
对 openstack-keystone 组件的更改:
- Keystone 现在支持一组基本的默认角色(如 admin、member 和 reader),这些角色在 Red Hat OpenStack Platform director 部署后存在于系统中。这些默认角色会整合到所有授权目标(如系统、域和项目)的默认 director 策略中。(BZ#1228474)
对 openstack-manila 组件的更改:
- 在 Red Hat OpenStack Platform 16.0 中,为共享文件系统服务 (manila) 添加了一个技术预览,以便 IPv6 可用于 CephFS NFS 驱动程序。(BZ#1575079)
对 openstack-neutron 组件的更改:
使用 Linux bridge ML2 驱动程序和代理的 Red Hat OpenStack Platform 部署无法防止解析协议 (ARP) 欺骗。属于 Red Hat Enterprise Linux 8 一部分的以太网网桥帧表管理 (ebtables) 的版本与 Linux bridge ML2 驱动程序不兼容。
Red Hat OpenStack Platform 11 中已弃用 Linux Bridge ML2 驱动程序和代理,不应再使用。
红帽建议您改用 ML2 Open Virtual Network (OVN) 驱动程序和服务,即 Red Hat OpenStack Platform director 部署的默认驱动程序和服务。(BZ#1779221)
现在,您可以将浮动 IP 地址的 TCP、UDP 或者其它协议端口的流量转发到与 neutron 端口的一个固定 IP 地址关联的 TCP、UDP 或其他协议端口。转发的流量由 neutron API 的扩展程序和 OpenStack Networking 插件来管理。浮动 IP 地址可以配置多个转发定义。但是,您无法转发预先与 OpenStack Networking 端口关联的 IP 地址的流量。为浮动 IP 地址转发流量,这些地址由网络上的集中路由器(legacy、HA 和 DVR+HA)管理。
要转发浮动 IP 地址端口的流量,请使用以下 OpenStack Networking 插件命令:
openstack floating ip port forwarding create --internal-ip-address <internal-ip-address> --port <port> --internal-protocol-port <port-number> --external-protocol-port <port-number> --protocol <protocol> <floating-ip>--internal-ip-address <internal-ip-address> 接收转发流量的 neutron 端口的固定、IPv4、内部 IP 地址。
--port <port> 接收转发的流量的 neutron 端口的名称或 ID。
--internal-protocol-port <port-number> neutron 的协议端口号,接收转发流量的固定 IP 地址。
--external-protocol-port <port-number> 转发流量的浮动 IP 地址端口的协议端口号。
--protocol <protocol> 浮动 IP 地址端口使用的协议(如 TCP、UDP)。
<floating-ip> 转发流量的端口的浮动 IP(IP 地址或 ID)。
下面是一个示例:
openstack floating ip port forwarding create \ --internal-ip-address 192.168.1.2 \ --port f7a08fe4-e79e-4b67-bbb8-a5002455a493 \ --internal-protocol-port 18343 \ --external-protocol-port 8343 \ --protocol tcp \ 10.0.0.100 (BZ#1749483)
对 openstack-nova 组件的更改:
- 在此次功能增强中,增加了对使用 NUMA 拓扑进行实例实时迁移的支持。在以前的版本中,默认禁用此操作。可使用 '[workarounds] enable_numa_live_migration' 配置选项启用该项,但其默认为 False,因为实时迁移这些实例会导致将其移至目的地主机,却不更新任何底层 NUMA 客户机到主机的映射或者资源使用情况。使用新的 NUMA 感知实时迁移特性,如果实例无法安装到目的地,当请求设置为具有备用目的地时,将在备用目的地上尝试实时迁移。如果实例无法安装到目的地,则会重新计算 NUMA 客户机到主机的映射以反应其新主机,并更新其资源用量。(BZ#1222414)
在此次功能增强中,添加了对使用附加的基于 SR-IOV 的 neutron 接口进行实例实时迁移的支持。Neutron SR-IOV 接口可以分为两个类别:直接模式和间接模式。直接模式 SR-IOV 接口直接附加到客户机,并公开到客户端操作系统。间接模式 SR-IOV 接口在客户机和 SR-IOV 设备间有一个软件接口,例如 macvtap。此功能为具有间接模式 SR-IOV 设备的实例实现透明的实时迁移。因为在实时迁移过程中没有复制硬件状态的通用方法,直接模式迁移对客户机并不透明。对于直接模式接口,模拟挂起和恢复操作已存在的工作流。例如:使用 SR-IOV 设备,在迁移前分离直接模式接口,并在迁移后重新连接它们。因此,具有直接模式 SR-IOV 端口的实例在迁移过程中会丢失网络连接,除非在客户机中创建了与实时可迁移接口的绑定。
在以前的版本中,无法使用基于 SR-IOV 的网络接口进行实时迁移。因为实时迁移经常用于主机维护及类似的操作,所以这会产生问题。在以前的版本中,该实例必须冷迁移,这需要客户机停机。
此功能增强实现使用基于 SR-IOV 的网络接口进行实例实时迁移。(BZ#1360970)
- 在 Red Hat OpenStack Platform 16.0 中,现在可以在创建网络接口时指定 QoS 最小带宽规则。此功能增强可确保实例具有指定的网络可用带宽。目前,仅支持调整大小和冷迁移操作。(BZ#1463838)
-
现在,当重建实例时,
NUMATopologyFilter被禁用。在以前的版本中,筛选将始终执行,只有在主机的额外容量足够让第二个实例使用新镜像和现有实例类型时,重建才会成功。这是不正确且不必要的行为。(BZ#1775246) - 现在,您可以根据实例级别配置 PCI NUMA 关联性。这需要为使用基于 SR-IOV 的网络接口的实例配置 NUMA 关联性。在以前的版本中,只能在主机级别为 PCI 透传设备配置 NUMA 关联性。(BZ#1775575)
在此功能增强中,您可以使用以下参数将专用(固定)和共享(未固定)实例调度到同一 计算节点上:
-
NovaComputeCpuDedicatedSet- 固定实例 CPU 进程可调度到的物理主机 CPU 数的逗号分隔列表或范围。替换 NovaVcpuPinSet 参数,该参数现已弃用。 NovaComputeCpuSharedSet- 用于提供 vCPU 清单的物理主机 CPU 数的逗号分隔列表或范围,可确定未固定实例可以调度到的主机 CPU,并针对配置了共享仿真器线程策略hw:emulator_threads_policy=share的实例确定实例仿真器线程应当卸载到的主机 CPU。注意:此选项之前已存在,但其用途已通过该功能得到扩展。而不再需要使用主机聚合来确保这些实例类型在独立的主机上运行。另外,
[DEFAULT] reserved_host_cpus配置选项不再需要,且可以取消设置。要升级:
-
对于以前用于固定实例的主机,
NovaVcpuPinSet的值应当迁移到NovaComputeCpuDedicatedSet。 -
对于以前用于非固定实例的主机,
NovaVcpuPinSet应当迁移到NovaComputeCpuSharedSet。 如果没有为
NovaVcpuPinSet设置值,则所有主机内核都应当分配到NovaComputeCpuDedicatedSet或NovaComputeCpuSharedSet,这取决于该处运行的实例的类型。升级完成后,就可以在同一主机上开始设置这两个选项。然而,要做到这一点,主机应当排空实例,因为当
NovaComputeCpuSharedSet中没有列出未固定实例的内核时 nova 不会启动,反之亦然。(BZ#1693372)
-
对 openstack-octavia 组件的更改:
- 现在,您可以使用 Octavia API 创建 VIP 访问控制列表 (ACL) ,将传入监听程序的流量限制到一组允许的源 IP 地址 (CIDR) 。任何其它传入的流量都会被拒绝。有关更多信息,请参阅《网络指南》中的“使用访问控制列表保护负载均衡器的安全”。(BZ#1691025)
- 在 Red Hat OpenStack Platform 16.0 中,负载均衡服务 (octavia) 现在有一个用于 UDP 协议的技术预览。(BZ#1703956)
对 openstack-placement 组件的更改:
- 放置服务已从计算 (nova) 服务中提取。现在,它由 director 部署和管理,并作为额外容器在 undercloud 和 overcloud 控制器节点上运行。(BZ#1625244)
对 openstack-tripleo-common 组件的更改:
在 Red Hat OpenStack Platform 16.0 中,工作流服务 (mistral) 任务是一个技术预览,它可以使您通过以下操作来实现密码轮转:
- 执行 rotate-password 工作流,生成新密码并将其存储在计划环境中。
重新部署 overcloud。
您也可以在更改密码后获取密码。
要实现密码轮转,请按照以下步骤操作:
注意工作流任务修改默认密码。该任务不会修改用户提供的环境文件中指定的密码。
执行新的工作流任务以重新生成密码:
$ source ./stackrc $ openstack workflow execution create tripleo.plan_management.v1.rotate_passwords '{"container": "overcloud"}'This command generates new passwords for all passwords except for BarbicanSimpleCryptoKek and KeystoneFernet* and KeystoneCredential*. There are special procedures to rotate these passwords.It is also possible to specify specific passwords to be rotated. The following command rotates only the specified passwords.$ openstack workflow execution create tripleo.plan_management.v1.rotate_passwords '{"container": "overcloud", "password_list": ["BarbicanPassword", "SaharaPassword", "ManilaPassword"]}'重新部署 overcloud:
$ ./overcloud-deploy.sh要检索密码,包括新生成的密码,请按照以下步骤操作:
运行以下命令:
$ openstack workflow execution create tripleo.plan_management.v1.get_passwords '{"container": "overcloud"}'You should see output from the command, similar to the following:+--------------------+---------------------------------------------+ | Field | Value | +--------------------+---------------------------------------------+ | ID | edcf9103-e1a8-42f9-85c1-e505c055e0ed | | Workflow ID | 8aa2ac9b-22ee-4e7d-8240-877237ef0d0a | | Workflow name | tripleo.plan_management.v1.rotate_passwords | | Workflow namespace | | | Description | | | Task Execution ID | <none> | | Root Execution ID | <none> | | State | RUNNING | | State info | None | | Created at | 2020-01-22 15:47:57 | | Updated at | 2020-01-22 15:47:57 | +--------------------+---------------------------------------------+In the earlier example output, the value of State is RUNNING. State should eventually read SUCCESS.重新检查 State 值:
$ openstack workflow execution show edcf9103-e1a8-42f9-85c1-e505c055e0ed+--------------------+---------------------------------------------+ | Field | Value | +--------------------+---------------------------------------------+ | ID | edcf9103-e1a8-42f9-85c1-e505c055e0ed | | Workflow ID | 8aa2ac9b-22ee-4e7d-8240-877237ef0d0a | | Workflow name | tripleo.plan_management.v1.rotate_passwords | | Workflow namespace | | | Description | | | Task Execution ID | <none> | | Root Execution ID | <none> | | State | SUCCESS | | State info | None | | Created at | 2020-01-22 15:47:57 | | Updated at | 2020-01-22 15:48:39 | +--------------------+---------------------------------------------+当 State 的值为 SUCCESS 时,您可以检索密码:
$ openstack workflow execution output show edcf9103-e1a8-42f9-85c1-e505c055e0edYou should see output similar to the following:{ "status": "SUCCESS", "message": { "AdminPassword": "FSn0sS1aAHp8YK2fU5niM3rxu", "AdminToken": "dTP0Wdy7DtblG80M54r4a2yoC", "AodhPassword": "fB5NQdRe37BaBVEWDHVuj4etk", "BarbicanPassword": "rn7yk7KPafKw2PWN71MvXpnBt", "BarbicanSimpleCryptoKek": "lrC3sGlV7-D7-V_PI4vbDfF1Ujm5OjnAVFcnihOpbCg=", "CeilometerMeteringSecret": "DQ69HdlJobhnGWoBC0jM3drPF", "CeilometerPassword": "qI6xOpofuiXZnG95iUe8Oxv5d", "CephAdminKey": "AQDGVPpdAAAAABAAZMP56/VY+zCVcDT81+TOjg==", "CephClientKey": "AQDGVPpdAAAAABAAanYtA0ggpcoCbS1nLeDN7w==", "CephClusterFSID": "141a5ede-21b4-11ea-8132-52540031f76b", "CephDashboardAdminPassword": "AQDGVPpdAAAAABAAKhsx630YKDhQrocS4o4KzA==", "CephGrafanaAdminPassword": "AQDGVPpdAAAAABAAKBojG+CO72B0TdBRR0paEg==", "CephManilaClientKey": "AQDGVPpdAAAAABAAA1TVHrTVCC8xQ4skG4+d5A==" } } (BZ#1600967)
对 openstack-tripleo-heat-templates 组件的更改:
在清理 BM 节点期间,Nova-compute ironic 驱动程序会尝试更新该节点。清理操作大约需要五分钟,但 nova-compute 会尝试在大约两分钟内更新节点。超时后,nova-compute 会停止 nova 实例并将其置于 ERROR 状态。
作为临时解决方案,为 nova-compute 服务设置以下配置选项:
[ironic] api_max_retries = 180这样,nova-compute 就会继续更长时间尝试更新 BM 节点,并最终成功。(BZ#1647005)
在 Red Hat OpenStack Platform 16.0 中,配置 OpenStack 实例所需的元数据信息不可用,且可能在没有连接的情况下启动,这是一个已知的问题。
排序问题导致无法为 ovn_metadata_agent 更新 haproxy 打包程序。
可能的解决方法是让云操作器运行以下 Ansible 命令,以便在更新后重启选定节点上的 ovn_metadata_agent,以确保 ovn_metadata_agent 使用 haproxy 打包程序脚本的更新版本:
ansible -b <nodes> -i /usr/bin/tripleo-ansible-inventory -m shell -a "status=`sudo systemctl is-active tripleo_ovn_metadata_agent; if test \"$status\" == \"active\"; then sudo systemctl restart tripleo_ovn_metadata_agent; echo restarted; fi"`在以前的 Ansible 命令中,
nodes可能是单个节点(如compute-0)、所有计算(如compute*)或"all"。因为 ovn_metadata_agent 最常用于计算节点,所以以下 Ansible 命令会重启云中所有计算节点的代理:
ansible -b compute* -i /usr/bin/tripleo-ansible-inventory -m shell -a "status=`sudo systemctl is-active tripleo_ovn_metadata_agent; if test \"$status\" == \"active\"; then sudo systemctl restart tripleo_ovn_metadata_agent; echo restarted; fi"`重启 ovn_metadata_agent 服务后,它们会使用更新的 haproxy 打包程序脚本,这样可在虚拟机启动时为它们提供元数据。已经运行的受影响虚拟机在应用临时解决方案后重启,应该会正常运行。(BZ#1790467)
- Red Hat OpenStack Platform 16.0 director 现在支持多计算机单元格部署。在此次功能增强中,云可以更好地进行扩展,因为每个单元格在单元格控制器上都有自己的数据库和消息队列,并减少了中央 control plane 的负载。有关更多信息,请参阅《实例和镜像》指南中的“使用计算单元格扩展部署”。(BZ#1328124)
- 从此次更新开始,OSP 部署在所有 OVN 服务间都有完全加密功能。现在,所有 OVN 客户端(ovn-controller、neutron-server 和 ovn-metadata-agent)都使用相互 TLS 加密连接到 OVSDB 服务器。(BZ#1601926)
在 Red Hat OpenStack Platform 16.0 中,向编排服务 (heat) 中添加了一个技术预览,用于 rsyslog 更改:
- 将 rsyslog 配置为收集并转发与 fluentd 安装功能相等的容器日志。
- 管理员可以使用与 fluentd 相同的方法配置 rsyslog 日志转发。(BZ#1623152)
- 在 Red Hat OpenStack Platform 16.0 中,您可以使用 director 为块存储务 (cinder) 后端类型指定可用域。(BZ#1700396)
- Red Hat OpenStack Platform director 支持部署额外节点,可用于在部署过程中为系统置备添加其他裸机置备编排器服务资源。(BZ#1710093)
- 在 Red Hat OpenStack Platform 16.0 中,不再支持 Elastic Compute Cloud (EC2) API。现在,director 中已弃用 EC2 API 支持,并将在以后的 RHOSP 发行版本中删除。(BZ#1754560)
在 Red Hat OpenStack Platform 16.0 中,删除了 controller-v6.yaml 文件。controller-v6.yaml 中定义的路由现在在 controller.yaml 中定义。(controller.yaml 文件是一个 NIC 配置文件,根据 role_data.yaml 中设置的值产生。)
早期版本的 Red Hat OpenStack Director 包括两个路由:一个用于外部网络上的 IPv6(默认),另一个用于 Control Plane 上的 IPv4。
要使用这两个默认路由,请确保 role_data.yaml 中的控制器定义在 default_route_networks 中包含这两个网络(例如,
default_route_networks: ['External', 'ControlPlane'])。(BZ#1631508)-
在 Red Hat OpenStack Platform 16.0 中,您可以将自定义 Red Hat Ceph Storage 配置设置添加到 ceph.conf 的任意部分。在以前的版本中,自定义设置只能在 ceph.conf 的
[global]部分进行。(BZ#1666973) 在 Red Hat OpenStack Platform 16.0 中,新的编排服务 (heat) 部署参数可供管理员在单元格控制器上打开 nova 元数据服务:
parameter_defaults: NovaLocalMetadataPerCell: True这个新参数自动将来自该单元格计算上的 OVN 元数据代理的流量定向到该单元格控制器上托管的 nova 元数据 API 服务。
根据 RHOSP 拓扑,在单元格控制器上运行元数据服务的能力可减少中央 control plane 上的网络流量。(BZ#1689816)
在 Red Hat OpenStack Platform 16.0 中,向编排服务 (heat) 中添加了一个技术预览。一个新的参数
NovaSchedulerQueryImageType,被添加用于控制镜像类型(scheduler/query_placement_for_image_type_support)的计算服务 (nova) 放置和调度程序组件查询放置。当设置为 true(默认)时,
NovaSchedulerQueryImageType会排除不支持引导请求中使用的镜像磁盘格式的计算节点。例如,libvirt 驱动程序使用 Red Hat Ceph Storage 作为临时后端,且不支持 qcow2 镜像(不需要昂贵的转换步骤)。在本例中,启用
NovaSchedulerQueryImageType可确保调度程序不会向使用 Red Hat Ceph Storage 的计算节点发送引导 qcow2 镜像的请求。(BZ#1710634)
对 puppet-tripleo 组件的更改:
- Red Hat OpenStack Platform director 现在为 fence_redfish 提供技术预览,这是 Redfish API 的保护代理。(BZ#1699449)
对 python-django-horizon 组件的更改:
- 在 Red Hat OpenStack Platform 16.0 控制面板 (horizon) 中,现在有更改用户密码的新表单。当用户试图使用过期的密码登录时,这个表单会自动出现。(BZ#1628541)
对 python-networking-ansible 组件的更改:
- 在 Red Hat OpenStack Platform 16.0 中,向 OpenStack 裸机服务 (ironic) 添加了一个技术预览功能,用于通过 Arista Extensible Operating System (Arista EOS) 交换机配置 ML2 networking-ansible 功能。有关更多信息,请参阅《裸机置备》指南中的“启用 networking-ansible ML2 功能”。(BZ#1621701)
- 在 Red Hat OpenStack Platform 16.0 中,添加了一个修改交换机端口的技术预览,以使其进入中继模式,并为它们分配多个 VLAN。(BZ#1622233)
对 python-networking-ovn 组件的更改:
在 Red Hat OpenStack Platform 16.0 中,启用 OVN 的实时迁移现已成功,因为标记
live_migration_wait_for_vif_plug默认启用。在以前的版本中,实时迁移失败,因为系统一直在等待 OpenStack Networking (neutron) 发送
vif_plugged通知。(BZ#1716335)- 目前,在从成员获取数据时,OVN 负载均衡器不会打开新的连接。负载均衡器修改目的地地址和目的地端口,并将请求数据包发送到成员。因此,在使用 IPv4 负载均衡器地址时无法定义 IPv6 成员,反之亦然。当前没有解决此问题的方法。(BZ#1734301)
对 python-novajoin 组件的更改:
-
在以前的版本中,当 Novajoin 丢失与 IPA 服务器的连接时,它会马上尝试重新连接。因此,可能会出现与时间相关的问题,并阻止重新建立连接。在此更新中,您可以在重试 IPA 服务器连接前使用
retry_delay设置要等待的秒数。因此,这可以帮助减少时间的问题。(BZ#1767481)
对 python-oslo-utils 组件的更改:
- 在以前的版本中,oslo.util 库的正则表达式没有更新,它无法识别较新版本的仿真器 qemu(版本 4.1.0)的输出格式。Red Hat OpenStack 16.0 中的此次修复更新了正则表达式,oslo.util.imageutils 库现在可以正常工作。(BZ#1758302)
对 python-tripleoclient 组件的更改:
-
director 已添加了
overcloud undercloud minion install命令,您可以使用该命令配置额外主机来增强 Undercloud 服务。(BZ#1710089) - director 现在提供部署额外节点的功能,您可以使用该节点为部署相关的操作添加其他 heat-engine 资源。(BZ#1710092)
在 Red Hat OpenStack Platform 16.0 中,您现在可以在本地 registry 中推送、列出、删除和显示(显示元数据)镜像。
将镜像从远程存储库推送到主存储库:
$ sudo openstack tripleo container image push docker.io/library/centos列出存储库的内容:
$ openstack tripleo container image list删除镜像:
$ sudo openstack tripleo container image delete显示镜像元数据:
$ openstack tripleo container image show (BZ#1545855)
-
在此功能增强中,overcloud 节点删除需要在执行操作前进行用户确认,以减少意外执行该操作的可能性。
openstack overcloud node delete <node>命令需要在操作执行前进行 Y/n 确认。您可以通过在命令行中添加--yes来绕过此操作。(BZ#1593057)