第 3 章 发行信息
本发行注记重点概述部署此 Red Hat OpenStack Platform 版本时需要考虑的信息,如技术预览项、推荐做法、已知问题和淘汰的功能等。
在本 Red Hat OpenStack Platform 发行版本的产品支持周期内,每个更新版本的说明都会包括在相应的公告中。
3.1. Red Hat OpenStack Platform 14 GA 复制链接链接已复制到粘贴板!
本发行注记重点概述部署此 Red Hat OpenStack Platform 版本时需要考虑的信息,如技术预览项、推荐做法、已知问题和淘汰的功能等。
3.1.1. 功能增强 复制链接链接已复制到粘贴板!
本 Red Hat OpenStack Platform 发行版本包括以下功能增强:
BZ#1241017
此更新在“openstack port list”命令的输出中添加了主机名和网络名称。新增的信息可以方便 Neutron 端口和 IP 地址与特定主机的关联。
BZ#1402584
借助这一更新,libvirt 计算驱动程序现在允许用户创建具有受信任 SR-IOV 虚拟功能的实例。在获得信任后,VF 可执行特定的操作,如修改客户机中 VF 的 MAC 地址。
接口绑定需要所有从控机使用相同的 MAC 地址,因而需要在故障转移期间修改其中一个 VF 的 MAC 地址。由于 MAC 地址变更属于特权操作,因此参与的 VF 必须获得信任后才能在客户机中成功配置绑定。
管理员现在可以为 VF 配置受信任模式。首先,ova.conf 中“[pci] passthrough_whitelist”JSON 配置选项的“trusted”值必须设为“true”。例如:
[pci]
passthrough_whitelist = {"devname": "eth0", "trusted": "true",
"physical_network":"sriovnet1"}
其次,在创建端口时,必须为绑定配置集设置“trusted=true”。例如:
$ neutron port-create <net-id> \
--name sriov_port \
--vnic-type direct \
--binding:profile type=dict trusted=true
由于受信任模式仅应用到 SR-IOV VF,“vnic-type”必须是“hw_veb”或“direct”中的一个。
BZ#1410195
Heat 模板现在包含“CephClusterName”参数。您可以通过此参数配置 Ceph 集群名称,在使用外部 Ceph 集群或 Ceph RBDMirror 时您可能需要这么做。
BZ#1462048
借助这一更新,用户可以创建应用凭据,使其应用能够进行 keystone 身份验证。
请参见 https://docs.openstack.org/keystone/latest/user/application_credentials.html
BZ#1469073
功能:
添加了 nova-scheduler 的 CPUWeigher 权重。
原因:
CPUWeigher 允许操作员配置 vCPU 的堆叠或分散策略。
结果:
操作员可以启用 CPUWeigher 并配置堆叠(首先使用一个节点上的所有 vCPU)或分散(尝试使用所有主机上数量大致相等的 vCPU)策略。
BZ#1512941
此更新支持两个新的可调节选项,它们可用于减少数据包丢失。
虚拟机监控程序内核线程可以先占虚拟机 CPU (vCPU),即使启用了强分区 (isolcpus, tuned)。先占并不频繁,每秒几次而已,但每个 virtio 队列有 256 个描述符。仅一次 vCPU 先占就能导致数据包丢失,因为先占过程中会填充 256 个套接字。各队列数据包速率超过 1 Mpps(每秒 100 万个数据包)的网络功能虚拟化 (NFV) 虚拟机会存在这种情形。
此更新支持两个新的可调节选项,即“rx_queue_size”和“tx_queue_size”。这两个选项分别可用于配置 virtio NIC 的 RX 队列大小和 TX 队列大小,以减少数据包丢失。
BZ#1521176
实例资源具有三个新的属性:launched_at、deleted_at 和 created_at;可用于跟踪 Nova 创建/启动/删除实例的确切时间。
BZ#1523328
OpenStack director 现在将 Ansible 用于 overcloud 节点的软件配置。Ansible 可在 overcloud 部署过程中提供更加熟悉并可调试的操作员体验。Ansible 可用于替换软件配置部署数据在 overcloud 节点上 heat 和 heat 代理 (os-collect-config) 之间的通信和传输。
Ansible 控制节点通过运行 ansible-playbook(借助 Ansible 清单文件和一系列 playbook 和任务)来应用配置,而不是在每个 overcloud 节点上运行 os-collect-config 并从 heat 轮询部署数据。默认情况下,Ansible 控制节点(运行 ansible-playbook 的节点)是 undercloud。
BZ#1547708
OpenStack Sahara 现在支持 Cloudera Distribution Hadoop (CDH) 插件 5.13。
BZ#1547710
此更新为 OpenStack Sahara 添加了 s3 兼容对象存储支持。
BZ#1547954
在此发行版本中,Nova 的 libvirt 驱动程序现在允许在配置 CPU 型号时指定细致的 CPU 功能标志。
这一变化有一项好处,能够缓解运行特定 Intel 型虚拟 CPU 型号的客户机在应用“Meltdown”CVE 补丁程序后遇到的性能降级问题。此客户机性能影响可通过将 CPU 功能标志“PCID”(Process-Context ID)公开给 *guest* CPU 来缓解(假定物理硬件本身提供有 PCID 标志)。
如需更多详细信息,请参考“nova.conf”的“[libvirt]/cpu_model_extra_flags”文档中的用法详情。
BZ#1562171
此更新引入了使用 "neutron” 网络接口的多租户裸机网络。
通过配置使用 "neutron” 网络接口的多租户裸机网络,操作员可以让用户将隔离的 VLAN 网络用于裸机节点上的调配和租户流量。
BZ#1639759
添加了新的 tripleO heat 模板,以支持 QDR。
启用 metrics_qdr 服务会在所有 overcloud 节点上部署 QDR 服务,该服务将用于路由各个 overcloud 节点上运行的 collectd 服务的指标数据。
下方显示了相关的 heat 模板参数。
MetricsQdrPort:
default: '5666'
description: Service name or port number on which the qdrouterd will accept
connections. This argument must be string, even if the numeric
form is used.
type: string
MetricsQdrUsername:
default: 'guest'
description: Username which should be used to authenticate to the deployed
qdrouterd.
type: string
MetricsQdrPassword:
default: 'guest'
description: Password which should be used to authenticate to the deployed
qdrouterd.
type: string
hidden: true
MetricsQdrConnectors:
default: []
description: Connectors configuration (array of hashes).
type: json
MetricsQdrAddresses:
default:
- prefix: 'collectd/notify'
distribution: multicast
- prefix: 'collectd/telemetry'
distribution: multicast
description: Addresses configuration (array of hashes).
type: json
MetricsQdrUseSSL:
default: false
description: Set to true if it is required to use SSL or TLS on
the connection for listener.
type: boolean
MetricsQdrUseEncryption:
default: false
description: Set to true if it is required to encrypt connection to the peer
for listener.
type: boolean
MetricsQdrSaslMechanisms:
default: 'ANONYMOUS'
description: List of accepted SASL auth mechanisms for listener in format
of comma separated list.
type: string
MetricsQdrSslCertDb:
default: ''
description: Path to SSL certificate db for listener.
type: string
MetricsQdrSslCertFile:
default: ''
description: Path to SSL certificate file for listener.
type: string
MetricsQdrSslKeyFile:
default: ''
description: Path to SSL private key file for listener.
type: string
MetricsQdrSslPwFile:
default: ''
description: Path to SSL password file for certificate key for listener.
type: string
MetricsQdrSslPassword:
default: ''
description: SSL password to be supplied for listener.
type: string
MetricsQdrTrustedCerts:
default: ''
description: Path to file containing trusted certificates for listener.
type: string
BZ#1654123
Red Hat OpenStack Platform 14 现在支持 IBM POWER9 CPU。这一支持通过 “rhosp-director-images-ppc64lep9” 和 “rhosp-director-images-ipa-ppc64lep9” 软件包提供。
3.1.2. 技术预览 复制链接链接已复制到粘贴板!
本节中列出的项目作为技术预览提供。如需关于技术预览状态范围的更多信息,以及相关的支持定义,请参阅 https://access.redhat.com/support/offerings/techpreview/。
BZ#1550668
此功能可以根据 VXLAN IP 标头中封装的租户 DSCP 标记转发租户流量。此功能在 OSP14 中是一个技术预览。
BZ#1614282
提供技术预览的软件包:
该技术预览的说明:
现在,您可以在计算节点上进行配置,以便计算节点重新引导时自动重启计算节点上的实例,而不首先迁移实例。可以配置 Nova 和 libvirt-guest,以安全地关闭实例,并在计算节点重新引导时启动它们。
新参数:
NovaResumeGuestsStateOnHostBoot (True/False)
NovaResumeGuestsShutdownTimeout(默认 300s)
3.1.3. 发行注记 复制链接链接已复制到粘贴板!
本节概述了本发行版本的重要信息,包括推荐做法和 Red Hat OpenStack Platform 的显著变化。您必须将此信息纳入考量,才能确保您的部署获得最佳效果。
BZ#1601613
“--http-boot”的默认值从“/httpboot”更改为“/var/lib/ironic/httpboot”,后者是容器化 Ironic 服务需要的值。
BZ#1614810
借助这一更新,容器化服务日志轮转将默认为使用 logrotate 的 copytruncate。旧日志的默认保留期限保持不变(14 天)。
BZ#1640095
OpenStack Rally 作为技术预览包括在以前的版本中,它已从这个版本中删除。
BZ#1649679
当您使用 web-download 功能时,暂存区域(在配置中使用“node_staging_uri”选项进行定义)不能正确清理。请确保 glance-api.conf 文件的“glance_store”部分中的“stores”配置选项包含“file”。
BZ#1654405
当您使用镜像转换功能时,请确保 glance-api.conf 文件的“glance_store”部分中的“stores”配置选项包含“file”。
BZ#1654408
对于 glance 镜像转换,默认情况下不启用 glance-direct 方法。若要启用此功能,请将 glance-api.conf 的 DEFAULT 部分中的“enabled_import_methods”设置为“[glance-direct,web-download]”或“[glance-direct]”。
BZ#1654413
Red Hat OpenStack Platform 14 的新安装中默认不启用 Glance 镜像转换功能。若要使用此功能,请编辑 glance-image-import.conf 文件。
在 image_import_opts 部分中,插入下面这一行:
image_import_plugins = ['image_conversion']
BZ#1662042
OpenDaylight 不支持将 IPv6 用于租户或提供商网络。因此,您仅可使用 IPv4 网络。如果同时使用 IPv6 网络和 IPv4 网络,您可能会遇到与浮动 IP 相关的问题。
3.1.4. 已知问题 复制链接链接已复制到粘贴板!
目前,Red Hat OpenStack Platform 存在的已知问题包括:
BZ#1516911
OvsDpdkMemoryChannels 参数无法通过 DPDK 派生参数工作流派生,其值默认设为 4。您可以在环境参数文件中更改这个值,以匹配您的硬件。
BZ#1579052
当 Octavia 配置为使用 small Nova 类别时,可以成功创建 Amphorae(Nova 实例),但负载均衡器可能会卡在 PENDING 状态约 25 分钟。正常情况下,负载均衡器应当要进入 ERROR 状态,而且 Amphorae 应当要删除。
作为适用于 small Nova 类别的临时解决方案,请将 [haproxy_amphora] 部分中的 Octavia 配置 "connection_max_retries"、"connection_retry_interval"、"build_active_retries” 和 "build_retry_interval” 调节为更加合理的生产用值。这会在 Nova 类别为 small 时,使负载均衡器更快地从 PENDING 状态转换到 ERROR 状态。
BZ#1630480
用于生成 Openstack rc 文件的工作流触发器在 python-tripleoclient 中硬编码。
因此,OpenStack 相关工作流会在 director 部署 OpenShift 之后触发。用户可以在 stdout 以及创建的 OpenStack rc 文件中查看 OpenStack 相关 URL。
BZ#1639495
目前存在一个与 fernet 令牌轮转相关的已知问题,其密钥不能自动部署到 overcloud。工作流任务“tripleo.fernet_keys.v1.rotate_fernet_keys ”可以生成密钥,但密钥不能成功推送到 overcloud。这个问题有望在未来发行版本中解决。如果您计划在这一更新前执行轮转,您可以选择采用如下一种临时解决方案:
* 在 overcloud 节点上启动 os-collect-config,然后再运行轮转。如果不需要用于其他用途,您可以稍后选择停止它。
* 在所有 overcloud 节点上启用 os-collect-config。在包含相关补丁程序的更新发布后,您可以选择禁用它。
注:如果不需要在更新推出之前轮转密钥,您无需进行任何操作。
BZ#1640021
使用 Gnocchi 文件后端部署 overcloud 可能会因为 /var/lib/gnocchi/ 目录访问权限问题而失败。
临时解决方案:在部署 overcloud 前,按照如下所述在 openstack/tripleo-heat-templates/docker/services/gnocchi-api.yaml 文件中设置该目录的权限:
- path:
list_join:
- "/"
- - {get_param: GnocchiFileBasePath}
- "tmp"
owner: gnocchi:gnocchi
perm: '0600'
recurse: true
BZ#1640382
在 director 部署的 OpenShift 环境中,GlusterFS playbooks 会在每次运行时自动生成新的 heketi 机秘密钥。
由于这个原因,对 CNS 部署进行的扩展或配置更改等操作会失败。
作为临时解决方案,可完成下列步骤:
1. 在部署后,检索 heketi 机密密钥。在主控机节点上运行以下命令:
sudo oc get secret heketi-storage-admin-secret --namespace glusterfs -o json | jq -r .data.key | base64 -d
2. 在环境文件中,将下列参数设置为这个值:
openshift_storage_glusterfs_heketi_admin_key
openshift_storage_glusterfs_registry_heketi_admin_key
应用此临时解决方案后,对 CNS 部署进行的扩展或配置更改等操作可以成功完成,只要手动提取了相应的参数。
BZ#1640804
当您重启所有三个控制器节点时,可能无法启动 overcloud 中的租户实例。overcloud 日志中将记录 "DuplicateMessageError” 消息。
作为临时解决方案,可在其中一个 overcloud 控制器上运行以下命令:
pcs resource restart rabbitmq-bundle
BZ#1643657
为了将请求代理到 Infra 节点上的路由器,director 会在主控机节点上运行的 HAProxy 实例中设置端口 443。OpenShift 主控机节点上无法将端口 443 用于绑定 OpenShift API。director 部署的 OpenShift 环境中的端口 443 上无法配置 OpenShift API。
BZ#1644889
director 提供的 overcloud-full 镜像会导致与 OpenShift 软件仓库提供的 python-setuptools 产生 RPM 冲突。OpenShift 节点上任何部署后的 yum 更新都会因为依赖关系问题而失败。
要解决这个问题,可以在 undercloud 上运行以下命令:
source ~/stackrc
tripleo-ansible-inventory --stack openshift --static-yaml-inventory
/home/stack/openshift_inventory.yaml
export ANSIBLE_HOST_KEY_CHECKING=False
ansible -i openshift_inventory.yaml -m shell -b -a 'rpm -e --nodeps python-setuptools-0.9.8-7.el7.noarch; yum -y install python-setuptools' overcloud
此更新将 overcloud-full 镜像提供的 python-setuptools 替换为 OpenShift 软件仓库提供的版本。随后进行的 yum 更新都能成功。
BZ#1646707
在某些 OVS 版本中,“updelay”和“downdelay”绑定设置会被忽略,始终使用默认设置。
BZ#1647005
在清理 BM 节点期间,Nova-compute ironic 驱动程序会尝试更新该节点。清理操作大约需要五分钟,但 nova-compute 会尝试在大约两分钟内更新节点。超时之后,nova-compute 会停止,并将 nova 实例置于 ERROR 状态。
作为临时解决方案,可为 nova-compute 服务设置下列配置选项:
[ironic]
api_max_retries = 180
设置之后,nova-compute 会在更长的时间里继续尝试更新 BM 节点,并且最终会成功。
BZ#1652444
在 containers-prepare-parameter.yaml 文件中,“neutron_driver”参数的值为“null”。这可能会导致对 OpenDaylight 部署中的 overcloud 进行小幅更新。
临时解决方案:在更新 overcloud 前,将“neutron_driver”参数设为“odl”。
BZ#1653348
在 director 部署的 OpenShift 环境中,使用额外的 OpenShift 主控机节点进行扩展会失败,并显示类似于如下的消息:“The field 'vars' has an invalid value, which includes an undefined variable. The error was: 'openshift_master_etcd_urls' is undefined…”
BZ#1653466
在通过 director 部署的并且启用了 CNS 的 OpenShift 环境中,使用额外的 Infra 节点进行扩展会失败,并显示类似于如下的消息:“fatal: [openshift-master-2]: FAILED! => {"changed": false, "msg": "Error mounting /tmp/openshift-glusterfs-registry-c8qImT: Mount failed.”
BZ#1659183
Director 和 openshift-ansible 在镜像标签方面有不同的期望。例如,在本地导入远程容器镜像时,director 会根据镜像元数据中的“version”和“release”标签将通用标签转换为能够唯一标识镜像的标签。但是,Openshift-ansible 对于所有 OpenShift 镜像标签都依赖于唯一的“openshift_image_tag”变量,因此无法单独指定镜像的标签。当远程容器镜像注册表中浮动 v3.11 标签指向的镜像与元数据中“release”或“version”标签不一致时,通过 director 进行的 OCP 部署会失败。
从 undercloud 导入非常规的镜像,然后再部署 OpenShift,并将标签设为在所有 openshift 镜像中均一致的值:
skopeo --tls-verify=false copy docker://registry.access.redhat.com/openshift3/prometheus:v3.11.51-1 docker://192.168.24.1:8787/openshift3/prometheus:v3.11.51-2
从 director 部署 OpenShift 可以完成,并且不会缺失镜像。
BZ#1660066
Director 不支持在 director 部署的 OpenShift 环境中触发 Red Hat Enterprise Linux OS 和 OpenShift Container Platform 的更新。Director 部署的 OpenShift 环境无法进行小幅更新。
BZ#1660475
在 config-download 生成了用于 Overcloud 的 playbook 后,如果您使用 --check 参数执行 ansible-playbook,则操作会不成功。这时应该会出现有关 ftype 未定义 stdout 的错误。此问题会在下一版本中解决。
BZ#1664165
原因:
由于一个已知的 Ansible 问题 (https://github.com/ansible/ansible/issues/24449),在添加计算主机后更改 /etc/ssh/ssh_known_hosts 不会传播到环境中现有 nova_compute 和 nova_libvirt 容器。
后果:
由于原始主机没有所需的 SSH 公钥,使用新引入的计算主机的实时迁移、冷迁移和实例大小调整操作会失败。
临时解决方案(若有):
重新启动所有 nova_compute 和 nova_libvirt 容器,这将确保正确写入对 /etc/ssh/ssh_known_hosts 的更新。
以下 KCS 文章中可以找到详细的步骤:
[OSP14] 在成功扩展后,使用新增的计算节主机进行的实时/冷迁移和大小调整会失败,并显示消息“Host key verification failed'
https://access.redhat.com/solutions/3792021
结果:
BZ#1664698
最近的一项更改使得采用 NUMA 拓扑的实例的内存分配对页面大小敏感。进行这一更改后,不再能够超额订阅采用 NUMA 拓扑的实例的内存。
目前,所有采用 NUMA 拓扑的实例都禁用内存超额订阅,过去则只有使用大页面的内存会被禁止使用超额订阅。这影响到使用显式 NUMA 拓扑和隐式拓扑的实例。实例可能会因为使用大页面或 CPU 固定而具有隐式 NUMA 拓扑。
如有可能,请避免使用显式 NUMA 拓扑。如果需要 CPU 固定而导致具有隐式 NUMA 拓扑,当前没有相应的临时解决方案。