MENU
category

[Windowsクラスタ]WSFCがリソースの異常を検知し、フェイルオーバするまでの処理の流れと関連設定は?

リソースの異常を検知し、フェイルオーバするまでの流れは以下となる。

  1. リソースDLLのLooks Aliveポーリングでリソースの異常検知 OR 
    リソースDLLのIs Aliveポーリングでリソースの異常検知

    ※リソースの異常はAliveポーリングのみでなく、リソース起動時、停止時に時間がかかっている場合にも異常検知し失敗状態となる。異常と判定される時間はリソースのプロパティ[ポリシー]タブの「保留タイムアウト」の時間となる。

  2. リソースは失敗状態となり、リソースのプロパティ[ポリシー]タブの「リソースが失敗状態になった場合は、再起動しない」にチェックを入れている場合、失敗状態のままとなり、再度起動を行う際は手動で行う必要がある。

    「リソースが失敗状態になった場合は、現在のノードで再起動」にチェックを入れている場合、リソースが失敗状態のままではなく再起動を行う。

  3. 再起動時に失敗した場合、再度再起動を試みます。再起動はリソースのプロパティ[ポリシー]タブの「指定期間内での再起動の試行回数」の数だけ行う。

    再起動の試行回数は再起動を開始してからリソースのプロパティ[ポリシー]タブの「再起動期間」の時間が経過するとリセットされる。

  4. 再起動に失敗し再度再起動を行う際、リソースのプロパティ[ポリシー]タブの「再起動の遅延」の時間分、間隔を空ける。

  5. リソースのプロパティ[ポリシー]タブの「再起動に失敗した場合は、この役割のすべてのリソースをフェールオーバーする」にチェックを入れている場合、繰り返し実行される再起動が全て失敗した際に、別ノードにフェールオーバーし、移動先ノードにて再起動を試みる。

    「再起動に失敗した場合は、この役割のすべてのリソースをフェールオーバーする」  にチェックを入れていない場合、フェールオーバーせず失敗状態のままとなりリソースのプロパティ[ポリシー]タブの「再起動がすべて失敗した場合は、指定した期間後にもう一度再起動を開始する」の時間後に再起動を試みる。

  6. 「再起動に失敗した場合は、この役割のすべてのリソースをフェールオーバーする」 にチェックを入れており、別ノードにリソースがフェールオーバーした後、移動先のノードにおいても「指定期間内での再起動の試行回数」の数だけ再起動に失敗した場合、失敗状態となり、「再起動がすべて失敗した場合は、指定した期間後にもう一度再起動を開始する」の時間後に再起動を試みる。「再起動がすべて失敗した場合は、指定した期間後にもう一度再起動を開始する」の時間後の再起動にも失敗しますと再度別ノードへフェールオーバーする。

  7. 上記⑥にて再度別ノードへフェールオーバーを開始するが、フェールオーバーを行う回数は一定時間制限されている。失敗したリソースが所属する役割(リソースグループ)のプロパティ[フェールオーバー]タブにある、「期間(時間)」の間の最大フェールオーバー回数は、同じく[フェールオーバータブ]にある「指定した期間内の最大エラー数」の指定値となる。 一定時間内に最大フェールオーバー回数を超えようとしますと、リソースはフェールオーバーが行われず、失敗状態となります。

参考)
ハートビート通信不通時の(NW障害、片ノードのクラスタサービスorノードダウン等)フェールオーバーの流れは以下となる。

  1. ハートビートパケット(既定は1秒毎×5回)の応答無しを確認。
  2. 起動しているノードは通信を取り合えるノードと所有しているクォーラムディスクの数を計算し、合計が全ノード数の半分以下を下回りますとクラスタサービスを停止いたします。
  3. 合計が全ノード数の半分を超えていますとクラスタサービスは継続稼働し、通信が取れないノードが所有しているリソースは失敗状態となり、稼働中のノードへフェールオーバーする。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次