Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第 4 章 技术备注

本章的内容是对 Red Hat OpenStack Platform "Pike" 勘误公告内容的补充,该公告通过 Content Delivery Network 发布。

4.1. RHEA-2017:3462 — Red Hat OpenStack Platform 12.0 功能增强公告

本节中所包括的错误已在 RHEA-2017:3462 公告中解决。如需了解更多与这个公告相关的信息,请参阅 https://access.redhat.com/errata/RHEA-2017:3462

diskimage-builder

BZ#1489801
Red Hat OpenStack Platform 不再使用 MongoDB。MongoDB 先前曾用于 undercloud 上的 Telemetry(现在改用 Gnocchi)和 Zaqar(改用 Redis)。因此,其中不再包括 'mongodb'、'puppet-mongodb' 和 'v8'。

opendaylight

BZ#1344429
此更新在 NetVirt/OVSDB 场景中增加了对 OpenDaylight、OVS-DPDK 和 OpenStack 的支持功能。借助此功能,对于使用 OpenDaylight 和 OVS_DPDK 的租户,用户可以使用 OpenDaylight 为其建立虚拟化网络。
BZ#1414298
此更新为在 Red Hat Openstack Platform 12 中使用的 OpenDaylight Carbon 发行版本提供了新的软件包。
BZ#1414313
通过此更新,Neutron 和 OpenDaylight 控制器都可使用高可用性集群。
BZ#1420383
此更新使用 JNI 软件包替换了基于 Java 的 LevelDB ,并提供了 leveldbjni-all-1.8-15.5.el7ost.x86_64 软件包。
BZ#1414431
默认会启用基于 conntrack 的新 SNAT 实现方式,该方式使用 Linux netfilter 框架执行 NAPT(网络地址端口转换)并跟踪连接情况。数据流中的第一个数据包传送给 netfilter 使用外部 IP 地址执行转换。后续的数据包将使用 netfilter 执行进一步的入站和出站转换。在 netfilter 中,将用路由器 ID 作为区域 ID。每个区域在自己的表中跟踪连接情况。其余实现方式保持不变。conntrack 模式还会启用新的高可用性逻辑,以新的方式来考虑与每个交换机关联的权重。而且,交换机会让一个指定的 NAPT 端口始终保持打开状态以提高性能。
BZ#1450894
此更新对于使用 OpenDaylight 的 OpenStack,在 Neutron 路由器内部接口增加了对 ping6 的支持功能。

openstack-cinder

BZ#1334545
现在可以通过选项 "total_iops_sec_per_gb"、"read_iops_sec_per_gb" 和 "write_iops_sec_per_gb" 来设置 QoS IOPS 上限值,以调节每 GB 数据量的大小。

例如,如果设置了 total_iops_sec_per_gb=1000 选项,则 1GB 数据量将产生 1000 IOPS,2GB 数据量将产生 2000 IOPS,以此类推。

openstack-containers

BZ#1517903
先前,如果容器意外关闭,Apache 仍然会将运行时文件留在容器中,导致容器在主机恢复正常运行后,一直处于“重启”状态。如果您在使用 TLS everywhere,这意味着 Glance 和 Swift 服务在主机重启后不可访问。

现在,在容器镜像启动脚本中添加了运行时文件清理功能。在部署了 TLS everywhere 的情况下,Glance 和 Swift 服务在主机重启之后可以正常使用。

openstack-neutron

BZ#1490281
一些部署中使用 Neutron 提供商网桥来处理内部数据流,比如 AMQP 数据流,这会使网桥在启动时的工作方式类似于普通的交换。因为 ARP 广播数据包使用 patch-ports 在集成网桥和提供商网桥之间进行互连,所以,如果很多控制器被强行关闭然后同时启动,就会出现 ARP 风暴。

新的 systemd 服务 neutron-destroy-patch-ports 现在会在启动时执行,用于删除 patch 端口,并断开集成网桥和提供商网桥之间的连接。这可避免 ARP 风暴,而 patch 端口随后会在 openvswitch 代理启动之后恢复。

openstack-panko

BZ#1417221
Panko 服务已在 OpenStack 12 版本中正式弃用。对 panko 的产品支持将仅限于在 cloudforms 中使用。我们不建议在 cloudforms 外部使用 panko。

openstack-tripleo-common

