大型部署建议


Red Hat OpenStack Platform 16.1

大规模部署 Red Hat OpenStack Platform 的硬件要求和配置

OpenStack Documentation Team

摘要

本指南包含大规模部署 Red Hat OpenStack Platform 的几个建议。这些建议包括硬件建议、undercloud 调优和 overcloud 配置。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

对红帽文档提供反馈

我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。

使用直接文档反馈(DDF)功能

使用 添加反馈 DDF 功能,用于特定句子、段落或代码块上的直接注释。

  1. Multi-page HTML 格式查看文档。
  2. 请确定您看到文档右上角的 反馈 按钮。
  3. 用鼠标指针高亮显示您想评论的文本部分。
  4. 添加反馈
  5. 添加反馈项中输入您的意见。
  6. 可选:添加您的电子邮件地址,以便文档团队可以联系您以讨论您的问题。
  7. Submit

第 1 章 大型部署建议

使用以下 undercloud 和 overcloud 建议、规格和配置来部署大型 Red Hat OpenStack Platform (RHOSP)环境。包括超过 100 个 overcloud 节点的 RHOSP 16.1 部署被视为大型环境。红帽已在使用 RHOSP 16.1 的大规模环境中测试并验证了最佳性能,而无需使用 minion。

对于基于 DCN 的部署,中央和边缘站点中的节点数可能非常高。有关 DCN 部署的建议,请联系红帽全球支持服务。

第 3 章 Red Hat OpenStack 部署最佳实践

在计划和准备部署 OpenStack 时,回顾以下最佳实践。您可以在自己的环境中应用这些实践中的一个或多个。

3.1. Red Hat OpenStack 部署准备

在部署 Red Hat OpenStack Platform (RHOSP)前,请查看以下部署准备任务列表。您可以在自己的环境中应用一个或多个部署准备任务:

设置用于内省的子网范围,以容纳您要一次执行内省的最大 overcloud 节点
当使用 director 部署和配置 RHOSP 时,使用 control plane 网络的 CIDR 标记来容纳您现在或将来添加的所有 overcloud 节点。
设置 overcloud 镜像上的 root 密码,以允许控制台访问 overcloud 镜像

在网络设置错误时,使用控制台对失败的部署进行故障排除。如需更多信息,请参阅 合作伙伴集成指南中的 将 virt-customize 安装到 director 和设置 Root 密码。在实施此建议时,遵循您的机构的信息安全策略进行密码管理。

另外,您可以使用 userdata_root_password.yaml 模板来使用 NodeUserData 参数配置 root 密码。您可以在 /usr/share/openstack-tripleo-heat-templates/firstboot/userdata_root_password.yaml 中找到模板。

以下示例使用模板来配置 NodeUserData 参数:

resource_registry:
  OS::TripleO::NodeUserData: /usr/share/openstack-tripleo-heat-templates/firstboot/userdata_root_password.yaml
parameter_defaults:
  NodeRootPassword: '<password>'
使用调度程序提示为角色分配硬件
  • 使用调度程序提示将硬件分配给角色,如 控制器计算CephStorage 等。调度程序提示提供更方便地识别影响特定硬件的部署问题。
  • nova-scheduler (即单个进程)可在调度大量节点时覆盖它。当调度程序提示实施标签匹配时,调度程序提示会减少 nova-scheduler 的负载。因此,nova-scheduler 在部署期间遇到较少的调度错误,在使用调度程序提示时部署需要较少的时间。
  • 使用调度程序提示时不要使用配置集标记。
  • 在性能测试中,为特定角色使用相同的硬件,以减少测试和性能结果的可变性。
  • 有关更多信息,请参阅高级 Overcloud 自定义指南中的分配特定节点 ID
将每个节点的全球名称(WWN)设置为每个节点的根磁盘提示,以防止节点在部署和引导过程中使用错误的磁盘
当节点包含多个磁盘时,请使用内省数据将 WWN 设置为每个节点的根磁盘提示。这可防止节点在部署和引导过程中使用错误的磁盘。如需更多信息,请参阅 Director 安装和使用指南中的 为多磁盘集群定义根磁盘
在有多个磁盘的节点上启用自动清理裸机服务(ironic)

