第3章 専用ノード上での Ceph サービスのデプロイ
デフォルトでは、director は Ceph MON サービスおよび Ceph MDS サービスをコントローラーノードにデプロイします。これは、小規模なデプロイメントに適しています。しかし、大規模なデプロイメントの場合には、Ceph クラスターのパフォーマンスを向上させるために、Ceph MON サービスおよび Ceph MDS サービスを専用のノードにデプロイすることを推奨します。専用ノードで分離するサービス用のカスタムロールを作成します。
カスタムロールについての詳細は、『オーバークラウドの高度なカスタマイズ』ガイドの「新規ロールの作成」を参照してください。
director は、全オーバークラウドロールのデフォルトのリファレンスとして以下のファイルを使用します。
-
/usr/share/openstack-tripleo-heat-templates/roles_data.yaml
3.1. カスタムロールファイルの作成
カスタムロールファイルを作成するには、以下の手順を実施します。
手順
カスタムロールを追加できるように、
/home/stack/templates/
のroles_data.yaml
ファイルのコピーを作成します。$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data_custom.yaml
-
openstack overcloud deploy
コマンドに新しいカスタムロールファイルを追加します。
3.2. Ceph MON サービス向けのカスタムロールとフレーバーの作成
Ceph MON ロール向けのカスタムロール CephMon
およびフレーバー ceph-mon
を作成するには、以下の手順を実施します。デフォルトのロールのデータファイルは、すでにコピー済みのはずです (詳細は「3章専用ノード上での Ceph サービスのデプロイ」を参照)。
手順
-
/home/stack/templates/roles_data_custom.yaml
ファイルを開きます。 -
Ceph MON サービスのサービスエントリー
OS::TripleO::Services::CephMon
を Controller ロールから削除します。 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 [...]
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
openstack flavor create
コマンドを入力し、CephMon
ロール用にceph-mon
という名前の新規フレーバーを定義します。$ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 ceph-mon
注記このコマンドについての詳しい情報を確認するには、
openstack flavor create --help
と入力します。このフレーバーを新規プロファイルにマッピングします。このプロファイルも
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
と入力します。ノードを新しい
ceph-mon
プロファイルにタグ付けします。$ openstack baremetal node set --property capabilities='profile:ceph-mon,boot_option:local' UUID
ceph-mon
フレーバーを CephMon ロールに関連付けるには、以下の設定をnode-info.yaml
ファイルに追加します。parameter_defaults: OvercloudCephMonFlavor: CephMon CephMonCount: 3
ノードのタグ付けに関する詳細は、「手動によるプロファイルへのノードのタグ付け」を参照してください。カスタムロールプロファイルの詳細は、「プロファイルへのノードのタグ付け」を参照してください。
3.3. Ceph MDS サービス向けのカスタムロールとフレーバーの作成
Ceph MDS ロール用のカスタムロール CephMDS
およびフレーバー ceph-mds
を作成するには、以下の手順を実施します。デフォルトのロールのデータファイルは、すでにコピー済みのはずです (詳細は「3章専用ノード上での Ceph サービスのデプロイ」を参照)。
手順
-
/home/stack/templates/roles_data_custom.yaml
ファイルを開きます。 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
- この行をコメントアウトします。次のステップで、このサービスを新しいカスタムロールに追加します。
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 クライアントサービスも追加する必要があります。
openstack flavor create
コマンドを入力し、このロール用にceph-mds
という名前の新規フレーバーを定義します。$ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 ceph-mds
注記このコマンドの詳細については、
openstack flavor create --help
と入力します。新規の
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
と入力します。ノードを新しい
ceph-mds
プロファイルにタグ付けします。$ openstack baremetal node set --property capabilities='profile:ceph-mds,boot_option:local' UUID
ノードのタグ付けに関する詳細は、「手動によるプロファイルへのノードのタグ付け」を参照してください。カスタムロールプロファイルの詳細は、「プロファイルへのノードのタグ付け」を参照してください。