第4章 STONITH を使用したコントローラーノードのフェンシング

フェンシングとは、クラスターとクラスターリソースを保護するために、異常が発生したノードを分離するプロセスのことです。フェンシングがないと、異常が発生したノードが原因でクラスター内のデータが破損する可能性があります。director は、Pacemaker を使用して、高可用性のコントローラーノードクラスターを提供します。

Pacemaker は、障害の発生したノードをフェンシングするのに STONITH というプロセスを使用します。STONITH は、Shoot the other node in the head の略です。STONITH はデフォルトでは無効化されているため、Pacemaker がクラスター内の各ノードの電源管理を制御できるように手動で設定する必要があります。

コントローラーノードがヘルスチェックに失敗すると、Pacemaker 指定のコーディネーター (DC) として機能するコントローラーノードは、Pacemaker stonith サービスを使用して影響を受けるコントローラーノードをフェンシングします。

重要

STONITH を使用しない高可用性オーバークラウドのデプロイはサポートの対象外です。高可用性オーバークラウドの Pacemaker クラスターの一部である各ノードには、STONITH デバイスを設定する必要があります。STONITH および Pacemaker の詳細は、Red Hat High Availability クラスターでのフェンシングの設定 および RHEL High Availability クラスターのサポートポリシー - フェンシング/STONITH の一般的な要件 を参照してください。

4.1. サポート対象のフェンシングエージェント

フェンシング機能と共に高可用性環境をデプロイする場合、環境のニーズに応じてフェンシングエージェントを選択することができます。フェンシングエージェントを変更するには、fencing.yaml ファイルに追加のパラメーターを設定する必要があります。

Red Hat OpenStack Platform (RHOSP) では、以下のフェンシングエージェントがサポートされています。

Intelligent Platform Management Interface (IPMI)
Red Hat OpenStack Platform (RHOSP) がフェンシングの管理に使用するデフォルトのフェンシングメカニズム
STONITH Block Device (SBD)

SBD (Storage-Based Death) デーモンは、Pacemaker とウォッチドッグデバイスを統合して、フェンシングがトリガーされる際および従来のフェンシングメカニズムが利用できない場合に、ノードを確実にシャットダウンします。

重要
  • SBD フェンシングは、pacemaker_remote を使用するリモートベアメタルまたは仮想マシンノードを持つクラスターではサポートされません。そのため、デプロイメントでインスタンス HA が使用される場合はサポートされません。
  • fence_sbd および sbd poison-pill フェンシングとブロックストレージデバイスの組み合わせはサポートされません。
  • SBD フェンシングは、互換性のあるウォッチドッグデバイスでのみサポートされます。詳細は、Support Policies for RHEL High Availability Clusters - sbd and fence_sbd を参照してください。
fence_kdump

kdump クラッシュリカバリーサービスが設定されたデプロイメントで使用します。このエージェントを選択する場合、ダンプファイルを保存するのに十分なディスク容量を確保してください。

このエージェントは、IPMI、fence_rhevm、または Redfish フェンシングエージェントに追加する、セカンダリーメカニズムとして設定することができます。複数のフェンシングエージェントを設定する場合は、2 番目のエージェントが次のタスクを開始する前に、1 番目のエージェントがタスクを完了するのに十分な時間を割り当てるようにしてください。

重要
  • RHOSP director は fence_kdump STONITH エージェントの設定のみをサポートします。フェンスエージェントが依存する完全な kdump サービスの設定はサポートされません。kdump サービスの設定については、Red Hat ナレッジベースのソリューション How do I configure fence_kdump in a Red Hat Pacemaker cluster を参照してください。
  • Pacemaker ネットワークトラフィックインターフェイスが ovs_bridgesovs_bonds、または Linux ブリッジ上の VLAN を使用する場合、fence_kdump はサポートされません。fence_kdump を有効にするには、ネットワークデバイスを linux_bond または linux_bridge に変更する必要があります。VLAN および kdump については、Red Hat ナレッジベースのソリューション What VLAN configurations are supported for kdump? を参照してください。ネットワークインターフェイスの設定に関する詳細は、Network interface reference を参照してください。
Redfish
DMTF Redfish API をサポートするサーバーが設定されたデプロイメントで使用します。このエージェントを指定するには、fencing.yaml ファイルで agent パラメーターの値を fence_redfish に変更します。Redfish についての詳細は、DTMF のドキュメント を参照してください。
Red Hat Virtualization (RHV) 用 fence_rhevm

RHV 環境で実行されるコントローラーノードのフェンシングを設定するのに使用します。IPMI フェンシングの場合と同じ様に fencing.yaml ファイルを生成することができますが、RHV を使用するには、nodes.json ファイルで pm_type パラメーターを定義する必要があります。

デフォルトでは、ssl_insecure パラメーターは自己署名証明書を受け入れるように設定されます。セキュリティー要件に応じて、パラメーターの値を変更することができます。

重要

UserVMManager などの RHV で仮想マシンを作成して起動する権限を持つロールを使用するようにしてください。

マルチレイヤーフェンシング
複雑なフェンシングのユースケースに対応するために、複数のフェンシングエージェントを設定することができます。たとえば、fence_kdump と共に IPMI フェンシングを設定することができ ます。Pacemaker が各メカニズムをトリガーする順番は、フェンシングエージェントの順序により決まります。