VHDをVMDKに変換
仮想ハードディスクファイルをVMware仮想ディスクコンテナに変換することで、Microsoft Hyper-V仮想マシンをVMwareハイパーバイザー上でスムーズに実行できるようになります。
フォーマットの比較と技術仕様
| 仕様 | VHD | VMDK |
|---|---|---|
| MIMEタイプ | application/ | application/ |
| タイプ | 仮想ハードディスク | 仮想ディスクコンテナ |
| 圧縮 | 固定 / 動的スパースジオメトリ | スパース / 動的割り当て(zlibはオプション) |
| 標準仕様 | Microsoft VHD イメージ形式仕様書 | VMware 仮想ディスク形式 5.0 |
| マジックバイトヘッダー | 63 6F 6E 65 63 74 69 78 (conectix at footer) | 4B 44 4D 56 (KDMV) |
フォーマットの概要と用途
仮想化管理者は、異なるハイパーバイザープラットフォーム間で仮想マシンを移行する必要が頻繁に生じます。Microsoft Hyper-V上で稼働しているサーバーをVMware ESXiやWorkstation環境へ移行する場合、基盤となるディスクイメージの変換が必要です。VHD形式はMicrosoftシステム用のネイティブディスクコンテナとして機能し、VMware製品ではVMDK形式が標準となります。これらのファイルを変換することで、オペレーティングシステム、インストール済みアプリケーション、およびユーザーデータを、完全な再インストールなしで完全に転送できます。 この移行を実行するには、VMware vCenter Converter、qemu-img、StarWind V2V Converterなどの専用の変換ユーティリティが必要です。これらのツールはソースディスクのセクタを読み取り、移行先のレイアウトへ書き込みます。このプロセス中、ツールはパーティションテーブル、ファイルシステム、ブートレコードをマッピングし、ターゲットのハイパーバイザーがディスクを起動可能ドライブとして認識できるようにします。
技術仕様とコーデックの詳細
アプリケーションのMIMEタイプ「application/x-vhd」で識別されるVHD形式は、固定サイズまたは動的なスパースジオメトリレイアウトを使用しており、512バイトのフッターに作成者アプリケーションやディスクジオメトリなどのメタデータが含まれています。マジックバイト署名は、ファイル末尾のASCII文字列「conectix」で始まります。一方、MIMEタイプ「application/x-vmdk」に指定されるVMDK形式は、バイナリのエクステントデータとペアになったディスクリプタテキストファイルを使用し、多くの場合マジックバイト「KDMV」で始まります。両方の形式とも、ロスレス(可逆)データ保存を実行します。つまり、元のファイルシステムのすべてのビットがデータ劣化なしで完全に保持されます。圧縮については、VHDがスパースブロック割り当てを使用するのに対し、VMDKは個々の粒度内でzlib圧縮を採用してホストシステムの物理ストレージフットプリントを削減できます。
OSとブラウザの互換性
VHDファイルは、Microsoft Hyper-V、Windowsディスク管理、およびVirtualBoxによってネイティブサポートされています。VMDKファイルは、VMware ESXi、VMware Workstation、VMware Fusion、およびVirtualBoxによってネイティブサポートされています。これらの形式はデスクトップ仮想化ソフトウェアやサーバーハイパーバイザーに限定されているため、最新のウェブブラウザやiOS、Androidなどのモバイルオペレーティングシステムではネイティブサポートされていません。
役立つ情報
動的なVHDファイルをスパースなVMDKファイルに変換する際、ゲストオペレーティングシステム内でディスクの断片化解消とゼロフィルユーティリティを最初に実行することで、未使用領域を回収し、最終的な転送サイズを縮小してください。
よくある質問
品質を落とさずにVHDからVMware仮想ディスクへ変換するにはどうすればよいですか?
ディスクイメージの変換は完全にロスレスです。ツールがセクタデータをソースコンテナから宛先コンテナへブロック単位でコピーするため、変換中にファイル、オペレーティングシステムの設定、ディスクセクタが変更または削除されることはありません。
VHDとVMware仮想ディスクの違いは何ですか?
VHDはメタデータをフッターに保存し、固定または動的ブロックレイアウトを使用するMicrosoftのコンテナ形式です。VMDKは、メタデータをテキストディスクリプタファイルに分離しつつ、生のディスクデータを別のエクステントファイルに保存し、スナップショットやzlib圧縮などの高度な機能をサポートするVMwareのコンテナ形式です。