1.3. 在超融合节点上配置资源隔离
在超融合节点上查找 Ceph OSD 和计算服务的计算服务会给 Red Hat Ceph Storage 和 Compute 服务之间的资源争用风险,因为不知道同一主机上彼此的存在性。资源争用可能会导致服务降级,这会降低超聚合的益处。
您必须配置 Ceph 和计算服务的资源隔离,以防止争用。
流程
可选:通过在 Compute 环境文件中添加以下参数来覆盖自动生成的 Compute 设置:
parameter_defaults: ComputeHCIParameters: NovaReservedHostMemory: <ram> NovaCPUAllocationRatio: <ratio>
-
将
<ram
> 替换为为超融合节点上的 Ceph OSD 服务和实例开销(以 MB 为单位)保留的 RAM 量。 将
<
;ratio> 替换为计算调度程序在选择在其上部署实例的计算节点时应使用的比率。如需有关自动生成的计算设置的更多信息,请参阅 自动生成的计算设置的过程,以获取为计算服务保留的 CPU 和内存资源。
-
将
要为 Red Hat Ceph Storage 保留内存资源,请在
/home/stack/templates/storage-container-config.yaml
中将参数is_hci
设置为true
:parameter_defaults: CephAnsibleExtraConfig: is_hci: true
这允许
ceph-ansible
为 Red Hat Ceph Storage 保留内存资源,并通过为 HCI 部署自动调整osd_memory_target
参数设置来减少 Ceph OSD 的内存增长。警告红帽不推荐直接覆盖
ceph_osd_docker_memory_limit
参数。注意从 ceph-ansible 3.2 开始,无论使用了 FileStore 还是 BlueStore 后端,
ceph_osd_docker_memory_limit
会自动被设置为主机的最大内存。可选: 默认情况下,
ceph-ansible
为每个 Ceph OSD 预留一个 vCPU。如果每个 Ceph OSD 需要多个 CPU,请将以下配置添加到/home/stack/templates/storage-container-config.yaml
中:parameter_defaults: CephAnsibleExtraConfig: ceph_osd_docker_cpu_limit: <cpu_limit>
将
<cpu_limit
> 替换为为每个 Ceph OSD 保留的 CPU 数量。有关如何根据您的硬件和工作负载调整 CPU 资源的更多信息,请参阅 Red Hat Ceph Storage 硬件选择指南。
可选:通过在 Ceph 环境中添加以下参数来移除 Ceph OSD 时,红帽 Ceph 存储回填和恢复操作的优先级如下:
parameter_defaults: CephConfigOverrides: osd_recovery_op_priority: <priority_value> osd_recovery_max_active: <no_active_recovery_requests> osd_max_backfills: <max_no_backfills>
-
将
<priority_value
> 替换为恢复操作的优先级(相对于 OSD 客户端 OP)。 -
将
<no_active_recovery_requests
> 替换为每个 OSD 的活动恢复请求数。 将
<max_no_backfills
> 替换为允许或从一个 OSD 中允许的最大回填数量。有关默认 Red Hat Ceph Storage 回填和恢复选项的更多信息,请参阅 Red Hat Ceph Storage回填和恢复操作。
-
将
1.3.1. 为 Compute 服务保留的自动生成 CPU 和内存资源的流程
director 提供了一个默认的计划环境文件,用于在部署期间在超融合节点上配置资源限制。此计划环境文件指示 OpenStack 工作流完成以下进程:
- 检索在检查硬件节点期间所收集的硬件内省数据。
- 根据这些数据,计算在超融合节点上为计算的最佳 CPU 和内存分配工作负载。
-
自动生成配置这些约束所需的参数,并为 Compute 保留 CPU 和内存资源。这些参数在
plan-environment-derived-params.yaml
文件的hci_profile_config
部分中定义。
每个工作负载配置集中的 average_guest_memory_size
参数用于计算计算的 _in_mb
和 average_guest_utilization_percentagereserved_host_memory
和 cpu_allocation_ratio
设置的值。
您可以通过在 Compute 环境文件中添加以下参数来覆盖自动生成的 Compute 设置:
自动生成的 nova.conf 参数 | 计算环境文件覆盖 | Description |
---|---|---|
|
parameter_defaults: ComputeHCIParameters: NovaReservedHostMemory: 181000 | 设置应当为 Ceph OSD 服务和超融合节点上的每个客户端实例开销保留多少 RAM。 |
|
parameter_defaults: ComputeHCIParameters: NovaCPUAllocationRatio: 8.2 | 设置计算调度程序在选择在其上部署实例的计算节点时应使用的比率。 |
这些覆盖应用到所有使用 ComputeHCI 角色(即超融合节点)的节点。有关手动确定 NovaReservedHostMemory
和 NovaCPUAllocationRatio
的最佳值的更多信息,请参阅 OpenStack Workflow Compute CPU 和内存计算器。
您可以使用以下脚本为您的超融合节点计算合适的基准 NovaReservedHostMemory
和 NovaCPUAllocationRatio
值。