第 9 章 使用 director 为不同的工作负载定义性能层


Red Hat OpenStack Platform (RHOSP) director 部署 Red Hat Ceph Storage 性能层。Ceph Storage CRUSH 规则与 CephPools 参数组合,以使用设备类功能。这会构建不同的层,以适应具有不同性能要求的工作负载。

例如,您可以为常规工作负载定义 HDD 类,以及一个 SSD 类,仅通过 SSD 分发数据,以实现高性能负载。在这种情况下,当您创建新块存储卷时,您可以选择性能层( HDD 或 SSD)。

有关创建 CRUSH 规则的更多信息,请参阅配置 CRUSH 层次结构

警告

在现有环境中定义性能层可能会导致 Ceph Storage 集群中的数据移动。director 在堆栈更新过程中使用 cephadmcephadm 应用没有验证池是否存在并包含数据的逻辑。更改与池关联的默认 CRUSH 规则会导致数据移动。如果池包含大量数据,则会移动这些数据。

如果您需要帮助或建议添加或删除节点,请联系红帽支持。

Ceph Storage 自动检测磁盘类型,并将其分配到对应的设备类; HDD、SSD 或 NVMe;基于 Linux 内核公开的硬件属性。

先决条件

  • 对于新部署,请使用 Red Hat Ceph Storage (RHCS)版本 5.2 或更高版本。

9.1. 配置性能层

要部署不同的 Red Hat Ceph Storage 性能层,请创建一个新的环境文件,其中包含 CRUSH map 详情并将其包含在部署命令中。director 不会公开这个功能的特定参数,但您可以生成 tripleo-ansible 预期变量。

注意

性能层配置可以与 CRUSH 层次结构相结合。有关创建 CRUSH 规则的信息,请参阅配置 CRUSH 层次结构

在示例流程中,每个 Ceph Storage 节点包含三个 OSD: sdbsdc 是 spinning 磁盘,sdc 是一个 SSD。Ceph 自动检测正确的磁盘类型。然后,您要配置两个 CRUSH 规则( HDD 和 SSD)来映射到两个对应的设备类。

注意

HDD 规则是默认值,适用于所有池,除非您使用不同的规则配置池。

最后,您创建一个名为 fastpool 的额外池,并将它映射到 SSD 规则。这个池最终通过 Block Storage (cinder)后端公开。任何消耗此块存储后端的工作负载都由 SSD 支持,以便只获得快速的性能。您可以将它用于数据或从卷引导。

WARNING
在现有环境中定义性能层可能会导致 Ceph 集群中进行大量数据移动。Cephadm,director 在堆栈更新期间触发,没有逻辑来验证池是否已在 Ceph 集群中定义,并且是否包含数据。这意味着,在现有环境中定义性能层可能会危险,因为与池关联的默认 CRUSH 规则的更改会导致数据移动。如果您需要帮助或建议添加或删除节点,请联系红帽支持。

流程

  1. stack 用户身份登录 undercloud 节点。
  2. 创建一个环境文件,如 /home/stack/templates/ceph-config.yaml,使其包含 Ceph 配置参数和设备类变量。或者,您可以在现有环境文件中添加以下配置。
  3. 添加 CephCrushRules 参数。CephCrushRules 参数必须包含您定义或 Ceph 自动检测到的每个类的规则。在创建新池时,如果没有指定规则,则会选择您希望 Ceph 用作默认值的规则。

    CephCrushRules:
    
      - name: HDD
        root: default
        type: host
        class: hdd
        default: true
      - name: SSD
        root: default
        type: host
        class: ssd
        default: false
    Copy to Clipboard Toggle word wrap
  4. 添加 CephPools 参数:

    • 使用 rule_name 参数指定不使用默认规则的每个池的层。在以下示例中,fastpool 池使用配置为快速层的 SSD 设备类来管理块存储卷。
    • 使用 CinderRbdExtraPools 参数将 fastpool 配置为块存储后端。

      CephPools:
        - name: fastpool
          rule_name: SSD
          application: rbd
      CinderRbdExtraPools: fastpool
      Copy to Clipboard Toggle word wrap
  5. 使用以下示例来确保环境文件包含正确的值:

    parameter_defaults:
    CephCrushRules:
    
      - name: replicated_hdd
        default: true
        class: hdd
        root: default
        type: host
        CinderRbdExtraPools: fastpool
        CephPools:
      - name: fastpool
        rule_name: SSD
        application: rbd
    Copy to Clipboard Toggle word wrap
  6. openstack overcloud deploy 命令中包含新的环境文件。

    $ openstack overcloud deploy \
    --templates \
    …
    -e <other_overcloud_environment_files> \
    -e /home/stack/templates/ceph-config.yaml  \
    …
    Copy to Clipboard Toggle word wrap

    <other_overcloud_environment_files > 替换为属于部署的其他环境文件的列表。

重要

如果您将环境文件应用到现有的 Ceph 集群,则预先存在的 Ceph 池不会使用新规则更新。因此,部署完成后您必须输入以下命令将规则设置为指定池。

$ ceph osd pool set <pool> crush_rule <rule>
Copy to Clipboard Toggle word wrap
  • 将 <pool> 替换为您要将新规则应用到的池的名称。
  • 将 <rule> 替换为您通过 crush_rules 参数指定的规则名称之一。

对于您通过此命令更改的每个规则,请更新现有条目或在现有模板中的 CephPools 参数中添加新条目:

CephPools:
    - name: <pool>
      rule_name: <rule>
      application: rbd
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部