Red Hat Training

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

第 3 章 发行信息

本发行注记包括了在部署 Red Hat OpenStack Platform 时需要考虑的信息,如技术预览项、推荐的最佳方案、已知问题、过时的功能等。
在本 Red Hat OpenStack Platform 发行版本的产品支持周期内,每个更新版本的备注都会包括在相应的公告中。

3.1. Red Hat OpenStack Platform 11 GA

本发行注记包括了在部署 Red Hat OpenStack Platform 时需要考虑的信息,如技术预览项、推荐的最佳方案、已知问题、过时的功能等。

3.1.1. 改进

这个 Red Hat OpenStack Platform 发行版本包括了以下增强:
BZ#962864
本次更新在仪表板中添加了一个新的用户详情页面。现在,您可以通过单击“操作日志”中的用户 ID,直接前往用户详情页面。
BZ#962864
本次更新在仪表板中添加了一个新的用户详情页面。现在,您可以通过单击“操作日志”中的用户 ID,直接前往用户详情页面。
BZ#1197163
现在,时间序列数据库即服务(gnocchi)和 Aodh API 端点在 REST API 上开放了一个 `/healthcheck` HTTP 端点。通过请求此端点,您可以检查服务的状态,而不需要身份验证。
BZ#1242422
可以在 director 中使用自动隔离设置,以简化高可用性部署和升级。若要从这一新功能获益,请使用 'overcloud generate fencing' 命令。
BZ#1271019
功能:卷传输屏幕中添加了一个凭证下载按钮,用于轻松保存信息。

原因:执行操作的管理员需要记录此信息,而手动记录不太方便。

结果:管理员不必手动记录信息,现在可以单击按钮来下载并保存 CSV 文件到本地计算机上。
BZ#1325861
这一增强添加了相关的功能,可以自动从服务器检测为已失效的 LBaaS 代理重新调度负载平衡器。之前,虽然可以在多个 LBaaS 代理之间调度和实现负载平衡器,但如果虚拟机管理器失效,调度到该节点的
负载平衡器将停止运作。通过这次更新,这些负载平衡器将自动重新调度到其他代理。此功能通过 `allow_automatic_lbaas_agent_failover` 进行管理,它在默认情况下被禁用。
BZ#1326224
这一增强在 'HaproxyNSDriver' 类(v2)中实施 'ProcessMonitor' 类。此类利用 'external_process' 模块监控 HAProxy 进程并在需要时重新衍生。LBaaS 代理(v2)加载 'external_process' 相关的选项,并在 HAProxy 意外失效时执行配置的操作。
BZ#1337664
本次更新添加了对 5.1.0 MapR 插件的支持。
BZ#1377867
在把磁盘设为 Ceph OSD 时,磁盘可能会处于各种各样的状态,这将会导致 director 失败。在之前的版本中,用户可以运行一个第一引导脚本来清除磁盘内容并设置 Ceph 需要的 GPT 标签。在本发行版本中,Ironic 中的新默认设置将在节点设为可用时清除磁盘内容,puppet-ceph 中的一项更改也会在磁盘上没有 GPT 标签时给予该磁盘一个 GPT 标签。
BZ#1386249
本次更新增强了 CephFS 原生驱动器及核心 OpenStack File Share Service(manila)基础架构。CephFS 原生驱动器现在支持只读共享,并且包含可访问规则更新恢复模式的增强。
BZ#1388171
为避免 nova-api 工作者中出现内存膨胀问题,simple-tenant-usage API 扩展中已添加了分页逻辑。
BZ#1393893
借助这一增强,您现在可以启用在仪表板中创建非公共共享的功能。
您可以配置仪表板,使其隐藏用户在创建过程中用于将共享标记为公共的复选框。默认选项是将共享创建为私有,即不选中该复选框。
BZ#1396794
借助这一增强,`glance-manage db purge` 现在可以删除不足一天的行。添加此功能的原因在于,操作员可能需要定期运行此操作。
因此,`age_in_days` 选项的值可以设为“0”。
BZ#1413980
本发行版本推出了部署 CephFS 时需要的 puppet 模块,让您能够通过 director 部署 OpenStack Shared File System 服务(openstack-manila)及 CephFS 后端。
BZ#1421554
这一增强使得 undercloud 中可以使用时间序列数据库即服务(gnocchi)。Gnocchi 为  OpenStack 中的 Telemetry 提供指标后端,默认为启用( `enable_telemetry` 标记设为 `true`)。所有遥测服务都可通过设置  `undercloud.conf`中的 `enable_telemetry=false` 来禁用。

