かつて山市良と呼ばれたおじさんのブログ

セイテクエンジニアのブログ  かつて山市良と呼ばれたおじさんのブログ  メモ. Hyper-Vホストクラスター、フェールオーバーとライブマイグレーションの違い

 

 

メモ. Hyper-Vホストクラスター、フェールオーバーとライブマイグレーションの違い

2024年10月11日配信
2025年04月25日更新
執筆者:山内 和朗

 「メモ. 必要な機能は標準装備で意外と簡単! Hyper-Vホストクラスターの構築」で、Hyper-Vホストクラスターの機能概要と「Windows Admin Center(WAC)」を使用した構築方法を紹介しました。今回は、Hyper-Vホストクラスターにおけるフェールオーバーとライブマイグレーションの大きな違いについて説明します。

 

障害発生時の迅速な復旧を可能にするフェールオーバー

 

 Hyper-Vホストクラスターを組めば、Hyper-V仮想マシン(VM)をライブマイグレーションでノード間を移行でき、障害から保護され、VMのダウンタイム発生を回避すると勘違いしていないでしょうか。Hyper-Vホストクラスターを組んだとしても、現在、VMをホストしているノード(サーバー)に障害が発生すれば、VMはサーバーとともに突然停止するという影響を受けます。これを免れることはできません。

 「フェールオーバー(Failover)」とは、稼働中のサーバーやネットワークに障害が発生した際に、代替サーバーがその機能を自動的に引き継ぎ、サービス(アプリケーション)を続行する仕組みです。Hyper-Vホストクラスターでは、Hyper-V仮想マシン(VM)が、フェールオーバー対象の高可用性アプリケーションであり、現在VMをホストしている(所有している)ノードのハードウェアやサービス、ネットワークに障害が発生した際に、VMの所有者を正常なノードに切り替え、VMを開始します。VMのゲストOSから見れば、突然リセットされたのと同じ状態であり、OSの起動からスタートします。これがHyper-Vホストクラスターにおけるフェールオーバーの動作です。このように、Hyper-Vホスト上の高可用性が構成されたVMは、「高可用性VM」や「クラスター化されたVM」と呼ばれます。なお、高可用性を実装する対象がVMでない、アクティブ/アクティブ構成に対応したアプリケーション(ファイルサービスやSQL Serverなど)の場合、フェールオーバーが発生しても、アプリケーションへの継続的なアクセスが提供されます。

 画面1は、前回入れ子になった仮想化を利用してHyper-V環境に作成した2ノードのHyper-Vホストクラスター(ゲストクラスター)におけるフェールオーバーの動作を示したものです。現在、VM「havm02」がノード「hvhost02」上で稼働していますが、このノードを停止してみます。すると、VM「havm02」はノード「hvhost02」上に引き続き存在し、「監視されていない」状態に置かれます(画面2)。この状態が一定期間経過すると、VM「havm02」を所有するノードが稼働中のノード「hvhost01」に切り替わり、VMの状態は「開始中」「実行中」となって、VM「havm02」が新しいノードで復旧します(画面3)。

 

画面1
画面1 VM「havm02」を実行中のノード「hvhost02」を突然停止し、意図的に障害(失敗)を発生させる

 

画面2
画面2 VM「havm02」はしばらくノード「hvhost02」上にあるまま、「監視されていない」状態に置かれる。このときノード「hvhost02」は「分離」状態に置かれる。VMは既に動作していないため、VMへのリモートデスクトップ接続はリトライを繰り替えす

 

画面3
画面3 「監視されていない」状態が4分間(既定)待っても解消しない場合、所有ノードが切り替わり、VMが開始される。リモートデスクトップ接続は再接続の必要がある

 このHyper-Vホストクラスターの既定のフェールオーバーの動作は、Windows Server 2016で大きく変更されました。Hyper-Vホストクラスターでは、短時間(既定のしきい値は4分≪240秒≫)の一時的な障害にはフェールオーバーなしで復旧する可能性が考慮されており、障害ノードを「分離」状態に置き、クラスター化されたアプリケーションであるVMを「監視されていない」状態にします。そして、しきい値が経過してもノードやVMが自動復旧しない場合、VMの所有者を正常なノードに切り替え、VMを開始します。VMのゲストOSから見えれば、突然のリセット(電源オフ/オン)が行われたのと変わりません。また、分離された状態が一定時間に繰り返し発生した場合(既定は1時間に3回)、そのノードは「隔離」状態に置かれ、一定期間(既定は2時間)クラスターに自動復帰することがなくなります。これが障害発生時の自動フェールオーバーの既定の動きです。


 いくつかしきい値が出てきましたが、これらの値はPowerShellを使用して調整可能です。詳しくは、以下の公式ブログの記事をご覧ください。

