Virtual Hard Disk (VHD) は、ハードディスクドライブと構造的に似せているファイル形式である。VHDは多くの仮想化パッケージで様々なオペレーティングシステム(WindowsやLinux等)をインストールするために利用されている。もともとはコネクティクスの仮想マシンで利用されていたが、マイクロソフトによるコネクティクスの仮想マシンの技術を買収後、2005年6月にMicrosoft Open Specification Promiseの下でサードパーティーが利用できるVHD Image Format Specificationを策定した。
利用
VHDを使用して1つのホストマシンに複数のオペレーティングシステム (OS) を用意することができる。実際のハードディスクを用意するコストを抑えることができ、例えば開発者は用意した複数のOSを使用してソフトウェアのテストを行うことができる。ホストサーバー側の多くのアプリケーションは仮想マシンのVHDを直接修正する目的は以下のことを含む。
- VHDとホストファイルシステム間のファイルの移動
- バックアップと復元
- アンチウイルスとセキュリティ
- イメージの管理とパッチ
- VHDから実際のディスクへの変換、または実際のディスクからVHDへの変換、その他
- VHDでの供給と、ライフサイクル管理
ソフトウェアのVHDの対応
VHDはVirtual PCやVirtual Server、Hyper-Vといったマイクロソフトの仮想化テクノロジで使用されている。そのほかVHDに対応しているソフトウェアの一例を以下に挙げる。
サポートしている形式
- 容量固定
- あらかじめ決めたボリュームサイズと同等のファイルサイズで作成される。ステートレスになるため、VHDファイルのフラグメント化やメタデータ破損を防ぐことができる。また、ホスト上のファイルオフセットとゲスト上のディスクオフセットが一致するため下位レイヤーのアライメントと揃えることが容易である。しかし、サイズが大きいために物理的なVHDファイルの取り扱いが難しくなることもある。
- 容量可変
- あらかじめ決めたボリュームサイズよりも小さいファイルサイズで作成され、使用に応じてVHDファイルのサイズが増加する。この形式の場合、オフライン編集を行うことによってファイルサイズが縮小し、物理的なVHDファイルの移動が容易になる。
- 差分
- 元のVHDイメージと使用した場合の差分を扱う。
- ハードディスクへのリンク
- 物理ハードディスクのリンクまたはパーティションとして使用する形式。Virtual Serverやバージョン2007までのVirtual PCでサポートされていた。Windows Virtual PCやHyper-V、Windows 7以降のVHDサポートではサポートされていない。
- 分割
- 論理フォーマットではなく格納方式であり、固定+分割/可変+分割/差分+分割で使われる。Virtual Serverやバージョン2007までのVirtual PCでサポートされていた。Windows Virtual PCやHyper-V、Windows 7以降のVHDサポートではサポートされていない。
オフライン編集
オフラインになっている容量可変に作成したVHDは、Hyper-VやVirtual PCを使用してサイズを縮小することができる。Hyper-VではHyper-V Managerから「ディスクの編集」を実行する。
VHDの利点
重要な利点は、VHDから物理マシンをブートすることから得られる。
- 簡単な配布 - 人や部単位で必要な標準環境を事前に構成して用意することができる。
- バックアップと復元 - バックアップ先の一つの候補としてVHDを選択することができる。例えば、VHDのコンテンツの変更(ウイルスの感染やファイルの削除)は簡単に元に戻すことができる。
- 複数のユーザーでの使用 - 複数のユーザーが、元のVHDとそれぞれのユーザーの差分VHDを作成し使用するということも可能になるため、それぞれのユーザーが安全に実行可能な環境を用意することができる。しかし、元のVHDを狙われるということが無いように適切なセキュリティ管理を行うことで効果を得られる。
VHDX
VHDXはVHDの後継として開発された。
VHDからの向上点
- 最大64TBまでサポート
- メタデータの二重化とログジャーナリングによる耐障害性の向上
- アライメントを考慮したデータ割り当て
- 任意のデータを埋め込めるカスタムメタデータのサポート
外部リンク