3.1.2. 发行注记

这一部分概述此发行版本的重要详细信息,包括推荐的最佳方案和 Red Hat OpenStack Platform 的显著变化。您必须将此信息纳入考量,才能确保您的部署获得最佳的成果。
BZ#1352922
本发行版本添加了分页支持,可避免对具有大量实例的系统发起使用请求时消耗大量资源。nova API simple-tenant-usage 端点的 v2.40 微版本使用新的可选查询参数 'limit' 和 'marker' 以进行分页。'marker' 选项设置起点,'limit' 选项则设置起点后要显示的记录数。如果未设置 'limit',nova 将使用可配置的 'max_limit'(默认为 1000)。虽然较旧的微版本不接受这些新的查询参数,但它们会开始强制实施 max_limit,导致结果可能被截断。请考虑使用新的微版本,以避免类似于 DoS 的使用请求和可能截断的响应。
BZ#1383199
应用本更新后,不同域名可用于公共和内部网络。若要设置各网络的域名,可使用以下 heat 模板参数:

* CloudName:此云的 DNS 名称,例如:
      'ci-overcloud.tripleo.org'
* CloudNameInternal:此云的内部 API 端点的 DNS 名称,例如:
      'ci-overcloud.internalapi.tripleo.org'
* CloudNameStorage:此云的存储端点的 DNS 名称,例如:
      'ci-overcloud.storage.tripleo.org'
* CloudNameStorageManagement:此云的存储管理端点的 DNS 名称,例如:
      'ci-overcloud.storagemgmt.tripleo.org'
* CloudNameCtlplane:此云的存储管理端点的 DNS 名称,例如:
      'ci-overcloud.management.tripleo.org'
BZ#1386309
应用此更新后,用户界面现在已部分国际化,提供日语和简体中文版本。请注意,目前仅界面本身国际化。来自其他服务的字符串(如 TripleO Heat Templates 的参数、模板和环境,以及验证和通知等)尚未国际化。
BZ#1399816
最近的 director 增强要求更改网络接口配置模板。NIC 配置模板现在使用一个脚本来调用 'os-net-config utility' 以配置 overcloud 节点上的网络。NIC 配置模板有三个主要更改:

* 'OsNetConfigImpl' 资源从 'OS::Heat::StructuredConfig' 资源类型更改为 'OS::Heat::SoftwareConfig'。此外,该资源现在将 'network_config' 属性存储为文本 Blob,并通过 'str_replace'(字符串替换)函数将该 Blob 传递到 'run-os-net-config.sh' 脚本,例如:

----
resources:
  OsNetConfigImpl:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      config:
        str_replace:
          template:
            get_file: ../../scripts/run-os-net-config.sh
          params:
            $network_config:
              network_config:
----

* {get_input: <input>} 构造函数以前定义默认的外部网桥和接口。现在,有两个特殊字符串值替代外部网桥和接口,分别是 'bridge_name' 和 'interface_name'。请不要使用 '{get_input: bridge_name}' 或 '{get_input: interface_name}',而应改用 'bridge_name' 或 'interface_name'。例如:

----
              - type: ovs_bridge
                name: {get_input: bridge_name}
----
变为:
----
              - type: ovs_bridge
                name: bridge_name
----

* 'network_config' 不再使用花括号。取而代之,{get_param: <param>} 构造函数移到了所定义的值下方的子级别。例如:
----
                dns_servers: {get_param: DnsServers}
----
变为:
----
                dns_servers:
                  get_param: DnsServers
----

更多示例请参阅“Overcloud 高级自定义指南”中的“网络隔离”章节。
BZ#1427507
应用本更新后,Wake-On-LAN 和 AMT 驱动器将从 Ironic 中移除,因为它们不具有第三方 CI,而且未来也无此计划。它们仍然可从不受支持的 ironic 驱动器集合中使用,可以在 ironic-staging-drivers 存储库中找到。如果您的 ironic 安装使用任何基于它们的驱动器,您必须安装 ironic-staging-drivers 并按照下表更改受影响节点上的驱动器:

