VMDK ( Virtual Machine Diskの略)は、VMware WorkstationやVirtualBoxなどの仮想マシンで使用される仮想ハードディスクドライブのコンテナを記述するファイル形式です。
VMDKは当初VMwareが自社独自の仮想アプライアンス製品向けに開発したが[ 1 ] 、2011年にリビジョン5.0でオープンフォーマットとなり[ 2 ] 、仮想アプライアンス用のオープン仮想化フォーマット内で使用されるディスクフォーマットの1つとなった。
VMDKの最大サイズは、ほとんどのアプリケーションでは一般的に2TBですが、2013年9月にVMware vSphere 5.5で62TBのVMDK容量が導入されました。[ 3 ]
VMwareの仮想化製品はすべてVMDKをサポートしています。これには、VMware Workstation、VMware Workstation Player、VMware Server、VMware Fusion、VMware ESX、VMware ESXi、およびVMDKを組み込んだすべてのソフトウェア+サービスが含まれます。
VMDKをサポートするサードパーティ製ソフトウェアには、以下のようなものがあります。
VMDK フォーマットには複数の異なるサブフォーマットが含まれており、メタデータを外部記述子ファイルに格納するものもあれば、メインデータとともに単一ファイルに埋め込むものもあります。[ 9 ]フラットイメージは事前に領域を割り当てますが、スパースイメージは仮想マシンが書き込むにつれて大きくなります。フラットイメージは、 ESXi のvmfsフォーマットのように、基盤となるファイルシステムのスパースファイル機能を使用できます。イメージは親イメージを参照し、コピーオンライト方式で行われた変更のみを保存することもできます。これにより、仮想マシンの状態のスナップショットを作成できます。
記述子は、通常、実際のデータを保持するファイルまたはデバイスを参照する1 つ以上のエクステントZEROのシリーズを指定します。ただし、たとえば、ゼロで埋められたエクステントをエミュレートする タイプのエクステントの場合は除きます。[ 10 ]RW各エクステントには、仮想マシンがディスクのその部分に対してそれぞれ読み取り/書き込み、読み取り専用、またはアクセス不可であることを示すために、、、RDONLYまたはのいずれかをマークできますNOACCESS。イメージ内のエクステントの数とタイプは、その に依存しますcreateType。 のイメージには、createType="custom"任意の組み合わせのエクステントを含めることができます。
フラットディスクイメージは、次の3つの方法のいずれかでプロビジョニングできます。