Hyper-VでVMパフォーマンスを向上させるためのトップ20のヒント

すべてのシステムは時折エラーや障害に陥る可能性があり、ユーザーは常に仮想インフラストラクチャのパフォーマンスを向上させる方法を探しています。このブログ投稿では、パフォーマンスの問題がどのようにHyper-V環境に影響するか、および仮想マシン(VM)のパフォーマンスを向上させる方法について議論します。

このブログ投稿では、Hyper-V環境でVMのパフォーマンスを最適化し向上させるために使用できる20の調整をまとめました。さらに、Hyper-V仮想化技術の動作方法、Hyper-V VMのパフォーマンスに最も影響を与える可能性のある問題、およびNAKIVO Backup & Replicationが仮想環境を保護するのにどのように役立つかも見つけることができます。

Hyper-Vの動作方法

Hyper-Vは、Microsoftが開発した仮想化ソフトウェアであり、コンピューターの仮想化バージョンである仮想マシン(VM)を作成して実行できます。単一のHyper-Vホストは、お互いに分離された状態で複数のVMを同時に実行できます。さらに、すべてのVMは、単一のホストサーバーのハードウェアリソース(メモリ、プロセッサー、ストレージ、およびネットワーキングデバイスを含む)を共有します。このようにして、ハードウェアリソースを効率的に使用し、必要なVMに容易に割り当てることができます。

Hyper-Vは、Windows ServerおよびWindows(2008以降)のサーバーロールとして利用できます。また、機能が制限されており、コマンドラインインターフェースのみを備えた無料のスタンドアロン製品(Hyper-V Server)としても利用できます。

詳細を知りたい場合は、当社のブログ投稿「コンピューターにHyper-V Serverをインストールする方法」をお読みください。

一般的な Hyper-V の問題

Hyper-V は非常に高度なサーバー仮想化プラットフォームですが、パフォーマンスの問題が発生することがあります。次のシステムコンポーネントが最も頻繁に失敗し、VM のパフォーマンスの問題を引き起こす可能性があります:

  • プロセッサ(例: 論理プロセッサや仮想プロセッサの過負荷、CPU の遅延)
  • メモリ(例: メモリの過剰確保、RAM の不足、VM の起動の失敗)
  • ネットワーク(例: ネットワークによって制約されるホストや VM、ネットワークリソースの不均衡)
  • ストレージ(例: ディスクの待ち時間、物理的なストレージスペースの浪費、I/O スループットの低下)

これらは、異常な活動が検出された場合に注意を払う必要があるハードウェアコンポーネントです。

問題のほとんどは、利用可能なリソースの適切な使用によって発生します。Hyper-V ホストには、利用できるハードウェアリソースとソフトウェアリソースの量に制限があり、その上で実行される VM と共有することができます。したがって、同時に Hyper-V ホストで実行されている VM の数、利用可能なリソースの消費方法、およびそれらが過剰または不十分に供給されているかどうかに注意を払うことが重要です。これらの要因が組み合わさることで、VM のパフォーマンスがどれだけ効果的かつ信頼性があるかが影響を受けます。

A key aspect of optimizing and monitoring performance is to understand the actual amount of workload in your virtual infrastructure and how many resources would be required to provision such a workload. This way, you can identify potential risks and bottlenecks which might negatively affect your VM performance. The basic advice on improving Hyper-V performance is to avoid creating and running too many VMs on a single host, and to minimize unnecessary resource consumption within your virtual environment.

Hyper-V 環境で VM のパフォーマンスを向上させる 20 の方法

次のセクションでは、いくつかのシンプルな設定が Hyper-V 環境で VM のパフォーマンスを向上させるのにどのように役立つかについて説明します。

したがって、VM のパフォーマンスを向上させるために、以下の操作を行うことができます:

1. ハイパーバイザー インテグレーション サービスを有効にする

