インスタンスの高可用性の設定
コンピュートインスタンスの高可用性の設定
概要
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。
Jira でドキュメントのフィードバックを提供する
問題の作成 フォームを使用して、Red Hat OpenStack Services on OpenShift (RHOSO) または Red Hat OpenStack Platform (RHOSP) の以前のリリースのドキュメントに関するフィードバックを提供します。RHOSO または RHOSP ドキュメントの問題を作成すると、その問題は RHOSO Jira プロジェクトに記録され、フィードバックの進行状況を追跡できるようになります。
問題の作成 フォームを完了するには、Jira にログインしていることを確認してください。Red Hat Jira アカウントをお持ちでない場合は、https://issues.redhat.com でアカウントを作成できます。
- 次のリンクをクリックして、問題の作成 ページを開きます (問題の作成)。
- Summary フィールドと Description フィールドに入力します。Description フィールドに、ドキュメントの URL、章またはセクション番号、および問題の詳しい説明を入力します。フォーム内の他のフィールドは変更しないでください。
- Create をクリックします。
第1章 インスタンス HA デプロイメントの導入および計画 リンクのコピーリンクがクリップボードにコピーされました!
コンピュートインスタンスの高可用性 (インスタンス HA) は、障害が発生したコンピュートノードからインスタンスを退避して、別のコンピュートノードにインスタンスを再作成するために使用できるツールです。
インスタンス HA は、共有ストレージまたはローカルストレージ環境で機能します。したがって、退避させたインスタンスは同じネットワーク設定 (静的 IP アドレス、Floating IP アドレス等) を維持します。再作成されたインスタンスも、新しいコンピュートノード内で同じ特性を維持します。
1.1. インスタンス HA の仕組み リンクのコピーリンクがクリップボードにコピーされました!
コンピュートノードに障害が発生すると、オーバークラウドのフェンシングエージェントはノードをフェンシングします。続いてインスタンス HA エージェントは、障害が発生したコンピュートノードから別のコンピュートノードにインスタンスを退避させます。
コンピュートノードに障害が発生しインスタンス HA がトリガーされると、以下のイベントが発生します。
-
障害が発生すると、
IPMIエージェントは最初のレイヤーのフェンシングを実行します。これには、ノードがシャットダウンされるように物理的にリセットする操作や、データの破損やオーバークラウド上に複数の同一インスタンスが存在するのを回避する操作が含まれます。ノードがオフラインである場合、フェンシング済みとみなされます。 IPMI による物理的なフェンシングの後に以下のコマンドを実行すると、
fence-novaエージェントが第二レイヤーのフェンシングを自動的に実施し、フェンシング済みのノードを属性"evacuate=yes"でマーキングします (この属性は、ノードごとに設定する必要があります)。attrd_updater -n evacuate -A name="evacuate" host="FAILEDHOST" value="yes"
$ attrd_updater -n evacuate -A name="evacuate" host="FAILEDHOST" value="yes"Copy to Clipboard Copied! Toggle word wrap Toggle overflow FAILEDHOSTは障害が発生したコンピュートノードの名前です。-
nova-evacuateエージェントは常にバックグラウンドで動作し、クラスターに“evacuate=yes"属性のノードがないか定期的に確認します。この属性がフェンシング済みノードに含まれることをnova-evacuateが検出すると、エージェントはノードからの全インスタンスの退避を開始します。退避プロセスは、いつでも実行できる手動インスタンス退避プロセスと似ています。 -
IPMI によるリセット後に障害が発生したノードが再起動すると、そのノードの
nova-computeプロセスも自動的に開始されます。ノードはそれまでフェンシングされていたので、Pacemaker がノードのフェンシングを解除するまで、新しいインスタンスを実行しません。 -
コンピュートノードがオンライン状態にあることを Pacemaker が検出すると、ノードで
compute-unfence-triggerリソースエージェントが起動します。これにより、ノードが解放され、インスタンスが再び実行できるようになります。
1.2. インスタンス HA デプロイメントのプランニング リンクのコピーリンクがクリップボードにコピーされました!
インスタンス HA をデプロイする前に、適合性のためにリソース名を確認し、環境に応じてストレージおよびネットワークを設定します。
- コンピュートノードのホスト名および Pacemaker リモートリソース名は、W3C 命名規則に従う必要があります。詳細は、W3C ドキュメントの namespace の宣言 および 名前とトークン を参照してください。
一般的に、インスタンス HA ではインスタンスのディスクイメージ用に共有ストレージを設定する必要があります。したがって、
no-shared-storageオプションの使用を試みると、退避中にInvalidSharedStorageエラーが表示され、インスタンスが別のコンピュートノードで起動しない場合があります。ただし、すべてのインスタンスが OpenStack Block Storage (
cinder) ボリュームから起動するように設定されている場合には、インスタンスのディスクイメージ用に共有ストレージを設定する必要はないので、no-shared-storageオプションを使用してすべてのインスタンスを退避させることができます。インスタンスが Block Storage ボリュームから起動するように設定されている場合には、退避させたインスタンスは別のコンピュートノード上の同じボリュームからブートします。したがって、OS イメージおよびアプリケーションデータが OpenStack Block Storage ボリュームに保管されているので、退避させたインスタンスは直ちにジョブを再開します。
-
インスタンス HA をスパイン/リーフ環境でデプロイする場合には、コントローラーノードおよびコンピュートノードに単一の
internal_apiネットワークを定義する必要があります。その後、各リーフのサブネットを定義できます。スパイン/リーフ型ネットワークの設定の詳細は、スパイン/リーフ型ネットワーク ガイドの ロールデータファイルの作成 を参照してください。 -
事前にプロビジョニングされたノードまたは director Operator を使用する場合は、すべてのコントローラーに
fence-agents-computerpm をインストールする必要があります。これは、手動で行うことも、オーバークラウドのデプロイメント中にOS::TripleO::ControllerExtraConfigPreフックを使用して行うこともできます。詳細は、Red Hat OpenStack Platform デプロイメントのカスタマイズ の 設定フック を 参照してください。 - Red Hat OpenStack Platform 13 以降では、オーバークラウドのアップグレードの一環として、director を使用してインスタンス HA をアップグレードします。オーバークラウドのアップグレードの詳細は、Red Hat OpenStack Platform のマイナー更新の実行 を参照してください。
-
vTPM デバイスを搭載したインスタンスを退避することはできません。vTPM デバイスを使用してインスタンスをデプロイする場合は、退避する必要がある他のインスタンスがフレーバーを使用するか、
evacuable属性でタグ付けしたイメージを使用するようにしてください。退避するインスタンスの指定の詳細は、インスタンス HA を使用して退避するインスタンスの指定 を参照してください。 インストール後の director でのインスタンス HA の無効化はサポートされていません。デプロイメントからインスタンス HA コンポーネントを手動で削除する回避策は、How can I remove Instance HA components from the controller nodes? を参照してください。
重要この回避策は、実稼働環境用には検証されていません。実稼働環境で実装する前に、テスト環境で手順を検証する必要があります。
1.3. インスタンス HA リソースエージェント リンクのコピーリンクがクリップボードにコピーされました!
インスタンス HA は fence_compute、NovaEvacuate、および comput-unfence-trigger リソースエージェントを使用して、コンピュートノードに障害が発生した場合にインスタンスの退避および再作成を行います。
| エージェント名 | クラスター内での名前 | ロール |
|---|---|---|
|
|
| コンピュートノードが使用不能になった場合に、退避のためにそのノードをマーキングします。 |
|
|
| 障害が発生したノードからインスタンスを退避させます。このエージェントは、コントローラーノードのいずれかで動作します。 |
|
|
| フェンシングされたノードを解放し、再びインスタンスを実行できるようにします。 |
第2章 インスタンス HA のインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
インスタンスの高可用性 (HA) をデプロイするには、Red Hat OpenStack Platform (RHOSP) director を使用します。ただし、新規オーバークラウドで新たなインスタンス HA デプロイメントを設定するには、追加のステップを実施する必要があります。ステップを完了すると、インスタンス HA はカスタムロールを持つコンピュートノードのサブセット上で実行されます。
インスタンス HA は、RHOSP ハイパーコンバージドインフラストラクチャー (HCI) 環境ではサポートされません。RHOSP HCI 環境でインスタンス HA を使用するには、ComputeInstanceHA ロールを持つコンピュートノードのサブセットで、インスタンス HA を使用するように指定する必要があります。Red Hat Ceph Storage サービスは、インスタンス HA をホストするコンピューティングノード上でホストしないでください。
標準のロールまたはカスタムロールを使用する既存のオーバークラウド等、別の環境でインスタンス HA を有効にするには、デプロイメントに該当する手順のみを実施し、テンプレートを適切に変更します。
2.1. インスタンス HA のロールおよびプロファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
インスタンス HA をデプロイする前に、インスタンス HA ロールを roles-data.yaml ファイルに追加し、インスタンス HA プロファイルを使用してインスタンス HA で管理する各 Compute ノードにタグを付け、これらを overcloud-baremetal-deploy.yaml ファイルまたは同等のものに追加します。特定のロール用にオーバークラウドノードを指定する方法については、プロファイルを一致させることによるオーバークラウドノードのロールの指定 を参照してください。例として、computeiha プロファイルを使用してノードを設定できます。
手順
-
まだ定義されていない場合は、
overcloud-baremetal-deploy.yamlファイルにロールを追加します。 overcloud-baremetal-deploy.yamlを編集して、ロールのノードに割り当てるプロファイルを定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドノードをプロビジョニングします。
openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yaml
(undercloud)$ openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<stack> を、ベアメタルノードをプロビジョニングしたスタックの名前に置き換えます。デフォルト値は
overcloudです。 -
<deployment_file> を、生成された heat 環境ファイルに選択した名前に置き換えて、デプロイコマンドに含めます (例:
:/home/stack/templates/overcloud-baremetal-deployed.yaml)。
-
<stack> を、ベアメタルノードをプロビジョニングしたスタックの名前に置き換えます。デフォルト値は
2.2. インスタンス HA が設定されたオーバークラウドでのフェンシングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
フェンシング情報を定義した環境ファイルを作成して、オーバークラウドの全コントローラーノードおよびコンピュートノードのフェンシングを有効にします。
手順
~/templates などのアクセス可能な場所に環境ファイルを作成し、以下の内容を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートインスタンスに共有ストレージを使用する場合は、環境ファイルの以下のパラメーターを
falseに設定します。parameter_defaults: ExtraConfig: tripleo::instanceha::no_shared_storage: falseparameter_defaults: ExtraConfig: tripleo::instanceha::no_shared_storage: falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. インスタンス HA が設定されたオーバークラウドのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドをすでにデプロイしている場合は、作成した追加のインスタンス HA ファイルを使用して openstack overcloud deploy コマンドを再度実行できます。アンダーグラウンドの作成後は、いつでもオーバークラウドにインスタンス HA を設定することができます。
前提条件
- インスタンス HA ロールおよびプロファイルを設定している。
- オーバークラウドでフェンシングを有効にしている。
手順
openstack overcloud deployコマンドで-eオプションを指定して、compute-instanceha.yaml環境ファイルと追加の環境ファイルを含めます。openstack overcloud deploy --templates \ -e <fencing_environment_file> \ -r my_roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/compute-instanceha.yaml
$ openstack overcloud deploy --templates \ -e <fencing_environment_file> \ -r my_roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/compute-instanceha.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow <fencing_environment_file>を環境に適したファイル名に置き換えます。
-
compute-instanceha.yaml環境ファイルは変更しないでください。 - オーバークラウドデプロイメントに追加する各環境ファイルへのフルパスを含めます。
デプロイ後、各コンピュートノードには、STONITH デバイスと、pacemaker_remote サービスが含まれます。
2.4. インスタンス HA による退避のテスト リンクのコピーリンクがクリップボードにコピーされました!
インスタンス HA がインスタンスを正常に退避することをテストするには、コンピュートノードで退避をトリガーし、インスタンス HA エージェントが正常にインスタンスを退避して別のコンピュートノードに再作成することを確認します。
以下の手順では、コンピュートノードを故意にクラッシュさせます。これにより、インスタンス HA によるインスタンスの自動退避がトリガーされます。
前提条件
- インスタンス HA がコンピュートノードにデプロイされている。
手順
オーバークラウドで 1 つ以上のインスタンスを起動します。
stack@director $ . overcloudrc stack@director $ openstack server create --image cirros --flavor 2 test-failover stack@director $ openstack server list -c Name -c Status
stack@director $ . overcloudrc stack@director $ openstack server create --image cirros --flavor 2 test-failover stack@director $ openstack server list -c Name -c StatusCopy to Clipboard Copied! Toggle word wrap Toggle overflow インスタンスをホストするコンピュートノードにログインし、
rootユーザーに変更します。compute-nをコンピュートノードの名前に置き換えます。stack@director $ . stackrc stack@director $ ssh -l tripleo-admin compute-n tripleo-admin@compute-n $ su -
stack@director $ . stackrc stack@director $ ssh -l tripleo-admin compute-n tripleo-admin@compute-n $ su -Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートノードをクラッシュさせます。
root@compute-n $ echo c > /proc/sysrq-trigger
root@compute-n $ echo c > /proc/sysrq-triggerCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが再起動するまで数分待ってから、クラッシュしたコンピュートノードのインスタンスが別のコンピュートノードで再作成されていることを確認します。
stack@director $ openstack server list -c Name -c Status stack@director $ openstack compute service list
stack@director $ openstack server list -c Name -c Status stack@director $ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. インスタンス HA で退避させるインスタンスの指定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、インスタンス HA は障害が発生しているノードからすべてのインスタンスを退避させます。インスタンス HA を設定して、特定のイメージまたはフレーバーを持つインスタンスのみを退避させることができます。
前提条件
- インスタンス HA がオーバークラウドにデプロイされている。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 source コマンドで
overcloudrcファイルを読み込みます。source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のオプションのいずれかを使用します。
イメージをタグ付けする。
(overcloud) $ openstack image set --tag evacuable <image_id>
(overcloud) $ openstack image set --tag evacuable <image_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <image_id>を退避させるイメージの ID に置き換えます。フレーバーをタグ付けする。
(overcloud) $ openstack flavor set --property evacuable=true <flavor_id>
(overcloud) $ openstack flavor set --property evacuable=true <flavor_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <flavor_id>を退避させるフレーバーの ID に置き換えてください。
- ホストアグリゲートを使用している場合には、同じタグまたはプロパティーをホストアグリゲートに追加します。詳細は、インスタンス作成のための Compute サービスの設定 の フレーバーのメタデータ を参照してください。
第3章 インスタンス HA が設定されたアンダークラウドおよびオーバークラウドでのメンテナンスの実行 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドおよびオーバークラウドでメンテナンスを実施するには、オーバークラウド起動時の問題を最小限に抑えるために、アンダークラウドおよびオーバークラウドノードを特定の順序でシャットダウンして起動する必要があります。また、ノードを停止してノード上の Pacemaker リソースを無効にし、特定のコンピュートノードまたはコントローラーノードでメンテナンスを実行することもできます。
3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- インスタンス HA が有効な動作中のアンダークラウドおよびオーバークラウド
3.2. アンダークラウドおよびオーバークラウドのシャットダウン順序 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境をシャットダウンするには、オーバークラウドおよびアンダークラウドを以下の順序でシャットダウンする必要があります。
- オーバークラウド Compute ノード上のインスタンスをシャットダウンします。
- Compute ノードをシャットダウンします。
- Controller ノードの高可用性サービスおよび OpenStack Platform のサービスをすべて停止します。
- Ceph Storage ノードをシャットダウンします。
- Controller ノードをシャットダウンします。
- アンダークラウドをシャットダウンします。
3.2.1. オーバークラウド Compute ノード上のインスタンスのシャットダウン リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境のシャットダウンのサブタスクとして、Compute ノードをシャットダウンする前に Compute ノード上のインスタンスをすべてシャットダウンします。
前提条件
- Compute サービスがアクティブなオーバークラウド
手順
-
アンダークラウドに
stackユーザーとしてログインします。 source コマンドでオーバークラウドの認証情報ファイルを読み込みます。
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドで実行中のインスタンスを表示します。
openstack server list --all-projects
$ openstack server list --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドのそれぞれのインスタンスを停止します。
openstack server stop <INSTANCE>
$ openstack server stop <INSTANCE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウド内のすべてのインスタンスを停止するまで、それぞれのインスタンスでこのステップを繰り返します。
3.2.2. オーバークラウドコンピュートノードのインスタンス HA サービスの停止 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境のシャットダウンのサブタスクとして、コンピュートノードをシャットダウンする前にコンピュートノードのインスタンス HA サービスをすべてシャットダウンする必要があります。
前提条件
- Compute サービスがアクティブなオーバークラウド
- コンピュートノードで有効化されているインスタンス HA
手順
-
Pacemaker を実行するオーバークラウドノードに
rootユーザーとしてログインします。 それぞれのコンピュートノードの Pacemaker リモートリソースを無効にします。
コンピュートノードの Pacemaker リモートリソースを特定します。
pcs resource status
# pcs resource statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow これらのリソースは
ocf::pacemaker:remoteエージェントを使用し、通常はコンピュートノードのホストの形式に基づく名前が付けられます (例:overcloud-novacomputeiha-0)。それぞれの Pacemaker リモートリソースを無効にします。
overcloud-novacomputeiha-0のリソースを無効にする方法を、以下の例に示します。pcs resource disable overcloud-novacomputeiha-0
# pcs resource disable overcloud-novacomputeiha-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
コンピュートノードの STONITH デバイスを無効にします。
コンピュートノードの STONITH デバイスを特定します。
pcs stonith status
# pcs stonith statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow それぞれのコンピュートノードの STONITH デバイスを無効にします。
pcs stonith disable <STONITH_DEVICE>
# pcs stonith disable <STONITH_DEVICE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. コンピュートノードのシャットダウン リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境をシャットダウンする際のサブタスクとして、それぞれの Compute ノードにログインしてシャットダウンします。
前提条件
- Compute ノード上のすべてのインスタンスがシャットダウンされている。
手順
-
Compute ノードに
rootユーザーとしてログインします。 ノードをシャットダウンします。
shutdown -h now
# shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow - すべての Compute ノードをシャットダウンするまで、それぞれの Compute ノードでこの手順を実施します。
3.2.4. Controller ノードのサービスの停止 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境のシャットダウンする際のサブタスクとして、Controller ノードをシャットダウンする前にノードのサービスを停止します。これには Pacemaker サービスおよび systemd サービスが含まれます。
前提条件
- Pacemaker サービスがアクティブなオーバークラウド
手順
-
Controller ノードに
rootユーザーとしてログインします。 Pacemaker クラスターを停止します。
pcs cluster stop --all
# pcs cluster stop --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、すべてのノード上のクラスターが停止します。
Pacemaker サービスが停止するまで待ち、サービスが停止したことを確認します。
Pacemaker のステータスを確認します。
pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pacemaker サービスが実行されていないことを Podman で確認します。
podman ps --filter "name=.*-bundle.*"
# podman ps --filter "name=.*-bundle.*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat OpenStack Platform のサービスを停止します。
systemctl stop 'tripleo_*'
# systemctl stop 'tripleo_*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスが停止するまで待ち、サービスが実行されなくなったことを Podman で確認します。
podman ps
# podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.5. Ceph Storage ノードのシャットダウン リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境のシャットダウンのサブタスクとして、Ceph Storage サービスを無効にし、続いてそれぞれの Ceph Storage ノードにログインしてシャットダウンします。
前提条件
- 正常な Ceph Storage クラスター。
- Ceph MON サービスがスタンドアロンの Ceph MON ノードまたは Controller ノードで動作している。
手順
-
Ceph MON サービスを実行するノード (例: Controller ノードまたはスタンドアロンの Ceph MON ノード) に
rootユーザーとしてログインします。 クラスターが正常であることを確認します。以下の例の
podmanコマンドにより、Controller ノード上の Ceph MON コンテナー内でステータス確認が実施されます。sudo podman exec -it ceph-mon-controller-0 ceph status
# sudo podman exec -it ceph-mon-controller-0 ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow ステータスが
HEALTH_OKであることを確認します。クラスターの
noout、norecover、norebalance、nobackfill、nodown、およびpauseフラグを設定します。以下の例のpodmanコマンドにより、Controller ノード上の Ceph MON コンテナーを通じてこれらのフラグが設定されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow それぞれの Ceph Storage ノードをシャットダウンします。
-
Ceph Storage ノードに
rootユーザーとしてログインします。 ノードをシャットダウンします。
shutdown -h now
# shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow - すべての Ceph Storage ノードをシャットダウンするまで、それぞれの Ceph Storage ノードでこの手順を実施します。
-
Ceph Storage ノードに
スタンドアロンの Ceph MON ノードをすべてシャットダウンします。
-
スタンドアロンの Ceph MON ノードに
rootユーザーとしてログインします。 ノードをシャットダウンします。
shutdown -h now
# shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow - スタンドアロンの Ceph MON ノードをすべてシャットダウンするまで、それぞれのスタンドアロンの Ceph MON ノードでこの手順を実施します。
-
スタンドアロンの Ceph MON ノードに
3.2.6. Controller ノードのシャットダウン リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境のシャットダウンのサブタスクとして、それぞれの Controller ノードにログインしてシャットダウンします。
前提条件
- Pacemaker クラスターが停止している。
- Controller ノードのすべての Red Hat OpenStack Platform サービスが停止している。
手順
-
Controller ノードに
rootユーザーとしてログインします。 ノードをシャットダウンします。
shutdown -h now
# shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow - すべての Controller ノードをシャットダウンするまで、それぞれの Controller ノードでこの手順を実施します。
3.2.7. アンダークラウドのシャットダウン リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境のシャットダウンのサブタスクとして、アンダークラウドノードにログインしてアンダーグラウンドをシャットダウンします。
前提条件
- 動作中のアンダークラウド
手順
-
アンダークラウドに
stackユーザーとしてログインします。 アンダークラウドをシャットダウンします。
sudo shutdown -h now
$ sudo shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. システムメンテナンスの実施 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドおよびオーバークラウドを完全にシャットダウンしたら、環境内のシステムに対するメンテナンスを実施し、続いてアンダークラウドおよびオーバークラウドを起動します。
3.4. アンダークラウドおよびオーバークラウドの起動順序 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境を起動するには、アンダークラウドおよびオーバークラウドを以下の順序で起動する必要があります。
- アンダークラウドを起動します。
- Controller ノードを起動します。
- Ceph Storage ノードを起動します。
- Compute ノードを起動します。
- オーバークラウドの Compute ノードでインスタンスを起動します。
3.4.1. アンダークラウドの起動 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境の起動のサブタスクとして、アンダークラウドノードの電源をオンにし、アンダークラウドにログインし、アンダークラウドのサービスを確認します。
前提条件
- アンダークラウドの電源がオフになっている。
手順
- アンダークラウドの電源をオンにし、アンダークラウドがブートするまで待ちます。
検証
-
アンダークラウドホストに
stackユーザーとしてログインします。 stackrcアンダークラウド認証情報ファイルを入手します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドのサービスを確認します。
systemctl list-units 'tripleo_*'
$ systemctl list-units 'tripleo_*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow tripleo-ansible-inventory.yamlという名前の静的インベントリーファイルを検証します。validation run --group pre-introspection -i <inventory_file>
$ validation run --group pre-introspection -i <inventory_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <inventory_file>ファイルを Ansible インベントリーファイルの名前および場所に置き換えます (例:~/tripleo-deploy/undercloud/tripleo-ansible-inventory.yaml)。注記検証を実行すると、出力の
Reasons列は 79 文字に制限されます。検証結果を完全に表示するには、検証ログファイルを表示します。
すべてのサービスとコンテナーがアクティブおよび正常であることを確認します。
validation run --validation service-status --limit undercloud -i <inventory_file>
$ validation run --validation service-status --limit undercloud -i <inventory_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. Controller ノードの起動 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境の起動のサブタスクとして、それぞれの Controller ノードの電源をオンにし、そのノードの Pacemaker 以外のサービスを確認します。
前提条件
- Controller ノードの電源がオフになっている。
手順
- それぞれの Controller ノードの電源をオンにします。
検証
-
rootユーザーとして各 Controller ノードにログインします。 Controller ノードのサービスを確認します。
systemctl -t service
$ systemctl -t serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pacemaker ベース以外のサービスだけが動作中です。
Pacemaker サービスが起動するまで待ち、サービスが起動したことを確認します。
pcs status
$ pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記環境でインスタンス HA を使用している場合、Pacemaker リソースは、Compute ノードを起動するか、
pcs stonith confirm <compute_node>コマンドを使用して手動でフェンスを解除する操作を実行するまで起動しません。このコマンドは、インスタンス HA を使用する各 Compute ノードで実行する必要があります。
3.4.3. Ceph Storage ノードの起動 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境の起動のサブタスクとして、Ceph MON ノードおよび Ceph Storage ノードの電源をオンにし、Ceph Storage サービスを有効にします。
前提条件
- 電源がオフの Ceph Storage クラスター。
- 電源がオフのスタンドアロンの Ceph MON ノードまたは電源がオンの Controller ノードで、Ceph MON サービスが有効になっている。
手順
- 使用している環境にスタンドアロンの Ceph MON ノードがある場合、それぞれの Ceph MON ノードの電源をオンにします。
- それぞれの Ceph Storage ノードの電源をオンにします。
-
Ceph MON サービスを実行するノード (例: Controller ノードまたはスタンドアロンの Ceph MON ノード) に
rootユーザーとしてログインします。 クラスターノードのステータスを確認します。以下の例の
podmanコマンドにより、Controller ノード上の Ceph MON コンテナー内でステータス確認が実施されます。sudo podman exec -it ceph-mon-controller-0 ceph status
# sudo podman exec -it ceph-mon-controller-0 ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow それぞれのノードの電源がオンで、接続された状態であることを確認します。
クラスターの
noout、norecover、norebalance、nobackfill、nodown、およびpauseフラグの設定を解除します。以下の例のpodmanコマンドにより、Controller ノード上の Ceph MON コンテナーを通じてこれらのフラグの設定が解除されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
クラスターが正常であることを確認します。以下の例の
podmanコマンドにより、Controller ノード上の Ceph MON コンテナー内でステータス確認が実施されます。sudo podman exec -it ceph-mon-controller-0 ceph status
# sudo podman exec -it ceph-mon-controller-0 ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow ステータスが
HEALTH_OKであることを確認します。
3.4.4. Compute ノードの起動 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境の起動のサブタスクとして、それぞれの Compute ノードの電源をオンにし、そのノードのサービスを確認します。
前提条件
- 電源がオフの Compute ノード
手順
- それぞれの Compute ノードの電源をオンにします。
検証
-
各 Compute に
rootユーザーとしてログインします。 Compute ノードのサービスを確認します。
systemctl -t service
$ systemctl -t serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.5. オーバークラウドコンピュートノードのインスタンス HA サービスの起動 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境の起動のサブタスクとして、コンピュートノードのインスタンス HA サービスをすべて起動します。
前提条件
- コンピュートノードが動作中のオーバークラウド
- コンピュートノードで有効化されているインスタンス HA
手順
-
Pacemaker を実行するオーバークラウドノードに
rootユーザーとしてログインします。 コンピュートノードの STONITH デバイスを有効にします。
コンピュートノードの STONITH デバイスを特定します。
pcs stonith status
# pcs stonith statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートノードの STONITH エラーをすべて消去します。
pcs stonith confirm <COMPUTE_NODE>
# pcs stonith confirm <COMPUTE_NODE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、ノードがクリーンな STONITH の状態に戻ります。
コンピュートノードの STONITH デバイスを有効にします。
pcs stonith enable <STONITH_DEVICE>
# pcs stonith enable <STONITH_DEVICE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - STONITH を使用するそれぞれのコンピュートノードで、この手順を実施します。
それぞれのコンピュートノードの Pacemaker リモートリソースを有効にします。
コンピュートノードの Pacemaker リモートリソースを特定します。
pcs resource status
# pcs resource statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow これらのリソースは
ocf::pacemaker:remoteエージェントを使用し、通常はコンピュートノードのホストの形式に基づく名前が付けられます (例:overcloud-novacomputeiha-0)。それぞれの Pacemaker リモートリソースを有効にします。
overcloud-novacomputeiha-0のリソースを有効にする方法を、以下の例に示します。pcs resource enable overcloud-novacomputeiha-0
# pcs resource enable overcloud-novacomputeiha-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Pacemaker リモート管理を行うそれぞれのコンピュートノードで、この手順を実施します。
Pacemaker サービスが起動するまで待ち、サービスが起動したことを確認します。
pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 起動プロセス中に Pacemaker リソースの起動に失敗した場合は、リソースのステータスと失敗回数をリセットします。
pcs resource cleanup
# pcs resource cleanupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記fence_computeやfence_kdumpなど、一部のサービスは開始に時間がかかる場合があります。
3.4.6. オーバークラウド Compute ノード上のインスタンスの起動 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform 環境の起動のサブタスクとして、Compute ノード上のインスタンスを起動します。
前提条件
- アクティブなノードを持つアクティブなオーバークラウド
手順
-
アンダークラウドに
stackユーザーとしてログインします。 source コマンドでオーバークラウドの認証情報ファイルを読み込みます。
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドで実行中のインスタンスを表示します。
openstack server list --all-projects
$ openstack server list --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウド内のインスタンスを起動します。
openstack server start <INSTANCE>
$ openstack server start <INSTANCE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 インスタンス HA が設定されたコンピュートノードおよびコントローラーノードでのメンテナンスの実行 リンクのコピーリンクがクリップボードにコピーされました!
インスタンス HA が設定されたコンピュートノードまたはコントローラーノードでメンテナンスを実行するには、そのノードを standby モードに設定し、ノード上の Pacemaker リソースを無効にしてノードを停止します。メンテナンス作業が完了したら、ノードを起動して、Pacemaker リソースが正常であることを確認します。
前提条件
- インスタンス HA が有効な動作中のオーバークラウド
手順
コントローラーノードにログインし、コンピュートノードまたはコントローラーノードを停止します。
pcs node standby <node UUID>
# pcs node standby <node UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要停止するノードとは異なるノードにログインする必要があります。
ノード上の Pacemaker リソースを無効にします。
pcs resource disable <ocf::pacemaker:remote on the node>
# pcs resource disable <ocf::pacemaker:remote on the node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ノード上でメンテナンス作業を実行します。
- IPMI の接続を復旧し、ノードを起動します。ノードの準備ができてから手順を進めます。
ノードで Pacemaker リソースを有効にし、ノードを起動します。
pcs resource enable <ocf::pacemaker:remote on the node> pcs node unstandby <node UUID>
# pcs resource enable <ocf::pacemaker:remote on the node> # pcs node unstandby <node UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードをメンテナンスモードに設定した場合は、source コマンドでアンダークラウドの認証情報ファイルを読み込んで、ノードをメンテナンスモードから設定を解除します。
source stackrc openstack baremetal node maintenance unset <baremetal node UUID>
# source stackrc # openstack baremetal node maintenance unset <baremetal node UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Pacemaker リソースがアクティブで正常なことを確認します。
pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
起動プロセス中に Pacemaker リソースが起動できない場合は、
pcs resource cleanupコマンドを実行して、リソースのステータスと異常回数をリセットします。 ノードを停止する前にコンピュートノードからインスタンスを退避させた場合は、インスタンスが別のノードに移行されていることを確認します。
openstack server list --long nova migration-list
# openstack server list --long # nova migration-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow