Windows Server 2008 R2 になって増えた機能があります。
Windows Server 2008
Windows Server 2008 R2
[フェールオーバークラスターマネージャー]の[サービスとアプリケーション]に登録されているグループの[プロパティ]を確認すると
□永続的なモードを有効にする
□自動開始
が新規項目として追加されているのが確認できます。
これらの意味合いは、次の通り
「永続的なモードを有効にする」の制御
管理者が最後にこのグループをオンラインにする操作(「グループをオンラインにする」と「グループの別ノードへの移動」操作)を行ったノードが『既定の所有者』と認識され、以降、クラスタ全体を停止/開始した場合にはこのグループはこのノードでオンラインとなるよう制御される。
クラスタリソースとしてHyper-Vの仮想マシンを登録した場合は、既定でオンになっている。
ここで動作のテスト(各ノード同時起動)
【ケース1】
1.この「永続的なモードを有効にする」チェックボックスをオンにする。
2.ノードAでグループAをオフラインにし、オンラインにする。これでノードAが『既定の所有者』と認識されたはず。
3.その後、グループAをノードBに移動。
4.全ノードのクラスタサービスを停止/開始
5.グループAは『ノードB』でオンラインになる
※結論:つまり「移動」操作も管理者がグループをオンラインにする手動操作なので、『既定の所有者』がノードBになってしまったわけである
【ケース2】
1.グループAをノードAに持って来て、再びオフライン/オンラインをする。
2.そして、「移動」ではなく「エラーのシュミレーション」でノードBにフェールオーバーさせる。
3.全ノードのクラスタサービスを停止/開始
4.すると、グループAは『ノードA』でオンラインになった
※結論:OK。予定通りの動作。
【ケース3】
1.ノードAが『既定の所有者』となっている、この状態で、優先所有者をノードBにしてみる。
2.全ノードのクラスタサービスを停止/開始
3.グループAは『ノードB』でオンラインになった
※結論:『既定の所有者』と『優先所有者』は優先所有者の方が強い。
【ケース4】
1.ノードAが『既定の所有者』となっている状態で、優先所有者は削除する。
2.「フェールバック・今すぐ」の設定にする。
3.グループAがノードAにいる状態で、ノードAを停止/開始
4.グループAは『ノードB』に行ったまま。フェールバックはしない。
※結論:『既定の所有者』はフェールバック動作には機能しない。フェールバックにはやはり『優先所有者』の設定が必須。
「自動開始」の制御
クラスター開始時にそのグループ内のリソースを開始するかどうかを指定するスタートアップ値の設定であるが、条件としてはオフライン状態でクラスターをシャットダウンした場合は含まれない。要するに、オンライン状態でのクラスターシャットダウンを行った場合のみ、確実にそのリソースが開始される。
※不明な点
実は、リソースに対して「自動開始」にチェックをした状態で、仮にリソースがオフライン状態でクラスターをシャットダウンしても、再度クラスターを起動したときにリソースを起動させるには「PersistentState」の値を変更することによって可能とされているようですが、これがうまくいくときといかないときがありました。
そもそも、「PersistentState」の値の統一性が見られないかったのです。グループが起動しているときが「1」だと思ったのですが、テストを繰り返すうちに「0」の状態でも起動していることを確認しました。またいろいろ調べてみるとグループのオンライン-オフラインを行うことによって値が変化することは確認できました。しかし、手動で変更するとその後の動作に一貫性がないような・・・私の検証方法がいけないのかは不明。
これはもしかしてバグかな~
その他の変更点
「ClusterGroupWaitDelay」の値
クラスタサービス開始時に「優先する所有者」または「既定の所有者」のノード以外でクラスタリソースが起動しないよう、クラスタリソースの起動を待ち合わせる最長の時間です。「Cluster /porp」で確認することができ、既定では「30」秒が設定されています。クラスタリソースの起動が可能になった時点から30秒の待ち合わせを行いますが、当然ながらすべてのノードが起動したらすぐにグループはオンラインになります。
コメント
はじめまして、
この、PersistentStateを使って運用しているシステムを作成しました。
稼動後、仮想サーバーが自動起動しないトラブルが発生しています。
今ホストOSリブートスクリプト内で
仮想サーバーを手動で停止し、クラスターサービスを停止後、
PersistentStateを無条件で1に設定しサーバーを再起動しています。
ところが、自動起動するときとしないときがあり、こちらにたどり着きました。
TechNetフォーラムへも問い合わせ中fです。
やはり信ぴょう性は無いのでしょうか・・・
PersistentState は検証の結果Blogに書いた通りなのでこれを使っての制御はしない方がいいでしょうね。またTechnet フォーラムは有志による回答なので、有償サポートに連絡したほうが確実だと思いますよ。