第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リソースエージェントが起動します。これにより、ノードが解放され、インスタンスが再び実行できるようになります。