仮想HDD用ファイルフォーマットとして使われてきたVHD形式は、Windows Vista以降のバックアップ機能でディスクイメージ形式にも採用されるなど、活躍の幅を広げていた。だが、さらなる機能性向上を求め、Windows 8やWindows Server 2012では拡張版となる「VHDX」形式をサポート。このたびMicrosoftの公式ドキュメントがリリースされたので、それらの情報を元にVHDX形式に関して報告する。
Windows 8レポート集
VHDX形式のサポートで
Windows OSがVHD(Virtual Hard Disk:仮想ハードディスク)形式を採用したのは、Microsoftが米Connectixを買収した時代までさかのぼる。同社は仮想化ソフトウェアである「Virtual PC」やMacintoshのメモリを圧縮して見かけ上、二倍に増やす「RAM Doubler」などユニークなアプリケーションを販売していた会社だった。しかし、2003年2月には、MicrosoftにVirtual PCおよび関連製品を売却し、同年8月を持って会社を閉じている。
当初は有償パッケージとして販売されていたVirtual PC(日本国内では同2004日本語版)だが、仮想化ソフトウェアのシェア拡大やMicrosoftの方針転換を受け、2006年7月から同バージョンを無償公開に切り替えている。2007年2月には64ビット環境やWindows VistaをゲストOSとしてサポートした「Virtual PC 2007」をリリース。そして、Windows 7には、最新版となる「Windows Virtual PC」や仮想化したWindows XPをセットにした「Windows XP Mode」を同上位エディション向けに無償公開した。
平行して米Connectixが開発していたサーバー版仮想化ソフトウェアは、リリース前にMicrosoftに買収されたため、同社の冠を付けた「Microsoft Virtual Server」としてデビューしている。2004年12月に有償パッケージとして「Microsoft Virtual Server 2005」を発売し、2006年4月にはVirtual PCシリーズと同じく無償公開に切り替え、その後のHyper-Vへつながっていく。この頃は仮想化技術で先頭を走っていたVMwareや、オープンソースベースのXenといった仮想化ソフトウェアが数多く登場し、他者をけん制しつつ自社シェアの拡充を望むため、無償公開といった施策を講じたのだろう。
さて、これら仮想化ソフトウェアに共通しているのが、冒頭で述べたVHDの存在である。一連の仮想化ソフトウェア用仮想HDD(ハードディスクドライブ)のファイルシステムは、OSP(Microsoft Open Specification Promise:特許事項の自由な使用を認める宣言)により、「VHD Image Format Specification」という仮想化に関する仕様として制定。そのため、サードパーティメーカーも同仕様に沿ったソフトウェアの開発が可能になった。一部のバックアップソフトなどがVHD形式をサポートしているのは、このVHD Image Format Specificationによるものだろう。
同社はそのVHDを刷新し、新たに「VHDX」というファイル形式の正式版を発表した。VHDX形式自体は以前から策定が進められていたが、開発者向けドキュメントとしてまとめられたのは、2012年2月頃(こちらで確認可能)。公式ドキュメントである「VHDX Format Specification Version 1.00」には、2012年8月25日というタイムスタンプが埋め込まれていることを踏まえると、何らかの理由で公開が後回しになっていたのだろう(図01)。
まずは新機能から紹介しよう。VHDX形式は、最大64Tバイトまでの仮想HDD容量をサポートし、VHDXメタデータ構造体に更新情報を記録して停電障害によるデータの破損を保護する機能や、仮想HDD形式の整合性を見直すことで大容量セクターディスクを用いた動作を改善している。
また、仮想HDDの理論セクターが4Kバイトに変更され、同環境用に設計されたアプリケーション使用時のパフォーマンスが向上し、OSのバージョンやパッチ適用状況などのメタデータを格納する機能を備えた。物理HDDが仮想マシンまたはSCSIディスクに直接接続し、対応する環境であれば、Trim機能を用いたデータレイアウトの効率化に伴い、VHDX形式ファイルサイズが縮小する機能も備わっている。
本来であれば仮想マシンのファイル形式など意識する必要はないものの、既にWindows 8やWindows Server 2012を使用中の方はお気付きのとおり、Windows 8のバックアップイメージ形式や、最新のHyper-Vにおける仮想HDD用としてVHDX形式が用いられている。また、VHDX形式ファイルからOSを起動するVHDXブートといった機能を踏まえると、エンドユーザーにとってVHD形式からVHDX形式の移行は大きな存在となるだろう(図02)。
最後にVHD/VHDX形式のベンチマークを行ってみた。64ビット版Windows 8上にSATA/300で接続したHDDを使用し、1GバイトのVHD/VHDX形式ファイルを作成。ひよひよ氏の「CrystalDiskMark」で100Mバイトのファイルに対するアクセススピードを検証した。なお、仮想HDDはいずれも1Gバイトの固定容量で作成している。結果はファイルサイズの小ささから誤差の範囲内にとどまったが、全体的にはVHDX形式の方が優れているようだ(図03)
今後も仮想化技術は需要に応じて進歩し、コンピューターを取り巻く環境を大きく変化させていくだろう。一歩一歩進むさまざまな仮想化技術が、どのような利便性を我々に与えてくれるのだろうか。今後も楽しみだ。
阿久津良和(Cactus)