Red Hat Training

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

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

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

注記

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

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

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

このファイルを /home/stack/templates/ にコピーして、カスタムロールを追加できるようにします。

$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data_custom.yaml

後でオーバークラウドの作成時に /home/stack/templates/roles_data_custom.yaml ファイルを呼び出します(「オーバークラウドデプロイメントの開始」以下のサブセクションでは、Ceph MON サービスまたは Ceph MDS サービス向けのカスタムロールの設定方法について説明します。

3.1. 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::Fluentd
        - 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 コマンドを使用して、このロール用に 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 プロファイルにタグ付けします。

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

    parameter_defaults:
      OvercloudCephMonFlavor: CephMon
      CephMonCount: 3

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