Windows 8/Server 2012に搭載されているHyper-Vでは、新たにVHDX形式と呼ばれる仮想ハードディスク・フォーマットが導入されている。Windows Server 2012のHyper-Vでは、これまでのVHD形式も利用可能だが、VHDX形式にすると耐障害性が向上するなどのメリットもある。そこで、作成済みのVHD形式の仮想ハードディスクをVHDX形式に変換する方法を紹介する。
対象OS:Windows 8 / Windows Server 2012
Windows 8/Server 2012に搭載されているHyper-V(一般に「Hyper-V 3.0」と呼ばれているが、内部的なファイルのバージョン番号はまだ2.0のままである。本稿では、一般的に呼ばれている「Hyper-V 3.0」と記す)では、新たに「VHDX」と呼ばれる仮想ハードディスク・フォーマットが導入されている。
VHDXでは、仮想ハードディスク容量が最大64Tbytes(VHDでは最大2Tbytes)に拡大されたり、4Kbytesの論理セクターをサポートし、4Kbytesセクター用に設計されたアプリケーション使用時のパフォーマンスが向上したりするなどの拡張が行われている。またメタデータに更新情報を記録することで、電源障害などによって発生するファイルの障害からの保護を提供するなど、耐障害性の向上などの機能強化が図られている(Hyper-V 3.0ならびにVHDXについては「Windows Server 2012クラウドジェネレーション:第5回 サーバ版Hyper-Vの概要」「Windows 8レボリューション:第11回 クライアントHyper-V」参照のこと)。
Hyper-V 3.0では、VHD形式の仮想ハードディスクの利用は可能だが、VHDX形式を利用することで上述のように耐障害性を向上できるなどのメリットがある。すでに以前のHyper-Vなどで作成したVHD形式がある場合、VHDX形式に変換して利用することも可能だ。本TIPSでは、VHD形式からVHDX形式に変換する方法を紹介しよう。
VHD形式からVHDX形式に変換するには、Hyper-Vマネージャを利用する方法と、PowerShellを利用する方法がある。どちらの場合も、[コントロール パネル]−[プログラムと機能]の「Windowsの機能の有効化または無効化」(Windows Server 2012の場合は「役割と機能の追加」)で、事前にHyper-Vとその管理ツール機能をインストールしておく必要がある。この際、Windows PowerShell用Hyper-Vモジュールのインストールも忘れないこと。どちらの場合も、変換可能なのはHyper-Vプラットフォームが実行されているPC上にあるVHDファイルのみが対象となる点に注意していただきたい(ネットワーク上のHyper-Vプラットフォームに接続し、プラットフォームが実行されているPC上のVHDファイルを変換することは可能)。
Hyper-Vマネージャを起動し、[操作]ペインの「サーバーに接続」をクリックし、Hyper-Vサーバ(通常はローカルPC)に接続する。[操作]ペインに操作メニューが表示されるので、ここから[ディスクの編集]をクリックする。
[仮想ハードディスクの編集ウィザード]が開くので、変換したいVHDファイルを選択、[操作の選択]画面で「変換」を、次の[ディスクフォーマットの選択]画面で「VHDX」を選択するなどしてウィザードを進めると、VHDX形式への変換(VHD形式に変換したファイルの作成)が開始される。
[A]
この後、作成されるVHDXファイルの保存場所とファイル名を指定して、[次へ]ボタンをクリックすると、指定した作業内容の確認画面(要約)が表示される。確認後、[次へ]ボタンをクリックすると変換作業が開始される。なお変換処理の間は仮想ディスクが利用できなくなること、変換前のVHDファイルも保存された状態となるので、ディスクの空き容量が少ないと変換中にエラーとなることに注意したい。
複数のVHDファイルをVHDXファイルに変換するのであれば、PowerShellのコマンドレットを利用するとよい。なおPowerShellで変換を行うには、事前にWindows PowerShell用Hyper-Vモジュールをインストールしておく必要がある。
[スタート]画面の右クリックで[すべてのアプリ]を実行し、「Windowsシステム ツール」の「Windows PowerShell」を実行する(Windows Server 2012の場合はタスク・バーのPowerShellアイコンをクリックすれば起動できる)。デスクトップ画面に「Windows PowerShell」ウィンドウが開くので、ここに以下のコマンドを実行すればよい。
Convert-VHD -Path <変換前ファイル名>.vhd -DestinationPath <変換後ファイル名>.vhdx
「-DeleteSource」オプションを付けると、VHDXファイルへの変換後、自動的にVHDファイルが削除される。またPowerShellコマンドを使えば、ブロック・サイズを1M〜256Mbytesの間で変更できる(デフォルトでは動的ディスクが32Mbytes、差分ディスクが2Mbytes)。そのほかのオプションについては、PowerShell上で「Get-Help Convert-VHD」を実行して確認してほしい。
変換中、Hyper-Vプラットフォームを実行するPCのディスクI/Oは、ほぼ100%の負荷となる。そのため、ほかのタスクの実行に影響が出ることがあるので、まとめて変換作業を行う際などには実行時間などに注意した方がよいだろう。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.