使用 Bare Metal 服务自动清理来清除具有多个磁盘的节点上的元数据,并可能有多个引导装载程序。因为磁盘上存在多个引导装载程序,节点可能会与引导磁盘不一致,这会导致在尝试拉取使用错误 URL 的元数据时节点部署失败。

要启用裸机服务自动清理,在 undercloud 节点上编辑 undercloud.conf 文件并添加以下行:

clean_nodes = true
限制裸机(ironic)内省的节点数量

如果您同时在所有节点上执行内省,则可能会因为网络限制而出现故障。一次在最多 50 个节点上执行内省。

确保 undercloud.conf 文件中的 dhcp_startdhcp_end 范围足够大,适用于您在环境中具有的节点数量。

如果可用 IP 不足,请不要发布超过该范围的大小。这限制了同时内省操作的数量。要允许内省 DHCP 租期过期,在内省完成后,请不要在几分钟后发出更多 IP 地址。

为不同类型的配置准备 Ceph

以下列表是不同类型的配置的一组建议:

  • all-flash OSD 配置

    每个 OSD 根据设备类型的 IOPS 容量需要额外的 CPU,因此 Ceph IOPS 在较低 OSD 数量下限于 CPU。对于 NVM SSD,这可能是比传统 HDD 更高的 IOPS 容量的两个顺序。对于 SATA/SAS SSD,预计一个比 HDD 更大的随机 IOPS/OSD 顺序,但仅有大约 2 倍到顺序 IOPS 增加的四倍。对于 OSD 设备,您可以提供比 Ceph 要求少的 CPU 资源。

  • Hyper Converged Infrastructure (HCI)

    建议为 OpenStack Compute (nova)客户机保留至少一半的 CPU 容量、内存和网络。确保您有足够的 CPU 容量和内存来支持 OpenStack Compute (nova)客户机和 Ceph Storage。观察内存消耗,因为 Ceph Storage 内存消耗没有弹性。在多 CPU 套接字系统上,将带有 NUMA 支持的 Ceph 的 Ceph CPU 消耗限制为单个套接字。例如,使用 numactl -N 0 -p 0 命令。不要硬编码 Ceph 内存消耗到 1 个插槽。

  • NFV 等对延迟敏感的应用程序

    将 Ceph 放置到与 Ceph 使用网卡相同的 CPU 套接字上,并在可能的情况下将网卡中断限制到该 CPU 套接字(在不同的 NUMA 套接字和网卡上运行)。

    如果使用双引导装载程序,请将 disk-by-path 用于 OSD map。这为用户提供一致的部署,这与使用设备名称不同。以下片段是 disk-by-path 映射的 CephAnsibleDisksConfig 示例。

    CephAnsibleDisksConfig:
      osd_scenario: non-collocated
      devices:
        - /dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:0:0
        - /dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:1:0
      dedicated_devices:
        - /dev/nvme0n1
        - /dev/nvme0n1
      journal_size: 512

3.2. Red Hat OpenStack 部署配置

查看以下 Red Hat OpenStack Platform (RHOSP)部署配置的建议列表:

使用较小的部署验证 heat 模板
部署由至少三个控制器、一个计算备注和三个 Ceph Storage 节点组成的小型环境。您可以使用此配置来确保所有 heat 模板都正确。
禁用 undercloud 上的遥测通知

您可以在 undercloud 上禁用以下 OpenStack 服务的遥测通知,以减少 RabbitMQ 队列:

  • Compute (nova)
  • networking (neutron)
  • 编配(heat)
  • 身份(keystone)

要禁用通知,在 /usr/share/openstack-tripleo-heat-templates/environments/disable-telemetry.yaml 模板中,将通知驱动程序设置为 noop

限制同时置备的节点数量

fifty 是可在一个企业级机架单元中适合的典型服务器数量,因此您可以一次部署一个机架节点。