agent_amt -> pxe_amt_agent
pxe_amt -> pxe_amt_iscsi
agent_wol -> pxe_wol_agent
pxe_wol -> pxe_wol_iscsi
BZ#1431556
由于关于启用了 DPDK 时启动实例的 SELinux 策略不完整,如果 SELinux 是强制模式,在使用 DPDK 时启用实例将导致启动失败,并且 /var/log/audit/audit.log* 中将出现与 openvswitch 和 svirt 相关的 AVC 拒绝。

作为一种变通办法,请按照如下第 4.4.1.2 节中所述,在使用了 DPDK 的各个计算节点上将 SELinux 设置为容许模式:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/SELinux_Users_and_Administrators_Guide/sect-Security-Enhanced_Linux-Working_with_SELinux-Changing_SELinux_Modes.html#sect-Security-Enhanced_Linux-Enabling_and_Disabling_SELinux-Disabling_SELinux

这将使得启用了 DPDK 的虚拟机能够启动。这是一种变通办法,应当作为进一步调查该问题期间的临时措施。
BZ#1451714
问题详情:
OSP10(OvS2.5)存在下列问题:
1) tuned 配置了错误的 CPU 集合。预期的配置是 NeutronDpdkCoreList + NovaVcpuPinSet,但被配置为 HostCpusList。
2) 在 post-config 中,DPDK_OPTIONS 的 -l 设为 0,NeutronDpdkdCoreList 则被配置为 pmd-cpu-mask

更新后需要手动更正什么?
1) 添加要隔离的 cpu 列表(NeutronDpdkCoreList + NovaVcpuPinSet)到 tuned conf 文件。

TUNED_CORES="<list of CPUs"
sed -i 's/^isolated_cores=.*/isolated_cores=$TUNED_CORES/' $tuned_conf_path
tuned-adm profile cpu-partitioning

2) 更新后 lcore 掩码将设为 0。通过第一引导脚本中的  get_mask 代码获取 cpu 掩码 [1]。
LCORE_MASK="<mask value output of get_mask"
ovs-vsctl --no-wait set Open_vSwitch . other-config:dpdk-lcore-mask=$LCORE_MASK

3.1.3. 已知问题

当前,Red Hat OpenStack Platform 存在的已知问题包括:
BZ#1225069
出于安全原因,默认情况下 Overcloud 仅允许基于 SSH 密钥的访问。您可以利用 virt-customize 工具,为 overcloud 设置磁盘镜像 root 密码,该工具可在 Red Hat Enterprise Linux Extras 频道中找到。在安装该工具并且下载 Overcloud 镜像后,请使用以下命令来更改 root 密码:

$ virt-customize -a overcloud-full.qcow2 --root-password password:<my_root_password>

请先执行此操作,然后再通过 "openstack overcloud image upload" 命令将镜像上传到 glance。
BZ#1227955
只有与交换机端口存在活动连接的 NIC 才会计算在 NIC 编号抽象(nic1、nic2,等等)中。作为一种变通办法,director 包含了一个可从每一节点 ping 所有接口上第一个控制器的脚本。如果部署时节点的链路中断,这会被检测到以便进行更正。另一种变通办法是对每一主机使用映射文件,将 NIC 编号与物理 NIC 对应。如果有一个或多个 Overcloud 节点因为链路中断而配置错误,现在可以检测到,并且 Overcloud 可以重新部署。
BZ#1243109
如果节点上有多个网络接口连接到 Provisioning 网络,则发现将失败。仅一个接口可以连接 Provisioning 网络。此接口不能是绑定的一部分。
BZ#1247019
当隔离设备名称和主机名称相同时,Pacemaker 持续崩溃。若要解决此问题,请在隔离设备的名称中添加 "fence-" 前缀或 "-fence" 后缀。使用这样配置的名称时,集群可以正确无误地工作。
BZ#1341170
目前存在一个 EC2 API 不能全面运作的已知问题。其原因是 EC2 API 支持依赖于 Glance V1 API,但 Glance V1 API 不再受到 Red Hat OpenStack Platform 的支持。此问题有望在未来更新中修复。
BZ#1369591
如果在节点仍在部署时输入 `openstack stack delete` 命令,它们可能会停留在正在部署的状态,而不会被删除。因此,您将因为未删除节点的阻碍而无法将任何新的节点部署到该空间。为避免这一情形,请等待所有节点都已部署完成后,再输入 `openstack stack delete` 命令。另外,您也可以通过 `nova delete <node>` 命令手动删除节点。
BZ#1384126
'openstack overcloud stack update' 命令的启动时间很长。该命令可能需要几分钟后才会指出命令是否在工作。这是正常现象。
BZ#1385338
若要通过 neutron-openvswitch-agent 实施安全组中继功能,需要 openvswitch 防火墙驱动程序。此驱动程序目前含有错误 1444368,即如果同一计算节点上不同网络段存在 MAC 地址相同的两个端口,入口流量会被错误匹配。

