Hyper-V 仮想マシンの負荷分散
環境の仮想化による主なメリットの一つは、リソースの効率的な活用です。特定の仮想マシンが必要ない場合は電源を切ることができ、これにより解放されたコンピューティングリソースを、必要な仮想マシンに割り当てることができます。 Hyper-V フェールオーバー クラスターを使用すると、仮想マシンのダウンタイムを短縮できます。また、Windows Server 2016 以降のエディションでは、Hyper-V ホスト(この場合はクラスター ノードと呼ばれます)間で仮想マシンの負荷分散を行うことが可能です。
本ブログ記事では、Hyper-V フェールオーバー クラスターの仮想マシン負荷分散機能について解説し、その動作原理、構成パラメーター、および Hyper-V 仮想環境における負荷分散の利用メリットについて詳しく説明します。
Hyper-Vの仮想マシン負荷分散とは何か、またこの機能はどのように活用できるのか?
ロードバランシングは、クラスター内のHyper-Vホストのリソース利用率を最適化する機能です。時間の経過とともに仮想マシンの負荷が不均一になることがあり、その結果、Hyper-Vホストの負荷が偏ることがあります。これにより、パッチ適用やその他のメンテナンス作業中に、一部のノードが一時的に利用できなくなる可能性があります。 Hyper-Vクラスターは、ロードバランシング機能により、VMに十分なコンピューティングリソースを提供できます。この機能では、あるノードが過負荷になり、別のノードに空きリソースがある場合、VMをそのノードへ移行します。この機能は、Hyper-Vクラスター内のVMに十分なパフォーマンスを提供するために使用され、その結果、VM上で実行されるサービスの品質を高く維持するのに役立ちます。
ロードバランシングはどのように機能するのでしょうか?
ロードバランシングは、Hyper-V クラスターの状態を自動的に確認し、その結果と設定に基づいて、Hyper-V ホスト間で負荷を再配分するために、過負荷のノードから負荷の少ないノードへの仮想マシンの移行を開始します。
ホストの負荷を確認するには、次の 2 つの方法があります。
- RAM(ランダムアクセスメモリ)の使用状況を確認しています。Hyper-Vホストのメモリ不足は最もよくある問題の一つであり、動作の遅延を引き起こす可能性があります。
- CPU(中央処理装置)の使用率を確認しています。プロセッサの処理能力が不足している場合も、動作の遅延の原因となることがあります。
ホストが消費するCPUおよびRAMリソースが多いほど、Hyper-Vはそのホストの負荷が高いと判断します。クラスターで定期的な負荷分散が構成されている場合、ホストの負荷は30分ごとに評価されます。 また、必要に応じてホストの負荷を評価することも可能です。システムは、負荷が定義されたしきい値を超えているホストと、しきい値を下回っているホストを識別します。クラスターノードの現在の負荷が不均一であり、かつ前述の条件を満たしている場合、Hyper-Vはノード間でVMのライブマイグレーションを開始します。Hyper-Vライブマイグレーションを使用すると、目立たず、かつ大幅なダウンタイムなしにVMの移行を実行できます。
Hyper-V フェールオーバー クラスターとの負荷分散の統合が提供されています。負荷分散には、以下のクラスタリング ルールが適用されます。"Possible Owners"、"Anti-affinity"(これら 2 つのルールは Windows Server 2016 以前から存在していました)、および"Fault Domains"(新規)。
所有者候補 このルールは、移行を実行できるHyper-Vホストを定義します。このルールは移行可能なVMの所有者を定義するものであり、望ましくないホストへのVM移行を防ぐことができます。
抗親和性 ルールを使用すると、同じホスト上で定義済みの2つのVMを同時に実行しないように設定できます。たとえば、プライマリおよびセカンダリのドメインコントローラーをそれぞれ持つ2つのVMがあり、これらを同じホスト上で実行してはならない場合などが挙げられます。この方法により、ドメインコントローラーのいずれかを搭載したホストに障害が発生した場合でも、信頼性を高めることができます。
障害ドメイン これは、ネットワーク障害や電源障害など、特定の種類の物理的な障害の影響を受ける可能性のあるHyper-Vホストのセットを定義する機能です。同じフォールトドメインに属するVMを実行するHyper-Vホストは、通常、同じ電源とネットワークスイッチに接続されているため、同じラックに設置することができます。何らかの障害が発生した場合、同じフォールトドメインに属するすべてのVMが影響を受けることになります。 クラスターは論理的に複数のフォールト ドメインに分割することができ、あるドメインで障害が発生しても、他のドメインには影響が及ばないようになっています。
設定パラメータ
Hyper-V 2016 のフェールオーバー クラスターでは、デフォルトでロード バランシングが有効になっています。動作には 2 つのタイプがあります: “"クラスタに新しいノードが追加された場合のみ使用"および"一定間隔で確認"。
クラスタに新しいノードが追加された場合のみ使用してくださいこの場合、クラスターはRAMリソースに加えCPUリソースも増強され、全体的な演算能力が拡張されます。システムは各ノードの負荷を評価します。いずれかのノードが過負荷状態(構成で設定された閾値を超えた場合)になると、適切な仮想マシンが、過負荷のノードから、空きリソースを持つ最近追加されたノードへと移行されます。 このオプションは、Hyper-V フェールオーバー クラスターに定期的に容量を追加する場合に有用であり、Storage Spaces テクノロジーに基づくクラスターでも役立つ可能性があります。このオプションは、以前クラスターから切断されていたノード(メンテナンスなど)がクラスターに再接続された場合、クラスターに影響を与えません。

