SE の雑記

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

Windows Server 2008 R2 のマルチサイトクラスターについて

leave a comment

Denali ではマルチサブネットクラスターが構築できるようになりました。

その前段として Windows Server 2008 R2 を使用してマルチサイトクラスターの構築を軽くまとめてみたいと思います。

マルチサイトクラスターに関しての参考情報は以下になります。
ステップ バイ ステップ ガイド – フェールオーバー クラスタ : フェールオーバー クラスタ用ハードウェアを検証する
ルーティングされる複数のサブネットに Windows Server 2008 のフェールオーバー クラスタ ノードを展開する際の注意事項
Multi-Site Clustering with Windows Server 2008 Enterprise
Disaster Recovery Cluster Deployment & Demo – Multi-Site Failover Clustering

■ベース環境の構築


マルチサイトクラスターを設定する場合は拠点間のサーバーでクラスターを組むことになると思います。
# ジオクラスターのシナリオで使うことになるかと。

今回は以下のような環境を用意しました。
image

クラスターを構築するために両サーバーとも AD に参加している状態です。

 

■マルチサイトクラスターの構築


それではマルチサイトクラスターを構築してみたいと思います。

マルチサイトクラスターですがクラスターの構築は同一サブネット上のクラスターとさほど変わりません。

クラスターに参加させるノードを指定して、
image

構成検証テストを実施します。
image

マルチサイトクラスターの場合、拠点間のサーバーでクラスターを組むため共有ディスクは使用せずにストレージのレプリケーション等で、各ノードに接続しているディスクのデータ同期をしクラスターを使用することがあるかもしれません。
そのような場合は、すべてのテストを実施するのではなく、[記憶域] を外してテストを実施したほうが良いかもしれないですね。
image

検証が終了したら先に進めます。

マルチサイトクラスターの場合、クラスター名を設定する際に各サブネットの IP に対してクラスターの仮想 IP を設定することができます。
# 複数の NIC を接続していて、各 NIC に異なるサブネットを設定している場合と同様の設定ですね。
image

ここで指定した IP アドレスが各拠点のノードにフェールオーバーした際に使用される仮想 IP アドレスとなります。

クラスターが構築された後のクラスター コア リソースの状態は以下のようになります。
image
現在は CLUSTER-01 がクラスター コア リソースを所有しているため、CLUSTER-01 の IP で使用しているネットワークである 192.168.150.120 の IP アドレスがオンラインの状態となっています。

CLUSTER-02 にリソースを移動すると以下のようになります。
image

マルチサイトクラスターの場合、リソースを所有しているノードのネットワークに適した IP アドレスがオンラインになります。

このように柔軟に適切な IP アドレスのリソースをオンラインにできる仕組みですが、依存関係の [OR] を使用することで実装されています。
仮想 IP アドレスはクラスター名に関連付いたリソースとなっているのですが、クラスター名のリソースで依存関係は以下のように設定されています。
image

依存関係レポートを見るとこのような形ですね。
image

 

クラスター名のリソースをオンラインにする場合には、依存関係として設定されている IP アドレスのどちらかがオンラインになっていれば正常に動作する設定となっています。
image

このような OR の設定は Windows Server 2008 のクラスターから可能になったため、2008 以降でマルチサイトクラスターがサポートされるようになりました。

 

■マルチサイトクラスターに関してのパラメーター調整


クラスターのネットワーク名で使用している IP アドレスですが DNS に登録が行われます。
デフォルトの設定では以下のように登録が行われます。
image
image

リソースを CLUSTER-02 に移動させると以下のように DNS の内容が変更されます。
image

デフォルトの設定では、オンラインになっている IP アドレスがクラスター名の IP アドレスとして登録がされ、TTL は 20 分として設定されます。

DNS の登録までは多少タイムラグがあるため変更前のレコードで名前解決がされてしまう、TTL が 20 分になっているためレコードが変更されてもキャッシュされた DNS レコードで名前解決されてしまう場合があるかもしれません。

そのため、クラスター名のプライベートプロパティには [HostRecordTTL] と [RegisterAllProvidersIP] の 2 種類の設定が用意されています。
image

[HostRecordTTL] は DNS 登録時の TTL となります。デフォルトは [1200 秒] となっているため 20 分が設定されます。
この値を変更することで DNS の TTL の調整をすることが可能です。

[RegisterAllProvidersIP] は DNS に登録をする際の IP アドレスとなります。デフォルトは [0] となっているため、オンラインになっている IP アドレスのみが登録されます。
[1] に変更することで、ネットワーク名と依存関係のある IP アドレスを DNS に登録することが可能です。

各プロパティの設定を変更する場合は、以下のようなコマンドを実行します。

cluster res "<ネットワーク名>" /priv HostRecordTTL=<秒数>
cluster res "<ネットワーク名>" /priv RegisterAllProvidersIP=<設定>

設定例
cluster res "クラスター名" /priv HostRecordTTL=30
cluster res "クラスター名" /priv RegisterAllProvidersIP=1

image

設定変更後は対象のリソースを一度オフライン→オンラインにする必要があります。
クラスター コア リソースをオフラインにするとクラスターが停止してしまうかもしれないので [cluster group "クラスター グループ" /moveto] でリソースを移動させることでオフライン→オンラインとした方が良いかもしれないです。

設定変更後の DNS の状態がこちら。
image
image

クラスター名に依存関係のある IP が登録され、TTL が設定値となっていることが確認できますね。

Denali のマルチサブネットクラスターの場合は、TTL を短くして、両 IP を登録し接続文字列で [MultiSubnetFailover=Yes] を設定するのが良さそうだったりします。

マルチサイトクラスターの設定としては、クラスターのプロパティの [CrossSubnetDelay] や [CrossSubnetThreshold] [SecurityLevel] 等があるようです。
これらの設定に関しては以下のコマンドで確認することが可能です。

cluster /prop

SQL Server のマルチサブネットクラスターを試す前に少し Windows Server 2008 R2 のマルチサイトクラスターについて少しまとめてみました。

Share

Written by Masayuki.Ozawa

8月 16th, 2011 at 8:10 pm

Leave a Reply