LoginSignup
4
5

More than 5 years have passed since last update.

記憶域スペースダイレクトを用いたHyper-Vクラスターを構築する方法

Last updated at Posted at 2018-01-11

記憶域スペースダイレクト(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を有効にしておく。

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

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

クラスター管理ドメインの準備

ActiveDirectoryのインストール

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

  • Active Directory ドメイン サービス

install_ad.jpg

ドメインの作成

ドメインコントローラーに昇格してドメインを作成する。ドメイン作成の詳細は省略。

  • ドメイン機能レベル: Windows Server 2016
  • ドメイン名: s2d.local

created_domain.jpg

ドメインへの参加

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

クラスターの作成

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

全てのノードサーバーに対し、サーバーマネージャーから以下の機能をインストールする。

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

役割・機能のインストール

choose_hyper-v.jpg

choose_msfc.jpg

役割・機能選択後のウィザードは何も変更しない。

step1_rolefeature.jpg

step2_rolefeature.jpg

step3_rolefeature.jpg

step4_rolefeature.jpg

インストール完了後はサーバーを再起動すること。

Hyper-Vクラスターの作成

1台のノードサーバー上でのみ実施する。
"フェールオーバークラスターマネージャー"を起動し、"クラスターの作成"を選択する。
start_clustercreate.jpg

about_clustercreate.jpg

ノードサーバーを全て登録する。
add_nodes.jpg

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

クラスター名とクラスターの管理IPを入力する。
config_clusterinfo.jpg

クラスターの作成を実施する。"使用可能な記憶域をすべてクラスターに追加する"のチェックは外すこと。
start_createtask.jpg

created_createcluster.jpg

クラスターが作成され、フェールオーバークラスターマネージャー上に表示される。
view_cluster.jpg

クォーラム領域を準備する

AcriveDirectoryサーバー上にてファイル共有を作成し、全てのノードサーバーからアクセス出来るようにする。詳細は省略。
view_quorum.jpg

クラスターにクォーラム領域を設定する

1台のノードサーバー上でのみ実施する。
"フェールオーバークラスターマネージャー"を起動し、作成したクラスターを右クリックして"他のアクション"→"クラスタークォーラム設定の構成"を選択する。
choose_quorumdef.jpg

about_quorum.jpg

"クォーラム監視を選択する"を選択する。
choose_quorum.jpg

"ファイル共有監視を構成する"を選択する。
choos_filequorum.jpg

ドメインサーバー上に用意したクォーラム用共有を指定する。
set_quorumpath.jpg

クォーラム設定を適用する。
apply_quorum1.jpg

apply_quorum2.jpg

S2D設定

クラスターに対してS2Dプールの作成を行う

1台のノードサーバー上でのみ実施する。
PowerShellにて以下のコマンドを実行し、S2Dの有効化及びS2Dストレージプールの作成を行う。
この作業を実施すると、S2Dに使用されたディスクがOS上から見えなくなる。

PowerShell
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

キャッシュディスクが無いと表示されるが、特に気にする必要はない。
本当にプールができたかどうかを確認したい場合は、以下のコマンドを実行する。

PowerShell
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ノード環境では双方向ミラーしか構成できない)

PowerShell
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台のノードサーバー上でのみ実施する。
作成した仮想ディスクはそのままだとクラスターで利用できないため、クラスター共有ボリュームに変換する必要がある。
"フェールオーバークラスターマネージャー"を起動し、クラスターのツリーにある"記憶域"→"ディスク"を開き、作成した仮想ディスクを選択したあと、"クラスターの共有ボリュームへの追加"を押す。

add_csv.jpg

ディスクが少しの間オフラインになり、再度オンラインになったあとはクラスター共有ボリュームとして利用可能な状態になっている。

アクセス可能かどうか調べるために、C:\ClusterStorageを開き、Volume1が存在することを確認する。
view_csv.jpg

なお、この領域はHyper-V仮想マシンの配置でのみ利用すべきであり、アンチウィルスソフトのチェック対象からも外すべき領域となる。

これで3レイヤー構成のHyper-Vクラスターと同じように仮想マシンを操作することができるようになる。
フェールオーバー可能な高可用性仮想マシンの作成や、マイグレーション動作に関しては以下のページを参照。
https://qiita.com/SkyLaptor/items/0c1d7845f925f6db1b4c

参考

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5