私が約束したように、私は引き続き「伝道」し、Hyper-Vに関する別の記事を書きます。 今回は、Hyper-Vのデータストレージデバイス(つまり、ハードディスクとあらゆる種類の外部ストレージシステム)の動作について説明します。
仮想マシンはどこにデータを保存できますか?
仮想マシンディスクは、サーバーのローカルハードドライブと外部ストレージシステム(SAN)の両方に保存できます。
この図ではDASを使用しています。 ホストシステムにドライブY:としてマウントされたDisk2に、ファイルVM1.vhdが作成され、これが仮想マシンにマウントされ、ドライブC:として使用されます。 また、Disk3は仮想マシンに直接接続し、ゲストOSではD:ドライブと同様に仮想マシンを操作できます。 ホストOSでは、Disk3はオフライン状態であり、アクセスできません。
次に、SANを使用するときに使用できるオプションを見てみましょう。
最も「クラシックな」オプション-LUN 1はサーバーに提示され、ホストOSにマウントされます。たとえば、Z:ドライブとしてVHDがすでに作成されており、仮想マシンで使用されます。 おとぎ話のように-「卵の中の針、アヒルの中の卵、ウサギの中のアヒルなど」
2番目のオプション-LUN 2はサーバーに提示されますが、ホストOSではマウントされず、パススルーディスクとして仮想マシンに接続されます。
さらに、SANがiSCSIプロトコルに基づいている場合、ゲストOS内で実行されているiSCSIイニシエーターを使用して、仮想マシン内にLUNをマウントできます。 残念ながら、FibreChannel-LUNはこの方法では接続できません。Hyper-Vには仮想FC-HBAはありません。
仮想コントローラー
それでは、実際のコンピューターと同様に、仮想マシンが独自の仮想ハードディスクと仮想ハードディスクコントローラーを持っているという事実から始めましょう。 これらのコントローラーには、IDEとSCSIの2種類しかありません。 2つの違いは何ですか?
まず、IDEとは異なり、SCSIコントローラーは完全に合成されたデバイスであるため、その操作には統合コンポーネントのインストールが必要です。 したがって、それらをサポートするゲストOSでのみ使用できます(これはMS Windowsのみでなく、RHELとSLESであることを思い出してください)。 同じ理由で、ゲストOSはIDEデバイスからのみ起動できます。 仮想IDEとSCSIコントローラーの主な違いは、このコントローラーを介して動作できるデバイスの数です。 仮想マシンには2つのIDEコントローラーがあり、それぞれに最大2つの仮想ディスクを接続できます。 4つのSCSIコントローラーがあり、各コントローラーに最大64個の仮想ディスクを接続できます。つまり、仮想マシンは260個の仮想ディスク(4 IDE + 4 * 64 SCSI)を持つことができます。 また、実際のSCSIディスクはIDEよりも高速ですが、これは仮想環境に完全に当てはまるわけではないことも覚えておく必要があります。 統合コンポーネントがインストールされているHyper-V R2環境では、仮想IDEおよびSCSIディスクは同等に高速であり、パフォーマンスは物理ディスクサブシステムによってのみ決定されます。
仮想ディスク
次に、仮想マシン自体のハードディスクがどのようなものであるかを見てみましょう。 まず、Hyper-Vは、.VHDファイルとして表される仮想ハードディスクと、仮想マシンへのディスクの直接接続(いわゆるパススルーディスク)の両方をサポートします。
仮想ディスクは、特別な形式(VHD)のファイルです。 このフォーマットはもともとConnectixによって開発され、Microsoftに買収された後、MSの仮想化製品(VirtualPC、Virtual Server、現在はHyper-V)で使用されるようになりました。 現在、Windows 7およびWindows Server 2008 R2では、VHDファイルはOSレベルでサポートされており、システム自体にディスクとしてマウントできます。 さらに、OS自体をVHDにインストールして、そこから起動できます。 現在、VHD形式は完全にオープンであり、VHDで作業できるサードパーティソフトウェア(Paragonなど)が多数あります。一部のCitrix製品ではVHDがサポートされています。 仮想ディスクには、固定サイズ、動的、および差分の3つのタイプがあります。
ダイナミック仮想ディスクは、書き込みに応じてサイズが大きくなるVHDファイルです。 動作中のダイナミックディスクは、VHDからデータを削除するときに残る未使用のブロックを削除することで圧縮できます。 ダイナミックディスクを使用すると、ディスク領域を最も効率的に使用できますが、パフォーマンスが低下する可能性があるため、運用環境で使用することはお勧めしません。
固定サイズの仮想ディスクは、ディスクとして仮想マシンに提示されるブロックのセットを含むファイルです。 仮想ディスクのサイズは作成時に設定され、対応するサイズのVHDファイルがサーバーのハードディスクに作成されます。 ディスクのサイズによっては、作成プロセスに時間がかかる場合があります。 固定サイズのディスクを使用することは、2つの理由でダイナミックディスクよりも望ましいです。 まず、ダイナミックディスクが徐々に拡大するため、.vhdファイルが断片化し、パフォーマンスに影響を与える可能性があります。 固定サイズのVHDは必要なすべてのスペースをすぐに占有するため、操作中に断片化することはありません。 第二に、物理ディスク上のスペースがなくなり、ダイナミックディスクがどこにも成長しないという状況が発生する可能性があり、これにより仮想マシンの動作が中断する可能性があります。
差分ディスク -常に「親」VHDがあります。 同時に、読み取りは「親」と差分VHD自体の両方から実行できますが、書き込みは差分VHDに対してのみ行われ、「親」は変更されません。 これは、たとえば、仮想マシンのスナップショットで作成されたAVHDディスクです。 スナップショットの詳細については、以前の記事を参照してください。 差分VHDは、ハードディスクドライブの内容がほぼ同じである複数の仮想マシン(たとえば、インストールされているOS)を上げる必要がある場合のテスト環境でも使用できます。 実稼働環境で差分ディスクを使用することはお勧めできません。まず、パフォーマンスが低下するため(1つのVHDから読み取る代わりに、複数のVHDから読み取る必要があります)、2番目に、信頼性が低下するため(親VHDが破損するとすべての差分ディスクが破損します)。
固定および動的の両方の仮想ディスクの最大サイズは2テラバイト(または2040ギガバイト)です。
パススルーディスクとは、VHDファイルを作成せずに物理ディスクを仮想マシンに直接接続することです。 ローカルハードドライブ上のパーティション、または外部ストレージシステム(SAN)からLUNサーバーに提供されるパーティションのいずれかです。 ホストOSの場合、ディスクは仮想マシンにマウントされた後、「オフライン」状態になります。つまり、ディスクへの直接アクセスが終了します。 マウントされたVHDは、パススルーディスクとして使用することも、仮想マシンレベルでのスナップショットをサポートすることもできません。
パススルーディスクのサイズは2テラバイトに制限されていません。
時々疑問が生じます:VHDまたはパススルーディスクを使用する方が良いでしょうか? 一部の人々はVHDが遅いと思うが、それは真実ではない。 調査によると、Winodws Server 2008 R2では、VHDドライブとパススルードライブが同じ速度で動作します。 測定の詳細については、 公式文書をご覧ください。
次の記事では、仮想マシンがネットワークでどのように機能するかについて説明します。 記事のトピックに関する質問がある場合-通常どおり、コメントを歓迎します。