ハイパーバイザー インテグレーション サービスは、ハイパーバイザー VM 内で実行されるゲストオペレーティングシステム(OS)のパフォーマンスを向上させるために設計された特別なドライバーとユーティリティのスイートを表します。最適な結果を得るためには、ハイパーバイザーホストとすべてのゲストOSでハイパーバイザー インテグレーション サービスを有効にすることをお勧めします。なお、新しいWindows OSでは、(ゲストサービスを除く)すべてのハイパーバイザー インテグレーション サービスがデフォルトで利用可能です。ただし、VMがLinuxまたは古いバージョンのWindows OSを実行している場合は、これらのゲストOSでインテグレーションサービスが自動的に有効になっているかどうかを確認することがより良いでしょう。そうでない場合は、手動でインストールする必要があります。

2. 固定サイズのVHDファイルを使用する

固定サイズのディスクと動的に拡張されるディスクは、特定の目的で使用されるように設計されています。新しい仮想ハードディスクを作成する際には、どのタイプの仮想ハードディスクを持つかを選択するよう求められます。適切な選択をするためには、まず仮想環境でどのように使用されるかを考慮する必要があります。固定サイズのディスクはパフォーマンスが向上し、ディスクアクティビティが高いアプリケーションを実行しているサーバーに推奨されます。動的に拡張されるディスクは物理ストレージスペースの使用が効率的であり、リソースがそれほど多く必要ではないアプリケーションを実行しているサーバーに推奨されます。

固定サイズのディスク領域は、仮想ハードディスクファイルが作成されると割り当てられ、データが追加または削除されても変更されません。動的拡張ディスク領域は、必要に応じて割り当てられ、データが追加または削除されるとサイズが変更されます。

したがって、テストおよび展開環境では動的拡張ディスクを使用し、本番環境では固定サイズのディスクがより効果的です。

3. バックアップの代替としてHyper-Vスナップショットを使用しないでください

バックアップとしてHyper-Vスナップショット(またはHyper-Vチェックポイントとしても知られています)は、テストおよび開発環境で最も効果的であることが証明されています。たとえば、システムにパッチやアップデートをインストールしたいが、仮想インフラにどのような影響があるかわからない場合。この場合、Hyper-Vスナップショットを取ることで、テストを行い、失敗した場合にロールバックすることができます。

バックアップとは異なり、Hyper-VスナップショットはVMハードディスクと一緒に本番データストアに保存されるため、VMに依存します。VMが破損または削除されると、Hyper-Vスナップショットも失われます。バックアップはより信頼性の高いデータ保護オプションであり、一貫した独立したVMコピーとして機能し、簡単に移動してリモート場所に保存できます。

4. ページングファイルのサイズを設定する

Pagefile.sysは、仮想メモリを管理しメモリ不足に対処するために使用されるWindowsのページングファイルです。システムが物理メモリの不足に陥ると、ページファイルを使用して追加のRAMにアクセスできます。良い考えのように思えるかもしれませんが、ページファイルの使用は時々VMのパフォーマンスに影響を与えることがあります。したがって、Windowsのページングファイルのサイズを増やし、その最小値と最大値をRAMの量の3倍に設定することが推奨されています。

5. 仮想ネットワークスイッチをあまり作成しないでください

さまざまな目的に使用される複数の仮想ネットワークスイッチを作成することに誘惑されるかもしれません。実際には、単一のネットワーク内で多くの仮想スイッチを使用すると、処理オーバーヘッドが発生する可能性があります。VMのパフォーマンスを向上させるためには、1つの仮想ネットワークスイッチのみを作成し、さまざまなケースで使用することが推奨されています。当社のブログ投稿を読んで、Hyper-Vネットワーク仮想化がどのように機能するかと、効果的な仮想ネットワークインフラストラクチャに含まれるべきコンポーネントを学んでください。

6. 管理OSの過負荷を避ける

A management OS is meant for running VMs, backup software, and anti-malware. That’s it! Anything that doesn’t match these criteria should be running on your VMs. Also, avoid creating too many VMs on the same Hyper-V host if you are not planning to use all of them. If you find that some of your VMs are no longer used and have no practical function in your virtual environment, it is better to delete them so that they are no longer consuming available hardware resources and overloading your Hyper-V host.

7. 不要なアプリケーションを終了する

