第3章 専用ノード上での Ceph サービスのデプロイ

デフォルトでは、director は Ceph MON サービスおよび Ceph MDS サービスをコントローラーノードにデプロイします。これは、小規模なデプロイメントに適しています。しかし、大規模なデプロイメントの場合には、Ceph クラスターのパフォーマンスを向上させるために、Ceph MON サービスおよび Ceph MDS サービスを専用のノードにデプロイすることを推奨します。専用ノードで分離するサービス用のカスタムロールを作成します。

注記

カスタムロールについての詳細は、『オーバークラウドの高度なカスタマイズ』ガイドの「新規ロールの作成」を参照してください。

director は、全オーバークラウドロールのデフォルトのリファレンスとして以下のファイルを使用します。

  • /usr/share/openstack-tripleo-heat-templates/roles_data.yaml

3.1. カスタムロールファイルの作成

カスタムロールファイルを作成するには、以下の手順を実施します。

手順

  1. カスタムロールを追加できるように、/home/stack/templates/roles_data.yaml ファイルのコピーを作成します。

    $ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data_custom.yaml
  2. openstack overcloud deploy コマンドに新しいカスタムロールファイルを追加します。

3.2. Ceph MON サービス向けのカスタムロールとフレーバーの作成

Ceph MON ロール向けのカスタムロール CephMon およびフレーバー ceph-mon を作成するには、以下の手順を実施します。デフォルトのロールのデータファイルは、すでにコピー済みのはずです (詳細は「3章専用ノード上での Ceph サービスのデプロイ」を参照)。

手順

  1. /home/stack/templates/roles_data_custom.yaml ファイルを開きます。
  2. Ceph MON サービスのサービスエントリー OS::TripleO::Services::CephMon を Controller ロールから削除します。
  3. OS::TripleO::Services::CephClient サービスを Controller ロールに追加します。

    [...]
    - name: Controller # the 'primary' role goes first
      CountDefault: 1
      ServicesDefault:
        - OS::TripleO::Services::CACerts
        - OS::TripleO::Services::CephMds
        - OS::TripleO::Services::CephClient
        - OS::TripleO::Services::CephExternal
        - OS::TripleO::Services::CephRbdMirror
        - OS::TripleO::Services::CephRgw
        - OS::TripleO::Services::CinderApi
    [...]
  4. roles_data_custom.yaml ファイルの末尾に、Ceph MON サービスおよびその他すべての必要なノードサービスを含むカスタムの CephMon ロールを追加します。

    - name: CephMon
      ServicesDefault:
        # Common Services
        - OS::TripleO::Services::AuditD
        - OS::TripleO::Services::CACerts
        - OS::TripleO::Services::CertmongerUser
        - OS::TripleO::Services::Collectd
        - OS::TripleO::Services::Docker
        - OS::TripleO::Services::FluentdClient
        - OS::TripleO::Services::Kernel
        - OS::TripleO::Services::Ntp
        - OS::TripleO::Services::ContainersLogrotateCrond
        - OS::TripleO::Services::SensuClient
        - OS::TripleO::Services::Snmp
        - OS::TripleO::Services::Timezone
        - OS::TripleO::Services::TripleoFirewall
        - OS::TripleO::Services::TripleoPackages
        - OS::TripleO::Services::Tuned
        # Role-Specific Services
        - OS::TripleO::Services::CephMon
  5. openstack flavor create コマンドを入力し、CephMon ロール用に ceph-mon という名前の新規フレーバーを定義します。

    $ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 ceph-mon
    注記

    このコマンドについての詳しい情報を確認するには、openstack flavor create --help と入力します。

  6. このフレーバーを新規プロファイルにマッピングします。このプロファイルも ceph-mon という名前です。

    $ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="ceph-mon" ceph-mon
    注記

    このコマンドの詳細については、openstack flavor set --help と入力します。

  7. ノードを新しい ceph-mon プロファイルにタグ付けします。

    $ openstack baremetal node set --property capabilities='profile:ceph-mon,boot_option:local' UUID
  8. ceph-mon フレーバーを CephMon ロールに関連付けるには、以下の設定を node-info.yaml ファイルに追加します。

    parameter_defaults:
      OvercloudCephMonFlavor: CephMon
      CephMonCount: 3

