Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第3章 インスタンス HA のインストールと設定
インスタンス HA は director でデプロイおよび設定されます。ただし、デプロイメントの準備のために、いくつかの追加ステップを実施する必要があります。
本項では、カスタムロールを使用してコンピュートノードのサブセットでインスタンス HA を有効化することを目的に、新しいオーバークラウドで新しいインスタンス HA デプロイメントを設定するために必要なすべての手順について説明します。
- 標準のロールまたはカスタムロールを使用する既存のオーバークラウド等、別の環境でインスタンス HA を有効化する場合には、デプロイメントに関連する手順のみに従い、テンプレートを適切に変更します。
- コンピュートノードのホスト名および Pacemaker リモートリソース名は、W3C 命名規則に従う必要があります。詳細は、W3C ドキュメントの Declaring Namespaces および Names and Tokens を参照してください。
-
インスタンス HA では、コンピュートノードがコントローラーノードが使用するのと同じ
internal_api
ネットワークを使用する必要があります。したがって、リーフごとに別個のネットワークが必要であるため、インスタンス HA をスパイン/リーフ環境にデプロイする構成はサポートされません。 - インストール後の director でのインスタンス HA の無効化はサポートされていません。デプロイメントからインスタンス HA コンポーネントを手動で削除する回避策は、 「How can I remove Instance HA components from the controller nodes?」の記事を参照してください。.この回避策は、そのまま提供されます。実稼働環境で実装する前に、テスト環境で手順を検証する必要があります。
オーバークラウドのデプロイに関する一般的な情報は、『director のインストールと使用方法』を参照してください。カスタムロールの詳細は、「コンポーザブルサービスとカスタムロール」を参照してください。
インスタンス HA ロール、フレーバー、およびプロファイルの設定
ComputeInstanceHA
ロールをロールデータのファイルに追加し、ファイルを再生成します。以下に例を示します。$ openstack overcloud roles generate -o ~/my_roles_data.yaml Controller Compute ComputeInstanceHA
ComputeInstanceHA
ロールには、デフォルトのCompute
ロールの全サービスに加えて、ComputeInstanceHA
およびPacemakerRemote
サービスが含まれます。カスタムロールおよび roles-data.yaml に関する一般的な情報は、『オーバークラウドの高度なカスタマイズ』の「ロール」セクションを参照してください。インスタンス HA に指定するコンピュートノードにタグ付けする
compute-instance-ha
フレーバーを作成します。以下に例を示します。$ source ~/stackrc $ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 compute-instance-ha $ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="compute-instance-ha" compute-instance-ha
インスタンス HA に指定する各コンピュートノードに
compute-instance-ha
プロファイルをタグ付けします。$ openstack baremetal node set --property capabilities='profile:compute-instance-ha,boot_option:local' <NODE UUID>
以下の内容の環境ファイルを作成して、
ComputeInstanceHA
ロールをcompute-instance-ha
フレーバーにマッピングします。parameter_defaults: OvercloudComputeInstanceHAFlavor: compute-instance-ha
フェンシングの有効化
フェンシング情報を定義した環境ファイルを作成して、オーバークラウドの全コントローラーノードおよびコンピュートノードのフェンシングを有効にします。必ずアクセス可能な場所に環境ファイルを作成してください (~/templates 等)。以下に例を示します。
parameter_defaults: EnableFencing: true FencingConfig: devices: - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:c7 params: login: admin ipaddr: 192.168.24.1 ipport: 6230 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:cb params: login: admin ipaddr: 192.168.24.1 ipport: 6231 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:cf params: login: admin ipaddr: 192.168.24.1 ipport: 6232 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:d3 params: login: admin ipaddr: 192.168.24.1 ipport: 6233 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:d7 params: login: admin ipaddr: 192.168.24.1 ipport: 6234 passwd: password lanplus: 1
フェンシングおよび STONITH の設定に関する詳細は、『高可用性デプロイメントと使用方法』の「STONITH を使用したコントローラノードのフェンシング」を参照してください。
デフォルトでは、インスタンス HA は共有ストレージを使用します。共有ストレージがコンピュートインスタンス用に設定されていない場合には、前の手順で作成した環境ファイルに以下のパラメーターを追加します。
parameter_defaults: ExtraConfig: tripleo::instanceha::no_shared_storage: true
インスタンスのディスクイメージ用に共有ストレージを設定するのではなく、OpenStack Block Storage (cinder) ボリュームから起動する方法は、「共有ストレージに関する注意事項」を参照してください。
オーバークラウドのデプロイ
作成したすべての環境ファイルのほか、compute-instanceha.yaml 環境ファイル用に、-e
オプションを指定して openstack overcloud deploy
コマンドを実行します。以下に例を示します。
$ openstack overcloud deploy --templates \ -e <FLAVOR_ENV_FILE> \ -e <FENCING_ENV_FILE> \ -e /usr/share/openstack-tripleo-heat-templates/environments/compute-instanceha.yaml
- compute-instanceha.yaml 環境ファイルは変更しないでください。
- オーバークラウドデプロイメントに追加する各環境ファイルへのパスを含めるようにしてください。
-
アンダーグラウンドの作成後は、いつでもオーバークラウドにインスタンス HA を設定することができます。オーバークラウドをすでにデプロイしている場合は、新しいインスタンス HA ファイルで
overcloud deploy
コマンドを再実行する必要があります。
デプロイメントが完了すると、それぞれのコンピュートノードには STONITH
デバイスおよび GuestNode
サービスが含まれます。
3.1. 共有ストレージに関する注意事項
一般的に、インスタンス HA ではインスタンスのディスクイメージ用に共有ストレージを設定する必要があります。したがって、no-shared-storage
オプションの使用を試みると、退避中に InvalidSharedStorage
エラーが表示され、インスタンスが別のコンピュートノードで起動しなくなります。
ただし、すべてのインスタンスが OpenStack Block Storage (cinder
) ボリュームから起動するように設定されている場合には、インスタンスのディスクイメージ用に共有ストレージを設定する必要はないので、no-shared-storage
オプションを使用してすべてのインスタンスを退避させることができます。
インスタンスが Block Storage ボリュームから起動するように設定されている場合には、退避したインスタンスは別のコンピュートノード上の同じボリュームから起動するはずです。したがって、OS イメージおよびアプリケーションデータが OpenStack Block Storage ボリュームに保管されているので、退避したインスタンスは直ちにジョブを再開します。