为最大程度减少诊断部署问题所需的调试,一次不部署 50 个节点。但是,如果您要部署更多节点,红帽已同时成功测试了 100 个节点。

要批量扩展 Compute 节点,请使用 openstack overcloud deploy 命令和 --limit 选项。这可能导致 undercloud 上节省的时间并降低资源消耗。

注意

使用 --limit 选项以及以逗号分隔的 config-download playbook 中的标签列表,以使用特定的 config-download 任务运行部署。

禁用未使用的 NIC

如果 overcloud 部署期间有任何未使用的 NIC,您必须在 NIC 配置模板中定义未使用的接口,并将接口设置为 use_dhcp: falsedefroute: false

如果您没有定义未使用的接口,则内省和扩展操作过程中可能会有路由问题和 IP 分配问题。默认情况下,NIC 设置 BOOTPROTO=dhcp,这意味着未使用的 overcloud NIC 使用 PXE 调配所需的 IP 地址。这可以减少节点的可用 IP 地址池。

关闭未使用的裸机置备(ironic)节点
确保您以维护模式关闭任何未使用的裸机置备(ironic)节点。红帽已确定,来自以前部署的节点处于维护模式。这可以通过 Bare Metal 自动清理进行,其中清理失败的节点被设置为维护模式。裸机置备不会跟踪处于维护模式的节点电源状态,并错误地报告电源状态为 off。这可能导致持续部署出现问题。当您在部署失败后重新部署时,请确保关闭使用节点的电源管理设备的所有未使用的节点。

3.3. 调优 undercloud

在计划扩展 RHOSP 部署并应用调整到默认的 undercloud 设置时,请参阅本节。

如果您使用 Telemetry 服务(ceilometer),请提高服务的性能

因为 Telemetry 服务是 CPU 密集型,所以 RHOSP 16.1 中不默认启用遥测。如果要使用 Telemetry,您可以提高服务的性能。

如需更多信息,请参阅 Deployment Recommendations for Specific Red Hat OpenStack Platform Services Guide 中的 Configuration recommendations for the Telemetry service i部分。

分离置备和配置过程
  • 要只创建堆栈和相关 RHOSP 资源,您可以使用 --stack-only 选项运行部署命令。
  • 红帽建议在部署超过 100 个节点时分隔堆栈和 config-download 步骤。

包括 overcloud 所需的环境文件:

$ openstack overcloud deploy \
  --templates \
  -e <environment-file1.yaml> \
  -e <environment-file2.yaml> \
  ...
  --stack-only
  • 在调配堆栈后,您可以从 undercloud 到 overcloud,为 tripleo-admin 用户启用 SSH 访问。config-download 过程使用 tripleo-admin 用户来执行基于 Ansible 的配置:

    $ openstack overcloud admin authorize
  • 若要禁用 overcloud 栈创建,仅运行 config-download 工作流以应用软件配置,您可以使用 --config-download-only 选项运行部署命令。包括 overcloud 所需的环境文件:

    $ openstack overcloud deploy \
     --templates \
     -e <environment-file1.yaml> \
     -e <environment-file2.yaml> \
      ...
     --config-download-only
  • 要将 config-download playbook 执行限制为特定节点或一组节点,您可以使用 --limit 选项。
  • --limit 选项可用于将节点划分为不同的角色,以限制要部署的节点数量,或者分隔具有特定硬件类型的节点。要扩展操作,当只想在新节点上应用软件配置时,请将 --limit 选项与 --config-download-only 选项一起使用。

    $ openstack overcloud deploy \
    --templates \
    -e <environment-file1.yaml> \
    -e <environment-file2.yaml> \
    ...
    --config-download-only --config-download-timeout --limit <Undercloud>,<Controller>,<Compute-1>,<Compute-2>

3.4. 调整 overcloud

在计划扩展 Red Hat OpenStack Platform (RHOSP)部署并应用调整到默认的 overcloud 设置时,请查看以下部分:

增加 OVN OVSDB 客户端探测间隔以防止故障切换

