HyperConverged 基础架构指南

Red Hat OpenStack Platform 17.0

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

OpenStack Documentation Team

摘要

本文档描述了超线程的 Red Hat OpenStack Platform 实施,它将计算和 Ceph Storage 服务在同一主机上并置。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

对红帽文档提供反馈

我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。

使用直接文档反馈(DDF)功能

使用 添加反馈 DDF 功能,用于特定句子、段落或代码块上的直接注释。

  1. Multi-page HTML 格式查看文档。
  2. 请确定您看到文档右上角的 反馈 按钮。
  3. 用鼠标指针高亮显示您想评论的文本部分。
  4. 添加反馈
  5. 添加反馈项中输入您的意见。
  6. 可选:添加您的电子邮件地址,以便文档团队可以联系您以讨论您的问题。
  7. Submit

第 1 章 配置和部署 Red Hat OpenStack Platform 超融合基础架构

1.1. HyperConverged 基础架构概述

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

注意

您必须使用 Red Hat Ceph Storage 作为存储供应商。

提示

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

HyperConverged 基础架构 使用 director 部署 Red Hat Ceph 和 OpenStack 中所述的部署过程变体 构建。在此部署场景中,RHOSP director 部署您的云环境,director 调用 overcloud 和 Red Hat Ceph Storage。您管理和扩展 Ceph 集群本身与 overcloud 配置分开。

重要

在部署 Red Hat OpenStack Platform (RHOSP) HCI 环境时,不要启用实例 HA。如果要将 Instance HA 与 Red Hat Ceph Storage 搭配使用超线程 RHOSP 部署,请联系您的红帽代表。

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

第 2 章 部署 HCI 硬件

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

先决条件

2.1. 清理 Ceph Storage 节点磁盘

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

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

警告

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

流程

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

    clean_nodes=true
  2. 保存 /home/stack/undercloud.conf
  3. 更新 undercloud 配置。

    openstack undercloud install

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"
            }
        ]
    }
  3. 保存新文件。
  4. 初始化 stack 用户:

    $ source ~/stackrc
  5. 将 JSON 清单文件导入到 director 并注册节点

    $ openstack overcloud node import <inventory_file>

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

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

    $ openstack overcloud node configure <node>

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

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

2.3.1. 验证 cephadm 软件包安装

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

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

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

    - 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

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

    rhsm_enforce: False
  4. 运行置备命令:

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

2.5. 为 HCI 设计节点

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

步骤

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

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

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

    section/Parameter

    角色注释

    Role: ComputeHCI

    角色名称

    Name: ComputeHCI

    description

    HCI 角色

    HostnameFormatDefault

    %stackname%-novaceph-%index%

    deprecated_nic_config_name

    ceph.yaml

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

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

    (undercloud)$ openstack baremetal node set \
     --resource-class baremetal.HCI <node>

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

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

    - name: Controller
       count: 3
    - name: ComputeHCI
    	 count: 1
       defaults:
    	   resource_class: baremetal.HCI
  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
    注意

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

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

  10. 运行置备命令:

    (undercloud)$ openstack overcloud node provision \
    --stack overcloud \
    --output /home/stack/templates/overcloud-baremetal-deployed.yaml \
    /home/stack/templates/overcloud-baremetal-deploy.yaml
  11. 在单独的终端中监控置备进度。

    (undercloud)$ watch openstack baremetal node list
    注意

    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>
    • <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"
        }
      ]
  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 和 Compute 服务可能会使 Red Hat Ceph Storage 和 Compute 服务之间的资源争用风险。这是因为服务不知道 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

osd_memory_target_autotune 选项被设置为 true,以便 OSD 守护进程根据 osd_memory_target 配置选项调整其内存消耗。autotune_memory_target_ratio 默认为 0.7。这表示系统中 RAM 的总内存是减去非自动 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 上的网络接口用于存储网络,并在 NUMA 节点上托管 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

故障排除

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

monclient: get_monmap_and_config 无法识别要联系的监控器,因为

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

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

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

cephadm shell --config /etc/ceph/central.conf \
              --keyring /etc/ceph/central.client.admin.keyring

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

cephadm shell --mount /etc/ceph:/etc/ceph
export CEPH_ARGS='--cluster central'

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

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

流程

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

    重要

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

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

    openstack overcloud ceph deploy \
            deployed_metal.yaml \
            -o deployed_ceph.yaml \
            --network-data network_data.yaml
    重要

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

    在带有网络隔离部署时,您必须使用 --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
  4. 使用命令 openstack overcloud ceph deploy--config 选项来部署配置文件。

    $ openstack overcloud ceph deploy \
      --config initial-ceph.conf --network-data network_data.yaml

3.7. 为 OSD 配置 CRUSH 层次结构

您可以在 OSD 部署期间配置可扩展哈希下的自定义受控复制(CRUSH)层次结构,将 OSD 位置 属性添加到 Ceph Storage 集群主机 规格中。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>
    • <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

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
注意

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

其他资源

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

3.8. 配置 Ceph 服务放置选项

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

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

