記憶域スペースダイレクト(Storage Spaces Direct 以下 S2D)を共有領域として利用するHyper-Vクラスターの構築手順。
ここでは構築手順を確立するために全ての要素をHyper-V仮想マシン上で構築する。よって、ネットワーク帯域やディスクなどに関してS2Dのハードウェア要件を満たせていない部分がある点に留意すること。
検証環境
ノードサーバー (2台)
クラスターを構成するためのハイパーバイザーサーバー。
- 機種: 第二世代 Hyper-V仮想マシン
- ストレージ: HDD: 300GB x5
- NIC: 1Gpbs NIC x1
- CPU: 16core
- メモリ: 16GB
- OS: WindowsServer2016 DataCenter 評価版
ActiveDirectoryサーバー (1台)
クラスターを管理するためのActiveDirectoryドメインサーバー。
- 機種: 第二世代 Hyper-V仮想マシン
- ストレージ: HDD: 300GB x1
- NIC: 1Gpbs NIC x1
- CPU: 4core
- メモリ: 4GB
- OS: WindowsServer2016 Standard 評価版
ネットワーク
検証用ネットワーク(192.168.1.0/24)
- ActiveDirectoryサーバー: 192.168.1.20/24
- ノードサーバー1: 192.168.1.31/24
- ノードサーバー2: 192.168.1.32/24
- クラスターIP: 192.168.1.35/24
サーバーへのOSインストール
以下の点に気を付けてOSをインストールする。
- GUIありでインストールする
- 【ノードサーバーのみ】WindowsUpdateの適用状態をサーバー同士で同じ状態にする
- 【ノードサーバーのみ】S2D用ディスクは全てGPTでフォーマットする
- 時刻同期が正しく行われるようにする
Nested Hyper-Vの有効化
ノードサーバーはHyper-V仮想マシンであるため、そのままではHyper-Vの機能をインストールできない。
そこで、ノードサーバーに対してNested Hyper-Vを有効にしておく。
Set-VMProcessor -VMName <仮想マシン名> -ExposeVirtualizationExtensions $true
当たり前だが、実際の物理マシンの場合はこの作業は不要である。
クラスター管理ドメインの準備
ActiveDirectoryのインストール
AcriveDirectoryサーバーに対し、サーバーマネージャーから以下の機能をインストールする。インストールの詳細は省略。
- Active Directory ドメイン サービス
ドメインの作成
ドメインコントローラーに昇格してドメインを作成する。ドメイン作成の詳細は省略。
- ドメイン機能レベル: Windows Server 2016
- ドメイン名: s2d.local
ドメインへの参加
ノードサーバーをドメインに参加させる。ドメイン参加手順の詳細は省略。
クラスターの作成
クラスター関連機能のインストール
全てのノードサーバーに対し、サーバーマネージャーから以下の機能をインストールする。
- Hyper-V
- フェールオーバークラスタリング
役割・機能のインストール
役割・機能選択後のウィザードは何も変更しない。
インストール完了後はサーバーを再起動すること。
Hyper-Vクラスターの作成
1台のノードサーバー上でのみ実施する。
"フェールオーバークラスターマネージャー"を起動し、"クラスターの作成"を選択する。
疑似環境であるため検証作業は省略する。
マイクロソフトサポートを受けるために必要であるため、実機では必ず実施して問題が無いことを確認すること。
クラスターの作成を実施する。"使用可能な記憶域をすべてクラスターに追加する"のチェックは外すこと。
クラスターが作成され、フェールオーバークラスターマネージャー上に表示される。
クォーラム領域を準備する
AcriveDirectoryサーバー上にてファイル共有を作成し、全てのノードサーバーからアクセス出来るようにする。詳細は省略。
クラスターにクォーラム領域を設定する
1台のノードサーバー上でのみ実施する。
"フェールオーバークラスターマネージャー"を起動し、作成したクラスターを右クリックして"他のアクション"→"クラスタークォーラム設定の構成"を選択する。
S2D設定
クラスターに対してS2Dプールの作成を行う
1台のノードサーバー上でのみ実施する。
PowerShellにて以下のコマンドを実行し、S2Dの有効化及びS2Dストレージプールの作成を行う。
この作業を実施すると、S2Dに使用されたディスクがOS上から見えなくなる。
Enable-ClusterStorageSpacesDirect
確認
この操作を実行しますか?
ターゲット 'クラスターの記憶域スペース ダイレクトを有効にします' で操作 's2dcluster-v' を実行しています。
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
警告: 2018/01/11-19:48:38.667 ノード S2D-VNODE2: キャッシュに使用するディスクが見つかりませんでした
警告: 2018/01/11-19:48:38.698 ノード S2D-VNODE1: キャッシュに使用するディスクが見つかりませんでした
警告: 2018/01/11-19:48:38.714 C:\Windows\Cluster\Reports\Enable-ClusterS2D on 2018.01.11-19.48.38.706.htm
キャッシュディスクが無いと表示されるが、特に気にする必要はない。
本当にプールができたかどうかを確認したい場合は、以下のコマンドを実行する。
Get-StoragePool
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly
------------ ----------------- ------------ ------------ ----------
Primordial OK Healthy True False
S2D on s2dcluster-v OK Healthy False False
Primordial OK Healthy True False
S2Dプール名は自動で "S2D on クラスター名" となる。
S2Dプール上に仮想ディスクを作成する
1台のノードサーバー上でのみ実施する。
PowerShellにて以下のコマンドを実行し、S2Dストレージプール上に仮想ディスクを作成する。
今回はノードサーバーが2台であるため、"双方向ミラー"モードでディスクを作成する。(2ノード環境では双方向ミラーしか構成できない)
Get-StoragePool
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly
------------ ----------------- ------------ ------------ ----------
Primordial OK Healthy True False
S2D on s2dcluster-v OK Healthy False False
Primordial OK Healthy True False
New-Volume -StoragePoolFriendlyName <S2Dプール名> -FriendlyName <仮想ディスク名> -Size <サイズ> -FileSystem ReFS -ResiliencySettingName Mirror -PhysicalDiskRedundancy 1
【例】
New-Volume -StoragePoolFriendlyName "S2D on s2dcluster-v" -FriendlyName "Volume1" -Size 1.1TB -FileSystem ReFS -ResiliencySettingName Mirror -PhysicalDiskRedundancy 1
DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining Size
----------- --------------- ---------- --------- ------------ ----------------- ------------- ----
Volume1 ReFS Fixed Healthy OK 1.09 TB 1.1 TB
備考: 仮想ディスクのサイズについて
仮想ディスクのサイズはモードによって設定可能な最大値が変動する。
今回は300GBのディスク4本を使用したノードを2台使用したため、物理的な容量は約2.4TBとなるが、双方向ミラーでは設定可能な最大値は約1.2TB(50%)となる。
TB/TiB問題もあり、-Size
オプションで指定可能なサイズは結局1.1TB程度になる。(設定可能な値を超えるとエラーになる。)
仮想ディスクをクラスター共有ボリュームに変換する
1台のノードサーバー上でのみ実施する。
作成した仮想ディスクはそのままだとクラスターで利用できないため、クラスター共有ボリュームに変換する必要がある。
"フェールオーバークラスターマネージャー"を起動し、クラスターのツリーにある"記憶域"→"ディスク"を開き、作成した仮想ディスクを選択したあと、"クラスターの共有ボリュームへの追加"を押す。
ディスクが少しの間オフラインになり、再度オンラインになったあとはクラスター共有ボリュームとして利用可能な状態になっている。
アクセス可能かどうか調べるために、C:\ClusterStorage
を開き、Volume1
が存在することを確認する。
なお、この領域はHyper-V仮想マシンの配置でのみ利用すべきであり、アンチウィルスソフトのチェック対象からも外すべき領域となる。
これで3レイヤー構成のHyper-Vクラスターと同じように仮想マシンを操作することができるようになる。
フェールオーバー可能な高可用性仮想マシンの作成や、マイグレーション動作に関しては以下のページを参照。
https://qiita.com/SkyLaptor/items/0c1d7845f925f6db1b4c
参考