因此,如果子端口的 MAC 地址与父端口相同,则其中一个端口的入口流量将无法正确匹配。

可以通过一个变通办法来正确处理流量,即在父端口和子端口上禁用端口安全性。

例如,若要禁用 UUID 12345 端口上的端口安全性,您需要删除与该端口相关的安全组:
 openstack port set --no-security-group --disable-port-security 12345

注意该端口上不会应用任何安全组规则,且流量不会被过滤或实施 ip/mac/arp 欺骗防护。
BZ#1392155
Puppet 和 MongoDB 服务之间可能存在争用情形。这导致在扩展运行 MongoDB 数据库的节点时出现失败,并且 overcloud 堆栈无法更新。再次运行相同的部署命令,便可让 MongoDB 节点成功扩展。
BZ#1409097
目前,如果在 compute.yaml  文件中使用 NIC ID(如 nic1、nic2 和 nic3 等),使用 Red Hat OpenStack Platform director 10 进行带有 SRIOV 的 overcloud 部署将失败。

作为一种变通办法,您需要使用 NIC 名称(如 ens1f0、ens1f1 和 ens2f0 等),而不要使用 NIC ID,以确保 overcloud 部署成功完成。
BZ#1430757
在特定情形中,例如在升级了 OVS 时或重启了网络服务时,OVS 网桥被破坏并重建。因此在发生这种状况时,现有的网络流会被中断,致使网络流量转发停止,直到网络流重建为止。在复杂的部署中,这可能会需要一些时间。

为避免任何可能的停机时间,控制平面网络不应放置于 OVS 网桥上。Control Plane(Provisioning)、Internal API 和 Storage Management 网络应当是不在网桥上的专用接口或 VLAN 接口。例如,一个接口或绑定可以包含控制平面 VLAN,而另一个接口或绑定则可放置于 OVS 网桥上以用于租户网络数据。

只要控制平面网络接口不在 OVS 网桥上,任何网络停机时间都会仅限于租户数据平面。
BZ#1437566
CLI 中的处理参数、环境和模板与 UI 中的稍有不同。
因此,无法从模板更改 UI 自动生成的密码。如果想要使用自定义密码,您必须在
 UI 中将它们作为总体部署配置的参数或通过编辑角色卡片来手动设置。
此外,您也可在 CLI 中输入 '$ openstack overcloud plan create <my_plan> --disable-password-generation' 来创建不含自动生成密码的计划。您必须利用模板或手动通过 UI 显式提供密码。
BZ#1440273
运行 'openstack overcloud deploy' 命令会替换掉默认的 'overcloud' 计划。如果用户通过 CLI 创建 overcloud,删除它,然后通过 web UI 创建新的 overcloud,web UI 将使用来自 CLI 部署的 'overcloud' 计划。这可能会造成 web UI 包含来自之前 overcloud 部署中的不必要参数。变通办法:

1. 在部署新的 overcloud 时,确保 'user-environment.yaml' 环境文件已被禁用。
2. 上传计划的新版本(来自 '/usr/share/openstack-tripleo-heat-template')。
BZ#1440276
director 需要节点处于受管理状态,然后才能运行内省。虽然新注册的节点在
director web UI 中已设置为 'manageable',但用户以后需要运行内省时,此 web UI 中并没有将节点切回到 'manageable' 状态的选项。作为一种变通办法,请使用 'openstack baremetal node manage' 命令将节点切换到 'manageable' 状态。
BZ#1441393
无效的缓存文件可能会导致 os-collect-config 报告 'ValueError: No JSON object could be decoded',并且对应服务无法启动。'/var/lib/os-collect-config/' 中的缓存文件应当是有效的文件。如果它们的大小为 0 或者包含无效的 json,请从 '/var/lib/os-collect-config' 删除无效的文件,否则它们可能会阻碍 os-collect-config 启动。
BZ#1445886
建议从 Red Hat OpenStack Platform 9 升级到版本 10 的客户等待第一个异步发行版本,然后再升级到 Red Hat OpenStack Platform 11,这样可修复这个已知问题。第一个异步发行版本通常会在 GA 发行版本后几天推出。
BZ#1445905
在高可用 IPv6 部署中,用于 RabbitMQ 的虚拟 IP 可能会在升级过程中在不同的控制器主机之间移动。创建这些 IPv6 IP 的代码中存在一个错误,它会导致将这些 IP 地址用作 RabbitMQ 连接的来源地址。因此,RabbitMQ 将崩溃,并可能无法自动恢复其集群。

