MSFCの優先所有者と実行可能な所有者の関係

WS000000

クラスタグループにおいて優先する所有者という設定があります。これは主に、フェールオーバー順やフェールバックの戻り先を設定するために使用します。ただし、優先所有者として指定されなかったノードにフェールオーバーしないわけではないことに注意が必要です。

仮に8ノードのクラスタがあったとします。そのうち、NodeA→NodeB→NodeCの順に優先所有者の設定を行います。順にNodeAがダウンするとNodeBへフェールオーバー、NodeBがダウンするとNodeCへフェールオーバー、NodeCがダウンするとランダムなノードへフェールオーバーということになります。

WS000003

実行可能な所有者という設定があります。リソースの詳細なポリシーに存在するものです。これはどのような時に使用するのか?

優先所有者

仮に4ノードクラスタが存在しています。この時NodeDが待機系だとします。いわゆるActive / Active / Active / Passive (AAAP)の構成です。この時はまず優先所有者でNodeAに対してはNodeAとNodeDにチェックを入れます。こうすれば待機系のマシンにフェールオーバーしてくれますね。しかし、この設定だけだと仮にNodeDがダウンすると他のノードにフェールオーバーしてしまいます。そこで「実行可能な所有者」の設定が生きてきます。この「実行可能な所有者」はまさにそのノードでしか実行を許しません。よって確実に待機系ノードでのみ実行させる場合には優先所有者の設定と同時に、実行可能な所有者の設定も行います。

しかし、この設定もNodeDが障害を起こすと困ります。そこで、待機系ノードを複数台用意します。そうすれば、懸念材料が少なくなります。が、ここでまたまた問題が・・・待機系ノードにフェールオーバー後に、他のノードも同じ待機系ノードにフェールオーバーしてくる可能性がありますね。

こんなときは「AntiAffinityClassNames」を使用します。

参考:ホット スペア サポートのための Windows クラスタ グループ構成方法

cluster group “<グループ名>” /prop AntiAffinityClassNames=”<一意の識別名>”

この設定はグループに対して行うもので、AntiAffinityClassNamesに同じ名前がある場合には、それを除く優先所有者の設定が使用されます。ですので仮に、NodeDとNodeEが待機系ノードで、NodeDにグループAがフェールオーバーしてきます。その後グループBがフェールオーバーして来たとします。

グループBの設定は優先所有者がNodeB、NodeD、NodeEの順番で、なおかつ実行可能な所有者も同様です。この場合、まずNodeDに対してフェールオーバーしようとしますが、グループAとグループBに対してAntiAffinityClassNamesに同じ名前を設定してある場合は、NodeDを除外した優先所有者が使用されます(NodeDにグループAがいるため)

よって、優先所有者のNodeEが使用されることになります。

AntiAffinityClassNamesの動作は、絶対ではありません。なぜなら、もし同じ名前しかなかった場合はその中でフェールオーバーします。ですので、この設定は優先所有者の拡張版と捉えることができますね。

あくまでも強制力を持たせるのは、実行可能な所有者の設定になります。

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください