SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Dynamic Quorum による動的な投票数の調整

one comment

以前
Windows Server 8 Beta では 2 ノードでノード マジョリティが組める??
Dynamic Quorum と従来型の Quorum Model の切り替え
という投稿を書きました。

Windows Server 2012 の WSFC では Dynamic Quorum (動的クォーラム) という新機能を使用することができます。
この Dynamic Quorum ですが、クラスターのノードの投票数を動的に調整することで、クラスターを起動するために必要な投票を確保するという仕組みになるようです。

今回の投稿ではこの投票数の調整についてみていきたいと思います。

なお、Dynamic Quorum については Windows Server 2012 Failover Clustering Dynamic Quorum を見て勉強しています。

■Dynamic Quorum による動的な投票数の調整


Windows Server 2008 以降のクラスターのクォーラム構成については
Windows Server 2008 以降のクラスターのクォーラム構成について
がまとまっています。

3 台でクラスターを構築した場合、障害が許容できるノード数は
(3 ノード -1) / 2 = 1
となるため、障害が許容できるノードは 1 台のみとなり、クラスターが動作を継続するためには 2 台のサーバーが起動している必要があります。
しかし、Windows Server 2012 のクラスターで Dynamic Quorum を使用することで、2 台のノードで障害が発生してもクラスターの動作を継続することができます。
image
この時、クラスターを継続するためにどのノードの投票を有効にするかを NodeWeight という設定を使用して決めることができました。
NodeWeight が 1 のものはクラスターを継続するための投票数とカウントし、0 のものは投票数に含めないという形になります。

Windows Server 2012 クラスタークォーラムの設定では、今までコマンドでのみ設定をすることができた、投票の重みづけ (NodeWeight) の設定を [高度なクォーラム構成および監視の選択] から変更することができるようになっています。
image
image

投票構成の変更のほかに Dynamic Quorum の有効 / 無効も変更することができます。
image

この画面に Dynamic Quorum についての説明が書かれていますね。
Dynamic Quorum を使用することでアクティブ ノードが過半数未満の状態でもクラスターを実行し続けることができます。

Windows Server 2012 にはクラスターのノードのプロパティとして DynamicWeight という設定が追加されています。
これが Dynamic Quorum による動的な投票数の調整に使用されている設定になるようです。

Dynamic Quorum が有効な環境では、全ノードが起動している状態では DynamicWeight は 1 となっています。
image

DynamicWeight の設定は読み取り専用で変更することはできません。
image

ノードの起動状況によって自動的に DynamicWeight の値が調整されます。
この画像は CLS-NODE-13 をシャットダウンした際の DynamicWeight の状態です。
image

DynamicWeight の設定が動的に変更され、CLS-NODE-11 が起動していればクラスターを稼働できる状態に変更されています。
この状態で CLS-NODE-11 をシャットダウンしてみます。
そうすると以下のように CLS-NODE-12 のみが DynamicWeight =1 の状態となります。
image

DynamicWeight による動的な投票数の調整ですが、クラスターのサービスが正常に終了された場合に構成が変更されるようです。
上の画像は CLS-NODE-11 / 12 が起動している状態で、CLS-NODE-11 をシャットダウンしたものになります。
CLS-NODE-11 / 12 が起動している状態で DynamicWeight が 1 になっている CLS-NODE-11 を強制電断した場合、DynamicWeight の変更ができなかったようで、クラスターを継続することができませんでした。
正常にシャットダウンされなかった場合は DynamicWeight の値を変更できないようですね。
image

NodeWeight が 0 のものに関しては DynamicWeight は 0 になるようです
image

Cluster Object Common Properties を確認すると Windows Server 2012 では DynamicWeight 以外にも様々なプロパティが追加されているようですので情報は定期的にキャッチアップしておくとよいかもしれないです。

正常なシャットダウンが行われた場合は DynamicWeight による動的な投票数の調整は柔軟にクラスターを継続できるようですが、予期しないダウンが発生した場合の動作は気を付けておいたほうがよさそうですね。

2012/09/24 追記

Dynacmic Quorum については Configure and Manage the Quorum in a Windows Server 2012 Failover Cluster で情報が公開されていました。

英語が苦手なのであれですが、Dyunamic Quorum によるノードの投票数の自動調整は有効なノードがクラスターが認識できる状態でシャットダウンが行われた場合に働く機能なようですね。
# クラスターのサービスが正常に終了されていた場合に動作するのかと思います。

Dynamic Quorum によるノード調整は 2 ノードクラスターでも有効にすることができます。

2 ノードクラスターの場合、通常はノードの有効投票数が

  • (2 ノード / 2) + 1 = 2 ノード

になりますが、Dymnamic Quorum の場合は 2 ノードクラスターでも 1 ノードで起動することができます。
この

  • クラスターコアリソースの所有者 : Dynamic Weight = 1
  • 待機系ノード Dynamic Weight = 0

場合、ノードの得票数は以下のようになるようです。

この状態でクラスターコアリソースの所有者をシャットダウンすると、

  • クラスターコアリソースの所有者 : Dynamic Weight = 0
  • 待機系ノード Dynamic Weight = 1

となり、クラスターを維持するための投票数を確保することができるのでクラスターを起動しておくことができます。

ただし、

  • クラスターコアリソースの所有者 : Dynamic Weight = 1
  • 待機系ノード Dynamic Weight = 0

の状態でクラスターコアリソースの所有者が予期せぬシャットダウン(BSODや強制電断等)が発生した場合には DynamicWeightの調整をすることができず、

  • クラスターコアリソースの所有者 : Dynamic Weight = 1
  • 待機系ノード Dynamic Weight = 0

の状態のままとなり、クラスターを維持できなくなるようです。

Dynamic Quorum による Dynamic Weight の調整は、クラスターサービスが正常に終了された場合に動作し、それ以外の場合は、必要となる投票数を確保できるようにしておくのは今までのバージョンと変わらないようですね。

Written by masayuki.ozawa

9月 2nd, 2012 at 10:06 pm

One Response to 'Dynamic Quorum による動的な投票数の調整'

Subscribe to comments with RSS or TrackBack to 'Dynamic Quorum による動的な投票数の調整'.

  1. […] Dynamic Quorum による動的な投票数の調整 という投稿を描いたことがあるのですが、Windows Server 2012 […]

Leave a Reply

*