流程

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

    $ openstack overcloud ceph deploy \
            deployed_metal.yaml \
            -o deployed_ceph.yaml \
            --roles-data custom_roles.yaml

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

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

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

3.9.1. 在 Red Hat Ceph Storage 集群创建前创建 SSH 用户

您可以使用 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 时使用 --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 服务后启用 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 \

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

3.10.2. 直接从远程 registry 下载容器

您可以将 Ceph 配置为直接从远程 registry 下载容器。

流程

  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
    注意

    如果您不将 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
    2. 保存配置文件。
    3. 使用 openstack overcloud ceph deploy --config <configuration_file_name > 命令来部署配置。

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

      $ openstack overcloud ceph deploy --config initial-ceph.conf
  3. 可选:向 cephadm bootstrap 命令发送配置值:

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

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

    注意

    使用参数 --log-to-file--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 服务的部署。在部署 Ceph Storage 集群前,它由 tripleo 自动生成。它通常不必单独生成。

可以创建自定义服务规格来自定义 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

4.3. 带有 Red Hat Ceph Storage 的 Red Hat OpenStack Platform 的 Ceph 容器

您必须有一个 Ceph Storage 容器,才能将 Red Hat Openstack Platform (RHOSP)配置为使用带有 NFS Ganesha 的 Red Hat Ceph Storage。如果外部 Ceph Storage 集群仅提供 Block (通过 RBD)、Object (通过 RGW)或 File (通过原生 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

    本例会创建一个 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 相关属性的列表,请参阅 Red Hat Ceph Storage Operations 指南中的 部署 OSD 的高级服务规格和过滤器

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

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

4.6. 启用 Ceph on-wire 加密

使用 messenger 版本 2 协议的安全模式为所有 Ceph Storage 流量启用加密。按照 Red Hat Ceph Storage 数据安全性和强化指南中的加密和 密钥管理 中所述,配置 Ceph 存储,以启用 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 部署的其他配置。

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

5.1. 为 HCI 配置 Compute 服务资源

在超融合节点上并置 Ceph OSD 和 Compute 服务可能会使 Red Hat Ceph Storage 和 Compute 服务之间的资源争用风险。这是因为服务不知道协调。资源争用可能会导致服务降级,这降低了超线程的好处。

配置计算服务使用的资源可缓解资源争用并提高了 HCI 性能。

流程

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

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

    parameter_defaults:
      ComputeHCIParameters:
        NovaReservedHostMemory: 75000

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

除了虚拟机监控程序的默认保留内存外,上面的示例为每个 OSD 为每个主机保留 5 GB。在 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
    注意

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

  5. 保存该文件。

其他资源

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

5.3. 启用 Ceph 元数据服务器

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

注意

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

流程

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

    /usr/share/openstack-tripleo-heat-templates/environments/cephadm/ceph-mds.yaml
注意

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

5.4. Ceph 对象网关对象存储

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

当使用 director 部署 Ceph 时,director 会自动启用 RGW。这是对象存储服务(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)

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

    -e  environments/cephadm/cephadm.yaml

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

  • Object Storage 服务 (swift)

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

    -e  environments/cephadm/cephadm-rbd-only.yaml

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

    注意

    如果您在升级 Red Hat Ceph Storage 集群前使用 Object Storage 服务(swift),您可以在升级过程中继续使用 Object Storage 服务(swift)而不是 RGW。 如需更多信息,请参阅了解 Red Hat OpenStack Platform Updated

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

  • 没有对象存储

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

    -e  environments/cephadm/cephadm-rbd-only.yaml
    -e  environments/disable-swift.yaml

    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`.

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 仪表板添加到 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

    示例命令使用以下选项:

    • --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
  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
  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
  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

第 7 章 扩展超融合节点

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

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

要在 HCI 环境中扩展超融合节点,请遵循相同的步骤来扩展非超融合节点。有关更多信息,请参阅 向 overcloud 添加节点

注意

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

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

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

流程

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

附录 A. 附加信息

A.1. 配置指南

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

A.1.1. 集群大小并扩展

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

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

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

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

如果节点在这个配置中保留服务,则 IOPS 将继续。要保留 3 个数据副本,对第三个节点的复制会排队,直到它返回到服务。然后,数据被回填到第三个节点。

注意

最多 64 节点的 HCI 配置已被测试。一些 HCI 环境示例已被记录为 128 个节点。大型集群(如这些集群)可通过支持例外和咨询服务参与来考虑。请联系红帽 客户体验与参与团队 以获得指导。

有两个 NUMA 节点的部署可以在一个 NUMA 节点上托管对一个 NUMA 节点和 Ceph OSD 服务的延迟敏感的 Compute 工作负载。如果两个节点上都存在网络接口,并且磁盘控制器位于节点 0 上,请将节点 0 上的网络接口用于 Storage 网络,并在节点 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 和存储介质速度,以便不再成为其他的瓶颈。

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

以下指南包含有助于配置超融合基础架构环境的附加信息和流程。

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

    • 本指南提供有关使用 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 © 2023 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.