超融合基础架构指南


Red Hat OpenStack Platform 17.0

了解并配置 Red Hat OpenStack Platform overcloud 上的超融合基础架构

OpenStack Documentation Team

摘要

本文档描述了 Red Hat OpenStack Platform 实施,它在同一主机上并置 Compute 和 Ceph Storage 服务。

1.1. 超融合基础架构概述

Red Hat OpenStack Platform (RHOSP)超融合基础架构(HCI)由超融合节点组成。在 RHOSP HCI 中,计算和存储服务在这些超融合节点上在一起,以优化资源使用。您只能使用超融合节点部署 overcloud,或使用普通的 Compute 和 Red Hat Ceph Storage 节点混合超融合节点。

注意

您必须使用 Red Hat Ceph Storage 作为存储提供程序。

提示

使用 BlueStore 作为 HCI 部署的后端,以使用 BlueStore 内存处理功能。

超融合基础架构使用部署过程的一种变体构建,如将 Red Hat Ceph 和 OpenStack 与 director 一起部署 中所述。在此部署场景中,RHOSP director 部署您的云环境,director 调用 overcloud 和 Red Hat Ceph Storage。您可以独立于 overcloud 配置管理和扩展 Ceph 集群本身。

重要

在部署 Red Hat OpenStack Platform (RHOSP) HCI 环境时,不要启用实例 HA。如果要使用带有 Red Hat Ceph Storage 的超融合 RHOSP 部署的实例 HA,请联系您的红帽代表。

有关 HCI 配置指南,请参阅 配置指导

第 2 章 部署 HCI 硬件

本节包含有关超融合节点的准备和配置的流程和信息。

2.1. 清理 Ceph Storage 节点磁盘

Ceph Storage OSD 和日志分区需要工厂清理磁盘。在安装 Ceph OSD 服务前,裸机置备服务(ironic)必须删除所有数据和元数据。

您可以使用裸机置备服务,将 director 配置为默认删除所有磁盘数据和元数据。当 director 配置为执行此任务时,Bare Metal Provisioning 服务都会执行额外步骤来在每次将节点设置为 可用 时引导节点。

警告

裸机置备服务使用 wipefs --force --all 命令。这个命令删除磁盘上的所有数据和元数据,但不会执行安全清除。安全清除需要更长的时间。

流程

  1. 打开 /home/stack/undercloud.conf 并添加以下参数:

    clean_nodes=true
    Copy to Clipboard Toggle word wrap
  2. 保存 /home/stack/undercloud.conf
  3. 更新 undercloud 配置。

    openstack undercloud install
    Copy to Clipboard Toggle word wrap

2.2. 注册节点

注册节点以启用与 director 的通信。