同時に複数のVMを操作する際には、開いたすべてのアプリケーションを監視するのが難しいことがあります。しかし、それらを長時間実行したままにしておくと、利用可能なシステムリソースを消費し始め、最終的には全体的なVMのパフォーマンスに影響を与えます。作業が完了しもうそれらが必要でない場合は、Virtual Machine Connectionウィンドウ、Hyper-V Manager、および他のすべてのアプリケーションウィンドウを閉じる準備をしてください。これは、VMのパフォーマンスを改善するための簡単で効果的な方法です。

8. Windows Server CoreにHyper-Vをインストールする

このリストで最も普遍的に受け入れられているアドバイスの1つは、Windows Server CoreにHyper-Vをインストールすることです。これは多くの利点を提供するためです。GUI体験のWindows Serverと比較すると、Windows Server Coreはより小さなフットプリントと攻撃面を持っていることが明確になります。その結果、より少ないハードウェアリソースが消費され、システム全体の脆弱性も少なくなります。これらの節約されたリソースは、システム内で実行されているVMのプロビジョニングに使用することができ、これによりHyper-V環境でのVMのパフォーマンスが大幅に向上します。

9. パフォーマンスのベースラインを決定する

A performance baseline is the level of performance that your system displays in standard conditions. It is recommended that you set a performance baseline beforehand. This way, you can identify whether anything has changed in resource consumption, monitor the overall VM performance, and promptly respond to any system errors and failures that might have been detected.

10. リソースを効果的に割り当てる

あなたのHyper-V環境をどのように使用するか、いくつのVMを作成するか、それらのVMがどのような目的で実行されるかを決定します。その後、利用可能なハードウェアリソースとソフトウェアリソースがいくつあるかを決定し、最大のVMパフォーマンスを実現するためにそれらを効果的に割り当てる方法を決定する必要があります。さらに、VMを作成し、利用可能なリソースをそれらに割り当てた後は、各VMのワークロードを注意深く監視し、オーバープロビジョニングまたはアンダープロビジョニングの可能性を排除する必要があります。もし何かあれば。

11. Multipath I/Oの有効化

Multipath I/O(MPIO)は、ストレージデバイスとサーバー間の複数の冗長データパスを提供することができ、結果として負荷分散が改善され、Hyper-V環境の高可用性が確保されます。特に大量のデータを扱っている場合は、この機能を本番環境で有効にすることが推奨されます。接続障害が発生した場合、MPIOは代替パスを使用してデータの転送を確実にします。

12. ダイナミックメモリの使用

ダイナミックメモリを使用すると、ゲストOSがアクティブに実行されていて追加のRAMが必要な場合、VMにメモリリソースを追加できます。一方、ゲストOSがオフラインであり、VMのパフォーマンスをサポートするために多くのリソースが必要でない場合、Hyper-Vは未使用のリソースを回収し、他の実行中のVMに割り当てることができます。また、この特定のVMに利用可能な最大および最小RAM量を割り当てることで、ダイナミックメモリを構成することもできます。

Hyper-Vダイナミックメモリのベストプラクティスに関するブログ投稿を読んで、詳細と推奨事項をご覧ください。

13. VLANタギングを有効にする

VLANを使用して、利用可能なネットワークアダプタを介してネットワーク通信を有効にできます。特別なVLANタグを追加することで、どのパケットがどの仮想LANに属するかを識別し、システム内でのネットワーク管理を容易にします。

VLANタギングは便利な機能です。複数のユーザを同じVLANにグループ化し、そのパフォーマンスを注意深く監視できます。さらに、VLANタギングにより、特定のユーザが特定のネットワークにアクセスできるように指定でき、仮想環境のセキュリティを向上させることができます。

14. 仮想ハードディスクをデフラグメントする

フラグメンテーションは、単一のファイルの内容がディスク上の異なるセクタに保存されると発生します。その結果、ストレージスペースが効率的に使用されず、VMのパフォーマンスが影響を受けます。このような問題が発生しないようにし、VMのパフォーマンスを向上させるためには、仮想ハードディスクをデフラグメントすることが推奨されます。この操作により、利用可能なファイルとアプリケーションを再構成し、未使用のディスクスペースの量を特定し、利用可能なリソースを過剰に消費するのを防ぎます。

