Dell EMC Unity All-FlashアレイとHyper-Vのベストプラクティスに関する議論は、物理ホストとクラスタノードに提示される実際のLUNとファイル共有、およびVMに提示される仮想ハードディスク、パススルーディスク、ダイレクトアタッチストレージなどのストレージを中心に行われます。
完全に統合されたストレージ・ソリューションとして、Dell EMC Unity All-Flashアレイは、ファイバーチャネルやiSCSIを利用した従来のSANベースのブロックストレージや、ファイルベースのSMBファイル共有を通じて、Hyper-V環境にストレージを提示するように構成できる。近年、Microsoftは従来のブロックベースのSANストレージに代わるものとして、SMBの利用を推進しています。FCまたはiSCSIをサポートするインフラがすでに整っている場合、顧客はDell EMC Unityでこれらの堅牢なトランスポートを使用することで、投資に対するリターンを引き続き実現できます。SMBファイル共有は、FCやiSCSIの代わりに、あるいはFCやiSCSIと同時に使用することができます。小規模なブランチオフィスでは、FCやiSCSIのネットワーク、ファブリック、インフラストラクチャのコストや複雑さを回避できるSMBの魅力的なユースケースがあります。
Dell EMC Unity All-FlashアレイはSMB 3.1.1をサポートし、Microsoft Windows Server 2008 R2 Hyper-VおよびWindows Server 2016 Hyper-Vと互換性があります。
シンプロビジョニング、データ圧縮、スナップショット、レプリケーションなど、Dell EMC Unity All-Flashアレイの中核機能の多くは、プラットフォームに関係なくバックグラウンドでシームレスに動作します。多くの場合、これらの機能のデフォルト設定はHyper-Vでうまく機能するか、構成の開始点として役立ちます。本書では、パフォーマンス、利用率、回復力を強化するための追加設定やチューニングの手順について説明します。
このセクションでは、パフォーマンス、使用率、および回復力を強化するための追加の構成またはチューニング手順を説明します。Dell Unity を使用した Hyper-V のパフォーマンスおよび回復力を強化するための追加の構成またはチューニング手順を示します。
Hyper-Vの一般的なベストプラクティスは、ストレージに特化したものではありません。一般的なHyper-Vのベストプラクティスについては、Microsoft TechNetなどのリソースを参照してください。
以下は、一般的なHyper-Vチューニングステップのハイレベルな要約です。
不要なハードウェア・デバイスやサービスを最小化または無効化して、他の VM が使用できる CPU サイクルを確保する。
定期的なメンテナンス、バックアップ、ウイルススキャン、パッチの適用な どのタスクを、営業時間外に実行するようにスケジュールする、 このような作業が重なり、CPU や I/O に負荷がかかる場合は、開始時間をずらす。
アプリケーションのワークロードを調整し、不要なプロセスやアクティビティを削減または排除する。
Microsoft PowerShell® やその他のスクリプトツールを活用し、ステップ集約的な反復タスクを自動化する。
一貫性を確保し、ヒューマンエラーを回避する(管理時間も短縮できる)。
これらの一般的なガイドラインに加え、以下のサブセクションでは詳細な構成情報を提供しています。
ゲスト統合サービスは、物理ホスト・ハードウェアおよびストレージとの相互作用のためにゲストVMの仮想ハードウェアを最適化するために、ゲストVMにインストールされる仮想化認識ドライバのパッケージです。これらのドライバのインストールは通常、VMのパフォーマンスを最適化するための最初のステップです。VMが(CPU、ディスクI/O、またはネットワークのパフォーマンスが原因で)期待どおりに動作しない場合は、VM統合サービスが最新であることを確認します。
統合サービスのインストールとアップデートは、ゲスト VM の全体的な安定性と最適なパフォーマンスを確保するための、最も見落とされがちなステップの 1 つです。新しい Windows ベースの OS や、一部のエンタープライズクラスの Linux ベースの OS には、すぐに統合サービスが付属していますが、それでもアップデートが必要な場合があります。統合サービスの新しいバージョンは、物理ホストにパッチが適用され、アップデートされることで利用可能になる可能性があります。
以前のバージョンのHyper-V(2012 R2以前)では、新しいVMの構成とデプロイ時に、構成プロセスで統合サービスのインストールやアップデートを促すプロンプトは表示されません。さらに、Hyper-V の古いバージョン(2012 R2 およびそれ以前)で統合サービスをインストールするプロセスは少しわかりにくいので、このセクションで説明します。良いニュースは、Windows Server 2016 Hyper-Vでは、統合サービスがWindowsアップデートの一部として(Windows VMの場合)自動的に更新されるようになり、Windows VMが最新の状態に保たれるようにするための管理が少なくて済むようになったことだ。
よくある問題の1つは、VMを古い物理ホストやクラスタから新しいホストやクラスタに移行する際に発生する(例えば、Windows Server 2008 R2 Hyper-VからWindows Server 2012/R2 Hyper-Vへ)。統合サービスが自動的に更新されないため、パフォーマンスが低下する可能性があります。
パフォーマンスの問題は別として、統合サービスが古いか、Windows VM上に存在しないことを示す重要な兆候の1つは、VMのデバイスマネージャに不明なデバイスが存在することです。
WindowsのVM上に存在しないことを示す重要な兆候の1つは、VMのデバイス・マネージャに不明なデバイスが存在することである。
2016より前のバージョンのHyper-Vの場合は、Hyper-V Managerを使用してVMに接続します。[アクション]メニューで、統合サービスセットアップディスク(ISOファイル)をマウントし、ゲストVMコンソールのプロンプトに従ってインストールを完了します。統合サービスはWindowsアップデートの一部としてのみ提供されるため、統合サービスISOのマウントはWindows Server 2016 Hyper-Vではサポートされなくなりました。
統合サービスのバージョンを確認するには、各VMのSummaryタブでFailover Cluster Managerを選択します。
次の例に示すように、PowerShellを使用して検証を行うこともできます。
PS C:\Windows\system32> get-VM | Select-Object name, integrationservicesversion
Name IntegrationServicesVersion
---- -------------------------
MG-VM12a 6.3.9600.18080
MG-VM12b 6.3.9600.18080
MG-VM12c 6.3.9600.18080
MG-VM12d 6.3.9600.18080
ゲストVMの世代(第1世代または第2世代)は、全体的なストレージ戦略の重要な部分である。Windows Server 2012 R2 Hyper-Vがリリースされたとき、マイクロソフトは既存のVMをすべて第1世代に指定し、第2世代として作成できるVMの新しい分類と区別しました。
世代1のVMは引き続きHyper-Vでサポートされるが、ホスト・サーバー(Windows Server 2012 R2 Hyper-V以降)とゲストVM OSがそれをサポートしている場合は、世代2として新しいVMを作成するのがベスト・プラクティスである。第1世代VMのサポートは、Hyper-Vの将来のバージョンでは、いずれ廃止される可能性があります。
第2世代のゲストは、起動時にレガシーBIOSの代わりにUEFI(Unified Extensible Firmware Interface)を使用します。UEFIは、より優れたセキュリティと、OSとハードウェア間のより優れた相互運用性を提供し、仮想ドライバのサポートとパフォーマンスを向上させます。さらに、第 2 世代ゲストの最も大きな変更点の 1 つは、起動ディスクの仮想 IDE への依存がなくなったことです。第1世代のVMは、仮想IDEディスク・コントローラを使用するブート・ディスクを必要とします。第2世代のゲストは、すべてのディスクに仮想SCSIコントローラを使用します。仮想 IDE は第 2 世代 VM ではサポートされないオプションです。
両方の世代のゲストVMについて、高いI/Oを必要とする複数のディスクがある場合、各ディスクを独自の仮想ディスクコントローラに関連付けることで、パフォーマンスをさらに最大化することができます。
一度VMが作成されると、VMの世代を変更することはできないという警告が出てきますが、VMを第1世代から第2世代に変換することは可能です。マイクロソフトはこの操作を実行するためのツールを提供する努力を続けていますが、サード・パーティのツールが現在利用可能な場合もあります(使用は自己責任で)。
仮想ハードディスクは、ホストオペレーティングシステムを使用して、.vhd、.vhdx、または.vhdsの拡張子を持つ通常のWindowsファイルとして格納されるデータブロックのセットです。仮想ハードディスクのさまざまな形式とタイプのオプション、およびこれがDell EMC Unity All-Flashアレイとどのように統合されるかを理解することが重要です。
いずれのVM世代でもサポートされる仮想ハードディスク・フォーマットは以下のとおり3種類あります。
VHDはすべてのHyper-Vバージョンでサポートされており、最大サイズは2 TBに制限されている。これは現在、レガシー・フォーマットと見なされています(新しいVMのデプロイには、代わりにVHDXを使用してください)。
VHDXはWindows Server 2012 Hyper-V以降でサポートされています。VHDXフォーマットは、停電時の回復力が高く、パフォーマンスが向上し、最大64 TBのサイズをサポートします。VHDファイルは、Hyper-V ManagerやPowerShellなどのツールを使用してVHDXフォーマットに変換できます。
VHDS(VHDセット)は、Windows Server 2016 Hyper-V以降でサポートされています。VHDSは、高可用性(HA)ゲストVMクラスタリング構成をサポートするために、2つ以上のゲストVMで共有される仮想ハードディスク用です。
Microsoft SQL Serverデータベースのような非常に高いI/Oを生成するワークロードの場合、Microsoftは、最適なパフォーマンスを得るために固定サイズの仮想ハードディスクタイプを使用することを推奨します。
図7に示すように、固定サイズの仮想ハードディスクは、ホストサーバーから見てすべての容量を消費します。動的仮想ハードディスクの場合、消費されるスペースは仮想ディスク上のデータ量と等しく(さらにメタデータのオーバーヘッドもあります)、ホストの観点からはよりスペース効率が高くなります。ゲストVMの観点からは、この例で示したどちらのタイプの仮想ハードディスクも、ゲストに対して60GBの利用可能なスペースを提供します。
環境に適した種類の仮想ハードディスクを選択する際には、パフォーマンスと管理のベストプラクティスに留意する必要があります。
固定サイズの仮想ハードディスク
Microsoft SQL Server、Microsoft Exchange、OSのページファイルやスワップファイルなど、高いレベルのディスクアクティビティが発生する仮想ハードディスクに推奨されます。多くのワークロードでは、固定とダイナミックのパフォーマンス差はごくわずかです。フォーマットすると、ホスト・サーバー・ボリュームの全領域を占有する。
ホスト・レベルでの断片化の影響を受けにくい。
ファイルサイズがフォーマットされたサイズと同じであるため、コピーに時間がかかる(たとえば、あるホストサーバーからネットワーク経由で別のホストサーバーへ)。
2012より前のHyper-Vの古いバージョンでは、固定仮想ハードディスクのプロビジョニングに時間がかかることがあります。オフロードデータ転送(ODX)のネイティブサポートがないためです。Windows Server 2012以降では、ODXがサポートされ有効になっている場合、固定仮想ハードディスクのプロビジョニング時間が大幅に短縮されます。
仮想ハードディスクを動的に拡張する
ディスクI/Oが非常に大きいワークロードの場合を除き、ほとんどの仮想ハードディスクに推奨されます。
固定の仮想ハードディスクと比較すると、仮想ハードディスクは成長するため、CPUとI/Oのオーバーヘッドが若干多くなる。これは通常、I/O需要が非常に高い場合を除き、ワークロードには影響しません。 Dell EMC Unity オールフラッシュアレイでは、オールフラッシュディスクプールのパフォーマンスが高いため、この影響はさらに小さくなります。
ホストレベルでの断片化の影響を受けやすい。
初期フォーマット時に(一部のメタデータのために)スペースをほとんど消費せず、ゲストVMによって新しいデータが書き込まれるにつれて拡張されます。
実際のデータのみがコピーされるため、固定ディスクよりも他の場所へのコピーに時間がかかりません。 たとえば、20 GB のデータを含む 500 GB の動的に拡張する仮想ハードディスクは、500 GB ではなく 20 GB のデータのコピーにかかる時間でコピーされます。
ホストサーバーのボリュームをオーバープロビジョニングできるようにします。この場合、意図せずにボリュームの容量が不足しないように、ホスト・サーバ上でアラートを設定することが重要なベスト・プラクティスです。
仮想ハードディスクの差分化
同一のオペレーティングシステムを持つ複数のHyper-VゲストVMが、共通のブート仮想ハードディスクを共有できるようにすることで、ストレージを節約できます。
すべての子が親と同じ仮想ハードディスクフォーマットを使用する必要があります。
未変更データの読み取りによって参照されます。ティアリングをサポートするシステムでは、読み取りの頻度が低い変更されていないデータは、より低い分類のストレージに存在する可能性があります。Dell EMC Unity All-Flashアレイでは、すべてのデータが同じパフォーマンス階層に存在します。
新しいデータを子仮想ハードディスクに書き込む必要があります。
Hyper-VゲストVMのHyper-Vベースのネイティブスナップショットごとに作成され、前回のスナップショット以降に変更されたデータをフリーズし、新しいデータを新しい仮想ハードディスクファイルに書き込むことができます。Hyper-VゲストVMのHyper-Vベースのネイティブスナップショットを作成すると、ストレージI/OのCPU使用率が上昇する可能性がありますが、ゲストVMのI/O要求が非常に高くない限り、パフォーマンスに顕著な影響はないでしょう。非常に高いI/O要求が発生しない限り、おそらくパフォーマンスには顕著な影響はありません。
ゲストVMのネイティブHyper-Vベースのスナップショットの長いチェーンを維持するには、仮想ハードディスクから読み取り、多くの異なる仮想ハードディスクのチェーンで要求されたブロックをチェックする必要があるため、Hyper-VゲストVMのパフォーマンスに影響を与える可能性があります。
Hyper-VゲストのネイティブHyper-Vベースのスナップショットでは使用しないか、最適なディスクI/Oパフォーマンスを維持するために最小限に抑える必要があります。Dell EMC Unityでは、アレイベースのストレージスナップショットを活用することで、Hyper-Vのネイティブスナップショットを最小限に抑えるか、あるいは完全に回避することができます。管理者は、アレイベースのスナップショットを、VMをリカバリしたり、アーカイブやリカバリのためにデータを別の場所に複製したりする手段として活用できます。
Dell EMC Unity All-Flash ストレージを Windows Server Hyper-V ホスト、ノード、および VM に提供するには、いくつかの方法があります。本稿では概要を説明しますが、Dell EMC Unityアレイ上のファイバチャネルまたはiSCSIボリュームにアクセスするためのホストの構成に関する詳細なガイダンスについては、構成ガイド「ファイバチャネル(FC)またはiSCSIストレージにアクセスするためのホストの構成」を参照してください。
Dell EMC UnityストレージをHyper-Vに提示するための以下の点に注意してください:
SAN からのブートは、ブートにホスト上のローカルディスクを必要とする Nano サーバを除く、すべてのバージョンの物理 Hyper-V ホストおよびノードでサポートされています。
Dell EMC Unityストレージは、ファイバーチャネル、iSCSI、またはSMBファイル共有を使用して、物理Hyper-Vホストおよびクラスタノードに提示できます。
Dell EMC Unityストレージは、以下を使用してHyper-VゲストVMに直接提示することもできます:
ゲスト内iSCSI(直接接続ストレージと呼ばれる)
パススルーディスク(Dell EMCおよびMicrosoftは、レガシー構成であるパススルーディスクを使用しないことを強く推奨します。)
SMBファイル共有