Hyper-Vクラスター環境(S2D)にノードを追加する方法


記憶域スペースダイレクト(StorageSpacesDirect:S2D)を用いたHyper-Vクラスター環境はHCIであるため、スケールアウトが可能である。

検証環境

既存クラスター

以下のページで作成したクラスター環境を既存とする。
https://qiita.com/SkyLaptor/items/a1815b077b3db510fb5a

追加ノードサーバー

追加するノードサーバーは、既存のクラスターを構築しているノードと同じ機種・スペックであること。

  • 機種: 第二世代 Hyper-V仮想マシン
  • ストレージ: HDD: 300GB x5
  • NIC: 1Gpbs NIC x1
  • CPU: 16core
  • メモリ: 16GB
  • OS: WindowsServer2016 DataCenter 評価版

ネットワーク

  • 【既存】ActiveDirectoryサーバー: 192.168.1.20/24
  • 【既存】ノードサーバー1: 192.168.1.31/24
  • 【既存】ノードサーバー2: 192.168.1.32/24
  • ノードサーバー3: 192.168.1.33/24
  • 【既存】クラスターIP: 192.168.1.35/24

サーバーへのOSインストール

以下の点に気を付けてOSをインストールする。

  • GUIありでインストールする
  • WindowsUpdateの適用状態をノードサーバー同士で同じ状態にする
  • S2D用ディスクは全てGPTでフォーマットする
  • 時刻同期が正しく行われるようにする

Nested Hyper-Vの有効化

追加ノードサーバーはHyper-V仮想マシンであるため、そのままではHyper-Vの機能をインストールできない。
そこで、ノードサーバーに対してNested Hyper-Vを有効にしておく。

PowerShell
PowerShell
Set-VMProcessor -VMName <仮想マシン名> -ExposeVirtualizationExtensions $true

当たり前だが、実際の物理マシンの場合はこの作業は不要である。

ドメインへの参加

追加ノードサーバーをドメインに参加させる。ドメイン参加手順の詳細は省略。

クラスターへの追加

クラスター関連機能のインストール

追加ノードサーバーに対し、サーバーマネージャーから以下の機能をインストールする。インストールの詳細は省略。

  • Hyper-V
  • フェールオーバークラスタリング

クラスターへの参加

追加ノードサーバーを既存クラスターに参加させる。
1台の既存ノードサーバー上でのみ実施する。
"フェールオーバークラスターマネージャー"を起動し、クラスターツリーの中にある"ノード"を選択する。その後、"ノードの追加"を選択する。

追加するノードサーバー名を入力し、選択済みサーバーに表示されるようにして次に進む。

疑似環境であるため検証作業は省略する。
マイクロソフトサポートを受けるために必要であるため、実機では必ず実施して問題が無いことを確認すること。

"使用可能な記憶域をすべてクラスターに追加する"のチェックを外し、次に進む。

正常にノードが追加されることを確認する。問題がなければクラスターノード一覧に追加したノードサーバーが表示される。

クラスター共有ボリュームを拡張

ノードを追加することで、自動的にS2Dの領域が増える。(同期処理のため時間はかかる)
しかし、S2Dの領域が増えたからといってクラスター共有ボリュームが増えるわけではない。よって、次の手順にてクラスター共有ボリュームを拡張する。

Get-VirtualDisk <対象ボリューム名> | Resize-VirtualDisk -Size <拡張後のサイズ>
Get-VirtualDisk <対象ボリューム名> | Get-Disk | Get-Partition | where PartitionNumber -Eq 2 | Resize-Partition -Size <拡張後のサイズ>

【例】
Get-VirtualDisk "Volume1" | Resize-VirtualDisk -Size 1.7TB
Get-VirtualDisk "Volume1" | Get-Disk | Get-Partition | where PartitionNumber -Eq 2 | Resize-Partition -Size 1.7TB

実際に増えているかどうかは、クラスターのディスクを確認するとよい。

以上でノード追加によるスケールアウトが完了する。

備考: サイズの計算

仮想ディスクのサイズはモードによって設定可能な最大値が変動する。
今回ノードを追加したことで、300GBのディスク4本を使用したノード3台構成となったため物理的な容量は約3.6TBとなる。双方向ミラーで仮想ディスクを作成しているため実際に設定可能な最大値は約1.8TB(50%)となる。
TB/TiB問題もあり、-Sizeオプションで指定可能なサイズは結局1.7TB程度。(設定可能な値を超えるとエラーになる。)