若要恢复正常运作,请在受影响的控制器主机上重新启动 RabbitMQ,以及所有依赖于
 RabbitMQ 的,且不能自动重新连接的服务。
BZ#1445917
建议从 Red Hat OpenStack Platform 9 升级到版本 10 的客户等待第一个异步发行版本,然后再升级到 Red Hat OpenStack Platform 11,这样可修复这个已知问题。第一个异步发行版本通常会在 GA 发行版本后几天推出。
BZ#1446825
在 Red Hat OpenStack Platform director 使用 TripleO 启用基于 libvirtd 的实时迁移中发现了一个设计缺陷问题。TripleO 没有安全实时迁移支持,也不执行额外的步骤来锁定 director 的 libvirtd 部署。Libvirtd 默认(由 director)部署为侦听 0.0.0.0(所有接口),且无身份验证或加密。可以通过 TCP 连接任何计算主机 IP 地址(包括 127.0.0.1)、其他环回接口地址或(某些情形中)在管理接口以外开放的地址的任何人,都可以利用这个缺陷打开与 libvirtd 实例的 virsh 会话,并获得虚拟机实例的控制权,甚至可能会接管主机。

请注意,如果没有其他缺陷,这不应当能够从租户或外部网络访问。

用户从 Red Hat OpenStack Platform 10 升级到 Red Hat OpenStack Platform 11 时,应当首先应用相关更新来解决此问题。

Red Hat OpenStack Platform 11 自公开发行版起包含此更新,不需要后续更新。

如需有关此缺陷及相关解决方案的更多信息,请参阅 https://access.redhat.com/solutions/3022771。
BZ#1447731
如果在 OpenStack Platform 10 上使用独立的 Keystone 节点,'openstack-gnocchi-statsd' 不能正确启动。这是因为 'gnocchi' 和 'keystone' 服务在同一步骤中激活,导致出现争用情形。'gnocchi'无法完成身份验证但不会重试。此问题已在 BZ#1447422 中解决。

失败的 'openstack-gnocchi-statsd' 服务导致 Platform 11 升级前检查失败;这意味着,如果使用独立的 Keystone 角色,从 Openstack Platform 10 升级到 11 也会失败。作为一种变通办法,可以先在 overcloud 上重启 'openstack-gnocchi-statsd' 服务,然后再启动任何升级步骤。这会正确启动相关服务,并且使得升级成功完成。这仅适用于具有独立 Keystone 节点的 OpenStack Platform 10,不影响其他升级情形。

3.1.4. 弃用功能

本节中的项目已不再受到支持,或不会在以后的发行版本中受到支持。
BZ#1256912
image_path 参数已不再使用。本次更新已将它从 undercloud 配置文件中删除。
BZ#1426917
VPNaaS 功能已在  Red Hat OpenStack Platform 11 中弃用,预计在 Red Hat OpenStack Platform 12 中删除。
BZ#1426919
Neutron's Linux Bridge ML2 驱动器和代理已在  Red Hat OpenStack Platform 11 中弃用,预计在 Red Hat OpenStack Platform 12 中删除。Open vSwitch (OVS) 插件是 OpenStack Platform director 默认部署的插件,也被红帽推荐用于一般用途。
BZ#1432458
Red Hat OpenStack Platform 11 中已弃用  Ceilometer API 服务。它已分别被 Gnocchi、Aodh 和 Panko API 取代。用户应当开始弃用 Ceilometer API,改为使用这些服务 API。Red Hat OpenStack Platform 11 中默认安装和配置了 Ceilometer API。在未来的发行版本中,此 API 将默认为禁用,可仅在需要时通过对应选项启用它。