[Linux][Windows]共有ストレージを使用しています。ハートビートが全て切断された場合、どのような挙動を示しますか?

Windows版/Linux版でハートビート全断時の挙動は異なります。

[Linux]
LifeKeeper for Linuxの 共有ストレージ環境において、ハートビート全断が発生した場合のLifeKeeperの動作は以下の通りです。

1)ハートビート切断の発生

2)両系でコミュニケーションフェイルオーバー(自ノード上で全てのリソースを起動 させます)が実行されます。
  =>起動させるべきリソースが存在しない場合は、コミュニケーションフェイル オーバ動作を終了します。
  =>起動させるべきリソースが存在する場合は、そのリソースの起動を実行します。

3)上記2)の中に共有ストレージ上のディスクリソースが含まれている場合、待機系では以下の手続きでの起動を試行します。

 3-1)対象LUのRESERVEを試みます
    =>スプリットブレイン時は稼動系ノードがLUにRESERVEをかけているためRESERVATION CONFLICTとなり、失敗します。
 3-2)上記3-1が失敗した場合は、BUS_DEVICE_RESETを実行し、LUの解放を試みます。
 3-3)BUS_DEVICE_RESETに続いて再度RESERVEを試みます。
 3-4)上記3-3に失敗した場合は、BUS_RESETを実行します。
 3-5)BUS_RESETに続いて再度RESERVEを試みます。

4)上記3)のいずれかの箇所で待機系がSCSIのRESERVEを奪う事に成功した場合、稼動系は通常のディスクチェック上でRESERVEが奪われたことを検知し、強制再起動が行われます。

これは、共有データ領域のデータ破壊を防ぎ、データ整合性を保つための動作です。また稼動系が再起動時にディスクリソースをアクティブすることはありませんので、ピンポン状態は発生しません。

[Windows]
Windows版はハートビート全断状態になった場合、Linux版のようにサーバの強制リブートを行いません。その際の共有データ領域の両系マウントを防止するための仕組みとして「Safety Check」を実行しています。

「Safety Check」とは、全てのNICの通信経路を使用して、クラスタを構成する相手ノードと通信できないことをpingレベルで確認する仕組みです。全ての通信経路において、相手サーバと通信ができないことを確認すると相手ノードの障害と判断し、フェイルオーバを行います。

return top