Hyper-V 2.0のエクスポート機能が地味に進化している件

実はHyper-V 2.0では、スナップショットを選んで「過去のある時点での仮想マシン」をエクスポートできるようになっているんです。 意外と知られていないようなので、今日はこれを書いてみることにします。

昨日のことですが、
「SQL Server 2008のSP1 + CU5のスリップストリーム イメージ作成方法を検証する」
という作業をしてました。検証用にWindows Server 2008 SP2のVMにスナップショットをバシバシつくり、 過去と未来を行ったり来たりしながら作業をしていたわけです。(下図参照)

スナップショットがたくさん

ソフトウェアのインストールやサービスパックの適用など、 「元に戻すの手間かかる系」 の作業を検証するときはスナップショットが最高に役に立ちますね。おかげで検証作業は無事に完了しました。

※ はい、そうなんです。Hyper-Vで遊んでいるだけでは生きていけないので、いろいろやるんです。

 

ところでこの時、仮想マシンを構成するファイル群はいったいどんな感じになっていると思いますか。

スナップショットを含むVMのファイル構成 “Snapshots”フォルダの下に、スナップショットの個数分の仮想マシン構成ファイル(.xml)、状態保存ファイル(.vsv)、メモリ保存ファイル(.bin)の組が存在し、また差分ディスク(.avhd)も同じだけ存在します。なかなかどうして複雑です。

サイズはどうでしょうか。

ゲストOS上からみると、使用領域は18.4GBです。

ゲストOSから見たディスク使用領域

しかし、複数のスナップショットを含めた実際のサイズ (ホスト側のディスク上で占めている領域) は30GBもあります。

実際のVMのサイズ

Hyper-V 1.0の時は、このような仮想マシンを移動するときは、仮想マシン全体をエクスポート・インポートする他ありませんでした。

「作業開始前の初期状態だけ、別のところで再利用したいんだけど」

というような場合は、まず仮想マシン全体をエクスポートして、それを目的地へコピーし、インポートしてから、不要なスナップショットを削除するといった作業を行う必要がありました。

 そこでHyper-V 2.0ですよ!

自分が欲しい状態のスナップショットを指定して、そこだけをエクスポートできるようになったのです。試しにやってみましょう。スナップショットを指定してエクスポート

C:\Hyper-V\exported の下にエクスポートしてみます。

エクスポート先の指定

できました!サイズは11.9GB。スナップショット一つだけを抽出したので、ちゃんと小さくなってますね。

スナップショットを抽出してエクスポートした結果

 

ちなみにこのスナップショット、ゲストOSから見ると使用領域は11.7GBです。VM全体のサイズとほぼ等しいですね。image

 

さて、これで初期状態のスナップショットを元にしたきれいな仮想マシンが手に入ったので、また仕事に戻ります。今度はSCVMM 2008 R2の環境を作りますよ。。。

image 

以上「スナップショットを指定したエクスポート」でした。

 

__END__