Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

5.9. 准备 Ceph Storage 或 HCI 节点升级

由于对容器化服务升级,安装和更新 Ceph Storage 节点的方法已更改。Ceph Storage 配置现在在 ceph-ansible 软件包中使用一组 playbook,它在 undercloud 上安装。

重要的

流程

  1. 如果使用 director 管理的或外部 Ceph Storage 集群,请安装 ceph-ansible 软件包:

    1. 在 undercloud 上启用 Ceph 工具存储库:

      [stack@director ~]$ sudo subscription-manager repos --enable=rhel-7-server-rhceph-3-tools-rpms
    2. ceph-ansible 软件包安装到 undercloud:

      [stack@director ~]$ sudo yum install -y ceph-ansible
  2. 检查特定于 Ceph 的环境文件,并确保您的 Ceph 特定 heat 资源使用容器化服务:

    • 对于 director 管理的 Ceph Storage 集群,请确保 resource_register 中的资源指向 docker/services/ceph-ansible 中的模板:

      resource_registry:
        OS::TripleO::Services::CephMgr: /usr/share/openstack-tripleo-heat-templates/docker/services/ceph-ansible/ceph-mgr.yaml
        OS::TripleO::Services::CephMon: /usr/share/openstack-tripleo-heat-templates/docker/services/ceph-ansible/ceph-mon.yaml
        OS::TripleO::Services::CephOSD: /usr/share/openstack-tripleo-heat-templates/docker/services/ceph-ansible/ceph-osd.yaml
        OS::TripleO::Services::CephClient: /usr/share/openstack-tripleo-heat-templates/docker/services/ceph-ansible/ceph-client.yaml
      重要

      此配置包含在 /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml 环境文件中,您可以使用 -e 包含在所有将来的部署命令中。

      注意

      如果环境中您要使用的环境或模板文件没有存在于 /usr/share 目录中,您必须包括文件的绝对路径。

    • 对于外部 Ceph Storage 集群,请确保 resource_register 中的资源指向 docker/services/ceph-ansible 中的模板:

      resource_registry:
        OS::TripleO::Services::CephExternal: /usr/share/openstack-tripleo-heat-templates/docker/services/ceph-ansible/ceph-external.yaml
      重要

      此配置包含在 /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml 环境文件中,您可以使用 -e 包括在所有将来的部署命令中。

  3. 对于 director 管理的 Ceph Storage 集群,请使用新的 CephAnsibleDisksConfig 参数来定义如何映射磁盘。以前的 Red Hat OpenStack Platform 版本使用 ceph::profile::params::osds hieradata 来定义 OSD 布局。将此 hieradata 转换为 CephAnsibleDisksConfig 参数的结构。以下示例说明了如何在 collocated 和 non-collocated Ceph journal 磁盘的情况下将 hieradata 转换为 CephAnsibleDisksConfig 参数的结构。

    重要

    您必须设置 osd_scenario。如果未设置 osd_scenario,则可能会导致部署失败。

    • 在 Ceph 日志磁盘并置的情形中,如果您的 hieradata 包含以下内容:

      parameter_defaults:
        ExtraConfig:
          ceph::profile::params::osd_journal_size: 512
          ceph::profile::params::osds:
            '/dev/sdb': {}
            '/dev/sdc': {}
            '/dev/sdd': {}

      使用 CephAnsibleDisksConfig 参数以下列方式转换 hieradata,并将 ceph::profile::params::osds 设置为 {}

      parameter_defaults:
        CephAnsibleDisksConfig:
          devices:
          - /dev/sdb
          - /dev/sdc
          - /dev/sdd
          journal_size: 512
          osd_scenario: collocated
        ExtraConfig:
            ceph::profile::params::osds: {}
    • 在一个场景中,如果 hieradata 包含以下内容,则日志位于更快速专用设备,并且是非并置:

      parameter_defaults:
        ExtraConfig:
          ceph::profile::params::osd_journal_size: 512
          ceph::profile::params::osds:
            '/dev/sdb':
               journal: ‘/dev/sdn’
            '/dev/sdc':
               journal: ‘/dev/sdn’
            '/dev/sdd':
               journal: ‘/dev/sdn’

      使用 CephAnsibleDisksConfig 参数以下列方式转换 hieradata,并将 ceph::profile::params::osds 设置为 {}

      parameter_defaults:
        CephAnsibleDisksConfig:
          devices:
          - /dev/sdb
          - /dev/sdc
          - /dev/sdd
          dedicated_devices:
          - /dev/sdn
          - /dev/sdn
          - /dev/sdn
          journal_size: 512
          osd_scenario: non-collocated
        ExtraConfig:
          ceph::profile::params::osds: {}

    有关 ceph-ansible 中使用的 OSD 磁盘布局选项的完整列表,请查看 /usr/share/ceph-ansible/group_vars/osds.yml.sample 中的示例文件。

  4. 使用 -e 选项,包含新的 Ceph 配置环境文件及将来的部署命令。这包括以下文件:

    • director 管理的 Ceph Storage:

      • /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml.
      • 具有基于 Ansible 的磁盘映射的环境文件。
      • 任何额外环境文件及 Ceph 存储自定义。
    • 外部 Ceph 存储:

      • /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible-external.yaml
      • 任何额外环境文件及 Ceph 存储自定义。