15. ハードウェアが認定されていることを確認する

仮想インフラストラクチャが遅延や中断なしに機能することを保証するためには、Microsoft によって認定されたハードウェアおよびソフトウェアコンポーネントを使用する必要があります。Hyper-V 環境で完全にサポートされています。選択したハードウェアまたはソフトウェアコンポーネントが実際に認定され、環境で使用できるかどうかを確認するには、Microsoft Windows Server カタログ を訪問し、必要な情報を見つけます。

16. RAID 10 ボリュームを使用します

RAID(冗長配列独立ディスク)は、複数のハードディスク上の異なる領域にデータを保存するアプローチであり、データの冗長性とストレージの耐障害性を向上させることができます。 RAID 10 は、RAID 1(ディスクミラーリング)とRAID 0(ディスクストリッピング)の組み合わせであり、両方の配列タイプの利点を提供できます。 RAID 10 を構築するには最低 4 つのディスクが必要であり、結果としてデータを安全に保護し、ドライブの障害が発生した場合でも簡単に取得できます。

17. 64 ビット ゲスト OS および第 2 世代 VM を展開します

多くの場合、追加のメモリスペースを提供できるため、64 ビットのゲスト OS を 32 ビットのものより選択することが推奨されます。したがって、総合メモリ速度を向上させ、VM のパフォーマンスを向上させたい場合は、64 ビット OS を展開する方が良いですが、必須ではありません。

さらに、彼らはハイパーバイザーに気づいており、第1世代のVMとは異なり、エミュレートされたまたは合成ハードウェアに依存していないため、第2世代のVMを作成することをお勧めします。第2世代のVMは、セキュアブートと信頼されたプラットフォームモジュールを使用して、より高いセキュリティレベルを確保し、より多くのブートオプションを提供し、その結果、VMのパフォーマンスを大幅に向上させることができます。

18. アンチウイルスを適切に設定する

Hyper-V環境を構築することを決めた場合、そのセキュリティに注意を払うことが非常に重要です。この目的のために、インフラストラクチャ内の悪意のある活動を検索し、検出し、それらがシステム全体に感染するのを防ぐアンチウイルスまたはその他の対マルウェアソフトウェアをインストールすることができます。

しかし、適切に構成されていない場合、アンチウイルスはシステムで実行されている重要なプロセスや操作に干渉する恐れがあります。したがって、デフォルトの設定を変更し、特定のファイルやアプリケーションを定期的なウイルススキャンから除外する必要があります。

定期的なウイルススキャンに含めないファイルタイプは次のとおりです: .vhd、.vhdx、.avhd、.avhdx、.vsv、.iso、.rct、.vmcx、.vmrs。ただし、特定のHyper-V VMの安全性を保証したい場合は、選択したVMにアンチウイルスをインストールし、その中で脆弱性スキャンを実行することをお勧めします。

19. 繁忙なVMを別々のボリュームに整理する

複数の仮想マシン(VM)を同じストレージボリュームに配置すると、現在のI/O操作に影響を与え、一般的にVMのパフォーマンスを低下させる可能性があります。この問題を回避するためには、ビジーなVMを別々のボリュームに配置し、仮想ハードディスクとVM構成ファイルを保存する十分なスペースと、大きなワークロードを実行するための十分なハードウェアリソースを確保することが推奨されています。

20. PowerShellコマンドレットでタスクを自動化する

PowerShellコマンドレットを使用する主な利点は、特定のタスクを自動化できることであり、これによりHyper-V環境の管理時に柔軟性が向上します。一般的なHyper-V管理ツール(Hyper-V ManagerまたはSCVMM)にはGUIが含まれていますが、Hyper-VホストとVMを管理する際には機能が限定されています。

一部の仮想化機能は、PowerShellを使用してのみ有効にしたり構成したりできます。したがって、PowerShellコマンドレットの力を過小評価すべきではありません。これらのスクリプトの操作方法を理解すると、VMのパフォーマンスを大幅に向上させ、Hyper-V環境の管理方法を変革することができます。

Source:
https://www.nakivo.com/blog/top-20-tips-improve-vm-performance-hyper-v/