一定の間隔で確認する. このオプションを有効にすると、30分ごとにクラスタノードの負荷チェックが実行されます。いずれかのノードが過負荷状態(設定で指定された閾値を超えた場合)になると、該当するVMが過負荷のノードから、空きリソースのあるノードへ移行されます。

攻撃性の閾値 これは、ノードのRAMおよびCPU使用率に基づいて、負荷分散の積極度を定義するパラメータです。積極度のしきい値は、"低(1)""中(2)""高(3)"の3つの値から選択できます。設定の詳細については、以下のセクションをご覧ください。
設定
Hyper-V ロード バランシングは、GUI(グラフィカル ユーザー インターフェイス)または PowerShell を使用して構成できます。Hyper-V ロード バランシングを構成するには、まずフェールオーバー クラスター マネージャーを開き、クラスター名を右クリックして、コンテキスト メニューから [プロパティ] を選択します。

[プロパティ] ウィンドウで、[バランサー] タブを選択します。ロードバランシングを有効または無効にするには、チェックボックスをオンまたはオフにします。また、バランシングモードとアグレッシブネスを選択することもできます。

PowerShell では、バランス調整モードの設定や自動バランス調整の無効化も可能です:
(Get-Cluster).AutoBalancerMode = <値>
どこ <値> 0、1、または2のいずれかになります(下の表を参照)。
| 自動バランス調整モード | 説明 |
| 0 | 無効 |
| 1 | ノードが参加した際に、そのノードへ負荷分散を行う |
| 2(デフォルト設定) | 常に負荷分散を行う |

攻撃性のしきい値を設定するには、PowerShell で次のコマンドを入力します:
(Get-Cluster).AutoBalancerLevel = <値>
どこ <値> 1、2、または3のいずれかになります(下の表を参照)。
| 自動バランス調整レベル | 攻撃性 | 説明 |
| 1(デフォルトで使用) | 低 | ホストの負荷が80%を超えると、VMが移動されます |
| 2 | 中 | ホストの負荷が70%を超えると、VMが移動されます |
| 3 | 高い | ホストの負荷が60%を超えると、VMが移動されます |

System Center Virtual Machine Manager (SCVMM) は、フェールオーバー クラスター マネージャーの代替として、クラスター管理にも使用できます。SCVMM には、クラスター ノード間で仮想マシンを再配置する"動的最適化"機能(Windows Server 2012 以降で利用可能)が含まれています。 Hyper-V ロード バランシングを有効にしていて、SCVMM のダイナミック オプティマイゼーションを使用する場合、SCVMM でダイナミック オプティマイゼーションを有効にすると、ロード バランシングは自動的に無効になります。この場合、2 つの機能が同時に動作することによる競合や関連する問題を防止するため、ロード バランシングの管理は SCVMM によって行われます。Microsoft では、ダイナミック オプティマイゼーションを使用する際は SCVMM を使用することを推奨しています。
Hyper-V ロードバランシングのメリット
ロードバランシングは便利な機能です。Hyper-V フェールオーバー クラスターでロードバランシングを使用するメリットには、次のようなものがあります。
- 物理サーバーへの過負荷は発生しません
- VMの過負荷は発生しません
- アプリケーションの応答性の向上
- 提供されるサービスの質を向上させる
- サービスやアプリケーションの拡張性を向上させます
- 障害を軽減する
NAKIVO Backup & Replication およびクラスタ化されたVMのバックアップ
Hyper-V フェールオーバー クラスターは、実行中の仮想マシンの可用性を向上させると同時に、ノードのハードウェア障害から仮想マシンを保護できる効果的なソリューションです。その他の種類の災害からデータを保護するためには、仮想マシンのバックアップ & レプリケーションを使用する必要があります。クラスタ化された Hyper-V ホスト上に存在する仮想マシンは、フェイルオーバーや負荷分散などの状況において、ホスト間で移行することが可能です。その結果、必要な仮想マシンのバックアップは困難に思えるかもしれません。なぜなら、その仮想マシンが存在するホストを特定する必要があるためです(ホストレベルのVMバックアップ (考慮される)。
NAKIVO Backup & Replication Hyper-Vクラスターに対応した、高速で信頼性が高く、手頃な価格のVMデータ保護ソリューションです。 NAKIVO Backup & Replication クラスタ全体をインベントリに追加すると、VMがどのホスト上に存在しているかを自動的に追跡できるようになり、その結果、 VMのバックアップを作成する Hyper-V クラスターからのレプリカの作成は、スタンドアロンの Hyper-V ホストから仮想マシンをバックアップするのと同じくらい簡単になります。
結論
Hyper-V ロードバランシングは、Windows Server 2016 の Hyper-V に搭載されている便利なクラスタリング機能です。この機能により、ハードウェアリソースをより合理的に活用でき、結果として提供されるサービスの品質が向上します。負荷の再配分を行う際の判断には、CPU および RAM のメトリックが使用されます。設定で指定された閾値を超えた場合、ロードバランシングは自動的に、負荷が過大なノードから空きリソースのあるノードへ仮想マシンの移行を開始します。 ライブマイグレーションが使用されるため、大きなダウンタイムは発生しません。負荷分散機能を備えた Hyper-V フェールオーバー クラスターは、VM に対する高可用性と十分なコンピューティング リソースを提供するだけでなく、ノード障害から VM を保護します。