为大型 RHOSP 部署增加 OVSDB 客户端探测间隔。Pacemaker 在配置的超时时间内没有从 OVN 获取响应时,Pacemaker 会触发 ovn-dbs-bundle 的故障转移。要将 OVN OVSDB 客户端探测间隔增加到 360 秒,请编辑 heat 模板中的 OVNDBSPacemakerTimeout 参数:

OVNDBSPacemakerTimeout: 360

在每个 Compute 和 Controller 节点上,OVN 控制器会定期探测 OVN SBDB,如果这些请求超时,OVN 控制器会重新同步。当使用创建资源的请求加载多个 Compute 和 Controller 节点时,默认的 60 秒超时值不足。要将 OVN SBDB 客户端探测器增加到 180 秒,请编辑 heat 模板中的 OVNOpenflowProbeInterval 参数:

ControllerParameters:
  OVNRemoteProbeInterval: 180000
  OVNOpenflowProbeInterval: 180
注意

在 RHOSP 用户和服务触发操作过程中,由于资源限制(如 CPU 或内存资源限制),多个组件可以访问配置的超时值。这可能会导致对 haproxy 前端或后端、消息传递超时、db 查询相关的故障、集群不稳定等的超时请求失败。在初始部署后对 overcloud 环境进行基准测试,以帮助识别与超时相关的瓶颈。

第 4 章 调试建议和已知问题

参阅以下部分以调试可帮助您对部署进行故障排除的建议。

4.1. 已知问题

下表概述了现有当前限制。

BZ#1857451 - Ansible fork 值应该有一个上限,当前计算需要改变
默认情况下,mistral 中的 Ansible playbook 被配置为使用 ansible.cfg 文件中的 10 个 CPU_COUNT fork。如果不使用 --limit 选项,将 Ansible 执行限制为特定节点或一组节点,并将 Ansible 执行设置为在所有现有节点上运行,Ansible 会消耗几乎 100% 内存。

4.2. 内省调试

在调试内省时,检查以下建议列表。

undercloud.conf 文件中检查您的内省 DHCP 范围和 NIC
如果其中任何一个值不正确,请修复它们,然后重新运行 openstack undercloud install 命令。
确保您不会尝试内省超过 DHCP 范围的节点允许
内省完成后,每个节点的 DHCP 租期会大约两分钟内继续激活。
确保目标节点响应
如果所有节点内省失败,请确保您可以使用配置的 NIC 以及带外接口凭证和地址通过原生 VLAN ping 目标节点。
在控制台中检查内省命令
要调试特定节点,请在节点引导时观察控制台,并观察节点的内省命令。如果在节点完成 PXE 进程前停止,请检查连接、IP 分配和网络负载。当节点退出 BIOS 并引导内省镜像时,故障会很少,与连接问题几乎独占相关。确保来自内省镜像的心跳不会随其到 undercloud 的方式中断。

4.3. 部署调试

在调试部署时使用以下建议。

检查在 provisioning 网络中提供地址的 DHCP 服务器

在置备网络上提供地址的任何其他 DHCP 服务器都可能会阻止 Red Hat OpenStack Platform director 检查和置备机器。

  • 对于 DHCP 或 PXE 内省问题,请输入以下命令:

    $ sudo tcpdump -i any port 67 or port 68 or port 69
  • 对于 DHCP 或 PXE 部署问题,请输入以下命令:

    $ sudo ip netns exec qdhcp tcpdump -i <interface> port 67 or port 68 or port 69
检查失败或外磁盘的状态
对于失败或外磁盘,请查看您的磁盘状态,以确保根据机器的带外管理,故障或外部磁盘的状态已设置为 Up。磁盘可以在部署周期内退出 Up 状态,并更改磁盘出现在基础操作系统中的顺序。
使用以下命令调试失败的 overcloud 部署
  • OpenStack stack failures list overcloud
  • heat resource-list -n5 overcloud | grep -i fail
  • less /var/lib/mistral/config-download-latest/ansible.log

要查看命令的输出,请登录到发生故障的节点,并查看 /var/log//var/log/containers/ 中的日志文件。

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.