流程

  1. /home/stack 中创建节点清单 JSON 文件。
  2. 输入每个节点的硬件和电源管理详情。

    例如:

    {
        "nodes":[
            {
                "mac":[
                    "b1:b1:b1:b1:b1:b1"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.205"
            },
            {
                "mac":[
                    "b2:b2:b2:b2:b2:b2"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.206"
            },
            {
                "mac":[
                    "b3:b3:b3:b3:b3:b3"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.207"
            },
            {
                "mac":[
                    "c1:c1:c1:c1:c1:c1"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.208"
            },
            {
                "mac":[
                    "c2:c2:c2:c2:c2:c2"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.209"
            },
            {
                "mac":[
                    "c3:c3:c3:c3:c3:c3"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.210"
            },
            {
                "mac":[
                    "d1:d1:d1:d1:d1:d1"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.211"
            },
            {
                "mac":[
                    "d2:d2:d2:d2:d2:d2"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.212"
            },
            {
                "mac":[
                    "d3:d3:d3:d3:d3:d3"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.213"
            }
        ]
    }
    Copy to Clipboard Toggle word wrap
  3. 保存新文件。
  4. 初始化 stack 用户:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  5. 将 JSON 清单文件导入到 director 中并注册节点

    $ openstack overcloud node import <inventory_file>
    Copy to Clipboard Toggle word wrap

    <inventory_file> 替换为第一步中创建的文件的名称。

  6. 将内核和 ramdisk 镜像分配给每个节点:

    $ openstack overcloud node configure <node>
    Copy to Clipboard Toggle word wrap

2.3. 验证可用的 Red Hat Ceph Storage 软件包

验证所有必需的软件包都可用,以避免 overcloud 部署失败。

2.3.1. 验证 cephadm 软件包安装

验证至少在一个 overcloud 节点上安装了 cephadm 软件包。cephadm 软件包用于引导 Ceph Storage 集群的第一个节点。

cephadm 软件包包含在 overcloud-hardened-uefi-full.qcow2 镜像中。tripleo_cephadm 角色使用 Ansible package 模块来确保镜像中存在它。

2.4. 为 HCI 环境部署软件镜像

为 HCI 环境配置的节点必须使用 overcloud-hardened-uefi-full.qcow2 软件镜像。使用此软件镜像需要 Red Hat OpenStack Platform (RHOSP)订阅。

流程

  1. 打开 /home/stack/templates/overcloud-baremetal-deploy.yaml 文件。
  2. 为需要 overcloud-hardened-uefi-full 镜像的节点添加或更新 image 属性。您可以将镜像设置为在特定节点上,或设置为使用特定角色的所有节点:

    特定节点

    - name: Ceph
      count: 3
      instances:
      - hostname: overcloud-ceph-0
        name: node00
        image:
          href: file:///var/lib/ironic/images/overcloud-minimal.qcow2
      - hostname: overcloud-ceph-1
        name: node01
        image:
          href: file:///var/lib/ironic/images/overcloud-hardened-uefi-full.qcow2
      - hostname: overcloud-ceph-2
        name: node02
        image:
          href: file:///var/lib/ironic/images/overcloud-hardened-uefi-full.qcow2
    Copy to Clipboard Toggle word wrap

    为特定角色配置的所有节点

    - name: ComputeHCI
      count: 3
      defaults:
        image:
          href: file:///var/lib/ironic/images/overcloud-hardened-uefi-full.qcow2
      instances:
      - hostname: overcloud-ceph-0
        name: node00
      - hostname: overcloud-ceph-1
        name: node01
      - hostname: overcloud-ceph-2
        name: node02
    Copy to Clipboard Toggle word wrap

  3. roles_data.yaml 角色定义文件中,将 rhsm_enforce 参数设置为 False

    rhsm_enforce: False
    Copy to Clipboard Toggle word wrap
  4. 运行 provisioning 命令:

    (undercloud)$ openstack overcloud node provision \
    --stack overcloud \
    --output /home/stack/templates/overcloud-baremetal-deployed.yaml \
    /home/stack/templates/overcloud-baremetal-deploy.yaml
    Copy to Clipboard Toggle word wrap
  5. overcloud-baremetal-deployed.yaml 环境文件传递给 openstack overcloud deploy 命令。

2.5. 为 HCI 设计节点

要为 HCI 指定节点,您必须创建一个新角色文件来配置 ComputeHCI 角色,并使用 ComputeHCI 的资源类配置裸机节点。

步骤

  1. stack 用户的身份登录 undercloud。
  2. 查找 stackrc 凭证文件:

    [stack@director ~]$ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 生成一个名为 roles_data.yaml 的新角色数据文件,其中包含 ControllerComputeHCI 角色:

    (undercloud)$ openstack overcloud roles generate Controller ComputeHCI -o ~/roles_data.yaml
    Copy to Clipboard Toggle word wrap
  4. 打开 roles_data.yaml,并确保它有以下参数和部分:

    Expand
    section/Parameter

    角色评论

    Role: ComputeHCI

    角色名称

    名称:ComputeHCI

    description

    HCI 角色

    HostnameFormatDefault

    %stackname%-novaceph-%index%

    deprecated_nic_config_name

    ceph.yaml

  5. 将 overcloud 的 ComputeHCI 节点添加到节点定义模板 node.jsonnode.yaml 中,为 overcloud 注册。
  6. 检查节点硬件:

    (undercloud)$ openstack overcloud node introspect --all-manageable --provide
    Copy to Clipboard Toggle word wrap
  7. 使用自定义 HCI 资源类标记您要为 HCI 指定的每个裸机节点:

    (undercloud)$ openstack baremetal node set \
     --resource-class baremetal.HCI <node>
    Copy to Clipboard Toggle word wrap

    <node> 替换为裸机节点的 ID。

  8. ComputeHCI 角色添加到 /home/stack/templates/overcloud-baremetal-deploy.yaml 文件中,并定义您要分配给节点的预测节点放置、资源类或其他属性:

    - name: Controller
       count: 3
    - name: ComputeHCI
    	 count: 1
       defaults:
    	   resource_class: baremetal.HCI
    Copy to Clipboard Toggle word wrap
  9. 打开 baremetal.yaml 文件,并确保该文件包含 HCI 所需的网络配置。以下是一个配置示例:

    - name: ComputeHCI
      count: 3
      hostname_format: compute-hci-%index%
      defaults:
        profile: ComputeHCI
        network_config:
          template: /home/stack/templates/three-nics-vlans/compute-hci.j2
        networks:
        - network: ctlplane
          vif: true
        - network: external
          subnet: external_subnet
        - network: internalapi
          subnet: internal_api_subnet01
        - network: storage
          subnet: storage_subnet01
        - network: storage_mgmt
          subnet: storage_mgmt_subnet01
        - network: tenant
          subnet: tenant_subnet01
    Copy to Clipboard Toggle word wrap
    注意

    ComputeHCI 角色中的网络配置包含 storage_mgmt 网络。CephOSD 节点使用此网络生成冗余数据副本。Compute 角色的网络配置不包含此网络。

    如需更多信息,请参阅 裸机置备

  10. 运行 provisioning 命令:

    (undercloud)$ openstack overcloud node provision \
    --stack overcloud \
    --output /home/stack/templates/overcloud-baremetal-deployed.yaml \
    /home/stack/templates/overcloud-baremetal-deploy.yaml
    Copy to Clipboard Toggle word wrap
  11. 在单独的终端中监控调配进度。

    (undercloud)$ watch openstack baremetal node list
    Copy to Clipboard Toggle word wrap
    注意

    watch 命令默认每 2 秒更新一次。-n 选项将续订计时器设置为不同的值。

  12. 要停止 监视 过程,请输入 Ctrl-c
  13. 验证:在置备成功后,节点状态从 available 变为 active

2.6. 为多磁盘 Ceph 集群定义根磁盘

Ceph Storage 节点通常使用多个磁盘。director 必须使用多个磁盘配置来识别根磁盘。overcloud 镜像在置备过程中写入根磁盘。

硬件属性用于识别根磁盘。有关您可以用来识别根磁盘的属性的更多信息,请参阅 第 2.6.1 节 “标识根磁盘的属性”

流程

  1. 从每个节点的硬件内省验证磁盘信息:

    (undercloud)$ openstack baremetal introspection data save <node_uuid> | --file <output_file_name>
    Copy to Clipboard Toggle word wrap
    • <node_uuid > 替换为节点的 UUID。
    • 将 < output_file_name > 替换为包含节点内省输出的文件名称。

      例如,一个节点的数据可能会显示 3 个磁盘:

      [
        {
          "size": 299439751168,
          "rotational": true,
          "vendor": "DELL",
          "name": "/dev/sda",
          "wwn_vendor_extension": "0x1ea4dcc412a9632b",
          "wwn_with_extension": "0x61866da04f3807001ea4dcc412a9632b",
          "model": "PERC H330 Mini",
          "wwn": "0x61866da04f380700",
          "serial": "61866da04f3807001ea4dcc412a9632b"
        }
        {
          "size": 299439751168,
          "rotational": true,
          "vendor": "DELL",
          "name": "/dev/sdb",
          "wwn_vendor_extension": "0x1ea4e13c12e36ad6",
          "wwn_with_extension": "0x61866da04f380d001ea4e13c12e36ad6",
          "model": "PERC H330 Mini",
          "wwn": "0x61866da04f380d00",
          "serial": "61866da04f380d001ea4e13c12e36ad6"
        }
        {
          "size": 299439751168,
          "rotational": true,
          "vendor": "DELL",
          "name": "/dev/sdc",
          "wwn_vendor_extension": "0x1ea4e31e121cfb45",
          "wwn_with_extension": "0x61866da04f37fc001ea4e31e121cfb45",
          "model": "PERC H330 Mini",
          "wwn": "0x61866da04f37fc00",
          "serial": "61866da04f37fc001ea4e31e121cfb45"
        }
      ]
      Copy to Clipboard Toggle word wrap
  2. 使用唯一硬件属性为节点设置根磁盘:

    (undercloud)$ openstack baremetal node set --property root_device='{<property_value>}' <node-uuid>

    • 将 < property_value > 替换为内省数据中的唯一硬件属性值,以设置根磁盘。
    • <node_uuid > 替换为节点的 UUID。

      注意

      唯一的硬件属性是硬件内省步骤中唯一标识磁盘的任何属性。例如,以下命令使用磁盘序列号来设置根磁盘:

      (undercloud)$ openstack baremetal node set --property root_device='{"serial": "61866da04f380d001ea4e13c12e36ad6"}' 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0

  3. 将每个节点的 BIOS 配置为首先从网络引导,然后配置根磁盘。

director 识别特定磁盘以用作根磁盘。运行 openstack overcloud node provision 命令时,director 置备 overcloud 镜像并将其写入根磁盘。

2.6.1. 标识根磁盘的属性

您可以定义多个属性以帮助 director 识别根磁盘:

  • model(字符串):设备识别码。
  • vendor(字符串):设备厂商。
  • serial(字符串):磁盘序列号。
  • hctl(字符串):SCSI 的 Host:Channel:Target:Lun。
  • size(整数):设备的大小(以 GB 为单位)。
  • wwn(字符串):唯一的存储 ID。
  • wwn_with_extension(字符串):唯一存储 ID 附加厂商扩展名。
  • wwn_vendor_extension(字符串):唯一厂商存储标识符。
  • rotational(布尔值):旋转磁盘设备为 true (HDD),否则为 false (SSD)。
  • name(字符串):设备名称,例如:/dev/sdb1。
重要

name 属性用于具有持久名称的设备。不要使用 name 属性来为没有持久名称的设备设置根磁盘,因为在节点引导时该值可能会改变。

第 3 章 为 HCI 配置 Red Hat Ceph Storage 集群

本章论述了如何为 HCI 环境配置和部署 Red Hat Ceph Storage 集群。

3.1. 部署先决条件

在尝试配置和部署 Red Hat Ceph Storage 集群前,确认已执行以下内容:

  • 使用裸机置备服务(ironic)置备裸机实例及其网络。有关置备裸机实例的更多信息,请参阅 裸机置备

3.2. openstack overcloud ceph deploy 命令

如果使用 director 部署 Ceph 集群,则必须使用 openstack overcloud ceph deploy 命令。如需命令选项和参数的完整列表,请参阅 命令行界面参考 中的 openstack overcloud ceph deploy

openstack overcloud ceph deploy --help 命令提供环境中当前可用的选项和参数。

3.3. HCI 的 Ceph 配置覆盖

标准格式初始化文件是 Ceph 集群配置的一个选项。然后,使用此初始化文件来使用 cephadm boottap --config <file_name& gt; 或 openstack overcloud ceph deploy --config <file_name& gt; 命令配置 Ceph 集群。

在超融合节点上并置 Ceph OSD 和计算服务会面临 Red Hat Ceph Storage 和计算服务之间的资源争用。这是因为服务不知道 colocation。资源争用可能会导致服务降级,这会降低超融合的好处。

可使用初始文件调整资源分配来管理资源争用。下面创建一个名为 initial-ceph.conf 的初始化文件,然后使用 openstack overcloud ceph deploy 命令配置 HCI 部署。

$ cat <<EOF > initial-ceph.conf
[osd]
osd_memory_target_autotune = true
osd_numa_auto_affinity = true
[mgr]
mgr/cephadm/autotune_memory_target_ratio = 0.2
EOF
$ openstack overcloud ceph deploy --config initial-ceph.conf
Copy to Clipboard Toggle word wrap

osd_memory_target_autotune 选项被设置为 true,以便 OSD 守护进程根据 osd_memory_target 配置选项调整其内存消耗。autotune_memory_target_ratio 默认为 0.7。这表示系统中 RAM 总量的 70% 是非自动调优 Ceph 守护进程所消耗的内存的起点。然后,剩余的内存由 OSD 划分,假设所有 OSD 的 osd_memory_target_autotune 设置为 true。对于 HCI 部署,将 mgr/cephadm/autotune_memory_target_ratio 设置为 0.2,以确保计算服务可以使用更多内存。0.2 值是一个谨慎的起点。部署后,必要时,使用 ceph 命令更改此值。

两个 NUMA 节点系统可以在一个 NUMA 节点上托管对延迟敏感的 Nova 工作负载,另一个 NUMA 节点上的 Ceph OSD 工作负载。要将 Ceph OSD 配置为使用不供计算工作负载使用的特定 NUMA 节点,请使用以下 Ceph OSD 配置之一:

  • osd_numa_node 将关联性设置为 numa 节点
  • osd_numa_auto_affinity 会自动设置为存储和网络匹配的 NUMA 节点

如果 NUMA 节点和磁盘控制器上都存在网络接口,则对存储网络使用 NUMA 节点 0 上的网络接口,并在 NUMA 节点 0 上托管 Ceph OSD 工作负载。在 NUMA 节点 1 上托管 Nova 工作负载,并使用 NUMA 节点 1 上的网络接口。将 osd_numa_auto_affinity 设置为 true 以实现此配置。或者,osd_numa_node 可以直接设置为 0, 并且没有为 osd_numa_auto_affinity 设置值,使其默认为 false

当 OSD 离线时,超融合集群回填可能会减慢回填过程。在交换速度较慢的恢复过程中,回填活动对并置计算工作负载的影响较低。Red Hat Ceph Storage 5 有以下默认值来控制回填活动的速度:

  • osd_recovery_op_priority = 3
  • osd_max_backfills = 1
  • osd_recovery_max_active_hdd = 3
  • osd_recovery_max_active_ssd = 10

    注意

    不需要在初始化文件中传递这些默认值,因为它们是默认值。如果为 inital 配置需要除默认值以外的值,请在部署前使用所需的值将它们添加到初始化文件中。部署后,使用命令 'ceph config set osd'。

3.4. 配置 Red Hat Ceph Storage 集群名称

您可以使用您配置的名称部署 Red Hat Ceph Storage 集群。默认名称为 ceph

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 使用以下命令配置 Ceph Storage 集群的名称:

    OpenStack overcloud ceph deploy \ --cluster <cluster_name>

    $ OpenStack overcloud ceph deploy \ --cluster central \

注意

目前不会创建密钥环文件。密钥环文件是在 overcloud 部署期间创建的。keyring 文件会继承在此过程中配置的集群名称。有关 overcloud 部署的更多信息,请参阅 第 5.8 节 “为 HCI 启动 overcloud 部署”

在上例中,Ceph 集群名为 central。部署期间,中央 Ceph 集群的配置和密钥环文件将在 /etc/ceph 中创建。

[root@oc0-controller-0 ~]# ls -l /etc/ceph/
total 16
-rw-------. 1 root root  63 Mar 26 21:49 central.client.admin.keyring
-rw-------. 1  167  167 201 Mar 26 22:17 central.client.openstack.keyring
-rw-------. 1  167  167 134 Mar 26 22:17 central.client.radosgw.keyring
-rw-r--r--. 1 root root 177 Mar 26 21:49 central.conf
Copy to Clipboard Toggle word wrap

故障排除

如果您为 Ceph Storage 集群配置自定义名称,则可能会出现以下错误:

monclient: get_monmap_and_config 无法识别要联系的 monitor,因为

如果显示此错误,请在 Ceph 部署后使用以下命令:

cephadm shell --config <configuration_file> --keyring <keyring_file>

例如,如果在将集群名称配置为 Central 时显示此错误,则使用以下命令:

cephadm shell --config /etc/ceph/central.conf \
              --keyring /etc/ceph/central.client.admin.keyring
Copy to Clipboard Toggle word wrap

以下命令也可以用作替代方案:

cephadm shell --mount /etc/ceph:/etc/ceph
export CEPH_ARGS='--cluster central'
Copy to Clipboard Toggle word wrap

3.5. 使用网络数据文件配置网络选项

网络数据文件描述了 Red Hat Ceph Storage 集群使用的网络。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 创建一个 YAML 格式文件,该文件定义名为 network_data.yaml 的自定义网络属性。

    重要

    使用网络隔离,标准网络部署由两个存储网络组成,它们映射到两个 Ceph 网络:

    • 存储网络 storage 映射到 Ceph network, 网络 public_network。此网络处理存储流量,如从 Compute 节点到 Ceph 集群的 RBD 流量。
    • 存储网络 storage_mgmt 映射到 Ceph 网络 cluster_network。此网络处理存储管理流量,如 Ceph OSD 之间的数据复制。
  3. 使用 openstack overcloud ceph deploy 命令和 --crush-hierarchy 选项来部署配置。

    openstack overcloud ceph deploy \
            deployed_metal.yaml \
            -o deployed_ceph.yaml \
            --network-data network_data.yaml
    Copy to Clipboard Toggle word wrap
    重要

    openstack overcloud ceph deploy 命令使用由 -network-data 选项指定的网络数据文件来确定要用作 public_networkcluster_network 的网络。命令假定这些网络在网络数据文件中命名为 storagestorage_mgmt,除非使用不同的名称由 --public-network-name 和-- cluster-network-name 选项指定。

    在使用网络隔离部署时,您必须使用 the -network-data 选项。如果没有使用这个选项,则默认 undercloud (192.168.24.0/24)将用于 public_networkcluster_network

3.6. 使用配置文件配置网络选项

可以通过配置文件来指定网络选项,作为网络数据文件的替代选择。

重要

使用此方法配置网络选项会覆盖 network_data.yaml 中自动生成的值。在使用这种网络配置方法时,请确保设置了所有四个值。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 创建标准格式初始化文件来配置 Ceph 集群。如果您已经创建了包含其他配置选项的文件,可以向其中添加网络配置。
  3. 在文件的 [global] 部分中添加以下参数:

    • public_network
    • cluster_network
    • ms_bind_ipv4

      重要

      确保 public_networkcluster_network 映射到与 storagestorage_mgmt 相同的网络。

      以下是具有多个子网和自定义网络名称的网络配置的配置文件条目示例:

      [global]
      public_network = 172.16.14.0/24,172.16.15.0/24
      cluster_network = 172.16.12.0/24,172.16.13.0/24
      ms_bind_ipv4 = True
      ms_bind_ipv6 = False
      Copy to Clipboard Toggle word wrap
  4. 使用命令 openstack overcloud ceph deployuse-config 选项来部署配置文件。

    $ openstack overcloud ceph deploy \
      --config initial-ceph.conf --network-data network_data.yaml
    Copy to Clipboard Toggle word wrap

3.7. 为 OSD 配置 CRUSH 层次结构

您可以在 OSD 部署期间配置自定义 Controlled Replication Under Scalable Hashing (CRUSH)层次结构,将 OSD 位置 属性添加到 Ceph 存储集群 主机 规格中。location 属性配置 OSD 放置到 CRUSH 层次结构中的位置。

注意

location 属性仅设置初始 CRUSH 位置。属性的后续更改将被忽略。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc

  3. 创建配置文件以定义自定义 CRUSH 层次结构,如 crush_hierarchy.yaml
  4. 在文件中添加以下配置:

    ceph_crush_hierarchy:
      <osd_host>:
        root: default
        rack: <rack_num>
      <osd_host>:
        root: default
        rack: <rack_num>
      <osd_host>:
        root: default
        rack: <rack_num>
    Copy to Clipboard Toggle word wrap
    • <osd_host > 替换为部署 OSD 的节点的主机名,如 ceph-0
    • <rack_num > 替换为部署 OSD 的机架数量,如 r0
  5. 使用自定义 OSD 布局部署 Ceph 集群:

    openstack overcloud ceph deploy \
            deployed_metal.yaml \
            -o deployed_ceph.yaml \
            --osd-spec osd_spec.yaml \
            --crush-hierarchy crush_hierarchy.yaml
    Copy to Clipboard Toggle word wrap

Ceph 集群是使用自定义 OSD 布局创建的。

上面的示例文件将导致以下 OSD 布局:

ID  CLASS  WEIGHT       TYPE NAME                  STATUS  REWEIGHT  PRI-AFF
-1         0.02939      root default
-3         0.00980      rack r0
-2         0.00980          host ceph-node-00
 0    hdd  0.00980              osd.0                 up   1.00000   1.00000
-5         0.00980      rack r1
-4         0.00980          host ceph-node-01
 1    hdd  0.00980              osd.1                 up   1.00000   1.00000
-7         0.00980      rack r2
-6         0.00980          host ceph-node-02
 2    hdd  0.00980              osd.2                 up   1.00000   1.00000
Copy to Clipboard Toggle word wrap
注意

设备类由 Ceph 自动检测,但 CRUSH 规则与池关联。在 overcloud 部署期间,仍然使用 CephCrushRules 参数定义并创建池。

其他资源

如需更多信息,请参阅 Red Hat Ceph Storage 安装指南中的 Red Hat Ceph Storage 工作负载注意事项

3.8. 配置 Ceph 服务放置选项

您可以使用自定义角色文件定义哪些节点运行哪些 Ceph 服务。只有因为环境不使用默认的角色分配时,才需要自定义角色文件。例如,在部署超融合节点时,预部署的计算节点应标记为 osd,服务类型为 osd,使其具有包含计算实例列表的放置列表。

roles_data.yaml 文件中的服务定义决定了哪个裸机实例运行哪个服务。默认情况下,当 CephStorage 角色具有 CephOSD 服务时,Controller 角色具有 CephMon 和 CephMgr 服务。与大多数可组合服务不同,Ceph 服务不需要 heat 输出来确定如何配置服务。roles_data.yaml 文件总是决定 Ceph 服务放置,即使部署的 Ceph 进程在 Heat 运行之前发生。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 创建定义自定义角色的 YAML 格式文件。
  3. 部署配置文件:

    $ openstack overcloud ceph deploy \
            deployed_metal.yaml \
            -o deployed_ceph.yaml \
            --roles-data custom_roles.yaml
    Copy to Clipboard Toggle word wrap

3.9. 为 Ceph 节点配置 SSH 用户选项

openstack overcloud ceph deploy 命令创建用户和密钥并将其分发到主机,因此不需要执行本节中的步骤。但是,它是一个受支持的选项。

Cephadm 使用 SSH 连接到所有受管远程 Ceph 节点。Red Hat Ceph Storage 集群部署过程在所有 overcloud Ceph 节点上创建一个帐户和 SSH 密钥对。然后,将密钥对提供给 Cephadm,使它能够与节点通信。

您可以使用 openstack overcloud ceph user enable 命令在 Ceph 集群创建前创建 SSH 用户。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 创建 SSH 用户:

    $ OpenStack overcloud ceph user enable

    注意

    默认用户名是 ceph-admin。要指定不同的用户名,请使用 --cephadm-ssh-user 选项指定不同的用户名

    openstack overcloud ceph user enable --cephadm-ssh-user <custom_user_name>

    建议您使用默认名称,且不使用 --cephadm-ssh-user 参数。

    如果事先创建用户,请在执行 openstack overcloud ceph deploy 时使用 parameter--skip-user-create

3.9.2. 禁用 SSH 用户

禁用 SSH 用户将禁用 Cephadm。禁用 Cephadm 会删除服务管理 Ceph 集群的能力,并防止关联的命令正常工作。它还可防止 Ceph 节点 overcloud 扩展操作。它还会删除所有公钥和 SSH 私钥。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 使用 openstack overcloud ceph user disable --fsid <FSID> ceph_spec.yaml 命令来禁用 SSH 用户。

    注意

    FSID 位于 deployed_ceph.yaml 环境文件中。

    重要

    不建议 openstack overcloud ceph user disable 命令,除非需要禁用 Cephadm。

    重要

    要在禁用后启用 SSH 用户和 Cephadm 服务,请使用 openstack overcloud ceph user enable --fsid <FSID> ceph_spec.yaml 命令。

    注意

    此命令需要 Ceph 规格文件的路径才能决定:

    • 哪些主机需要 SSH 用户。
    • 哪些主机具有 _admin 标签并需要 SSH 私钥。
    • 哪些主机需要公共 SSH 密钥。

    如需有关规格文件以及如何生成它们的更多信息,请参阅生成服务规格。

3.10. 访问 Ceph Storage 容器

过渡到容器化服务 指南中的 获取和修改容器镜像,包含有关如何准备 registry 和 undercloud 和 overcloud 配置以使用容器镜像的步骤和信息。使用本节中的信息调整这些步骤来访问 Ceph Storage 容器。

从 overcloud 访问 Ceph Storage 容器有两个选项。

3.10.1. 在 undercloud 上缓存容器

准备过程中修改镜像 的过程描述了以下命令:

sudo openstack tripleo container image prepare \
  -e ~/containers-prepare-parameter.yaml \
Copy to Clipboard Toggle word wrap

如果不使用 --container-image-prepare 选项为 openstack overcloud ceph deploy 命令提供身份验证凭据,并且直接从远程注册表下载 Ceph 容器,如从远程注册表下载 容器 中所述,您必须在部署 Ceph 之前运行 sudo openstack tripleo container image prepare 命令。

3.10.2. 直接从远程注册中心下载容器

您可以将 Ceph 配置为直接从远程注册表中下载容器。

流程

  1. 使用 准备容器镜像 的步骤,创建 containers-prepare-parameter.yaml 文件。
  2. 使用 ContainerImageRegistryCredentials 参数将远程 registry 凭证添加到 containers-prepare-parameter.yaml 文件中,如 从私有 registry 获取容器镜像 中所述。
  3. 部署 Ceph 时,请使用 openstack overcloud ceph deploy 命令传递 containers-prepare-parameter.yaml 文件。

    openstack overcloud ceph deploy \
            --container-image-prepare containers-prepare-parameter.yaml
    Copy to Clipboard Toggle word wrap
    注意

    如果您没有在 undercloud 上缓存容器,如 undercloud 上的缓存容器 中所述 您应该在部署 Ceph 时将相同的 containers-prepare-parameter.yaml 文件传递给 openstack overcloud ceph deploy 命令。这将缓存 undercloud 上的容器。

结果

containers-prepare-parameter.yaml 中的凭据供 cephadm 命令用于对远程 registry 进行身份验证并下载 Ceph Storage 容器。

第 4 章 为 HCI 自定义 Red Hat Ceph Storage 集群

Red Hat OpenStack Platform (RHOSP) director 使用默认配置来部署容器化 Red Hat Ceph Storage。您可以通过覆盖默认设置来自定义 Ceph Storage。

先决条件

  • 服务器已部署,并且配置了存储网络。
  • 通过 openstack overcloud node provision -o ~/deployed_metal.yaml ….

4.1. 配置选项

配置 Red Hat Ceph Storage 集群有几个选项。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 可选:使用标准格式初始化(ini)文件来配置 Ceph 集群。

    1. 使用配置选项创建 文件。

      以下是简单配置文件的示例:

      [global]
      osd crush chooseleaf type = 0
      log_file = /var/log/ceph/$cluster-$type.$id.log
      
      [mon]
      mon_cluster_log_to_syslog = true
      Copy to Clipboard Toggle word wrap
    2. 保存配置文件。
    3. 使用 openstack overcloud ceph deploy --config <configuration_file_name > 命令来部署配置。

      <configuration_file_name > 替换为您创建的文件的名称。

      $ openstack overcloud ceph deploy --config initial-ceph.conf
      Copy to Clipboard Toggle word wrap
  3. 可选:将配置值发送到 cephadm bootstrap 命令:

    OpenStack overcloud ceph deploy --force \ --cephadm-extra-args '<optional_arguments>' \

    <optional_arguments > 替换为提供给底层命令的配置值。

    注意

    使用 parameters --log-to-file and- -skip-prepare-host 时,使用命令 openstack overcloud ceph deploy --force \ --cephadm-extra-args '--log-to-file --skip-prepare-host' \

4.2. 生成服务规格(可选)

Red Hat Ceph Storage 集群服务规格是一个 YAML 文件,用于描述 Ceph Storage 服务的部署。它由 tripleo 自动生成,然后部署 Ceph Storage 集群。它通常不必单独生成。

可以创建自定义服务规格来自定义 Red Hat Ceph Storage 集群。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 生成规格文件:

    OpenStack overcloud ceph spec -o '<specification_file>'

    <specification_file > 替换为要生成的文件的名称,使用当前的服务规格。

    OpenStack overcloud ceph spec -o '~/ceph_spec.yaml'

  3. 使用所需配置编辑生成的文件。
  4. 部署自定义服务规格:

    OpenStack overcloud ceph deploy \ deployed_metal.yaml \ -o deployed_ceph.yaml \ --ceph-spec <specification_file>

    <specification_file> 替换为自定义服务规格文件的名称。

    OpenStack overcloud ceph deploy \ deployed_metal.yaml \ -o deployed_ceph.yaml \ --ceph-spec ~/ceph_spec.yaml

您必须有一个 Ceph Storage 容器,才能将 Red Hat Openstack Platform (RHOSP)配置为使用 Red Hat Ceph Storage 和 NFS Ganesha。如果外部 Ceph Storage 集群仅提供 Block (通过 RBD)、Object (通过 RGW)或文件(通过原生 CephFS)存储,则不需要 Ceph Storage 容器。

RHOSP 17.0 需要 Red Hat Ceph Storage 5.x (Ceph 软件包 16.x)或更新版本与 Red Hat Enterprise Linux 9 兼容。Ceph Storage 5.x 容器托管在 registry.redhat.io 上,它是一个需要身份验证的 registry。如需更多信息,请参阅 容器镜像准备参数

4.4. 配置高级 OSD 规格

当默认规格没有为 Ceph Storage 集群提供必要功能时,配置高级 OSD 规格。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 创建定义高级 OSD 规格的 YAML 格式文件。

    以下是自定义 OSD 规格的示例。

    data_devices:
      rotational: 1
    db_devices:
      rotational: 0
    Copy to Clipboard Toggle word wrap

    本例会创建一个 OSD 规格,其中所有轮转设备都是数据设备,所有非轮转设备都将用作共享设备。当构建动态 Ceph 服务规格时,如果 service_typeosd,则规格文件中的任何内容都会附加到规范的部分中。

  3. 保存规格文件。
  4. 部署规格:

    openstack overcloud ceph deploy \ --osd-spec <osd_specification_file>

    <osd_specification_file > 替换为您创建的规格文件的名称。

    $ openstack overcloud ceph deploy \ --osd-spec osd_spec.yaml \

其他资源

有关在服务规格中配置 OSD 的与 OSD 相关的列表,请参阅 Red Hat Ceph Storage Operations Guide 中的 部署 OSD 的高级服务规格 和过滤器。

4.5. 从特定于节点的覆盖中迁移

在 Red Hat OpenStack Platform 17.0 之前,使用特定于节点的覆盖来管理非同构服务器硬件。现在,这通过自定义 OSD 规格文件完成。如需有关如何创建自定义 OSD 规格文件的信息,请参阅配置高级 OSD 规格。

4.6. 启用 Ceph on-wire 加密

使用 messenger 版本 2 协议 的安全模式,为所有 Ceph Storage 流量启用加密。配置 Ceph 存储,如 Red Hat Ceph Storage 数据安全性和强化指南中的加密和 密钥管理 中所述,以启用 Ceph 在线加密。

其他资源

有关 Ceph 进行线加密的更多信息,请参阅 Red Hat Ceph Storage 架构指南中的 Ceph 在线加密

第 5 章 为 HCI 自定义存储服务

Red Hat OpenStack Platform (RHOSP) director 提供了必要的 heat 模板和环境文件,以启用基本的 Ceph Storage 配置。

director 使用 /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml 环境文件为 openstack overcloud ceph deploy 部署的 Ceph 集群添加额外的配置。

有关 RHOSP 中容器化服务的更多信息,请参阅 Director 安装和使用中的使用 CLI 工具配置基本的 overcloud

5.1. 为 HCI 配置计算服务资源

在超融合节点上并置 Ceph OSD 和计算服务会面临 Red Hat Ceph Storage 和计算服务之间的资源争用。这是因为服务不知道 colcation。资源争用可能会导致服务降级,这会降低超融合的好处。

配置计算服务使用的资源可减少资源争用,并提高 HCI 性能。

流程

  1. 以 stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. NovaReservedHostMemory 参数添加到 ceph-overrides.yaml 文件中。以下是用法示例。

    parameter_defaults:
      ComputeHCIParameters:
        NovaReservedHostMemory: 75000
    Copy to Clipboard Toggle word wrap

NovaReservedHostMemory 参数覆盖 /etc/nova/nova.confreserved_host_memory_mb 的默认值。参数设置为停止 Nova 调度程序向虚拟机提供内存(Ceph OSD 需要)。

除了虚拟机监控程序的默认保留内存外,上面的示例还为每个主机每 10 个 OSD 保留 5 GB 的 OSD。在 IOPS 优化的集群中,您可以通过为每个 OSD 保留更多内存来提高性能。5 GB 数字作为起点提供,您可以根据需要进一步优化。

重要

使用 openstack overcloud deploy 命令时包含此文件。

5.2. 配置自定义环境文件

director 将基本默认设置应用到部署的 Red Hat Ceph Storage 集群。您必须在自定义环境文件中定义额外的配置。

流程

  1. stack 用户身份登录 undercloud。
  2. 创建用于定义自定义配置的文件。

    vi /home/stack/templates/storage-config.yaml

  3. 向文件中添加 parameter_defaults 部分。
  4. 添加自定义配置参数。有关参数定义的更多信息,请参阅 Overcloud 参数

    parameter_defaults:
        CinderEnableIscsiBackend: false
        CinderEnableRbdBackend: true
        CinderBackupBackend: ceph
        NovaEnableRbdBackend: true
        GlanceBackend: rbd
    Copy to Clipboard Toggle word wrap
    注意

    自定义配置文件中定义的参数覆盖 /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml 中的任何相应的默认设置。

  5. 保存该文件。

其他资源

自定义配置在 overcloud 部署期间应用。

5.3. 启用 Ceph 元数据服务器

Ceph 元数据服务器(MDS)运行 ceph-mds 守护进程。此守护进程管理与 CephFS 中存储的文件相关的元数据。CephFS 可以原生使用,或者通过 NFS 协议使用。

注意

红帽支持使用共享文件系统服务(manila)的原生 CephFS 和 CephFS NFS 后端部署 Ceph MDS。

流程

  • 要启用 Ceph MDS,请在部署 overcloud 时使用以下环境文件:

    /usr/share/openstack-tripleo-heat-templates/environments/cephadm/ceph-mds.yaml
    Copy to Clipboard Toggle word wrap
注意

默认情况下,Ceph MDS 部署在 Controller 节点上。您可以在自己的专用节点上部署 Ceph MDS。

5.4. Ceph 对象网关对象存储

Ceph 对象网关(RGW)提供了一个接口来访问 Red Hat Ceph Storage 集群中的对象存储功能。

使用 director 部署 Ceph 时,director 会自动启用 RGW。这是 Object Storage 服务(swift)的直接替换。通常使用对象存储服务的服务可以使用 RGW,而无需额外的配置。Object Storage 服务仍可作为升级 Ceph 集群的对象存储选项使用。

不需要单独的 RGW 环境文件启用它。有关其他对象存储选项的环境文件的更多信息,请参阅 第 5.5 节 “Red Hat OpenStack Platform 对象存储的部署选项”

默认情况下,Ceph Storage 允许每个 Object Storage Daemon (OSD)有 250 个放置组。启用 RGW 时,Ceph Storage 会创建 RGW 所需的以下六个额外池:

  • .rgw.root
  • <zone_name>.rgw.control
  • <zone_name>.rgw.meta
  • <zone_name>.rgw.log
  • <zone_name>.rgw.buckets.index
  • <zone_name>.rgw.buckets.data
注意

在部署中,<zone_name > 替换为池所属的区的名称。

其他资源

5.5. Red Hat OpenStack Platform 对象存储的部署选项

部署 overcloud 对象存储有三个选项:

  • Ceph 对象网关(RGW)

    要部署 RGW,如 第 5.4 节 “Ceph 对象网关对象存储” 所述,请在 overcloud 部署期间包含以下环境文件:

    -e  environments/cephadm/cephadm.yaml
    Copy to Clipboard Toggle word wrap

    此环境文件配置 Ceph 块存储(RBD)和 RGW。

  • Object Storage 服务 (swift)

    要部署 Object Storage 服务(swift)而不是 RGW,请在 overcloud 部署期间包含以下环境文件:

    -e  environments/cephadm/cephadm-rbd-only.yaml
    Copy to Clipboard Toggle word wrap

    cephadm-rbd-only.yaml 文件配置 Ceph RBD,但不配置 RGW。

    注意

    如果在升级 Red Hat Ceph Storage 集群前使用了 Object Storage 服务(swift),您可以继续使用对象存储服务(swift)而不是 RGW,方法是将 environments/ceph-ansible/ceph-ansible.yaml 文件替换为 environments/cephadm/cephadm-rbd-only.yaml。如需更多信息,请参阅 保持 Red Hat OpenStack Platform 更新

    Red Hat OpenStack Platform 不支持从 Object Storage 服务(swift)迁移到 Ceph 对象网关(RGW)。

  • 没有对象存储

    要使用 RBD 部署 Ceph,而不使用 RGW 或 Object Storage 服务(swift),请在 overcloud 部署期间包含以下环境文件:

    -e  environments/cephadm/cephadm-rbd-only.yaml
    -e  environments/disable-swift.yaml
    Copy to Clipboard Toggle word wrap

    cephadm-rbd-only.yaml 文件配置 RBD,但不配置 RGW。disable-swift.yaml 文件可确保 Object Storage 服务(swift)没有部署。

5.6. 将块存储备份服务配置为使用 Ceph

默认禁用 Block Storage Backup 服务(cinder-backup)。必须启用它才能与 Ceph 搭配使用。

流程

要启用块存储备份服务(cinder-backup),请在部署 overcloud 时使用以下环境文件:

`/usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml`.
Copy to Clipboard Toggle word wrap

5.7. 为 Ceph 节点配置多个绑定接口

使用绑定接口组合多个 NIC,并为网络连接添加冗余。如果在 Ceph 节点上有足够的 NIC,可以在每个节点上创建多个绑定接口来扩展冗余功能。

对节点需要的每个网络连接使用绑定接口。这为每个网络提供冗余和专用连接。

有关信息和流程,请参阅 Director 安装和使用指南中的 置备 overcloud 网络

5.8. 为 HCI 启动 overcloud 部署

要实现对 Red Hat OpenStack Platform (RHOSP)环境所做的更改,您必须部署 overcloud。

先决条件

  • 在 undercloud 安装前,在 undercloud.conf 文件中设置 generate_service_certificate=false。否则,您必须在 overcloud 上配置 SSL/TLS,如 安全和强化 指南中的在 overcloud 公共端点上启用 SSL/TLS 中所述。
注意

如果要在 overcloud 部署期间添加 Ceph 仪表板,请参阅 Deploying Red Hat Ceph Storage and Red Hat OpenStack Platform with director 中的将 Red Hat Ceph Storage Dashboard 添加到 overcloud 部署中

流程

  • 部署 overcloud。部署命令需要额外的参数,例如:

    $ openstack overcloud deploy --templates -r /home/stack/templates/roles_data_custom.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/ceph-mds.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml \
      -e /home/stack/templates/storage-config.yaml \
      -e /home/stack/templates/deployed-ceph.yaml \
      --ntp-server pool.ntp.org
    Copy to Clipboard Toggle word wrap

    示例命令使用以下选项:

    • --templates - 从默认的 heat 模板集合 /usr/share/openstack-tripleo-heat-templates/ 创建 overcloud。
    • -r /home/stack/templates/roles_data_custom.yaml - 指定自定义角色定义文件。
    • -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml - 设置 director 以完成之前部署的 Ceph Storage 集群。此环境文件默认部署 RGW。它还会创建池、密钥和守护进程。
    • -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/ceph-mds.yaml - 启用 Ceph 元数据服务器。
    • -e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml - 启用块存储备份服务。
    • -e /home/stack/templates/storage-config.yaml - 添加包含自定义 Ceph Storage 配置的环境文件。
    • -e /home/stack/templates/deployed-ceph.yaml - 添加包含 Ceph 集群设置的环境文件,如前面运行的 openstack overcloud ceph deploy 命令的输出。
    • --ntp-server pool.ntp.org - 设置 NTP 服务器。

      注意

      如需完整的选项列表,请运行 openstack help overcloud deploy 命令。

第 6 章 验证 HCI 配置

部署完成后,验证 HCI 环境是否已正确配置。

6.1. 验证 HCI 配置

部署 HCI 环境后,使用指定的配置验证部署是否成功。

流程

  1. 启动 ceph shell。
  2. 确认 NUMA 和内存目标配置:

    [ceph: root@oc0-controller-0 /]# ceph config dump | grep numa
      osd                                             advanced  osd_numa_auto_affinity                 true
    [ceph: root@oc0-controller-0 /]# ceph config dump | grep autotune
      osd                                             advanced  osd_memory_target_autotune             true
    [ceph: root@oc0-controller-0 /]# ceph config get mgr mgr/cephadm/autotune_memory_target_ratio
    0.200000
    Copy to Clipboard Toggle word wrap
  3. 确认特定的 OSD 配置:

    [ceph: root@oc0-controller-0 /]# ceph config get osd.11 osd_memory_target
    4294967296
    [ceph: root@oc0-controller-0 /]# ceph config get osd.11 osd_memory_target_autotune
    true
    [ceph: root@oc0-controller-0 /]# ceph config get osd.11 osd_numa_auto_affinity
    true
    Copy to Clipboard Toggle word wrap
  4. 确认特定的 OSD 回填配置:

    [ceph: root@oc0-controller-0 /]# ceph config get osd.11 osd_recovery_op_priority
    3
    [ceph: root@oc0-controller-0 /]# ceph config get osd.11 osd_max_backfills
    1
    [ceph: root@oc0-controller-0 /]# ceph config get osd.11 osd_recovery_max_active_hdd
    3
    [ceph: root@oc0-controller-0 /]# ceph config get osd.11 osd_recovery_max_active_ssd
    10
    Copy to Clipboard Toggle word wrap
  5. 确认 Compute 节点上的 reserved_host_memory_mb 配置。

    $ sudo podman exec -ti nova_compute /bin/bash
    bash-5.1$ grep reserved_host_memory_mb /etc/nova/nova.conf
    Copy to Clipboard Toggle word wrap

第 7 章 扩展超融合节点

要扩展或缩减 HCI 节点,请应用相同的扩展 Compute 节点或 Red Hat Ceph Storage 节点的原则和方法。

7.1. 在 HCI 环境中扩展超融合节点

要在 HCI 环境中扩展超融合节点,请按照相同的流程扩展非超融合节点。有关更多信息,请参阅 添加节点到 overcloud

注意

在标记新节点时,请记得使用正确的类别。

7.2. 在 HCI 环境中缩减超融合节点

要在 HCI 环境中缩减超融合节点,您必须重新平衡 HCI 节点上的 Ceph OSD 服务,从 HCI 节点迁移实例,并从 overcloud 中删除计算节点。

流程

  1. 在 HCI 节点上禁用和重新平衡 Ceph OSD 服务。此步骤是必需的,因为 director 在删除 HCI 或 Red Hat Ceph Storage 节点时不会自动重新平衡 Red Hat Ceph Storage 集群。有关更多信息,请参阅 Deploying Red Hat Ceph Storage and Red Hat OpenStack Platform with director 中的扩展 Ceph Storage 集群
  2. 从 HCI 节点迁移实例。如需更多信息,请参阅配置 实例创建指南中的在 Compute 节点间迁移虚拟机
  3. 从 overcloud 移除 Compute 节点。如需更多信息,请参阅 删除计算节点

附录 A. 附加信息

A.1. 配置指南

以下配置指导旨在为创建超融合基础架构环境提供框架。此指南不适用于为每个 Red Hat OpenStack Platform 安装提供确定的配置参数。有关适合您的特定环境的具体指导和建议,请联系红帽客户体验和参与团队

A.1.1. 集群大小并横向扩展

Red Hat Ceph Storage 硬件指南 为 IOPS 优化、吞吐量优化、成本和优化 Ceph 部署场景提供建议。按照最能代表您的部署场景的建议,并添加支持计算工作负载所需的 NIC、CPU 和 RAM。

一个由 7 个节点组成的最佳的、小型配置。除非需要在环境中优化 IOPS 性能且您使用所有闪存存储的要求,否则应使用优化吞吐量的部署场景。

有三个节点 Ceph Storage 集群配置。在这个配置中,您应该:

  • 使用所有闪存存储。
  • ceph.conf 文件中,将 replica_count 参数设置为 3。
  • ceph.conf 文件中,将 min_size 参数设置为 2。

如果节点在这个配置中保留了服务,IOPS 将继续。要保留 3 个数据副本,请复制到第三个节点,直到它返回到服务为止。然后,将数据回填到第三个节点。

注意

最多 64 个节点的 HCI 配置已被测试。一些 HCI 环境示例已记录最多 128 个节点。此类大型集群可以通过 Support Exception 和 Consulting Services 服务参与来考虑。请联系红帽 客户体验与参与团队 以获取指导。

有两个 NUMA 节点的部署可以在一个 NUMA 节点上托管对延迟敏感的计算工作负载,以及另一个 NUMA OSD 服务。如果两个节点上都有网络接口,且磁盘控制器在节点 0 上,请为存储网络使用网络接口,并在节点 0 上托管 Ceph OSD 工作负载。在节点 1 上托管计算工作负载,并将其配置为使用节点 1 上的网络接口。当您需要部署硬件时,请注意哪个 NIC 将使用哪些节点,并尝试在存储和工作负载之间分割它们。

A.1.2. 容量规划和大小

Red Hat Ceph Storage 硬件指南中定义的吞吐量优化 Ceph 解决方案为不需要 IOPS 优化的大多数部署提供平衡解决方案。除了解决方案提供的配置指南外,在创建环境时请注意以下几点:

  • 每个 OSD 的 5 GB RAM 的分配可确保 OSD 具有足够的操作内存。确保您的硬件可以支持这一要求。
  • CPU 速度应与使用中的存储介质匹配。更快的存储介质(如 SSD)的优点可能会被 CPU 识别得太慢,以支持它们。同样,快速 CPU 可以被更快的存储介质更有效地使用。平衡 CPU 和存储介质速度,以便不会成为另一个 CPU 瓶颈。

A.2. 超融合基础架构环境的指南和资源

以下指南包含额外的信息和流程,它们有助于配置超融合基础架构环境。

  • 与 director 一起部署 Red Hat Ceph 和 OpenStack

    • 本指南提供有关使用 Red Hat OpenStack Platform director 创建带有 Red Hat Ceph Storage 集群的 overcloud 的信息。这包括通过 director 自定义 Ceph 集群的说明。
  • director 的安装和使用

    • 本指南提供有关 Red Hat OpenStack Platform 环境的端到端部署指导。其中包括安装 director、规划您的环境以及使用 director 创建 OpenStack 环境。
  • 网络指南

    • 本指南详细介绍了 Red Hat OpenStack Platform 网络任务。
  • 存储指南

    • 本指南详细介绍了在 Red Hat OpenStack Platform 环境中使用和管理持久性存储的不同流程。它还包括配置和管理每种持久性存储类型的相应 OpenStack 服务的步骤。
  • 裸机置备

    • 本指南详细介绍了 Red Hat OpenStack Platform 环境的 overcloud 中裸机置备服务的安装和配置,以便为云用户提供和管理物理机器。
  • 安全和强化指南

    • 本指南提供有关强化 Red Hat OpenStack Platform 环境的安全性的良好实践建议和概念性信息。
  • 发行注记

    • 本文档概述此 Red Hat OpenStack Platform 发行版本的主要功能、功能增强和已知问题。

法律通告

Copyright © 2025 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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

Theme

© 2025 Red Hat