Hyper-V Beta の Snapshot をマージするには


Windows Server 2008 RTM 日本語版のダウンロード開始が目前にせまった今日この頃ですが、いかがお過ごしでしょうか。


既に英語版をダウンロードしてお使いの方も多いと思いますが、そんな方々は、きっと Hyper-V もご堪能かと思われます。


つい先日、IT Pro 道場 運用管理基盤構築編 の週末開催 が終わり、ひとまずこのシリーズも終息したわけですが、道場で使用したデモ環境はすべて Hyper-V上で動作しておりました。Hyper-V には Snapshot という便利な機能が実装されており、これがでも環境を構築するのに実に役立ったわけで、もう Hyper-V 無しではでも環境を構築する気がおきないほど依存していました。


そして本日、Snapshot だらけになった環境を、1つの VHD に統合しようとしたところ、サーバーマネージャのHyper-V管理コンソールに「スナップショットをマージする」といったコマンドが見当たらないことに気付きました。


どうしたものかと情報をあさったところ、Hyper-V Beta では、少し面倒な手順でマージを行う必要があるとのこと。もしかすると、同じ理由で困っている方もいらっしゃるかもしれませんので、以下に手順のまとめておきたいと思います。



<注意>




    • この手順は、Hyper-V Beta 上での手順であり、正式にマイクロソフトによりサポートされた手順でないことに留意してください

    • 以下の手順を実施するまえに、必ずバックアップをとってください。くれぐれもお願いいたします

    • マージが完全に完了するまでは、VHDファイルを起動することができませんので、こちらも合わせて留意してください

    • 必ず、以下の手順を全て確認後、マージ処理を開始してください

まずは、手順の概要を理解してください。以下の環境があったとします。


[ おおもとのVHDファイル ] ← インストール直後の環境
└[Snapshot 1]
 └ [Snapshot 2]
   └ [Snapshot 3]  ← 最新のスナップショット(現在はこの環境で動いている)


上記の環境であることを踏まえ、マージを行うには、以下の手順を実施します。




  1. [Snapshot 3] を [Snapshot 2] にマージ


  2. [Snapshot 2] を [Snapshot 1] にマージ


  3. [Snapshot 1] を [おおもとのVHDファイル] にマージ

すなわち、起点となるスナップショットの数だけマージを行う必要があるわけです。


それでは、実際の手順を確認しましょう。




  1. 構成ファイルから現在のスナップショットファイルを確認する


  2. Virtual Machine を作成時に指定したフォルダ配下の、Virtual Machineフォルダを開く。


    ここに、XMLファイルが保存されているので、これをメモ帳等で開く。




  3. 構成ファイル(XML)から現在のスナップショットファイルのファイル名を見つける


  4. 構成ファイルを開くと、以下の記述が見つかる。<pathname>タグに記載されているのが、現在使用されているスナップショットファイルだ。Virtual Machine にマウントされているVHDファイルが1つの場合には、pathname も1つだけだが、以下の例では、1つの Virtual Machine に3つの VHD ファイルがマウントされており、それぞれのスナップショットが記載されていることがわかる。


    ちなみに、以下に記載されているとおり、スナップショットファイルの拡張子は、avhd となる。



































    <pathname type="string">~(略)~\DJDPM01_A97EBB85-2F82-40A4-AA3D-46AF2579A92C.avhd</pathname>
    <type type="string">VHD</type>
    <pathname type="string">~(略)~\BackupStrage_49F5E94F-E9A8-43B5-AFEA-0ED657653C98.avhd</pathname>
    <type type="string">VHD</type>
    <pathname type="string">~(略)~\WSBackup_AE3A4CE0-3F3D-4D0C-B189-802AE6A34FEF.avhd</pathname>
    <type type="string">VHD</type>



  5. avhd ファイルの拡張子を vhd に変更する


  6. 2. で確認したファイルの拡張子を vhd に変更する。


    ここでは、


    DJDPM01_A97EBB85-2F82-40A4-AA3D-46AF2579A92C.avhd



    DJDPM01_A97EBB85-2F82-40A4-AA3D-46AF2579A92C.vhd


    に変更したものとする。


    ちなみに、スナップショットファイル(avhd)は、以下のに示すように、Snapshotフォルダ配下の「構成ファイルのファイル名と同じ名前のフォルダ」にまとめて格納されている。




  7. Edit Disk ウィザードを起動する


  8. サーバーマネージャの [役割] - [Hyper-V] - [Microsoft Hyper-V Servers] - [<Server Name>] を右クリックして [Edit Disk] をクリックする。




  9. スナップショットファイルを指定する


  10. 「Loacte Virtual Hard Disk」画面で、拡張子を変更したスナップショットファイル(DJDPM01_A97EBB85-2F82-40A4-AA3D-46AF2579A92C.vhd)を指定して、[Next] をクリックする。




  11. Merge を選択する


  12. 「Choose Action」画面で、Merge を選択し、[Next] をクリックする。





  13. To the parent virtual hard disk を選択する


  14. 「Merge Changes from Differencing Disk」画面で、[To the parent virtual hard disk」を選択して、[Next] をクリックする。





  15. Parent Virthal Hard Disk のファイル名を確認する


  16. 「Completing the Edit Virtual Hard Disk Wizard」画面が表示されるので、これからマージしようとしているマージ先の親ファイルを必ず確認する。


    ここでは、以下の通り、DJDPM01_23E2F300-0C-~(略)~.avhd であることがわかる。


    このファイル名が、「おおもとのVHDファイル」(拡張子 vhd)となったら、これが最後のマージだ。


    マージ先の親ファイルをメモしたら、[Finish] をクリックしてマージを開始する。





  17. マージ完了を待つ


  18. マージ完了までに要する時間は、スナップショットファイルの容量にもよるが、10分~30分程度であろうと思われる。 




  19. マージ後の親ファイルを確認する。


  20. マージが完了したら、3. で開いたフォルダを参照し、親ファイルのタイムスタンプが最新(現在)になっていることを確認する。


    この時点で、マージ先の親ファイルが最新のスナップショットとなった。


    以降、このファイル(ここではDJDPM01_23E2F300-0C-~(略)~.avhd )の拡張子を vhd に変更し、3. ~ 9. を繰り返す。


    8. にも書いたとおり、マージ先の親ファイルが「おおもとのVHDファイル」となったら、最後のマージとなる。



  21. 新しい Virtual Machine を作成する



「おおもとのVHDファイル」へのスナップショットのマージが完了後、既存の Virtual Machine を起動しようとしても起動することはできない。


いったん、既存の Virtual Machine を削除し、新しい Virtual Machine を作成する必要がある。


Virtual Machine 作成ウィザードでは、VHDファイルの指定画面において、マージしたVHDファイルを指定ればよい。



以上で手順は完了です。


一度マージをはじめたら後戻りはできません。くれぐれも、既存環境を壊さないよう、注意して作業を行ってください。



 

Comments (0)

Skip to main content