Virtual Machine Compute Resiliency in Windows Server 2016|Failover Clustering(Microsoft Tech Community)

 例えば、フェールオーバーを開始するまでの時間は、以下のコマンドラインを実行することで変更できます。Windows Sever 2012 R2以前と互換性のある動き、つまり、短時間での復旧を待たずに即時フェールオーバーさせたい場合は、0に設定します。

(Get-Cluster).ResiliencyDefaultPeriod=秒数(既定240)

 

ライブマイグレーションは“計画的に”“オンラインのままで”の移動

 

 Hyper-Vホストクラスターでは「ライブマイグレーション(Live Migration)」もサポートされます。このライブマイグレーションはフェールオーバーとは関係ありません。ちなみに、ライブマイグレーションはクラスター構成ではないHyper-Vホストでもサポートされます。これは、「シェアードナッシングライブマイグレーション」と呼ばれるもので、VMのメモリの内容と記憶域を移行先にコピーして、実行ホストを切り替える機能です。Hyper-Vホストクラスターでは、「クラスターの共有ボリューム(CSV)」というすべてのノードからアクセス可能な場所にVMの構成と仮想ハードディスクが配置されているため、記憶域の移行を伴わずにすばやくVMをノード間で移行することができます。ライブマイグレーションとは別に、VMの状態を一時的に保存して停止し、移行を行う「クイックマイグレーション(Quick Migration)」という機能もあります。

 Hyper-Vホストクラスターは「フェールオーバークラスター」とも呼ばれ、障害時の自動フェールオーバーは「計画外のフェールオーバー(Unplanned Failover)」、VMのライブマイグレーションのことを「計画的フェールオーバー(Planned Failover)」と呼ぶこともあります。ただし、「フェールオーバー」という表現でありながら、障害に起因するものではないことに留意してください。*1

 

*1 Hyper-Vでは、2台以上のホスト間またはホストクラスター間で「Hyper-Vレプリカ」を構成することもできます。Hyper-VレプリカはプライマリサーバーからレプリカサーバーにVMの設定と仮想ハードディスクを定期的(30秒、5分、または15分毎など)に同期するもので、Hyper-Vレプリカにおけるフェールオーバーは、障害時またはメンテナンス時に手動実行する計画/非計画のフェールオーバーであり、プライマリとレプリカの関係の逆転です。Hyper-Vホストクラスターのフェールオーバーとは異なるものなので注意してください。
Hyper-V レプリカを設定する|Windows Server(Microsoft Learn)


 ライブマイグレーション(およびクイックマイグレーション)は、常に「計画的」に行われるもので、障害(失敗)をトリガーとして実施されることはあり得ません。ホストのメンテナンス(更新プログラムのインストールやハードウェア部品の入れ替えなど)などを行いたい場合に、手動で実行します(画面4、画面5、画面6)。ノードから役割をドレインしてメンテナンスモードに移行する場合は、自動でライブマイグレーションが実施されます。

 

画面4
画面4 ライブマイグレーションを実行してVMの所有ノードをVMをオンラインのまま切り替える(ノードをメンテナンスモードにすることで自動的に行わせることも可能)

 

画面5
画面5 ライブマイグレーション実行中も、VMに対するネットワーク接続が失われることがない(画面奥のリモートデスクトップ接続の画面を参照)

 

画面6
画面6 ライブマイグレーションの実行が完了し、所有ノードが切り替わった。ライブマイグレーションの実行中から完了まで、VMに接続中のリモートデスクトップ接続に影響はない

 Windows Server 2012以降のフェールオーバークラスターでサポートされるようになった「クラスター対応更新(Cluster-Aware Updating≪CAU≫)は、ノードに対して更新プログラムをインストールし、再起動して、クラスター全体の更新を完了するという一連の動作を自動化するもので、Hyper-VホストクラスターについてはVMがライブマイグレーションでノード間を自動的に移動するため、VMがオフラインになることなく更新を完了することができます。

blog_yamanxworld_subscribe

blog_yamanxworld_comment

blog_yamanxworld_WP_ws2025

最新記事