今まで設定したことがなかったのですが、Windows Server 2008 / Windows Server 2008 R2 SP1 に以下の Htofix を適用した環境では、クラスターで非対称ストレージ (非対称ディスク) を使用することができます。
2012 以降ではデフォルトで利用できるようですね。
軽く試してみた内容をまとめてみたいと思います。
ドキュメントとしては、以下が参考になります。
WSFC クォーラム モードと投票の構成 (SQL Server)
Building a High Availability and Disaster Recovery Solution by Using Failover Cluster Instances and Availability Groups
Configure and Manage the Quorum in a Windows Server 2012 Failover Cluster
Failover Cluster Step-by-Step Guide: Configuring the Quorum in a Failover Cluster
SQL Server HA and DR Design Patterns, Architectures, and Best Practices Using Microsoft SQL Server 2012 AlwaysOn
従来までの WSFC では各ノードで同一の共有ストレージ (対象ストレージ) に接続できる必要がありました。
これに対して、非対称ストレージは、各ノードが異なるディスクに接続した状態でクラスターを稼働させることができます。
遠隔地にクラスターを構築する際のクォーラムの構成として、非対称ストレージを使用することができます。
今回は、以下のような環境を作成しています。
ノード 1 に対しては、iSCSI でディスクを接続していますが、ノード 2 に関しては共有ディスクを接続していない状態となります。
この環境で共有ストレージをクォーラムとして設定をしてみます。
クラスタークォーラムは、コアクラスターリソース内のリソースとなりますので、最初に「ノード1」に
- コアクラスターリソース
- 使用可能記憶域
を移動した状態にし、ディスクに関しては「ノード 1」上でオンラインにした状態にしています。
今回のディスクは、クラスター内のノードである「ノード 2」からアクセスすることができない、「非対称ストレージ」となっています。
Windows Server 2012 R2 では、非対称ストレージを使用するノードにリソースが移動されていれば、通常の方法で、ディスクのクォーラムを設定することができます。
GUI から設定を実施した場合、ディスクおよびノード監視が使用されている状態となります。
Get-ClusterQuorum;Get-ClusterNode | ft name,NodeWeight,DynamicWeight -AutoSize
また、クォーラムで使用しているディスクの所有者ですが、非対称ストレージにアクセスできないノードも所有者として設定されている状態となっています。
Get-ClusterResource "Quorum" | Get-ClusterOwnerNode
ですので、クォーラムとして非対称ストレージを使用する場合、
- クラスターの投票数の調整
- 非対称ストレージの所有者の調整
は意識しておいた方がよさそうですね。
今回は以下のような形で上記の調整を行っています。
# 今回の場合は 2 ノードですのでディスククォーラムにするのが正しい気がしますが、簡易の構成ですので、本来、非対称ストレージをクォーラムとして使用する構成である、3 ノードでの設定を想定しています。
(Get-ClusterNode WSFC-TEST-02).NodeWeight = 0 Get-ClusterResource "Quorum" | Set-ClusterOwnerNode -Owners WSFC-TEST-01
この状態になると、ノード 2 では、クォーラムで使用しているディスクの所有権がないため、コアクラスターリソースをノード 2 でオンラインにできなくなります。
非対称ストレージを使用していないノードでクラスターを起動したい場合には、ノード 2 でクラスターをクォーラムを使用せずに強制起動します。
Start-ClusterNode $ENV:COMPUTERNAME -ForceQuorum
クラスターが起動したらクォーラムの設定をなし (または、待機系のノードに適したクォーラム) に設定します。
Set-ClusterQuorum -NoWitness
これで、待機系のノードでクラスターが起動できるようになります。
WSFC のノードを遠隔地に作成する場合などの参考に。