フェールオーバーのしきい値 (Windows Server 2008 編)

こんにちは。Windows テクノロジー サポートの永野です。

今回は、Windows Server 2008 のクラスタについてです。
グループがノード間を何回フェールオーバーできるかご存知ですか?
まずは、以下の KB をご覧ください。

Failover/Failback Policies on Microsoft Cluster Server
https://support.microsoft.com/kb/197047/en-us
https://support.microsoft.com/kb/197047/ja (日本語機械翻訳)

上記 KB のここに注目してください。
---
The failover threshold is the number of times the group can fail over within the number of hours specified by the failover period.
フェールオーバーしきい値は、フェールオーバー期間で指定された時間数内のグループがフェールオーバーできる回数です。
---

フェールオーバーできる回数は、グループのプロパティの FailoverThreshold に格納されています。
Cluster.exe で確認してみましょう。実行方法は、以下です。

> Cluster.exe group "グループ名" /prop

手元の環境で、実際に実行してみました。

C:\>Cluster.exe group "msfcgenapp" /prop

 

'msfcgenapp' のプロパティの一覧を作成しています:

 

T リソース グループ 名前 値

-- -------------------- ------------------------------ -----------------------

SR msfcgenapp Name MSFCGenApp

SR msfcgenapp InternalState Online

S msfcgenapp Description

D msfcgenapp PersistentState 1 (0x1)

D msfcgenapp FailoverThreshold 4294967295 (0xffffffff)

D msfcgenapp FailoverPeriod 6 (0x6)

D msfcgenapp AutoFailbackType 0 (0x0)

D msfcgenapp FailbackWindowStart 4294967295 (0xffffffff)

D msfcgenapp FailbackWindowEnd 4294967295 (0xffffffff)

M msfcgenapp AntiAffinityClassNames

FailoverThreshold の値を確認します。
0xffffffff ??
これは無限にフェールオーバーするって言う意味?と思われるかもしれませんが、実は違うんです。
FailoverThreshold が、0xffffffff に設定されているリソースは内部的に FailoverThreshold の値にクラスタを構成するノード数が設定されます。
例えば、グループの FailoverThreshold の値は、2 ノード環境では 1、3 ノード環境であれば 2 となります。
意外と少ないと思われる方もおられるかも知れません。
そういった場合には、コマンド プロンプトから以下のコマンドを実行することで変更可能です。

> cluster.exe group "クラスタ グループ" /prop FailoverThreshold=<変更する値>

実行例)
> cluster.exe group "クラスタ グループ" /prop FailoverThreshold=8

クラスタの設定は奥深いので、ぜひ色々試してみてください。

※ Windows Server 2008 は GUI 表示が誤っている問題がありますので以下の資料も参照してください。

The default group failover threshold value in the Windows Server 2008 Failover Cluster Management snap-in is incorrect
https://support.microsoft.com/kb/950804/en-us