Windows、および Linux 上のクラスターでハートビートおよびフェイルオーバーが機能する仕組み
2 つのサーバーを同期して、サーバー障害を検知する基本的なメカニズムはハートビートといい、ペアのサーバーによって共有されるネットワーク上のデータ フローを監視します。
SafeKit ソフトウェアは、2 つのサーバーが共有するネットワーク上にあるハートビートであればいくつでもサポート(英語)します。ハートビートのメカニズムは、Windows、および Linux クラスターの実装に使用されます。ハートビートはミラー クラスター アーキテクチャに統合されています。
通常の運用では、2 つのサーバーがハートビート チャネル経由で自らの状態 (PRIM、SECOND、リソースの状態) を交換して、アプリケーションの開始および停止手順を同期します。特に、ソフトウェア障害または手動での操作に起因するアプリケーション フェイルオーバーの場合には、開始スクリプトがセカンダリ サーバーで実行される前に、アプリケーションを停止する停止スクリプトがプライマリ サーバーで先に実行されます。したがって、セカンダリ サーバーで複製されたデータは、アプリケーションのクリーン ストップに応じて安全な状態になります。
すべてのハートビートが失われると、他のサーバーがダウンしていると解釈され、ローカル サーバーが ALONE 状態に切り替わります。アプリケーション ALONE 状態になったのが SECOND サーバーである場合、フェイルオーバーが発生して、セカンダリ サーバーのアプリケーションが再起動されます。必須ではありませんが、ネットワーク障害の場合とサーバー障害の場合を切り離すために、2 つの異なるネットワーク上に 2 つのハートビート チャネルを用意して 2 つのサーバーを同期することが推奨されます。