記憶域スペースダイレクト (S2D) を活用したハイパーコンバージドインフラ技術解説ガイド 概要本ドキュメントは Windows Server 2016 で構築したハイパーコンバージドインフラ (Hyper-Converged Infrastructure:HCI) を技術的な観点から解説したガイドです 主にシステム構成 記憶域スペースダイレクト (Storage Spaces Direct:S2D) を含めた HCI の操作 ライブマイグレーションやフェールオーバーなどの動作について解説しています HCI の活用についてのポイント解説 HCI のメリットや Windows Server 2008/2008 R2 からの移行など HCI を構築 活用するために知っておきたいポイントは 記憶域スペースダイレクト (S2D) を活用したハイパーコンバージドインフラ構築 活用ガイド にて解説しています そちらも合わせてご覧ください S2D の展開オプションについて S2D は複数のノードにローカル接続されたストレージを束ねて スケーラブルでパフォーマンスの高いストレージを構成する技術です その展開オプションには コンバージドとハイパーコンバージドの 2 種類が存在します コンバージドな S2D の展開オプションコンバージドな S2D の展開オプションでは 記憶域とコンピューティングは別々に存在します S2D 上でスケールアウトファイルサーバーによる SMB3 共有を構成し Hyper-V 上で動作する仮想マシンに対するストレージを提供します 記憶域とコンピューティングを別々にスケールアウトさせることができるので 大規模な展開が必要なシステムに適しています ハイパーコンバージドな S2D の展開オプションハイパーコンバージドな S2D の展開オプションでは 記憶域とコンピューティングは 1 つのクラスターとして構成します より少ない台数のハードウェアでシンプルに構成できるので 規模の小さなシステムに適しています
本ドキュメントの対象とする S2D S2D はこのように 2 つの展開オプションを選択できますが 本ドキュメントはハイパーコンバージドな展開オプションについて解説しています 以後 S2D と記述した場合 ハイパーコンバージドな展開オプションによる S2D のことを指します S2D 環境構築の条件について Windows Server 2016 で HCI を構築するには ハードウェアやソフトウェアに必要な条件があります 以下は特に考慮が必要な点について解説しています 全体の構成 S2D は共有型ストレージを使用しない いわゆる シェアードナッシング な構成を取っています 構成する要素は ローカルストレージを備えてクラスターを構成する ノード と ノード間を接続する ネットワーク が基本となります また クラスターを構成するために必要となる Active Directory ドメインのコントローラーが別途必要になります ノードのハードウェア構成 S2D を構成する各ノードには ローカル接続されたストレージが必要となります 多くのサーバーハードウェアはローカル接続されたストレージのためにハードウェア RAID コントローラーが備えられていますが S2D では各ストレージデバイスを Windows がソフトウエア的に直接コントロールするので HBA(Host Bus Adapter) で各ストレージデバイスが接続される必要があります 多くの HBA が SAS 接続をサポートしています ストレージデバイスの種類ストレージデバイスは SATA SAS で接続されたハードディスク または SSD がサポートされています また PCI Express で接続された NVMe デバイスもサポートされます
ネットワークの構成ノード間を接続するネットワークは 別のノードに存在するデータを読み込んだり あるノードに書き込まれたデータを別のノードにも書き込んだりするためのデータ転送に使用されます S2D では頻繁にノード間でデータがやり取りされるので 10G イーサネット以上の帯域が確保されることが望ましいでしょう 接続障害に備えて 2 つ以上の接続経路が必要となります スイッチ障害を考慮すると スイッチは 2 台以上で構成する必要があります ノード間のデータ転送以外に 管理用や仮想マシンのサービス用のネットワークなども別途必要となります 準備するスイッチは S2D 構築後のノード追加拡張も考慮してポート数を決定する必要があるでしょう
Windows Server フェールオーバークラスタリング (WSFC) S2D は Windows Server フェールオーバークラスタリング (WSFC) の機能として提供されます 各ノードは WSFC のクラスターに参加させる必要があります Hyper-V クラスター上で仮想マシンを動作させる必要があるので 各ノードで Hyper-V を導入します Active Directory ドメイン WSFC のクラスターを構成し 各ノードを管理するための Active Directory ドメインが必要となります Active Directory ドメインのコントローラーは HCI 環境と別に用意する方法と クラスターを構成するノードのうちのいずれかに追加のローカルストレージを増設して仮想マシンとして動作させる方法があります Active Directory の構築については本ガイドでは触れませんので 別途適切なドキュメント等を参照して構築を行ってください
検証環境について本ドキュメントを作成するにあたり デル株式会社東日本支社内デルソリューションセンターにおいて 以下の環境で検証を行っています サーバー Dell EMC PowerEdge R640 を使用し 3 ノードによるクラスターを構成しています ストレージ各ノードに接続された SSD と HDD のハイブリッド構成です 各ストレージデバイスの接続は HBA330 12Gbps SAS HBA コントローラーを使用し RAID を構成せず 直接 SAS 接続されています ノード間は RDMA を利用して S2D を構成しています ネットワークノード間は Mellanox ConnectX-4 Lx Dual Port 25GbE による接続を行っています S2D の操作について S2D を使って 仮想マシンを動作させるための領域を確保する手順を確認してみましょう 操作を行う環境は 事前に WSFC のクラスターが構成されており 各ノードのストレージを S2D の記憶域プールとして構成されている状態を想定しています 操作のための準備いずれかのノードに WSFC の管理権限を持つドメインユーザーでログオンします 操作を行うツールとして フェールオーバークラスターマネージャー を起動し S2D の操作を行いたいフェールオーバークラスターに接続します S2D を使用可能にするための手順記憶域プールから S2D を HCI 環境で使用可能にするためには 以下の手順が必要です 1. 仮想ディスクの新規作成 2. ボリュームの作成 3. クラスタシェアードボリューム (CSV) の設定
これらの手順を実行することで S2D の記憶域上に仮想マシンを作成できるようになります 仮想ディスクの新規作成まず ノード間で共有するための仮想ディスクを作成します この仮想ディスクは次の段階で クラスタシェアードボリューム (CSV) として設定します 1. フェールオーバークラスターマネージャーで 記憶域 プール を選択し 操作 ペインで 仮想ディスクの新規作成 を選択します 2. 記憶域プールの選択 ダイアログで仮想ディスクの作成を行いたい記憶域プールを選択します 3. 仮想ディスクの新規作成ウィザード ( 記憶域スペースダイレクト ) が表示されます 4. 開始する前に の説明を確認し 次へ ボタンをクリックします
5. 仮想ディスクのサイズの指定 で 仮想ディスクのサイズ等のパラメータを指定します サイズの指定は パフォーマンス層 と キャパシティ 層の 2 つの階層について行います 作成される仮想ディスクのサイズは パフォーマンス層とキャパシティ層 それぞれ指定したサイズの合計になります
6. 仮想ディスクの新規作成が正常に完了したことを確認します
パフォーマンス層とキャパシティ層についてデータはまずキャパシティ層に書き込まれますが アクセス頻度に応じてパフォーマンス層に移動され 高速にアクセス可能になります 今回の構成の例では パフォーマンス層は高速にアクセス可能な SSD を使用し 耐障害性を高めるために 3 方向ミラーを行って SSD が 2 台まで同時に故障してもデータを保持できるようにしています キャパシティ層は 容量が多い HDD を使用し デュアルパリティでデータを保護することで容量を確保しながら HDD が 2 台まで同時に故障してもデータを保持できるようにしています デュアルパリティは RAID 6 相当と考えると分かりやすいでしょう ボリュームの作成作成した仮想ディスクを使って ボリュームを作成します ボリュームの作成は ファイルシステム形式を指定してフォーマットを行うことに相当すると考え
ると分かりやすいでしょう 1. 仮想ディスクの新規作成ウィザード は 終了する際に このウィザードを閉じる時にボリュームを作成します にチェックが入っていると 自動的に 新しいボリュームウィザード を起動します 2. 開始する前に の説明を確認し 次へ ボタンをクリックします
3. サーバーとディスクの選択 が表示されます サーバー では クラスター ( クラスターの役割が クラスター名 になっているもの ) を選択します ディスク では 前の作業で作成したディスクを選択します 次へ ボタンをクリックします
4. ボリュームサイズの指定 が表示されます 作成した仮想ディスクは記憶階層域を使用しているため ボリュームサイズを指定できません ボリュームサイズを確認して 次へ ボタンをクリックします
5. ドライブ文字またはフォルダーへの割り当て が表示されます 作成したボリュームは 後ほどクラスタシェアードボリューム (CSV) としてクラスターを構成する各ノードから共有できるように設定します そのため この段階では ドライブ文字またはフォルダーに割り当てません を選択して 次へ ボタンをクリックします
6. ファイルシステム形式の選択 が表示されます ボリュームのファイルシステムを選択します ここでは ReFS を選択し 適当なボリュームラベルを入力して 次へ ボタンをクリックします
7. 選択内容の確認 で ボリューム作成の各設定が正しいことを確認して 作成 ボタンをクリックします
ReFS について ReFS(Resilient File System) は Windows Server 2012 から導入されたファイルシステムです 特長として 回復性 や パフォーマンス スケーラビリティ などが挙げられます 今回構築しているような S2D を活用した HCI 環境構築に適したファイルシステムとして利用が推奨されています クラスタシェアードボリューム (CSV) の設定作成したボリュームを クラスターの各ノードから参照できるよう クラスタシェアードボリューム (CSV) として設定します 再度 フェールオーバークラスターマネージャーで操作を行います 1. 左ペインから 記憶域 ディスク を選択します 2. ディスク から 前の作業で作成したクラスター仮想ディスクを選択しま
す この段階では 適用先 が 使用可能記憶域 になっていることを確認します 3. 操作 ペインから クラスターの共有ボリュームへの追加 を選択します 4. クラスター仮想ディスクの 適用先 が クラスターの共有ボリューム に変更されたことを確認します
5. 作成されたクラスタシェアードボリュームは 各ノードの C: ClusterStorage としてアクセス可能になります Explorer を起動して 確認します 仮想マシンの作成
フェールオーバークラスターマネージャーから 仮想マシンを作成します 作成の作業自体は 通常の Hyper-V 上で仮想マシンを作成する手順と変わりません 1. 左ペインから 役割 を右クリックし 仮想マシン 仮想マシンの新規作成 を選択します 2. 仮想マシンを作成するクラスターノードを選択した後 仮想マシンの新規作成ウィザード が起動しますので 指示に従って仮想マシンを作成します 役割としての仮想マシン Hyper-V マネージャーなど 別のツールを使って作成した仮想マシンは フェールオーバークラスターの 役割 として登録されていないため 後述するライブマイグレーションやフェールオーバーの対象外となってしまう場合があります そのような仮想マシンをクラスターの役割として登録したい場合には 仮想マシンを停止し 関連するファイルをフォルダーごとクラスタシェアードボリュームにコピーします フェールオーバークラスターマネージャーの左ペインから 役割 を右クリックし 役割の構成 を選択します その後起動されるウィザードに従い 該当する仮想マシンを役割として構成します 仮想マシンのライブマイグレーション S2D を使用した HCI 環境上で動作する仮想マシンは 仮想マシンを停止せずに動作しているノードを変更する ライブマイグレーション を実行可能です ライブマイグレーションの実行フェールオーバークラスターマネージャーから 仮想マシンのライブマイグレーションの操作を行います 1. 左ペインで 役割 を選択し 真ん中のペインでライブマイグレーションを行いたい仮想マシンを右クリックします 2. 表示されるポップアップメニューから 操作 移動 ライブマイグレーション ノードの選択 を選択します 3. 移動可能なノードが表示されるので 仮想マシンを移動させたいノードを選択します
4. 仮想マシンの動作しているノードが変わったことを確認します ライブマイグレーションの仕組みと注意点ライブマイグレーションは 仮想マシンのメモリを移動先のノードにコピーし 最後の瞬間にコピー後に変更されたメモリおよび CPU の状態をコピーします そのため 仮想マシンに沢山のメモリが割り当てられている場合 ライブマイグレーションが完了するまで時間がかかります また 動作中の仮想マシンのメモリに対する書き換えが頻繁な場合 再度コピーする速度が追いつかない場合があります このような場合 ライブマイグレーションが失敗する可能性があります 仮想マシンのフェールオーバー仮想マシンが動作しているノードに障害が発生した際に 仮想マシンを自動的に別のノードで起動するフェールオーバーにも対応しています フェールオーバーの動作確認以下の手順でクラスターがノード障害を検知し 動作していた仮想マシンをフェールオーバーさせる動作を確認できます 1. 強制的に電源をオフにするなどして 仮想マシンが動作しているノードに障害が発生させます 2. フェールオーバークラスターが障害を検知します 3. 動作していた仮想マシンを別のノードで再起動します フェールオーバー時の仮想マシンの状況フェールオーバー後の仮想マシンの再起動の動作は OS を 1 から再起動するため サービス等の起動に時間がかかる場合があります また 障害発生時に仮想マシンのメモリ上に存在し ディスクに書き込まれていなかったデータは消失します 障害検知から仮想マシン再起動までの時間再起動が行われるまでの時間は 障害の誤検知による 2 重起動を避けるためもあり 障害が発生してからデフォルトで 4 分ほどかかります