ノードのタグ付けに関する詳細は、「手動によるプロファイルへのノードのタグ付け」を参照してください。カスタムロールプロファイルの詳細は、「プロファイルへのノードのタグ付け」を参照してください。

3.3. Ceph MDS サービス向けのカスタムロールとフレーバーの作成

Ceph MDS ロール用のカスタムロール CephMDS およびフレーバー ceph-mds を作成するには、以下の手順を実施します。デフォルトのロールのデータファイルは、すでにコピー済みのはずです (詳細は「3章専用ノード上での Ceph サービスのデプロイ」を参照)。

手順

  1. /home/stack/templates/roles_data_custom.yaml ファイルを開きます。
  2. Ceph MDS サービスのサービスエントリー OS::TripleO::Services::CephMds を Controller ロールから削除します。

    [...]
    - name: Controller # the 'primary' role goes first
      CountDefault: 1
      ServicesDefault:
        - OS::TripleO::Services::CACerts
        # - OS::TripleO::Services::CephMds 1
        - OS::TripleO::Services::CephMon
        - OS::TripleO::Services::CephExternal
        - OS::TripleO::Services::CephRbdMirror
        - OS::TripleO::Services::CephRgw
        - OS::TripleO::Services::CinderApi
    [...]
    1
    この行をコメントアウトします。次のステップで、このサービスを新しいカスタムロールに追加します。
  3. roles_data_custom.yaml ファイルの末尾に、Ceph MDS サービスおよびその他すべての必要なノードサービスを含むカスタムの CephMDS ロールを追加します。

    - name: CephMDS
      ServicesDefault:
        # Common Services
        - OS::TripleO::Services::AuditD
        - OS::TripleO::Services::CACerts
        - OS::TripleO::Services::CertmongerUser
        - OS::TripleO::Services::Collectd
        - OS::TripleO::Services::Docker
        - OS::TripleO::Services::FluentdClient
        - OS::TripleO::Services::Kernel
        - OS::TripleO::Services::Ntp
        - OS::TripleO::Services::ContainersLogrotateCrond
        - OS::TripleO::Services::SensuClient
        - OS::TripleO::Services::Snmp
        - OS::TripleO::Services::Timezone
        - OS::TripleO::Services::TripleoFirewall
        - OS::TripleO::Services::TripleoPackages
        - OS::TripleO::Services::Tuned
        # Role-Specific Services
        - OS::TripleO::Services::CephMds
        - OS::TripleO::Services::CephClient 1
    1
    Ceph MDS サービスには、Ceph MON サービスまたは Ceph Client サービスのいずれかで設定できる管理キーリングが必要です。Ceph MON サービスがない専用のノードに Ceph MDS をデプロイする場合には、新しい CephMDS ロールに Ceph クライアントサービスも追加する必要があります。
  4. openstack flavor create コマンドを入力し、このロール用に ceph-mds という名前の新規フレーバーを定義します。

    $ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 ceph-mds
    注記

    このコマンドの詳細については、openstack flavor create --help と入力します。

  5. 新規の ceph-mds フレーバーを新規プロファイルにマッピングします。このプロファイルも、ceph-mds という名前になります。

    $ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="ceph-mds" ceph-mds
    注記

    このコマンドの詳細については、openstack flavor set --help と入力します。

  6. ノードを新しい ceph-mds プロファイルにタグ付けします。

    $ openstack baremetal node set --property capabilities='profile:ceph-mds,boot_option:local' UUID

ノードのタグ付けに関する詳細は、「手動によるプロファイルへのノードのタグ付け」を参照してください。カスタムロールプロファイルの詳細は、「プロファイルへのノードのタグ付け」を参照してください。