Windowsで仮想ハードディスクのVHDとVHDXを変換するTech TIPS

Windows 8/Server 2012に搭載されているHyper-Vでは、新たにVHDX形式と呼ばれる仮想ハードディスク・フォーマットが導入されている。Windows Server 2012のHyper-Vでは、これまでのVHD形式も利用可能だが、VHDX形式にすると耐障害性が向上するなどのメリットもある。そこで、作成済みのVHD形式の仮想ハードディスクをVHDX形式に変換する方法を紹介する。

» 2013年06月14日 11時29分 公開
[小林章彦デジタルアドバンテージ]
Tech TIPS
Windows Server Insider


「Tech TIPS」のインデックス

連載目次

対象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マネージャを起動し、[操作]ペインの「サーバーに接続」をクリックし、Hyper-Vサーバ(通常はローカルPC)に接続する。[操作]ペインに操作メニューが表示されるので、ここから[ディスクの編集]をクリックする。

Hyper-Vマネージャの画面 Hyper-Vマネージャの画面
Hyper-Vマネージャを起動し、Hyper-Vサーバに接続してから、[操作]ペインの[ディスクの編集]をクリックする。
  (1)[ディスクの編集]をクリックする。 →[A]

 [仮想ハードディスクの編集ウィザード]が開くので、変換したいVHDファイルを選択、[操作の選択]画面で「変換」を、次の[ディスクフォーマットの選択]画面で「VHDX」を選択するなどしてウィザードを進めると、VHDX形式への変換(VHD形式に変換したファイルの作成)が開始される。

[A]

[仮想ハードディスクの編集ウィザード]の[ディスクの場所]画面 [仮想ハードディスクの編集ウィザード]の[ディスクの場所]画面
VHDファイルをここに指定する。指定できるVHDファイルは、Hyper-Vプラットフォームが実行されているPC上にあるもの。
  (1)変換したいVHDファイルを指定する。→[B]

[B]

[仮想ハードディスクの編集ウィザード]の[操作の選択]画面 [仮想ハードディスクの編集ウィザード]の[操作の選択]画面
VHD形式からVHDX形式に変換するには、ここで「変換」を選択する。
  (1)「変換」を選択する。→[C]

[C]

[仮想ハードディスクの編集ウィザード]の[ディスク フォーマットの選択]画面 [仮想ハードディスクの編集ウィザード]の[ディスク フォーマットの選択]画面
VHD形式からVHD形式に変換するには、ここで「VHDX」を選択する。
  (1)「VHDX」を選択する。

 この後、作成されるVHDXファイルの保存場所とファイル名を指定して、[次へ]ボタンをクリックすると、指定した作業内容の確認画面(要約)が表示される。確認後、[次へ]ボタンをクリックすると変換作業が開始される。なお変換処理の間は仮想ディスクが利用できなくなること、変換前のVHDファイルも保存された状態となるので、ディスクの空き容量が少ないと変換中にエラーとなることに注意したい。

[仮想ハードディスクの編集ウィザード]の変換中の画面 [仮想ハードディスクの編集ウィザード]の変換中の画面
VHDXファイルへの変換処理が開始されると、この画面のようにプログレス・バーが表示される。変換処理の間は仮想ディスクが利用できなくなるので注意したい。

●PowerShellコマンドレットを利用する方法

 複数のVHDファイルをVHDXファイルに変換するのであれば、PowerShellのコマンドレットを利用するとよい。なおPowerShellで変換を行うには、事前にWindows PowerShell用Hyper-Vモジュールをインストールしておく必要がある。

[スタート]画面の右クリックで[すべてのアプリ]を実行し、「Windowsシステム ツール」の「Windows PowerShell」を実行する(Windows Server 2012の場合はタスク・バーのPowerShellアイコンをクリックすれば起動できる)。デスクトップ画面に「Windows PowerShell」ウィンドウが開くので、ここに以下のコマンドを実行すればよい。

Convert-VHD -Path <変換前ファイル名>.vhd -DestinationPath <変換後ファイル名>.vhdx


PowerShellコマンドによるVHD形式からVHDX形式への変換処理中の画面 PowerShellコマンドによるVHD形式からVHDX形式への変換処理中の画面
Windows PowerShell用Hyper-Vモジュールをインストールしておけば、PowerShellコマンドでVHD形式からVHDX形式に変換できる。複数のVHDファイルを変換したいような場合は、PowerShellコマンドを利用すると手早く行える。
  (1)VHD形式からVHDX形式に変換するPowerShellコマンド。
  (2)変換中は、画面のように処理状況がパーセント表示で示される。

 「-DeleteSource」オプションを付けると、VHDXファイルへの変換後、自動的にVHDファイルが削除される。またPowerShellコマンドを使えば、ブロック・サイズを1M〜256Mbytesの間で変更できる(デフォルトでは動的ディスクが32Mbytes、差分ディスクが2Mbytes)。そのほかのオプションについては、PowerShell上で「Get-Help Convert-VHD」を実行して確認してほしい。

 変換中、Hyper-Vプラットフォームを実行するPCのディスクI/Oは、ほぼ100%の負荷となる。そのため、ほかのタスクの実行に影響が出ることがあるので、まとめて変換作業を行う際などには実行時間などに注意した方がよいだろう。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。