1.3. 在超融合节点上配置资源隔离

在超融合节点上并置 Ceph OSD 和 Compute 服务可能会使 Red Hat Ceph Storage 和 Compute 服务之间的资源争用,因为彼此都不知道在同一主机上存在。资源争用可能会导致服务降级,这降低了超线程的好处。

您必须为 Ceph 和计算服务配置资源隔离,以防止争用。

流程

  1. 可选:通过在计算环境文件中添加以下参数来覆盖自动生成的 Compute 设置:

    parameter_defaults:
      ComputeHCIParameters:
        NovaReservedHostMemory: <ram>
        NovaCPUAllocationRatio: <ratio>
  2. 要为 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 开始,ceph_osd_docker_memory_limit 会自动设置为主机的最大内存,如 Ansible 发现,无论是否使用 FileStore 还是 BlueStore 后端。

  3. 可选:默认情况下,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 硬件选择指南

  4. 可选:通过在 Ceph 环境文件中添加以下参数,在移除 Ceph OSD 时删除 Red Hat Ceph Storage 回填和恢复操作的优先级:

    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 工作流完成以下过程:

  1. 检索在检查硬件节点期间收集的硬件内省数据。
  2. 根据这些数据,计算超融合节点上 Compute 的最佳 CPU 和内存分配工作负载。
  3. 自动生成配置这些约束所需的参数,并为计算保留 CPU 和内存资源。这些参数在 plan-environment-derived-params.yaml 文件的 hci_profile_config 部分下定义。
注意

每个工作负载配置集中的 average_guest_memory_size_in_mb he average_guest_cpu_utilization_percentage 参数用于计算 Compute 的 reserved_host_memorycpu_allocation_ratio 设置的值。

您可以通过在计算环境文件中添加以下参数来覆盖自动生成的计算设置:

自动生成的 nova.conf 参数计算环境文件覆盖描述

reserved_host_memory

parameter_defaults:
  ComputeHCIParameters:
    NovaReservedHostMemory: 181000

设置应当为 Ceph OSD 服务和超融合节点上每个客户机实例开销保留多少 RAM。

cpu_allocation_ratio

parameter_defaults:
  ComputeHCIParameters:
    NovaCPUAllocationRatio: 8.2

在选择要在其上部署实例的 Compute 节点时,计算调度程序应使用的比率。

这些覆盖应用到使用 ComputeHCI 角色的所有节点,即所有超融合节点。有关手动确定 NovaReservedHostMemoryNovaCPUAllocationRatio 的最佳值的更多信息,请参阅 OpenStack Workflow Compute CPU 和内存计算器

提示

您可以使用以下脚本为您的超融合节点计算合适的基准 NovaReservedHostMemoryNovaCPUAllocationRatio 值。

nova_mem_cpu_calc.py

1.3.2. Red Hat Ceph Storage 回填和恢复操作

删除 Ceph OSD 时,Red Hat Ceph Storage 使用回填和恢复操作来重新平衡集群。Red Hat Ceph Storage 的性能根据放置组策略保留多个数据副本。这些操作使用系统资源。如果 Red Hat Ceph Storage 集群负载不足,则其性能会在将资源划分为回填和恢复时丢弃。

要在移除 OSD 过程中缓解这个性能影响,您可以降低回填和恢复操作的优先级。这样做的原因是,更长的数据副本需要较少的时间,这会使数据面临更高的风险。

下表中详述的参数用于配置回填和恢复操作的优先级。

参数描述默认值

osd_recovery_op_priority

根据 OSD 客户端 OP 优先级,设置恢复操作的优先级。

3

osd_recovery_max_active

一次性设置每个 OSD 活跃的恢复请求数。更多请求可以加快恢复速度,但请求会增加集群的负载。如果要缩短延迟,则将其设置为 1。

3

osd_max_backfills

设置允许从一个 OSD 或单个 OSD 允许的最大回填数。

1