セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ メモ. 必要な機能は標準装備で意外と簡単! Hyper-Vホストクラスターの構築
2024年10月08日配信
執筆者:山内 和朗
9月に行われたオンラインセミナー「セイテク・シス管道場 第2回オンプレの仮想化基盤をHyper-Vへ、格安乗り換えツアー(→アーカイブ)」の参加者からのアンケートの中に、Hyper-Vのフェールオーバークラスターの構成のノウハウが気になるという意見をいただきました。簡単ですが、Hyper-Vホストクラスターの構築方法や機能について説明します。高可用性のためのほとんどの機能をWindows Serverの標準機能だけで実現できることに注目してください。
9月のセミナーでは、VMware仮想マシン(VM)をHyper-V VMに移行するということに焦点を当てましたが、Hyper-Vの運用環境については概要程度の説明に終わりました。運用環境の仮想化インフラストラクチャには、高可用性要件が必須です。VMwareであれば「vSphere HA」が提供するようなクラスター環境です。VMを稼働しているホストやホストのネットワークに障害が発生した際に、正常に稼働しているホストに影響を受けたVMをフェールオーバーし、起動(VMにとってはリセット)することで、短時間で復旧する仕組みです。その他にも、ホスト環境のメンテナンスのためにダウンタイムでVMを移行できるライブマイグレーションの仕組みや、拠点全体の障害に備えた遠隔地へのレプリケーションの機能もあると安心です。
VMwareのvSphere HAやvSphere vMotionに相当する機能を、Hyper-Vは以下の機能で実現可能です。これらの機能は、Windows Serverが標準で備える機能であり、追加のソフトウェアを必要としません。この他、Microsoft AzureのSite Recoveryサービスを利用した、クラウドへのレプリケーション(有料)も可能です。
図1は、4ノードのHyper-Vホストクラスターの構成と動作イメージを示したものです。Hyper-Vはその登場当初から、Windows Serverのフェールオーバークラスタリング機能による高可用性構成が可能です。当初は、Serial Attached SCSI(SAS)、ファイバチャネル(FC)、iSCSIのSAN(ストレージエリアネットワーク)、または高可用性ファイルサーバー(Windows Serverのフェールオーバークラスタリングで構築可能)が提供するSMB共有を、すべてのノードに接続された共有ディスク装置として実装する必要がありました。現在(Windows Server 2016以降)は、「記憶域スペースダイレクト(Storage Spaces Direct、S2D)」と呼ばれる機能を用いて、各ノードに直結されたローカルディスクを束ねてすべてのノードからアクセス可能な記憶域(クラスターの共有ボリューム≪CSV≫)を実装することもできます。
図1 4ノードのHyper-Vホストクラスターの構成と動作イメージ
特別なハードウェアを必要としないS2Dは、「ソフトウェア定義の記憶域」とも呼ばれます。SSDやNVMeと組み合わせた記憶域階層や記憶域キャッシュ、各種可用性オプションに対応し、シン(仮想)プロビジョニングにも対応しており、従来の高性能な共有ディスク装置に劣らない、信頼性と可用性、性能を提供することができます。S2DはWindows Server Datacenterエディションの機能であることに留意してください。Datacenterエディションはこのほか、「ソフトウェア定義のネットワーク(SDN)」機能も備えています。なお、Microsoftのハイパーコンバージドインフラストラクチャ(HCI)ソリューションである「Azure Stack HCI」は、Windows Serverのフェールオーバークラスタリング機能やHyper-Vの役割、S2D、SDNの機能と、Azure Stack HCIの動作が検証された認定ハードウェアに基づいて構築されるクラスターであり、Azureのサービスとともに機能するものです。
Hyper-Vホストクラスターは、特別なハードウェアなしでソフトウェア機能だけで実現できるため、Hyper-Vの入れ子になった仮想化(Nested Virtualization)機能を利用することで、Hyper-V上に2台以上のWindows Server VMを作成して、Hyper-Vホストクラスターを作成し、評価することができます。これを「Hyper-Vゲストクラスター」と呼ぶことがあります。
画面1は、社内の私専用のHyper-Vベースのラボ環境(→「vol.33 ラボ環境 in オンプレを作る(新シリーズスタート)」)内で、Windows Server 2022 Datacenter評価版を実行する2台のVM(hvhost01およびhvhost02)と、S2Dの記憶域を使用して作成した、Hyper-Vホスト(ゲスト)クラスター(hvcluster)です。
画面1 Hyper-Vベースのラボ環境内に2台のVMで作成したHyper-Vホストクラスター
Hyper-Vホストクラスターは通常、GUI管理ツール「フェールオーバークラスターマネージャー(ClueAdmin.msc)」やWindows PowerShell(FailoverClustersモジュール)を使用して構築するものでした。
参考: フェールオーバー クラスターを作成する|Windows Server(Microsoft Learn)
しかし、無料のWebベースのサーバー管理ツール「Windows Admin Center(WAC)」が登場してからは、ウィザードベースで簡単にクラスターを作成できるようになりました。WACの「クラスターの作成」ウィザードは、Windows ServerまたはAzure Stack HCIクラスターの作成に対応しており、クラスター作成時の複雑さのほとんどを取り除いてくれます(画面2)。
画面2 WACの「クラスターの作成」ウィザード
いかに簡単に作成できるのか、紙芝居形式の動画にしましたので、ご覧ください。この例では、VMにはWindows Server 2022 Datacenterデスクトップエクスペリエンス(Server Coreでも可)がインストール済みであり、単一の障害点にならないように複数のネットワークインターフェイスを割り当て(静的にIPアドレスを割り当てることを推奨)、コンピューター名の設定とActive Directoryドメインへの参加設定は済ませています。Active Directoryドメインはラボ環境に導入済みのものを使用し、ドメインメンバーであるWindows 11バージョン24H2を実行するVMにWACをインストールして、ドメイン管理者として作業しています。
動画1 Windows Admin Center(WAC)を使用したHyper-Vホストクラスターの作成
「クラスターの作成」ウィザードでは、Active Directoryドメインへの参加設定(まだの場合)、Hyper-Vホストクラスターに必要なWindows Serverのサーバーの役割や機能のインストール、更新プログラムのインストール、管理用ネットワークの構成とHyper-V仮想スイッチの作成、クラスターの検証と作成までを行うことができます。作成後のHyper-Vホストクラスターは、引き続きWACの「クラスターマネージャー」を使用して管理することもできますし、従来のGUI管理ツール「フェールオーバークラスターマネージャー」やWindows PowerShellによる管理も可能です。なお、Windows Server 2016以降はワークグループ構成でのクラスター(ワークグループクラスター)もサポートされていますが(機能は一部制限されます)、WACで作成する場合はドメイン参加設定が必須です。ドメイン参加設定は、ウィザード内で行わせることも可能です。
認定ハードウェアの使用が前提のAzure Stack HCIクラスターの作成では、S2Dの有効化と構成やAzureへの登録など、作成後、VMをデプロイして実行できる状態まで行ってくれますが、Windows Serverのクラスターの場合、記憶域については共有ディスク装置またはSMB共有またはS2Dの記憶域スペースのいずれかの方法でクラスターの共有ボリューム(CSV)を自分で実装する必要があるようです。
今回の例では、クラスターの各ノード(Hyper-Vホスト)にそれぞれ追加で4つの仮想ハードディスク(256GB)を割り当て、S2Dを構成することにしました。それには、「Enable-ClusterStorageSpacesDirect(またはEnable-ClusterS2D)」コマンドレットの実行と、「フェールオーバークラスターマネージャー」またはWindows PowerShellによる、記憶域スペースの作成、仮想ディスク(VMの仮想ハードディスクとは異なります)の作成、ボリュームの作成、クラスターの共有ボリュームへの追加設定が必要です。S2Dを有効化すると、サーバーからは直結されている物理ディスクは非表示になり、入れ替わる形でS2Dの記憶域スペースに作成した仮想ディスクがすべてのノードに表示され、物理ディスクと同じように扱えるようになります。このすべてのノードからアクセス可能な仮想ディスクは、ボリューム(ReFSを推奨)を作成してクラスターの共有ボリューム(CSV)にすることができます。
こちらも一連の作業を紙芝居形式の動画にしましたので、ご覧ください。なお、S2DはDatacenterエディションの機能であり、Standardエディションでは使用できないことに留意してください。「構成の検証ウィザード」(またはTest-Clusterコマンドレット)を使用して、「記憶域スペースダイレクト(Storage Spaces Direct)」のテストを実施してからS2Dを有効化することをお勧めします。Standardエディションの場合や、S2D用に同じ仮想ハードディスクファイルをコピーして複数割り当てた場合、このテストはエラーを報告します。
参考: Windows Server の記憶域スペース ダイレクトをデプロイする|Windows Server(Microsoft Learn)
動画2 S2Dの有効化と、記憶域スペース、仮想ディスク、ボリュームの作成、クラスターの共有ボリュームへの追加
動画の最後にあるように、S2Dで作成した記憶域をクラスターの共有ボリューム(CSV)に追加すると、すべてのノードから同一のローカルパス「C:¥ClusterStorage¥仮想ディスク名」を使用してアクセスできるようになります。VMの設定と仮想ハードディスクファイルをこのパスに配置することで、記憶域を移動することなく、すばやくフェールオーバーやライブマイグレーションができるようになる、高可用性VMを実現することができます。そのために、VMと仮想ハードディスクの既定のパスをクラスターの共有ボリューム(CSV)に設定しておくことをお勧めします。クラスターの共有ボリューム(CSV)に配置されていないVMは、たとえHyper-Vホストクラスター上のVMであったとしても、通常のHyper-V VMと変わるものではなく、高可用性を提供しません。
クラスターの共有ボリューム(CSV)を作成し、Hyper-Vホストクラスターの準備ができたら、「フェールオーバークラスターマネージャー」またはWACの「クラスターマネージャー」を使用して、VMを作成します(画面3)。作成したVMは、ホストやネットワークの障害、ディスクの障害(S2Dの機能)から保護され、障害発生時にはオンラインのノードに自動フェールオーバーされるようになります。
画面3 Hyper-Vホストクラスターに高可用性VMを作成する
また、Hyper-Vホストクラスターの「クラスター対応更新(Cluster Aware Update、CAU)」機能を使用すると、ライブマイグレーションでVMをノード間で移動しながら停止させることなく、Hyper-Vホストに更新プログラムをインストールして再起動して復帰させるという一連の更新作業を自動化することができます。CAUの有効化と実行もWACから簡単に行えます(画面4)。Hyper-Vホストクラスターは、Windows Serverの異なるバージョン間でのクロスバージョンマイグレーションにも対応しているため、VMを移動しながら、仮想化インフラストラクチャを新しいWindows Serverバージョンに移行することもできます。
画面4 CAUを使用することで、VMをライブマイグレーションで移動しながら、Hyper-Vホストのパッチ適用が可能に
2024年10月31日 | vol.56 はじめてのAzure REST API|Azure&Entra IDスクリプト大作戦(3) |
---|---|
2024年10月29日 | メモ. AlmaLinux(RHEL系)をVMwareからHyper-VへV2V移行するには |
2024年10月28日 | vol.55 サービスプリンシパルによる非対話型認証|Azure&Entra IDスクリプト大作戦(2) |
2024年10月25日 | メモ. Hyper-Vのもう1つの可用性オプション、Hyper-Vレプリカ |
2024年10月24日 | vol.54 Azure&Entra IDの情報取得、スクリプト大作戦 |
2024年10月22日 | メモ. Windows 11 24H2の新規インストール、正しいはずのパスワードが弾かれる(追加情報あり) |
2024年10月21日 | vol.53 Zabbixにあって、BOMにないもの、代用できるもの|BOMおじさんとZabbix(9) |
2024年10月18日 | メモ. クラスター対応更新(CAU)ってこんな感じ |
2024年10月17日 | vol.52 Webサイト/アプリの稼働監視|BOMおじさんとZabbix(8) |
2024年10月15日 | vol.51 更新の監視と管理|BOMおじさんとZabbix(7) |