仮想化環境の主な利点の1つは、リソースの合理的な使用です。特定の仮想マシンが必要ない場合、それらをオフにすることができます。これにより、必要なVMにリソースを供給するために解放されたコンピューティングリソースを提供できます。Hyper-Vフェイルオーバークラスターを使用すると、仮想マシンのダウンタイムを削減できます。そして、Windows Server 2016向けのエディションから、Hyper-VはHyper-Vホスト(この場合はクラスターノードと呼ばれます)間のVMロードバランシングを提供できます。
このブログ投稿では、Hyper-VフェイルオーバークラスターのVMロードバランシング機能について説明し、動作原理、構成パラメーター、およびHyper-V仮想環境でのロードバランシングの利点を探ります。
Hyper-V VMロードバランシングとは、この機能をどのように利用できますか?
ロードバランシングは、クラスター内のHyper-Vホストのリソースの最適化を確保する機能です。時間の経過とともにVMの負荷は不均衡になる可能性があります。その結果、Hyper-Vホストはより負荷がかかったり、少なく負荷がかかったりすることがあります。これにより、パッチ適用やその他のメンテナンスプロセス中に一部のノードが一時的に利用できなくなる可能性があります。Hyper-Vクラスターは、ロードバランシング機能を備えたVMに十分なコンピューティングリソースを提供し、VMがオーバーロードされた場合や別のノードに空きのある場合に、VMを1つのノードから別のノードに移行します。この機能は、Hyper-Vクラスター内のVMに十分なパフォーマンスを提供するために使用され、結果として、VM上で実行される提供されるサービスの高品質を維持するのに役立ちます。
ロードバランシングはどのように機能しますか?
負荷分散は自動的にHyper-Vクラスターの状態をチェックし、その結果と設定に応じて、負荷を再分配するために過負荷のノードから負荷の少ないノードにVM移行を開始します。Hyper-Vホスト間で負荷を再分配するためです。
ホストの負荷をチェックするために使用できる2つのメソッドがあります:
- RAM(ランダムアクセスメモリ)の利用状況を確認します。Hyper-Vホストのメモリが不足していることは、最も一般的な問題の1つであり、遅延の原因となる可能性があります。
- CPU(中央処理ユニット)の利用状況を確認します。処理能力が不足している場合も、遅延の原因となります。
ホストが消費するCPUおよびRAMリソースが多いほど、Hyper-Vによってホストはより負荷がかかっていると見なされます。クラスターに定期的な負荷分散が設定されている場合、ホストの負荷は30分ごとに評価されます。また、必要に応じてホストの負荷を評価することもできます。システムは、負荷が定義された閾値を超えるホストと、負荷が閾値値以下のホストを識別します。クラスターノードの現在の負荷が均一でなく、上記の条件を満たす場合、Hyper-Vはノード間でVMライブマイグレーションを開始します。Hyper-Vライブマイグレーションにより、VMの移行を目立たずに、かつ重大なダウンタイムなしに実行できます。
Hyper-Vフェイルオーバークラスターとの負荷分散の統合が提供されます。負荷分散のために次のクラスタリングルールが遵守されます:可能な所有者、アンチアフィニティ(これら2つのルールはWindows Server 2016以前から存在していました)、およびフォルトドメイン(新規)。
可能な所有者 ルールは、移行を実行できる Hyper-V ホストを定義します。このルールは可能な VM の所有者のみを定義し、不要なホストへの VM の移行を防ぐことができます。
アンチアフィニティ ルールを使用すると、同じホストで定義された 2 つの VM を実行することを防ぐことができます。例えば、プライマリおよびセカンダリの両方のドメインコントローラーを持つ 2 つの VM が同じホストで実行されないようにします。この方法により、ドメインコントローラーの 1 つを持つホストが障害を起こした場合でも信頼性が向上します。
障害ドメイン は、物理的な障害(ネットワーク障害、電源障害など)の発生に備えた一連の Hyper-V ホストを定義する機能です。同じ障害ドメインの VM を持つ Hyper-V ホストは通常、同じ電源源およびネットワークスイッチに接続されており、したがって同じラックにマウントできます。障害が発生すると、同じ障害ドメインのすべての VM が影響を受けます。クラスタは論理的に複数の障害ドメインに分割され、1 つのドメインの障害が他のドメインに影響を与えてはなりません。
構成パラメータ
ロードバランシングは、Hyper-V 2016 のフェールオーバークラスタに対してデフォルトで有効になっています。2 つの動作タイプがあります: “クラスタに新しいノードが追加される場合のみ使用” と “時間間隔で確認”。
クラスターに新しいノードが追加された場合にのみ使用します。この場合、クラスターはより多くのCPUおよびRAMリソースを取得し、全体の計算能力が拡張されます。システムは各ノードの負荷を評価します。ノードのいずれかが過負荷になっている場合(設定で設定された閾値値を超える)、適切なVMが過負荷のノードから最近追加されたリソースの空いているノードに移行されます。このオプションは、定期的にHyper-Vフェイルオーバークラスターの容量を追加する場合に便利であり、Storage Spacesテクノロジーに基づくクラスターにも役立ちます。このオプションは、以前にクラスターから切断されていたノード(メンテナンスなどのため)がクラスターに再接続された場合には、クラスターに影響を与えません。
時間間隔でチェックします。このオプションは、30分ごとにクラスターノードの負荷をチェックを開始します。ノードのいずれかが過負荷になっている場合(設定で設定された閾値値を超える)、適切なVMが過負荷のノードからリソースの空いているノードに移行されます。
攻撃性の閾値は、ノードによるRAMおよびCPUの利用率に基づくバランシングの攻撃性を定義するパラメータです。攻撃性の閾値は、Low(1)、Medium(2)、およびHigh(3)のいずれかの値にすることができます。構成の詳細については、以下のセクションを参照してください。
構成
Hyper-V Load Balancingは、GUI(グラフィカルユーザーインターフェース)またはPowerShellを使用して構成できます。Hyper-V Load Balancingを構成するには、フェイルオーバークラスターマネージャーを開き、クラスター名を右クリックし、コンテキストメニューでプロパティを選択します。
プロパティウィンドウで、Balancerタブを選択します。ロードバランシングを有効にする場合は、ボックスにチェックを入れます。ロードバランシングを無効にする場合は、チェックを外します。バランシングモードとアグレッシブネスを選択できます。
PowerShellでバランシングモードを設定したり、自動バランシングを無効にしたりもできます:
(Get-Cluster).AutoBalancerMode = <value>
<value>には、0、1、または2を指定できます(以下の表を参照してください)。
AutoBalancerMode | 説明 |
0 | 無効 |
1 | ノードが参加するときにロードバランスを行います |
2(デフォルトで使用) | 常にロードバランスを行います |
アグレッシブネスの閾値を設定するには、PowerShellで次のコマンドを入力します:
(Get-Cluster).AutoBalancerLevel = <value>
<value>には、1、2、または3を指定できます(以下の表を参照してください)。
AutoBalancerLevel | アグレッシブネス | 説明 |
1(デフォルトで使用) | 低 | ホスト負荷が80%を超えた場合、VMが移動します |
2 | 中 | ホスト負荷が70%を超えた場合、VMが移動します |
3 | 高 | ホスト負荷が60%を超えた場合、VMが移動します |
System Center Virtual Machine Manager(SCVMM)は、フェイルオーバークラスターマネージャーを使用する代替手段として、クラスター管理にも使用できます。SCVMMには、Windows Server 2012以降で利用可能なDynamic Optimization機能が含まれており、これによりVMがクラスターノード間で再配置されます。Hyper-Vロードバランシングを有効にしてSCVMM Dynamic Optimizationを使用している場合、SCVMMでDynamic Optimizationを有効にすると、自動的にロードバランシングが無効になります。この場合、2つの機能の同時動作や関連する問題によって引き起こされる可能性のある競合を防ぐために、ロードバランシング管理はSCVMMによって行われます。Microsoftは、Dynamic Optimizationを使用してSCVMMを使用することをお勧めしています。
Hyper-Vロードバランシングの利点
ロードバランシングは便利な機能です。Hyper-Vフェイルオーバークラスターでロードバランシングを使用する利点は次のとおりです:
- 物理サーバーの過負荷なし
- VMの過負荷なし
- アプリケーションの応答性の向上
- 提供されるサービスの品質の向上
- サービスおよびアプリケーションの拡張性の向上
- 障害の緩和
NAKIVO Backup & Replicationおよびクラスター化されたVMのバックアップ
Hyper-V フェールオーバー クラスターは、運行中の VM の可用性を向上させるだけでなく、ノードの可能なハードウェアの失敗による保護も提供する効果的な解決策です。他の种類の災害からデータを保護するためには、VM バックアップとレプリケーションを使用する必要があります。クラスター化された Hyper-V ホスト上に存在する VM は、フェールオーバーや負荷分散のような事件の間でホスト間で移動することができます。その結果、必要な VM のバックアップを行う際に、VM が存在するホストを特定する必要があるため、ホストレベルの VM バックアップが考えられます。
NAKIVO Backup & Replication は、Hyper-V クラスターをサポートする速く、信頼性の高い、安価な VM データ保護ソリューションです。NAKIVO Backup & Replication は、インベントリーに整个のクラスターを追加した後、VM が存在するホストを自動的に追跡することができます。その結果、Hyper-V クラスターから VM のバックアップまたはレプリカを作成するプロセスは、単一の Hyper-V ホストから VM のバックアップを行うのと同様に簡単になります。
結論
Hyper-Vロードバランシングは、Windows Server 2016のHyper-Vに含まれる有用なクラスタリング機能です。この機能を使用することで、ハードウェアリソースをより合理的に利用し、それによって提供されるサービスの品質を向上させることができます。CPUおよびRAMのメトリクスは、負荷の再分配のための意思決定に使用されます。負荷バランシングは、設定で定められた閾値値を超えた場合、過負荷のノードから空きリソースのあるノードにVMの移行を自動的に開始します。ライブマイグレーションが使用されるため、著しいダウンタイムはありません。ロードバランシングを備えたHyper-Vフェイルオーバークラスタは、高可用性を提供するだけでなく、ノードの障害からVMを保護し、十分なコンピューティングリソースを提供します。
Source:
https://www.nakivo.com/blog/hyper-v-virtual-machine-load-balancing/