Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第3章 デプロイメントタイプの選択
単一型の HCI のデプロイでは、Ceph-OSD サービスをコンピュートノードに追加する環境ファイルを呼び出すので、より単純です。混合型の HCI では、HCI ノード向けのカスタムロール、フレーバー、およびネットワーク設定を定義する必要があります。両 HCI タイプは、対照的なデプロイメント方法を提供するので、どちらのタイプが環境により適しているかを判断してください。
以下のサブセクションでは、各デプロイメントタイプの方法を順を追って説明します。 いずれのデプロイメントタイプを使用する場合でも、カスタムの環境ファイルと Heat テンプレートを保管するための/home/stack/templates/
ディレクトリーを作成してください。
3.1. 単一型 HCI
単一型の HCI 構成で Red Hat OpenStack をデプロイするには、以下の環境ファイルを使用します。
/usr/share/openstack-tripleo-heat-templates/environments/hyperconverged-ceph.yaml
この環境ファイルは、CephOSD
サービスを追加して Compute ロールを再定義します。デフォルトでは、hyperconverged-ceph.yaml
環境ファイルは分離された StorageMgmt
ネットワークを使用していることを前提とし、それに応じて Compute のポートを設定します。
分離された StorageMgmt
ネットワークを使用していない場合は、StorageMgmtPort
サービスを無効にします。そのためには、以下の手順を実行してください。
~/templates/
に、以下の内容を記述したhyperconverged-non-isolated.yaml
という名前の新しい環境ファイルを作成します。resource_registry: OS::TripleO::Compute::Ports::StorageMgmtPort: OS::Heat::None
-
デプロイメントのプロセス中に (「単一型 HCI のデプロイ」)、
openstack overcloud deploy
を実行して~/templates/hyperconverged-non-isolated.yaml
を呼び出します。この環境ファイルは、他の設定を正しく上書きするように、最後に呼び出す必要があります。
「4章ハイパーコンバージドノード上におけるリソース分離の設定」に進み、Compute サービスと Ceph Storage サービスの間でのリソースの競合を軽減するための手順に従ってください。
3.2. 混合型 HCI
オーバークラウドは通常、コントローラーノード、コンピュートノード、異なるストレージノード種別など、事前定義されたロールのノードで構成されます。これらのデフォルトの各ロールには、director ノード上にあるコアの Heat テンプレートコレクションで定義されているサービスセットが含まれます。ただし、コアの Heat テンプレートのアーキテクチャーは、以下のような設定を行う手段を提供します。
- カスタムロールの作成
- 各ロールへのサービスの追加と削除
これにより、Compute サービスと Ceph OSD サービスの両方で新規ロールを定義することが可能となり、実質的には両サービスが同じ場所に配置され、同じ ハイパーコンバージドノード に一緒にデプロイすることができます。
カスタムロールに関する詳しい情報は、『オーバークラウドの高度なカスタマイズ』の「コンポーザブルサービスとカスタムロール」を参照してください。
3.2.1. HCI ノード向けのカスタムロールの作成
アンダークラウド上では、以下のファイルでデフォルトのロールが定義されます。
/usr/share/openstack-tripleo-heat-templates/roles_data.yaml
自分で作成したカスタムテンプレート用ディレクトリー (~/templates/
) にこのファイルをコピーします。
$ cp usr/share/openstack-tripleo-heat-templates/roles_data.yaml ~/templates/roles_data_hci.yaml
Compute と Ceph OSD を同じノードに配置する新規ロールを定義するには、Compute
と CephStorage
のエントリーの両方を組み合わせたロールを作成します。これは、OsdCompute
という名前の新規ロールを ~/templates/roles_data_hci.yaml
に追加して、Compute
ロールサービスを OsdCompute
にコピーし、Ceph OSD サービスを追加することによって作成します。
- name: OsdCompute # 1 CountDefault: 1 # 2 disable_upgrade_deployment: True ServicesDefault: - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephClient - OS::TripleO::Services::CephExternal - OS::TripleO::Services::CephOSD # 3 - OS::TripleO::Services::Timezone [...]
Red Hat OpenStack Platform は、ハイパーコンバージドと非ハイパーコンバージドのコンピュートノードの両方の機能を備えたデプロイメントをサポートしています。非ハイパーコンバージドのコンピュートノードをデプロイしない場合には、Compute
ロールの CountDefault:
パラメーターを 0
に設定します。
- name: Compute CountDefault: 0 disable_upgrade_deployment: True ServicesDefault: - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephClient - OS::TripleO::Services::CephExternal - OS::TripleO::Services::Timezone - OS::TripleO::Services::Ntp [...]
「CountDefault:」パラメーターを使用して、各ロールに割り当てるノードの数を定義することができます。ただし、この定義は、本書の後半の 「混合型 HCI のデプロイ」で説明しているように、別の Heat テンプレートで設定することを推奨します。
3.2.2. カスタムロール向けのポート割り当ての設定
/usr/share/openstack-tripleo-heat-templates/
にあるデフォルトの Heat テンプレートは、デフォルトロールに必要なネットワーク設定を提供します。この設定には、各ノード上の各サービスに IP アドレスとポートを割り当てる方法が含まれます。
カスタムロール (「HCI ノード向けのカスタムロールの作成」に記載したOsdCompute
など) には、必須のポート割り当て用 Heat テンプレートはないので、自分で定義する必要があります。そのためには、~/templates
に以下の内容を記述した ports.yaml
という名前の新規テンプレートを作成します。
resource_registry: OS::TripleO::OsdCompute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml # 1 OS::TripleO::OsdCompute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml OS::TripleO::OsdCompute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml OS::TripleO::OsdCompute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml OS::TripleO::OsdCompute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt.yaml # 2
- 1
- DVR を使用する場合には、この行を以下の設定に置き換えます。
OS::TripleO::OsdCompute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/external.yaml
詳しくは、『ネットワークガイド』の「分散仮想ルーター (DVR) の設定」を参照してください。
- 2
- If you want the
OsdCompute
role to select from a pool of IPs, replace this line with:OS::TripleO::OsdCompute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt_from_pool.yaml
If your environment uses IPv6 addresses, replace this line with:
OS::TripleO::OsdCompute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt_v6.yaml
If you want the
OsdCompute
role to select from a pool of IPv6 addresses, use:OS::TripleO::OsdCompute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt_from_pool_v6.yaml
For any other storage IP and port settings, review the other templates in
/usr/share/openstack-tripleo-heat-templates/network/ports/
for hints on customization.
関連情報については、 「ネットワークの分離」および「デプロイするネットワークの選択」 (『オーバークラウドの高度なカスタマイズ』) を参照してください。
3.2.3. 新規フレーバーの作成と割り当て
「前提条件」で述べているように、各ノードの登録と、対応するフレーバーとのタグ付けが完了している必要があります。ただし、混合型の HCI のデプロイでは、新しい OsdCompute ロールを定義する必要があるため、そのための新規フレーバーを作成する必要もあります。
osdcompute
という名前の新規ロールを作成するには、以下のコマンドを実行します。$ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 osdcompute
注記このコマンドについての詳しい情報は、
openstack flavor create --help
で確認してください。このフレーバーを新規プロファイルにマッピングします。このプロファイルも、
osdcompute
という名前です。$ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="osdcompute" osdcompute
注記このコマンドについての詳しい情報は、
openstack flavor set --help
で確認してください。ノードを新しい
osdcompute
プロファイルにタグ付けします。$ ironic node-update UUID add properties/capabilities='profile:osdcompute,boot_option:local'
注記ノードのタグ付けに関する詳しい情報は、「ノードの手動でのタグ付け」 (『オーバークラウド向けの Red Hat Ceph Storage』) を参照してください。
関連情報については、「ノードの手動でのタグ付け」および「ロールへのノードとフレーバーの割り当て」 (『オーバークラウド向けの Red Hat Ceph Storage』) を参照してください。