第6章 コンポーザブルサービスとカスタムロール
オーバークラウドは通常、コントローラーノード、コンピュートノード、異なるストレージノード種別など、事前定義されたロールのノードで構成されます。これらのデフォルトの各ロールには、director ノード上にあるコア Heat テンプレートコレクションで定義されているサービスセットが含まれます。ただし、コア Heat テンプレートのアーキテクチャーは、以下のような設定を行う手段を提供します。
- カスタムロールの作成
- 各ロールへのサービスの追加と削除
これにより、異なるロール上に異なるサービスの組み合わせを作成することができます。本章では、カスタムロールのアーキテクチャー、コンポーザブルサービス、およびそれらを使用する方法について説明します。
6.1. サポートされているカスタムロールアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
テスト/検証済みのコンポーザブルサービスの組み合わせはごく限られています。Red Hat は、カスタムロールとコンポーザブルを使用する場合に、以下のアーキテクチャーをサポートしています。
- アーキテクチャー 1: モノリシックコントローラー
- すべてのコントローラーサービスが単一の Controller ロールに含まれます。これはデフォルトのアーキテクチャーです。詳しくは、「サービスアーキテクチャー : モノリシックコントローラー」を参照してください。
- アーキテクチャー 2: 分割コントローラー
コントローラーサービスが 2 つのロールに分割されます。
- Controller PCMK: データベースやロードバランシングなど、Pacemaker の管理対象のコアサービス
- コントローラー Systemd: systemd の管理対象の OpenStack Platform サービス
詳しくは、「サービスアーキテクチャー : 分割コントローラー」を参照してください。
- アーキテクチャー 3: スタンドアロンロール
- OpenStack Platform のサービスを分割する以外は、アーキテクチャー 1 またはアーキテクチャー 2 を使用します。詳しくは、「サービスアーキテクチャー: スタンドアロンロール」を参照してください。
6.2. ガイドラインおよび制限事項 リンクのコピーリンクがクリップボードにコピーされました!
コンポーザブルノードのアーキテクチャーには、以下のガイドラインおよび制限事項があることに注意してください。
systemd
サービスの場合:
-
サポートされているスタンドアロンのカスタムロールに
systemd
の管理対象サービスを割り当てることができます。 -
初回のデプロイメント後に追加のカスタムロールを作成してそれらをデプロイし、既存の
systemd
サービスをスケーリングすることができます。
Pacemaker の管理対象サービスの場合:
- サポートされているスタンドアロンのカスタムロールに Pacemaker の管理対象サービスを割り当てることができます。
-
Pacemaker のノード数の上限は 16 です。Pacemaker サービス (
OS::TripleO::Services::Pacemaker
) を 16 のノードに割り当てた場合には、それ以降のノードは、代わりに Pacemaker Remote サービス (OS::TripleO::Services::PacemakerRemote
) を使用する必要があります。同じロールで Pacemaker サービスと Pacemaker Remote サービスを割り当てることはできません。 -
Pacemaker の管理対象サービスが割り当てられていないロールには、Pacemaker サービス (
OS::TripleO::Services::Pacemaker
) を追加しないでください。 -
OS::TripleO::Services::Pacemaker
またはOS::TripleO::Services::PacemakerRemote
のサービスが含まれているカスタムロールはスケールアップまたはスケールダウンできません。
一般的な制限事項
- Red Hat OpenStack Platform 11 から 12 へのアップグレードプロセス中にカスタムロールとコンポーザブルサービスを変更することはできません。
- オーバクラウドのデプロイ後には、ロールのサービスリストを変更することはできません。オーバークラウドのデプロイの後にサービスリストを変更すると、デプロイでエラーが発生して、ノード上に孤立したサービスが残ってしまう可能性があります。
6.3. ロール リンクのコピーリンクがクリップボードにコピーされました!
6.3.1. roles_data ファイルの検証 リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドの作成プロセスでは、roles_data
ファイルを使用して、そのオーバークラウドのロールを定義します。roles_data
ファイルには、YAML 形式のロール一覧が含まれます。roles_data
構文の短い例を以下に示します。
コア Heat テンプレートコレクションには、デフォルトの roles_data
ファイルが /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
に含まれています。デフォルトのファイルは、以下のロール種別を定義します。
-
Controller
-
Compute
-
BlockStorage
-
ObjectStorage
-
CephStorage
.
openstack overcloud deploy
コマンドにより、デプロイ中にこのファイルが追加されます。このファイルは、-r
引数を使用して、カスタムの roles_data
ファイルで上書きすることができます。以下に例を示します。
openstack overcloud deploy --templates -r ~/templates/roles_data-custom.yaml
$ openstack overcloud deploy --templates -r ~/templates/roles_data-custom.yaml
6.3.2. role_data ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
カスタムの roles_data
ファイルは、手動で作成することができますが、個別のロールテンプレートを使用して自動生成することも可能です。director は、ロールテンプレートの管理とカスタムの roles_data
ファイルの自動生成を行うためのコマンドをいくつか提供しています。
デフォルトロールのテンプレートを一覧表示するには、openstack overcloud role list
コマンドを使用します。
ロールの YAML 定義を確認するには、openstack overcloud role show
コマンドを使用します。
openstack overcloud role show Compute
$ openstack overcloud role show Compute
カスタムの roles_data
ファイルを生成するには、openstack overcloud roles generate
コマンドを使用して、複数の事前定義済みロールを単一のロールに統合します。たとえば、以下のコマンドは、 Controller
、Compute
、Networker
のロールを単一のファイルに統合します。
openstack overcloud roles generate -o ~/roles_data.yaml Controller Compute Networker
$ openstack overcloud roles generate -o ~/roles_data.yaml Controller Compute Networker
-o
は、作成するファイルの名前を定義します。
これにより、カスタムの roles_data
ファイルが作成されます。ただし、上記の例では、Controller
と Networker
ロールを使用しており、その両方に同じネットワークエージェントが含まれています。これは、ネットワークサービスが Controller
から Networker
ロールにスケーリングされることを意味します。オーバークラウドは、Controller
ノードと Networker
ノードの間で、ネットワークサービスの負荷のバランスを取ります。
この Networker
ロールをスタンドアロンにするには、独自のカスタム Controller
ロールと、その他の必要なロールを作成することができます。これにより、独自のカスタムロールから roles_data
ファイルを生成できるようになります。
このディレクトリーを、コア Heat テンプレートコレクションから stack
ユーザーのホームディレクトリーにコピーします。
cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
$ cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
このディレクトリー内でカスタムロールファイルを追加または変更します。このディレクトリーをカスタムロールのソースとして使用するには、前述したロールのサブコマンドに --roles-path
オプションを指定します。以下に例を示します。
openstack overcloud roles generate -o my_roles_data.yaml \ --roles-path ~/roles \ Controller Compute Networker
$ openstack overcloud roles generate -o my_roles_data.yaml \
--roles-path ~/roles \
Controller Compute Networker
このコマンドにより、~/roles
ディレクトリー内の個々のロールから、単一の my_roles_data.yaml
ファイルが生成されます。
デフォルトのロールコレクションには、Networker
、Messaging
、Database
のロール用のサービスが含まれていない ControllerOpenStack
ロールも含まれています。ControllerOpenStack
は、スタンドアロンの Networker
、Messaging
、Database
ロールと組み合わせて使用することができます。
6.3.3. ロールパラメーターの考察 リンクのコピーリンクがクリップボードにコピーされました!
各ロールは、以下のパラメーターを使用します。
- name
-
(必須) 空白または特殊文字を含まないプレーンテキスト形式のロール名。選択した名前により、他のリソースとの競合が発生しないことを確認します。たとえば、
Network
の代わりにNetworker
を名前に使用します。ロール名についての推奨事項は、「サービスアーキテクチャー : 分割コントローラー」に記載の例を参照してください。 - description
- (オプション) プレーンテキスト形式のロールの説明
- tags
(オプション) ロールのプロパティーを定義するタグの YAML リスト。このパラメーターを使用して
controller
とprimary
タグの両方で、プライマリーロールを定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
プライマリーロールをタグ付けしない場合には、最初に定義されたロールがプライマリーロールになります。このロールがコントローラーロールとなるようにしてください。
- networks
-
ロール上で設定するネットワークの一覧。デフォルトのネットワークには、
External
、InternalApi
、Storage
、StorageMgmt
、Tenant
、Management
が含まれます。 - CountDefault
- (任意) このロールにデプロイするデフォルトのノード数
- HostnameFormatDefault
(任意) このロールに対するホスト名のデフォルトの形式を定義します。デフォルトの命名規則では、以下の形式が使用されます。
[STACK NAME]-[ROLE NAME]-[NODE ID]
[STACK NAME]-[ROLE NAME]-[NODE ID]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、コントローラーノード名はデフォルトで以下のように命名されます。
overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ...
overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - disable_constraints
- (任意) director のデプロイ時に OpenStack Compute (nova) および OpenStack Image Storage (glance) の制約を無効にするかどうかを定義します。事前プロビジョニング済みのノードでオーバークラウドをデプロイする場合に使用します。詳しくは、『director のインストールと使用方法』ガイドの「事前にプロビジョニングされたノードを使用した基本的なオーバークラウドの設定」の章を参照してください。
- disable_upgrade_deployment
- (任意) 特定のロールのアップグレードを無効にするかどうかを定義します。これにより、1 つのロールのノードを個別にアップグレードしてサービスの可用性を確保する方法が提供されます。たとえば、Compute と Swift Storage のロールにこのパラメーターを使用します。
- upgrade_batch_size
- (任意) アップグレード中に 1 回にまとめて実行するタスクの数を定義します。1 つのタスクは、1 ノードあたりの 1 アップグレードステップとして数えられます。デフォルトのバッチサイズは 1 です。これは、アップグレードプロセスによって各ノードで 1 回に実行されるアップグレードステップは 1 つであることを意味します。バッチサイズを大きくすると、ノードで同時に実行されるタスクの数が増えます。
- ServicesDefault
- (任意) ノード上で追加するデフォルトのサービス一覧を定義します。詳しくは、「コンポーザブルサービスアーキテクチャーの考察」を参照してください。
これらのパラメーターは、新規ロールの作成方法を指定するのに加えて、追加するサービスを定義します。
openstack overcloud deploy
コマンドは、roles_data
ファイルのパラメーターをいくつかのJinja2 ベースのテンプレートに統合します。たとえば、特定の時点で overcloud.j2.yaml
Heat テンプレートは roles_data.yaml
のロールの一覧を繰り返し適用し、対応する各ロール固有のパラメーターとリソースを作成します。
overcloud.j2.yaml
Heat テンプレートの各ロールのリソースの定義は、以下のスニペットのようになります。
このスニペットには、Jinja2 ベースのテンプレートが {{role.name}}
の変数を組み込み、各ロール名を OS::Heat::ResourceGroup
リソースとして定義しているのが示されています。これは、次に roles_data
ファイルのそれぞれの name
パラメーターを使用して、対応する各 OS::Heat::ResourceGroup
リソースを命名します。
6.3.4. 新規ロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、OpenStack Dashboard (horizon
) のみをホストする新しい Horizon
ロールを作成することを目的としています。このような場合には、新規ロールの情報が含まれるカスタムの roles
ディレクトリーを作成します。
デフォルトの roles
ディレクトリーのカスタムコピーを作成します。
cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
$ cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
~/roles/Horizon.yaml
という名前の新規ファイルを作成して、ベースおよびコアの OpenStack Dashboard サービスが含まれた Horizon
ロールを新規作成します。以下に例を示します。
また、CountDefault
を 1
に設定して、デフォルトのオーバークラウドには常に Horizon
ノードが含まれるようにした方がよいでしょう。
既存のオーバークラウド内でサービスをスケーリングする場合には、既存のサービスを Controller
ロール上に保持します。新規オーバークラウドを作成して、OpenStack Dashboard がスタンドアロンロールに残るようにするには、Controller
ロールの定義から OpenStack Dashboard コンポーネントを削除します。
roles
ディレクトリーをソースに使用して、新しい roles_data
ファイルを生成します。
openstack overcloud roles generate -o roles_data-horizon.yaml \ --roles-path ~/roles \ Controller Compute Horizon
$ openstack overcloud roles generate -o roles_data-horizon.yaml \
--roles-path ~/roles \
Controller Compute Horizon
このロールに新しいフレーバーを定義して、特定のノードをタグ付けできるようにする必要がある場合があります。この例では、以下のコマンドを使用して horizon
フレーバーを作成します。
openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 horizon openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="horizon" horizon
$ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 horizon
$ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="horizon" horizon
以下のコマンドを実行して、ノードを新規フレーバーにタグ付けします。
openstack baremetal node set --property capabilities='profile:horizon,boot_option:local' 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13
$ openstack baremetal node set --property capabilities='profile:horizon,boot_option:local' 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13
以下の環境ファイルのスニペットを使用して、Horizon ノードの数とフレーバーを定義します。
parameter_defaults: OvercloudHorizonFlavor: horizon HorizonCount: 1
parameter_defaults:
OvercloudHorizonFlavor: horizon
HorizonCount: 1
openstack overcloud deploy
コマンドの実行時には、新しい roles_data
ファイルと環境ファイルを指定します。以下に例を示します。
openstack overcloud deploy --templates -r ~/templates/roles_data-horizon.yaml -e ~/templates/node-count-flavor.yaml
$ openstack overcloud deploy --templates -r ~/templates/roles_data-horizon.yaml -e ~/templates/node-count-flavor.yaml
デプロイメントが完了すると、コントローラーノードが 1 台、コンピュートノードが 1 台、Networker ノードが 1 台の 3 ノード構成のオーバークラウドが作成されます。オーバークラウドのノード一覧を表示するには、以下のコマンドを実行します。
openstack server list
$ openstack server list
6.4. コンポーザブルサービス リンクのコピーリンクがクリップボードにコピーされました!
6.4.1. コンポーザブルサービスアーキテクチャーの考察 リンクのコピーリンクがクリップボードにコピーされました!
コア Heat テンプレートコレクションには、puppet/services
サブディレクトリー内のコンポーザブルサービステンプレートのコレクションが含まれます。これらのサービスは、以下のコマンドで表示することができます。
ls /usr/share/openstack-tripleo-heat-templates/puppet/services
$ ls /usr/share/openstack-tripleo-heat-templates/puppet/services
各サービステンプレートには目的を特定する記述が含まれています。たとえば、keystone.yaml
サービステンプレートには以下のような記述が含まれます。
description: > Openstack Identity (`keystone`) service configured with Puppet
description: >
Openstack Identity (`keystone`) service configured with Puppet
これらのサービステンプレートは、Red Hat OpenStack Platform デプロイメント固有のリソースとして登録されます。これは、overcloud-resource-registry-puppet.j2.yaml
ファイルで定義されている一意な Heat リソース名前空間を使用して各リソースを呼び出すことができることを意味します。サービスはすべて、リソース種別に OS::TripleO::Services
名前空間を使用します。たとえば、keystone.yaml
サービステンプレートは OS::TripleO::Services::Keystone
リソース種別に登録されます。
grep "OS::TripleO::Services::Keystone" /usr/share/openstack-tripleo-heat-templates/overcloud-resource-registry-puppet.j2.yaml OS::TripleO::Services::Keystone: puppet/services/keystone.yaml
grep "OS::TripleO::Services::Keystone" /usr/share/openstack-tripleo-heat-templates/overcloud-resource-registry-puppet.j2.yaml
OS::TripleO::Services::Keystone: puppet/services/keystone.yaml
overcloud.j2.yaml
Heat テンプレートには、roles_data.yaml
ファイル内の各カスタムロールのサービス一覧を定義するための Jinja2-based コードのセクションが含まれています。
デフォルトのロールの場合は、これにより次のサービス一覧パラメーターが作成されます: ControllerServices
、 ComputeServices
、 BlockStorageServices
、 ObjectStorageServices
、 CephStorageServices
roles_data.yaml
ファイル内の各カスタムロールのデフォルトのサービスを定義します。たとえば、デフォルトの Controller ロールには、以下の内容が含まれます。
これらのサービスは、次に ControllerServices
パラメーターのデフォルト一覧として定義されます。
環境ファイルを使用してサービスパラメーターのデフォルト一覧を上書きすることもできます。たとえば、環境ファイルで ControllerServices
を parameter_default
として定義して、roles_data.yaml
ファイルからのサービス一覧を上書きすることができます。
6.4.2. ロールへのサービスの追加と削除 リンクのコピーリンクがクリップボードにコピーされました!
サービスの追加と削除の基本的な方法では、ノードロールのデフォルトサービス一覧を作成してからサービスを追加/削除します。たとえば、OpenStack Orchestration (heat
) をコントローラーノードから削除する場合には、デフォルトの roles
ディレクトリーのカスタムコピーを作成します。
cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
$ cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
~/roles/Controller.yaml
ファイルを編集して、ServicesDefault
パラメーターのサービス一覧を変更します。OpenStack Orchestration のサービスまでスクロールしてそれらを削除します。
新しい roles_data
ファイルを生成します。以下に例を示します。
openstack overcloud roles generate -o roles_data-no_heat.yaml \ --roles-path ~/roles \ Controller Compute Networker
$ openstack overcloud roles generate -o roles_data-no_heat.yaml \
--roles-path ~/roles \
Controller Compute Networker
openstack overcloud deploy
コマンドを実行する際には、この新しい roles_data
ファイルを指定します。以下に例を示します。
openstack overcloud deploy --templates -r ~/templates/roles_data-no_heat.yaml
$ openstack overcloud deploy --templates -r ~/templates/roles_data-no_heat.yaml
このコマンドにより、コントローラノードには OpenStack Orchestration のサービスがインストールされない状態でオーバークラウドがデプロイされます。
また、カスタムの環境ファイルを使用して、roles_data
ファイル内のサービスを無効にすることもできます。無効にするサービスを OS::Heat::None
リソースにリダイレクトします。以下に例を示します。
resource_registry: OS::TripleO::Services::HeatApi: OS::Heat::None OS::TripleO::Services::HeatApiCfn: OS::Heat::None OS::TripleO::Services::HeatApiCloudwatch: OS::Heat::None OS::TripleO::Services::HeatEngine: OS::Heat::None
resource_registry:
OS::TripleO::Services::HeatApi: OS::Heat::None
OS::TripleO::Services::HeatApiCfn: OS::Heat::None
OS::TripleO::Services::HeatApiCloudwatch: OS::Heat::None
OS::TripleO::Services::HeatEngine: OS::Heat::None
6.4.3. 無効化されたサービスの有効化 リンクのコピーリンクがクリップボードにコピーされました!
一部のサービスはデフォルトで無効化されています。これらのサービスは、overcloud-resource-registry-puppet.j2.yaml
ファイルで null 操作 (OS::Heat::None
) として登録されます。たとえば、Block Storage のバックアップサービス (cinder-backup
) は無効化されています。
OS::TripleO::Services::CinderBackup: OS::Heat::None
OS::TripleO::Services::CinderBackup: OS::Heat::None
このサービスを有効化するには、puppet/services
ディレクトリー内の対応する Heat テンプレートにリソースをリンクする環境ファイルを追加します。一部のサービスには、environments
ディレクトリー内に事前定義済みの環境ファイルがあります。たとえば、Block Storage のバックアップサービスは、以下のような内容を含む environments/cinder-backup.yaml
ファイルを使用します。
resource_registry: OS::TripleO::Services::CinderBackup: ../puppet/services/pacemaker/cinder-backup.yaml ...
resource_registry:
OS::TripleO::Services::CinderBackup: ../puppet/services/pacemaker/cinder-backup.yaml
...
これにより、デフォルトの null 操作のリソースが上書きされ、これらのサービスが有効になります。openstack overcloud deploy
コマンドの実行時に、以下の環境ファイルを指定します。
openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml
$ openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml
サービスの有効化/無効化の方法についてのその他の例は、『OpenStack Data Processing』ガイドの「Installation」を参照してください。 この項には、オーバークラウドで OpenStack Data Processing サービス (sahara
) を有効にする手順が記載されています。
6.4.4. サービスなしの汎用ノードの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform では、OpenStack サービスを一切設定しない汎用の Red Hat Enterprise Linux 7 ノードを作成することができます。これは、コアの Red Hat OpenStack Platform 環境外でソフトウェアをホストする必要がある場合に役立ちます。たとえば、OpenStack Platform は Kibana や Sensu (『Monitoring Tools Configuration Guide』を参照) などのモニタリングツールとの統合を提供します。Red Hat は、それらのモニタリングツールに対するサポートは提供しませんが、director では、それらのツールをホストする汎用の Red Hat Enterprise Linux 7 ノードの作成が可能です。
汎用ノードは、ベースの Red Hat Enterprise Linux 7 イメージではなく、ベースの overcloud-full
イメージを引き続き使用します。これは、ノードには何らかの Red Hat OpenStack Platform ソフトウェアがインストールされていますが、有効化または設定されていないことを意味します。
汎用ノードを作成するには、ServicesDefault
一覧なしの新規ロールが必要です。
- name: Generic
- name: Generic
カスタムの roles_data
ファイル (roles_data_with_generic.yaml
) にそのロールを追加します。既存の Controller
ロールと Compute
ロールは必ず維持してください。
また、プロビジョニングするノードを選択する際には、必要な汎用 Red Hat Enterprise Linux 7 ノード数とフレーバーを指定する環境ファイル (generic-node-params.yaml
) も追加することができます。以下に例を示します。
parameter_defaults: OvercloudGenericFlavor: baremetal GenericCount: 1
parameter_defaults:
OvercloudGenericFlavor: baremetal
GenericCount: 1
openstack overcloud deploy
コマンドを実行する際に、ロールのファイルと環境ファイルの両方を指定します。以下に例を示します。
openstack overcloud deploy --templates -r ~/templates/roles_data_with_generic.yaml -e ~/templates/generic-node-params.yaml
$ openstack overcloud deploy --templates -r ~/templates/roles_data_with_generic.yaml -e ~/templates/generic-node-params.yaml
このコマンドにより、コントローラーノードが 1 台、コンピュートノードが 1 台、汎用 Red Hat Enterprise Linux 7 ノードが 1 台の 3 ノード構成の環境がデプロイされます。
6.5. アーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
6.5.1. サービスアーキテクチャー : モノリシックコントローラー リンクのコピーリンクがクリップボードにコピーされました!
コンポーザブルサービスのデフォルトのアーキテクチャーは、Red Hat OpenStack Platform のコアサービスを含むモノリシックなコントローラーを使用します。これらのデフォルトサービスは、 director の Heat テンプレートコレクション (/usr/share/openstack-tripleo-heat-templates/roles_data.yaml
) に含まれるロールファイルで定義されます。
一部のサービスはデフォルトで無効化されています。それらのサービスを有効化するための情報は、「無効化されたサービスの有効化」を参照してください。
6.5.2. サービスアーキテクチャー : 分割コントローラー リンクのコピーリンクがクリップボードにコピーされました!
コントローラーノード上のサービスを 2 つのロールに分割することができます。
- Controller PCMK: Pacemaker が管理するコアサービスのみを含みます (データベース、ロードバランシングなど)。
- Controller systemd: 全 OpenStack サービスを含みます。
残りのデフォルトロール (Compute、Ceph Storage、Object Storage、Block Storage) は引き続き影響を受けません。
分割コントローラーのアーキテクチャーを作成するには、以下の表を参考にしてください。
一部のサービスはデフォルトで無効化されています。それらのサービスを有効化するための情報は、「無効化されたサービスの有効化」を参照してください。
Controller PCMK
以下のサービスは、Controller PCMK ロールが必要とする最小限のサービスです。
Controller systemd
以下の表には、Controller systemd ロールで利用可能なサービスをまとめています。
6.5.3. サービスアーキテクチャー: スタンドアロンロール リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、Red Hat OpenStack Platform のコンポーザブルサービスアーキテクチャーで作成/スケーリングが可能なサポート対象のカスタムロールを一覧にまとめています。これらのコレクションを個別のロールとしてまとめて、以前のアーキテクチャーと組み合わせてサービスを分離/分割するのに使用してください。
一部のサービスはデフォルトで無効化されています。それらのサービスを有効化するための情報は、「無効化されたサービスの有効化」を参照してください。
すべてのロールは、以下を含む 共通のサービス セットを使用する点に注意してください。
-
OS::TripleO::Services::AuditD
-
OS::TripleO::Services::CACerts
-
OS::TripleO::Services::CertmongerUser
-
OS::TripleO::Services::Collectd
-
OS::TripleO::Services::ContainersLogrotateCrond
-
OS::TripleO::Services::Docker
-
OS::TripleO::Services::FluentdClient
-
OS::TripleO::Services::Kernel
-
OS::TripleO::Services::Ntp
-
OS::TripleO::Services::SensuClient
-
OS::TripleO::Services::Snmp
-
OS::TripleO::Services::Timezone
-
OS::TripleO::Services::TripleoFirewall
-
OS::TripleO::Services::TripleoPackages
-
OS::TripleO::Services::Tuned
オーバークラウドに追加するロールを選択したら、メインの Controller ロールから関連付けられたサービスを削除します (共通のサービス は除く)。たとえば、スタンドアロンの Keystone ロールを作成する場合は、Controller ノードから OS::TripleO::Services::Apache
および OS::TripleO::Services::Keystone
サービスを削除します。唯一の例外は、カスタムロールサポートが限定されているサービスです (表6.1「カスタムロールのサポート」を参照)。
以下の表でロールをクリックすると、そのロールに関連付けられているサービスが表示されます。
ロール | サポートの状態 |
---|---|
対応 | |
対応 | |
限定。分割する場合には、このサービスは Controller systemd ロールの一部にする必要があります。 | |
対応 | |
対応 | |
対応 | |
対応 | |
対応 | |
対応 | |
対応 | |
対応 | |
対応 | |
限定。分割する場合には、このサービスは Controller systemd ロールの一部にする必要があります。 | |
対応 | |
対応 | |
対応 | |
対応 | |
対応 | |
テクノロジープレビュー | |
対応 | |
限定。分割する場合には、このサービスは Controller systemd ロールの一部にする必要があります。 | |
対応 | |
対応 | |
対応 |
Ceph Storage Monitor
以下のサービスは、Ceph Storage Monitor を構成します。
Ceph Storage OSD
以下のサービスは、Ceph Storage OSD を構成します。
Ceph Storage RadosGW
以下のサービスは、Ceph Storage RadosGW を構成します。これらのサービスを分離する場合には、Controller systemd ロールの一部にする必要があります。
Cinder API
以下のサービスは、OpenStack Block Storage API を構成します。
Controller PCMK
以下のサービスは、Controller PCMK がスタンドアロンロールとして必要とする最小限のサービスです。
これは、分割コントローラーのアーキテクチャーにおける Controller PCMK ロールと同じですが、以下の高可用性サービスをスタンドアロンロールに分割できる点が異なります。
上記のサービスのスタンドアロンロールを作成しない場合には、それらのロールのサービスは Controller PCMK スタンドアロンロールにマージします。
Database
以下のサービスは、メインのデータベースを構成します。このデータベースは MariaDB によって、Pacemaker を使用する Galera クラスターとして管理されます。
Glance
以下のサービスは、OpenStack Image サービスを構成します。
Heat
以下のサービスは、OpenStack Orchestration サービスを構成します。
Horizon
以下のサービスは、OpenStack Dashboard を構成します。
Ironic
以下のサービスは、 OpenStack Bare Metal Provisioning サービスを構成します。
以下の点に注意してください。
- Storage ネットワークへのアクセスが必要です。
-
OS::TripleO::Services::IronicApi
サービスは、要件に応じて、Ironic
ロールまたはController
ロールに割り当てることができます。 -
Controller
ロールにOS::TripleO::Services::NovaIronic
サービスが割り当てられている必要があります。
Keystone
以下のサービスは、OpenStack Identity サービスを構成します。マイナーな更新を実行する際には、他のサービスを更新する前にこのロールを必ず更新してください。
Load Balancer
以下のサービスは、オーバークラウドのロードバランサーを構成します。ロードバランサーは、Pacemaker を使用して管理される HAProxy です。
Manila
以下のサービスは、OpenStack Shared File System サービスを構成します。これらのサービスを分離する場合には、Controller systemd ロールの一部にする必要があります。
Message Bus
以下のサービスは、メッセージングキューを構成します。メッセージングキューは、Pacemaker で管理される RabbitMQ です。
Networker
以下のサービスは、OpenStack Networking エージェントを構成します。
Neutron API
以下のサービスは、OpenStack Networking API を構成します。
Nova
以下のサービスは、OpenStack Compute サービスを構成します。
Nova Compute
以下のサービスは、OpenStack Compute ノードを構成します。
OpenDaylight
以下のサービスは、OpenDayLight を構成します。これらのサービスは、Red Hat OpenStack Platform 11 ではテクノロジープレビューとして提供しています。
Redis
以下のサービスは、Pacemaker で管理される Redis を構成します。
Sahara
以下のサービスは、OpenStack Clustering サービスを構成します。これらのサービスを分離する場合には、Controller systemd ロールの一部にする必要があります。
Swift API
以下のサービスは、OpenStack Object Storage API を構成します。
Swift Storage
以下のサービスは、OpenStack Object Storage サービスを構成します。
Telemetry
以下のサービスは、OpenStack Telemetry サービスを構成します。
6.6. コンポーザブルサービスのリファレンス リンクのコピーリンクがクリップボードにコピーされました!
以下の表には、Red Hat OpenStack Platform 12 で利用可能な全コンポーザブルサービスをまとめています。
一部のサービスはデフォルトで無効化されています。それらのサービスを有効化するための情報は、「無効化されたサービスの有効化」を参照してください。
サービス | 説明 |
---|---|
|
Puppet で設定される OpenStack Telemetry Alarming ( |
|
Puppet で設定される OpenStack Telemetry Alarming ( |
|
Puppet で設定される OpenStack Telemetry Alarming ( |
|
Puppet で設定される OpenStack Telemetry Alarming ( |
|
Puppet で設定される Apache サービス。通常このサービスは、Apache で実行されるサービスには自動的に含まる点に注意してください。 |
|
Puppet で設定される HAProxy サービス |
|
Puppet で設定される OpenStack Telemetry ( |
|
Puppet で設定される OpenStack Telemetry ( |
|
Puppet で設定される OpenStack Telemetry ( |
|
Puppet で設定される OpenStack Telemetry ( |
|
Puppet で設定される OpenStack Telemetry ( |
|
(デフォルトでは無効) Ceph Client サービス |
|
(デフォルトでは無効) Ceph External サービス |
|
(デフォルトでは無効) Ceph Monitor サービス |
|
(デフォルトでは無効) Ceph OSD サービス |
|
Puppet で設定される OpenStack Block Storage ( |
|
(デフォルトでは無効) Puppet で設定される OpenStack Block Storage ( |
|
Puppet で設定される OpenStack Block Storage ( |
|
Puppet で設定される OpenStack Block Storage ( |
|
Puppet で設定される OpenStack Telemetry ( |
|
Puppet で設定される OpenStack Networking ( |
|
(デフォルトでは無効) Puppet で設定される、DVR 対応のコンピュートノード用 OpenStack Networking ( |
|
(デフォルトでは無効) Puppet で設定される OpenStack Networking ( |
|
Puppet で設定される OpenStack Networking ( |
|
(デフォルトでは無効) Puppet で設定される Fluentd クライアント |
|
Puppet で設定される OpenStack Image ( |
|
Puppet で設定される OpenStack Telemetry Metrics ( |
|
Puppet で設定される OpenStack Telemetry Metrics ( |
|
Puppet で設定される OpenStack Telemetry Metrics ( |
|
Puppet で設定される HAProxy サービス (Pacemaker の管理対象) |
|
Puppet で設定される OpenStack Orchestration ( |
|
Puppet で設定される OpenStack Orchestration ( |
|
Puppet で設定される OpenStack Orchestration ( |
|
Puppet で設定される OpenStack Orchestration ( |
|
Puppet で設定される OpenStack Dashboard ( |
|
(デフォルトでは無効) Puppet で設定される OpenStack Bare Metal Provisioning ( |
|
(デフォルトでは無効) Puppet で設定される OpenStack Bare Metal Provisioning ( |
|
Puppet で設定される Keepalived サービス |
|
kmod でカーネルモジュールを読み込み、sysctl でカーネルオプションを設定 |
|
Puppet で設定される OpenStack Identity ( |
|
(デフォルトでは無効) Puppet で設定される OpenStack Shared File Systems ( |
|
(デフォルトでは無効) Puppet で設定される OpenStack Shared File Systems ( |
|
(デフォルトでは無効) Puppet で設定される OpenStack Shared File Systems ( |
|
Puppet で設定される Memcached サービス |
|
Puppet を使用した MongoDB サービスのデプロイメント |
|
Puppet を使用する MySQL (Pacemaker の管理対象) サービスのデプロイメント |
|
Puppet で設定される OpenStack Networking ( |
|
Puppet で設定される OpenStack Networking ( |
|
Puppet で設定される OpenStack Networking ( |
|
OpenStack Networking ( |
|
OpenStack Networking ( |
|
OpenStack Networking ( |
|
OpenStack Networking ( |
|
Puppet で設定される OpenStack Networking ( |
|
Puppet で設定される OpenStack Networking ( |
|
Puppet で設定される OpenStack Networking ( |
|
Puppet で設定される OpenStack Networking ( |
|
Puppet で設定される OpenStack Networking ( |
|
(デフォルトでは無効) Puppet で設定される OpenStack Neutron SR-IOV nic エージェント |
|
Puppet で設定される OpenStack Compute ( |
|
Puppet で設定される OpenStack Compute ( |
|
Puppet で設定される OpenStack Compute ( |
|
Puppet で設定される OpenStack Compute ( |
|
(デフォルトでは無効) Puppet で設定される、Ironic を使用する OpenStack Compute ( |
|
Puppet で設定される Libvirt サービス |
|
Puppet で設定される OpenStack Compute ( |
|
Puppet で設定される OpenStack Compute ( |
|
Puppet を使用した NTP サービスのデプロイメント |
|
(デフォルトでは無効) OpenDaylight SDN のコントローラー |
|
(デフォルトでは無効) OpenDaylight OVS の設定 |
|
Puppet で設定される Pacemaker サービス |
|
Puppet で設定される RabbitMQ サービス (Pacemaker の管理対象) |
|
Puppet で設定される OpenStack Redis サービス |
|
(デフォルトでは無効) Puppet で設定される OpenStack Clustering ( |
|
(デフォルトでは無効) Puppet で設定される OpenStack Clustering ( |
|
(デフォルトでは無効) Puppet で設定される Sensu クライアント |
|
Puppet で設定される SNMP クライアント。アンダークラウドでの Ceilometer のハードウェアモニタリングを円滑にします。このサービスは、ハードウェアモニタリングを有効化するのに必要です。 |
|
Puppet で設定される OpenStack Object Storage ( |
|
OpenStack Object Storage ( |
|
Puppet で設定される OpenStack Object Storage ( |
|
コンポーザブルな Timezone サービス |
|
ファイアウォールの設定 |
|
パッケージのインストールの設定 |
サービス | 説明 |
---|---|
|
(デフォルトでは無効) TLS/SSL 対応の Apache サービス。このサービスは、Certmonger ベースの TLS/SSL 設定 ( |
|
(デフォルトでは無効) 監査サービスを実装します。監査サービスの環境ファイル ( |
|
(デフォルトでは無効) Ceph Metadata Server (MDS)。Ceph MDS の環境ファイル ( |
|
(デフォルトでは無効) Ceph Storage RBD Mirroring サービス。RBD ミラーリングの環境ファイル ( |
|
(デフォルトでは無効) Ceph Storage Object Gateway (radosgw)。RadosGW の環境ファイル ( |
|
(デフォルトでは無効) Cinder HPE LeftHand iSCSI バックエンド。LeftHand iSCSI の環境ファイル ( |
|
(デフォルトでは無効) 統計コレクションデーモン。Collectd の環境ファイル ( |
|
(デフォルトでは無効) OpenStack Policy-as-a-Service (Congress)。Congress の環境ファイル ( |
|
(デフォルトでは無効) Etcd のキーと値のストレージ。etcd の環境ファイル ( |
|
(デフォルトでは無効) TLS/SSL 対応の HAProxy サービス用の内部ネットワーク。このサービスは Certmonger ベースの TLS/SSL 設定 ( |
|
(デフォルトでは無効) TLS/SSL 対応の HAProxy サービス用の External ネットワーク。このサービスは、Certmonger ベースの TLS/SSL 設定 ( |
|
(デフォルトでは無効) Ceph Storage 用の Manila バックエンド。各バックエンドの環境ファイル ( |
|
(デフォルトでは無効) 汎用の Manila バックエンド。各バックエンドの環境ファイル ( |
|
(デフォルトでは無効) NetApp 用の Manila バックエンド。各バックエンドの環境ファイル ( |
|
(デフォルトでは無効) OpenStack Workflow サービス (mistral) API。mistral の環境ファイル ( |
|
(デフォルトでは無効) OpenStack Workflow サービス (mistral) エンジン。mistral の環境ファイル ( |
|
(デフォルトでは無効) OpenStack Workflow サービス (mistral) 実行サーバー。mistral の環境ファイル ( |
|
データベースクライアント |
|
(デフォルトでは無効) TLS/SSL 対応のデータベースサービス。このサービスは、Certmonger ベースの TLS/SSL 設定 ( |
|
(デフォルトでは無効) OpenStack Networking (neutron) 向けの Fujitsu C-Fabric プラグイン。C-Fabric の環境ファイル ( |
|
(デフォルトでは無効) OpenStack Networking (neutron) 向けの Fujitsu fossw プラグイン。fossw の環境ファイル ( |
|
OpenStack Compute (nova) Metadata サービス |
|
OpenStack Compute (nova) Placement サービス |
|
(デフォルトでは無効) OpenStack Load Balancing-as-a-Service (octavia) API。octavia の環境ファイル ( |
|
(デフォルトでは無効) OpenStack Load Balancing-as-a-Service (octavia) Health Manager。octavia の環境ファイル ( |
|
(デフォルトでは無効) OpenStack Load Balancing-as-a-Service (octavia) Housekeeping サービス。octavia の環境ファイル ( |
|
(デフォルトでは無効) OpenStack Load Balancing-as-a-Service (octavia) Worker サービス。octavia の環境ファイル ( |
|
(デフォルトでは無効) OVN データベース。OVN の拡張機能 ( |
|
OpenStack Telemetry Event Storage (panko) |
|
(デフォルトでは無効) SSH デーモンの設定。デフォルトのサービスとして含まれます。 |
|
(デフォルトでは無効) OpenStack NFV Orchestration (tacker)。tacker の環境ファイル ( |
|
(デフォルトでは無効) TLS/SSL を設定するための基本サービス。このサービスは、Certmonger ベースの TLS/SSL 設定 ( |
|
(デフォルトでは無効) OpenStack Messaging (zaqar)。zaqar の環境ファイル ( |