BZ#1276147
此更新针对 Emulex 硬件 iSCSI (be2iscsi) 内存磁盘,增加了对 OpenStack Bare Metal (ironic) 的支持功能。
BZ#1434929
先前未设置 OS_IMAGE_API_VERSION 和 OS_VOLUME_API_VERSION 环境变量,强制 Glance 和 Cinder 后退到默认 API 版本。对 Cinder 而言,该版本是更老的 v2 API。

在此更新中,overcloudrc 文件现在会设置环境变量来指定 Glance 和 Cinder 的 API 版本。

openstack-tripleo-heat-templates

BZ#1487920
加密卷无法正确连接到容器化环境中的实例。这是因为 Compute 服务所运行的 "cryptsetup luksOpen" 要等待 udev 设备创建过程完成。该过程实际并未完成,因此导致命令挂起。

解决办法:使用 docker 选项 "--ipc=host" 重启容器化的 Compute 服务。
BZ#1513109
POWER-8 (ppc64le) Compute 支持功能现已通过技术预览方式提供。
BZ#1406102
Director 现在支持在部署和更新阶段创建定制网络。这些额外创建的网络可作为专用网络控制器、Ironic 裸机节点,也可用于系统管理或为不同角色创建独立网络。

一个单个数据文件 ('network_data.yaml') 会管理将要部署的网络列表。然后,角色定义过程将这些网络分配给所需的角色。
BZ#1418433
在本发行版本中,OpenStack File Share Service (manila) 的容器化部署功能以技术预览方式提供。默认情况下,Manila、Cinder 和 Neutron 将仍然在裸机上部署。
BZ#1484467
在裸机上运行 Cinder 服务以及在容器中运行 Iscsid 服务时,会导致服务具有不同的 iSCSI 限定名 (IQN) 值。因为 IQN 用于对 iSCSI 连接进行认证,而 IQN 不匹配会导致验证错误,进而导致 Cinder 备份操作失败。

通过此修复,Iscsid 服务现在在裸机上运行,所有其他服务(如容器化的 Nova 和非容器化的 Cinder)都已配置为使用正确的 IQN。
BZ#1486995
当 Image 服务 (glance) 使用 NFS 后端时,尝试创建镜像会因为权限错误而失败。这是因为主机和容器上的用户 ID 不同,以及 puppet 无法将 NFS 端点成功挂载到容器上。
BZ#1489484
先前,ceph-osd 软件包是公用 overcloud 镜像的一部分,但只能在要求有 Ceph OSD 权利的存储库中使用。而在 OpenStack Controller 和 Compute 节点上不要求有该权利。由 ceph-osd 软件包产生的 RPM 依赖性会导致 Yum 更新失败,也就是说,当您在没有 ceph-osd 权利的情况下尝试更新 ceph-osd 软件包时,Yum 更新会失败。

此修复从不要求有 ceph-osd 软件包的 overcloud 节点中删除了该软件包。现在,只有 Ceph 存储节点上要求有 ceph-osd 软件包,其中包括运行 Ceph OSD 和 Compute 服务的超融合节点。Yum 更新现在可在不要求有 ceph-osd 软件包的节点上成功执行。但是,要求有 ceph-osd 软件包的 Ceph 存储节点和超融合节点将仍然要求有必需的 Ceph OSD 权利。

openstack-tripleo-puppet-elements

BZ#1270860
在模板中使用硬编码的机器 ID 会产生具有相同机器 ID 的多个节点。这会导致 Red Hat Storage Console 无法识别多个节点。

解决办法:在每个节点上生成唯一机器 ID,然后更新 /etc/machine-id 文件。这将确保 Red Hat Storage Console 可以唯一地识别节点。
BZ#1384845
如果 overcloud 镜像所带的“tuned”版本低于 2.7.1-4,则应该将在 overcloud 镜像中手工升级“tuned”软件包。如果该“tuned”版本等于或高于 2.7.1-4,则应该提供要执行“tuned”的核心列表,并激活相应的概要,例如:

# echo "isolated_cores=2,4,6,8,10,12,14,18,20,22,24,26,28,30" >> /etc/tuned/cpu-partitioning-variables.conf
# tuned-adm profile cpu-partitioning

这是一个已知问题,直到“tuned”软件包在 Centos 存储库中可用时才会消失。

openstack-tripleo-ui

BZ#1383576
此更新增加了通过 director UI 来执行的 "Manage Nodes" 操作。该操作将节点切换为 "manageable" 状态,从而 director 可通过 UI 执行内省。
BZ#1430885
此更新细化了部署进度条的颗粒度。实现方法是增加了检索栈资源的嵌套层数。这提供了更精确的部署进度。

