1.3. 在超融合节点上配置资源隔离
在超融合节点上查找 Ceph OSD 和计算服务的计算服务会给 Red Hat Ceph Storage 和 Compute 服务之间的资源争用风险,因为不知道同一主机上彼此的存在性。资源争用可能会导致服务降级,这会降低超聚合的益处。
您必须配置 Ceph 和计算服务的资源隔离,以防止争用。
流程
可选:通过在 Compute 环境文件中添加以下参数来覆盖自动生成的 Compute 设置:
parameter_defaults: ComputeHCIParameters: NovaReservedHostMemory: <ram> NovaCPUAllocationRatio: <ratio>parameter_defaults: ComputeHCIParameters: NovaReservedHostMemory: <ram> NovaCPUAllocationRatio: <ratio>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<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: trueparameter_defaults: CephAnsibleExtraConfig: is_hci: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这允许
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>parameter_defaults: CephAnsibleExtraConfig: ceph_osd_docker_cpu_limit: <cpu_limit>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<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>parameter_defaults: CephConfigOverrides: osd_recovery_op_priority: <priority_value> osd_recovery_max_active: <no_active_recovery_requests> osd_max_backfills: <max_no_backfills>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<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 he average_guest_cpu_utilization_percentage 参数用于计算 Compute 的 reserved_host_memory 和 cpu_allocation_ratio 设置的值。
您可以通过在 Compute 环境文件中添加以下参数来覆盖自动生成的 Compute 设置:
自动生成的 nova.conf 参数 | 计算环境文件覆盖 | 描述 |
|---|---|---|
|
|
parameter_defaults:
ComputeHCIParameters:
NovaReservedHostMemory: 181000
| 设置应当为 Ceph OSD 服务和超融合节点上的每个客户端实例开销保留多少 RAM。 |
|
|
parameter_defaults:
ComputeHCIParameters:
NovaCPUAllocationRatio: 8.2
| 设置计算调度程序在选择在其上部署实例的计算节点时应使用的比率。 |
这些覆盖应用到所有使用 ComputeHCI 角色(即超融合节点)的节点。有关手动确定 NovaReservedHostMemory 和 NovaCPUAllocationRatio 的最佳值的更多信息,请参阅 OpenStack Workflow Compute CPU 和内存计算器。
您可以使用以下脚本为您的超融合节点计算合适的基准 NovaReservedHostMemory 和 NovaCPUAllocationRatio 值。
其他资源
1.3.2. Red Hat Ceph Storage 回填和恢复操作 复制链接链接已复制到粘贴板!
移除 Ceph OSD 时,Red Hat Ceph Storage 使用回填和恢复操作来重新平衡集群。Red Hat Ceph Storage 这样做会根据放置组策略保留数据的多个副本。这些操作使用系统资源。如果 Red Hat Ceph Storage 集群负载较大,则其性能会断开,因为它会将资源分散到回填和恢复。
为了缓解这个性能在 OSD 移除过程中生效,您可以降低回填和恢复操作的优先级。这样做的代价是,数据副本更长的时间就越少,这样会使数据面临稍高的风险。
下表详述的参数用于配置回填和恢复操作的优先级。
| 参数 | 描述 | 默认值 |
|---|---|---|
|
| 设置恢复操作的优先级,相对于 OSD 客户端 OP 优先级。 | 3 |
|
| 一次设置每个 OSD 的活动恢复请求数。更多请求可以加快恢复,但请求会增加集群上的负载。如果要降低延迟,则将其设置为 1。 | 3 |
|
| 设置单个 OSD 允许的最大回填数量。 | 1 |