特定 Red Hat OpenStack Platform 服务的部署建议
最大化 Red Hat OpenStack Platform Telemetry 和 Object Storage 服务的性能
摘要
第 1 章 优化 overcloud 的原因 复制链接链接已复制到粘贴板!
如果您计划缩放或部署大型 overcloud,请优化 overcloud,以防止在工作负载增加时产生潜在的性能问题。按照这些建议,您可以防止缩放影响 overcloud 中的遥测服务和对象存储服务的性能。
第 2 章 遥测服务的配置建议 复制链接链接已复制到粘贴板!
因为 Red Hat OpenStack Platform (RHOSP) Telemetry 服务是 CPU 密集型的,所以在 RHOSP 16.1 中不默认启用遥测。但是,遵循这些部署建议,如果您启用遥测,您可以避免性能下降。
这些程序是一个小型测试 overcloud,一个用于可最大化遥测服务性能的大型生产 overcloud 的建议。
2.1. 在小型测试 overcloud 上配置遥测服务 复制链接链接已复制到粘贴板!
当您在小的、测试 overcloud 上启用 Red Hat OpenStack Platform (RHOSP) Telemetry 服务时,您可以使用文件后端提高其性能。
先决条件
- 您要在其上配置 Telemetry 服务的 overcloud 部署 不是 生产系统。
- overcloud 是一个支持少于 100 个实例的小型部署,每个 Controller 节点上最多有 12 个物理内核,或者启用了超线程的 24 个内核。
- overcloud 部署 已禁用 高可用性。
流程
将以下内容添加到
/usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml
环境文件中的parameter_defaults
中:parameter_defaults: GnocchiBackend: file
parameter_defaults: GnocchiBackend: file
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
enable-legacy-telemetry.yaml
文件添加到openstack overcloud deploy
命令中:openstack overcloud deploy \ -e /home/stack/environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml \ [...]
openstack overcloud deploy \ -e /home/stack/environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml \ [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. 在大型生产 overcloud 上配置遥测服务 复制链接链接已复制到粘贴板!
当您在大型生产 overcloud 上启用 Red Hat OpenStack Platform (RHOSP) Telemetry 服务时,您可以通过在专用节点上部署 Telemetry 服务来提高其性能。
遥测服务使用哪个 RHOSP 对象存储作为其存储后端。如果没有启用 Red Hat Ceph Storage,Telemetry 服务将使用 RHOSP Object Storage 服务(swift)。默认情况下,RHOSP director 将对象存储服务与控制器上的遥测服务并置。
将 RHOSP Object Storage (swift)用于时间序列数据库(gnocchi)存储只支持小型和非生产环境。
先决条件
- 部署遥测服务的 overcloud 是大型的生产 overcloud。
流程
要设置专用遥测节点,请从 Controller 角色中删除遥测服务。
通过将
/usr/share/openstack-tripleo-heat-templates/roles_data.yaml
复制到/home/stack/templates/roles_data.yaml
,创建编排服务(heat)自定义环境文件。在
/home/stack/templates/roles_data.yaml
中,从 Controller 角色的ServicesDefault
列表中删除以下行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加以下代码片段并保存
roles_data.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/home/stack/node-info.yaml
文件中,为 Telemetry 服务设置专用节点数量。例如,将
TelemetryCount: 3
添加到parameter_defaults
中,以部署三个专用的遥测节点:parameter_defaults: TelemetryCount: 3
parameter_defaults: TelemetryCount: 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您现在有一个自定义遥测角色。
使用此角色,您可以定义一个新类别来标记和分配特定的遥测节点。
部署 overcloud 时,将
roles_data.yaml
和storage-environment.yaml
包含在openstack overcloud deploy
命令调用的模板和环境文件列表中:openstack overcloud deploy \ -r /home/stack/templates/roles_data.yaml \ -e /home/stack/templates/storage-environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml \ [...]
$ openstack overcloud deploy \ -r /home/stack/templates/roles_data.yaml \ -e /home/stack/templates/storage-environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml \ [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果您无法为对象存储分配专用节点,请将对象存储配置为在 Controller 节点上运行较低的总体存储 I/O。
第 3 章 Object Storage 服务(swift)配置建议。 复制链接链接已复制到粘贴板!
如果您选择不使用 Red Hat Ceph Storage 部署 Red Hat OpenStack Platform (RHOSP),RHOSP director 部署 RHOSP Object Storage 服务(swift)。对象存储服务是多种 OpenStack 服务的对象存储,包括 RHOSP 遥测服务和 RabbitMQ。以下是在将遥测服务与对象存储服务搭配使用时提高 RHOSP 性能的建议。
3.1. 对象存储服务磁盘建议 复制链接链接已复制到粘贴板!
为 Red Hat OpenStack Platform (RHOSP)对象存储服务使用一个或多个单独的本地磁盘。
默认情况下,RHOSP director 使用系统磁盘中的目录 /srv/node/d1
作为对象存储服务。在控制器中,这个磁盘也被其他服务使用,当遥测服务在企业设置中开始记录事件后,磁盘可能会成为性能瓶颈。
以下示例是从 RHOSP 编排服务(heat)自定义环境文件的摘录。在每个 Controller 节点上,对象存储服务使用两个独立的磁盘。两个磁盘的整个磁盘包含一个 XFS 文件系统:
parameter_defaults: SwiftRawDisks: {"sdb": {}, "sdc": {}}
parameter_defaults:
SwiftRawDisks: {"sdb": {}, "sdc": {}}
SwiftRawDisks
定义节点上的每个存储磁盘。这个示例在每个 Controller 节点上定义 sdb
和 sdc
磁盘。
在配置多个磁盘时,请确保 Bare Metal 服务(ironic)使用预期的根磁盘。
3.2. 定义专用对象存储节点 复制链接链接已复制到粘贴板!
将节点专用于 Red Hat OpenStack Platform (RHOSP) Object Storage 服务可提高性能。
流程
-
创建自定义
roles_data.yaml
文件(基于默认的/usr/share/openstack-tripleo-heat-templates/roles_data.yaml
)。 通过从 Controller 节点中删除 Object Storage 服务条目来编辑自定义
roles_data.yaml
文件。特别是,从
Controller
角色的ServicesDefault
列表中删除以下行:- OS::TripleO::Services::SwiftStorage
- OS::TripleO::Services::SwiftStorage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用自定义环境文件中的
ObjectStorageCount
资源,设置要为对象存储服务分配的专用节点数量。例如,将
ObjectStorageCount: 3
添加到环境文件的parameter_defaults
中,以部署三个专用的对象存储节点:parameter_defaults: ObjectStorageCount: 3
parameter_defaults: ObjectStorageCount: 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要应用此配置,请部署 overcloud,将
roles_data.yaml
添加到堆栈和其他环境文件中:(undercloud) $ openstack overcloud deploy --templates \ -e [your environment files] -e /home/stack/templates/roles_data.yaml
(undercloud) $ openstack overcloud deploy --templates \ -e [your environment files] -e /home/stack/templates/roles_data.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. 为对象存储服务分区电源建议 复制链接链接已复制到粘贴板!
当使用单独的 Red Hat OpenStack Platform (RHOSP) Object Storage 服务节点时,使用更高的分区电源值。
对象存储服务使用修改后的 散列环 在磁盘和节点之间分发数据。默认有三个环:一个用于帐户,一个用于容器,另一个用于对象。每个环都使用名为 partition power 的固定参数。此参数设置可以创建的最大分区数。
分区的 power 参数非常重要,只能更改新容器及其对象。因此,在初始部署 之前,务必要设置这个值。
RHOSP director 部署的环境的默认分区电源值是 10
。这对较小的部署来说是合理的值,特别是如果您只计划在 Controller 节点上为对象存储服务使用磁盘。
如果使用三个副本,下表可帮助您选择适当的分区电源:
分区 Power | 磁盘的最大数量 |
10 | ~ 35 |
11 | ~ 75 |
12 | ~ 150 |
13 | ~ 250 |
14 | ~ 500 |
设置大量分区电源值(例如,仅限 14
个磁盘,代表 40 个磁盘)会影响复制时间。
要设置分区电源,请使用以下资源:
parameter_defaults: SwiftPartPower: 11
parameter_defaults:
SwiftPartPower: 11
您还可以为新容器配置额外的对象服务器环。如果您要在最初使用低分区电源的对象存储服务部署中添加更多磁盘,这非常有用。