openstack-tripleo-validations

BZ#1301549
此更新增加了新的验证,用于检查 overcloud 的网络环境。这有助于避免在部署 overcloud 时,出现有关 IP 地址、VLAN 和分配池的任何冲突。
BZ#1368512
此更新增加了新的验证,用于在部署或升级之前检查 undercloud 上的硬件资源。该验证可确保在部署或升级之前,undercloud 能满足必要的磁盘空间和内存要求。

puppet-ironic

BZ#1489192
先前,Ironic Inspector 的 DHCP 服务器配置文件不处理使用 UEFI 和 iPXE 的主机,导致一些 UEFI 和 iPXE 主机在 Ironic 内省过程中无法启动。此修复更新了 DHCP 服务器文件 `/etc/ironic-inspector/dnsmasq.conf` 以处理 UEFI 和 iPXE 主机,现在这些主机可在 Ironic Introspection 中正常启动。

puppet-keystone

BZ#1404324
用于清理令牌的 cron 作业已从每天运行一次改为每小时运行一次。修改原因是,以前的方式会在较大规模部署中出现问题。因为这些部署的事务过大,操作要花费太长时间甚至有时会失败。请注意,这只影响使用 UUID 令牌提供商的部署。

puppet-tripleo

BZ#1463355
在启用 TLS everywhere 后,HAProxy 统计界面也将使用 TLS。因此,需要通过各个节点的 ctlplane 地址来访问此界面,该地址可能是实际 IP 地址或 FQDN 名称(命名规范为 {node-name}.ctlplane.{domain},例如,overcloud-controller-0.ctlplane.example.com)。通过 `tripleo-heat-templates` 中的 `CloudNameCtlplane` 参数可配置此设置。请注意,您仍然可以使用 HAproxy 类中的 `haproxy_stats_certificate` 参数,该参数一旦设置,将优先使用。
BZ#1479751
Nova 和 Cinder 最近的变更导致会选择 Barbican 作为默认的加密密钥管理器,即使 TripleO 并未部署 Barbican 也会如此。然而,TripleO 则假定对于无 Barbican 的部署,旧式(固定密钥)管理器仍然有效且已经选择了该管理器。这种情况会导致无 Barbican 的部署中的卷加密遭到破坏。此修复改变了 TripleO 的行为,现在可以主动将 Nova 和 Cinder 配置为对于无 Barbican 的部署使用旧式密钥管理器。

python-glance-store

BZ#1293435
通过 Cinder 后端驱动器,现在支持对使用 Glance 的 Cinder 卷进行上传和下载。

注意:此更新不包括对 Ceph RBD 的支持。使用 Ceph 后端驱动器可对 Ceph 卷执行 RBD 操作。

python-openstackclient

BZ#1478287
当显示 Neutron 安全组列表时,“项目”列中引用的是租户 ID 而不是项目 ID。这会导致“项目”列为空白。此修复改变了操作的行为以获取项目 ID,现在 Neutron 安全组列表会在“项目”列中显示相关的项目 ID。

python-os-brick

BZ#1503259
Python os.path.realpath 方法中的竞争条件会引发意外的异常。这会导致 iSCSI 断开连接方法意外失败。通过此修复,这种竞争条件异常会被忽略。因为不再存在 symlink,忽略这种异常很安全。因此,即便出现竞争条件,断开连接操作也将继续执行。

python-tripleoclient

BZ#1385347
The '--controller-count' option for the 'openstack overcloud deploy' command sets the 'NeutronDhcpAgentsPerNetwork' parameter. When deploying a custom Networker role that hosts the OpenStack Networking (neutron) DHCP Agent, the 'NeutronDhcpAgentsPerNetwork' parameter might not set to the correct value. As a workaround, set the 'NeutronDhcpAgentsPerNetwork' parameter manually using an environment file. For example:

----
parameter_defaults:
  NeutronDhcpAgentsPerNetwork: 3
----

This sets 'NeutronDhcpAgentsPerNetwork' to the correct value.

qemu-kvm-rhev

BZ#1498155
Hot-unplugging Virtual Function I/O (VFIO) devices previously failed when performed after hot-unplugging a vhost network device. This update fixes the underlying code, and the VFIO device is unplugged correctly in the described circumstances.