Hyper-Vの仮想マシンをインポートする(Windows 8/Server 2012編)Tech TIPS

従来、仮想マシンの設定や仮想ディスクファイルを複製したり、別のシステムに移行させたりするには、仮想マシンをいったんエクスポートする必要があった。ところがWindows 8/Server 2012のHyper-Vでは、エクスポートなしに仮想マシンを直接インポートできる。その方法は?

» 2013年09月06日 17時20分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows Server 2008 R2 / Windows Server 2012



解説

 TIPS「Hyper-Vの仮想マシンをエクスポート/インポートする」「Hyper-Vの仮想マシンやスナップショットをエクスポート/インポートする(Hyper-V 2.0編)」では、Windows Server 2008/Windows Server 2008 R2のHyper-Vで、仮想マシンの設定をエクスポート/インポートする方法を紹介した。この機能を使うと、既に作成した仮想マシンの設定や関連するデータ(仮想ディスクファイルやスナップショット情報など)をまとめてほかのHyper-Vサーバへ移行させたり、仮想マシンの複製を行ったりできる。

 Windows 8やWindows Server 2012のHyper-Vではこのインポート機能が強化され、「エクスポートしていない仮想マシンでも直接インポートできる」ようになった。これにより、仮想マシン環境の移行などが素早く行えるようになる。

 例えば仮想マシンの構成情報(XMLファイル)や仮想ディスクファイル(VHD/VHDXファイル)を独立したハードディスクに保存していたとすると、そのディスクを新しいWindows Server 2012システムに接続してインポートすれば、すぐにHyper-Vマネージャに仮想マシンを登録できる。またWindows OSをインストールしたボリュームが障害を起こしたり、新しいWindows OSを(アップグレードではなく)新規インストールした場合でも、仮想マシンの構成ファイルや仮想ディスクファイルさえ残っていれば、容易に元の仮想マシン環境を復元できる。

 以前のHyper-Vではエクスポートしていない仮想マシンはインポートできなかったため、障害などが発生してOSを新規インストールした場合は、まず空の仮想マシンを作成して、残っている仮想ディスクを1つずつアタッチし直したり、設定(CPU数やメモリサイズ、リソース割り当てなど)を見直したりする作業が必要だった。Windows 8やWindows Server 2012のHyper-Vではこのような場合、まずインポートウィザードを起動して既存の仮想マシンの設定情報から復元できないかどうか試してみるとよい。本TIPSでは、Hyper-Vマネージャを使って仮想マシンをインポートする方法を紹介する。PowerShellを使ってインポートする方法については今後別TIPSで取り上げる。

操作方法

●エクスポートしてからインポートする手順

 Windows 8やWindows Server 2012のHyper-Vにおいて、仮想マシンをいったんエクスポートしてからインポートする方法は従来のServer OSに付属しているHyper-Vの場合と同じである。具体的な操作方法については、TIPS「Hyper-Vの仮想マシンやスナップショットをエクスポート/インポートする(Hyper-V 2.0編)」を参照していただきたいが、Hyper-Vマネージャでエクスポートしたい仮想マシンやスナップショットを選んで右クリックし、ポップアップメニューから[エクスポート]を選べばよい。仮想マシン全体をエクスポートするだけでなく、特定のスナップショットだけを選んでエクスポートすることもできる。

仮想マシンのエクスポート 仮想マシンのエクスポート
仮想マシンの設定や仮想ディスクファイルなどをエクスポートするには、その対象の仮想マシンやスナップショットを右クリックしてエクスポートする。
  (1)これは仮想マシン全体の設定をエクスポートしようとしているところ。仮想マシン名を右クリックする。
  (2)いずれかのスナップショットを右クリックして、特定のスナップショットだけをエクスポートすることも可能。
  (3)これを選択してエクスポートウィザードを起動する。

 エクスポートした仮想マシンのデータ(ファイル)は、[仮想マシンのインポート]ウィザードを起動してインポートする。具体的なウィザード画面の操作例は後述するが、ウィザードの最初の画面でエクスポートしたパス名(「Virtual Machines」フォルダを含むパス)を指定した後、インポートの種類を選択する(次の画面参照)だけである。

インポートの種類の選択 インポートの種類の選択
どのような形態でインポートするかを選択する。
  (1)エクスポートされたフォルダ構成をそのまま使ってインポートする。一番速くインポートが完了する。
  (2)Hyper-Vの標準的なフォルダ構成に沿うようにインポートする。
  (3)エクスポートした仮想マシンの複製を作成する。繰り返すと、同じ構成の仮想マシンを複数作成できる。

 3つの選択肢のうち、上の2つはエクスポートした仮想マシンのIDをそのまま使うので、同じHyper-Vサーバに上にインポートすることはできない(元の仮想マシンを削除すればインポートできる)。一番下は、元の仮想マシンのコピーを作成するためのものである。これを選択すると、仮想マシンの構成ファイルやスナップショット、仮想ディスクファイルなどをどこに保存するかを聞いてくるので、適当な場所を指定すればよい。

 正しくインポートが完了すれば、Hyper-Vマネージャの画面に仮想マシンが表示されるので、設定などを確認後、ほかの仮想マシンと同様に操作する。

●新機能:エクスポートしていない仮想マシンを直接インポートする手順

 次は、ウィザードを使って仮想マシンを直接インポートする手順を見ていく。インポートする元となる仮想環境(構成ファイルや仮想ディスクファイルなど)は、コピーやバックアップなどの手段で既にローカルのディスク上に用意されているものとする。

 エクスポートしていない仮想マシンをインポートするには、まず操作ペインにある[仮想マシンのインポート]というリンクをクリックして、ウィザードを起動する。

 ウィザードの最初の画面では、インポートしたい仮想マシンの構成情報(XMLファイル)が保存されているフォルダか(通常は「Virtual Machines」というフォルダ)、その1つ上のフォルダを指定する。以下の例では、Windows Server 2008 R2上のHyper-Vで管理していた「Win XP SP3」という仮想マシンをWindows Server 2012のHyper-V上へ直接インポートさせている。ただし元の環境とは保存先のドライブ名が異なっているので、元の構成ファイルの情報をそのまま使うことはできないが、ウィザードの途中でパスを手動で指定することにより、パス名の修正が行われる。

フォルダの検索 フォルダの検索
最初に、エクスポートした仮想マシンのファイルが置かれている場所(XMLファイルのある場所)を指定する。
  (1)仮想マシンのファイルのある場所を指定する。この例では、「\xpvm1」というフォルダを使っているが、インポートする場合はその中のフォルダ(もしくは、もう1つ下の「Virtual Machines」フォルダ)を指定する。

 次の画面ではインポートする仮想マシンを選択する。ここでは1つしか表示されていないが、同じ場所に構成ファイルが複数ある場合には、適切なものを選ぶ。

仮想マシンの選択 仮想マシンの選択
複数の構成ファイルがある場合は複数の仮想マシンが表示されるので、インポートしたいものを選択する。
  (1)これはHyper-Vマネージャで仮想マシンの「名前」として表示されているもの。インポートするとこの名前で登録される。

 その次の画面では、インポート方法を選択する。

インポート方法の選択 インポート方法の選択
仮想マシンをどのようにインポートするかを選択する。
  (1)インポート元の構成ファイルや仮想ディスクファイルなどを、場所を変えずにそのまま使用する。仮想マシンのID(内部的な識別番号)も元のものを使用する。同じHyper-Vサーバ上にこの方法で2回以上インポートしようとしても、IDが衝突するのでエラーとなる。
  (2)IDはそのままにして、ファイルを(Hyper-Vマネージャで設定した)標準的な場所へコピーする。2回以上はインポートできない。
  (3)IDは変更し、ファイルは(2)と同じくコピーする。この方法では、同じ仮想マシンを複数回インポートできる。

 次の画面では仮想マシンの保存先を指定する。

保存先の指定 保存先の指定
インポート(コピー)する仮想マシンの構成ファイルなどをどこに保存するかを指定する。デフォルトでは、Hyper-Vマネージャで設定した標準的な場所に保存される。
  (1)保存先を変更したい場合はこれをオンにして、それぞれの場所を指定する。デフォルトではオフ。

 次の画面では、仮想ディスクの場所(元のファイルが置かれている場所)を指定する。

仮想ディスクの場所の指定 仮想ディスクの場所の指定
仮想マシンの仮想ディスクが保存されている場所を指定する。
  (1)仮想ディスクの保存場所を指定する。ただし今回の例では、後で絶対パスを手動で指定しているので、このパス情報は使われていないようだ。

 次の画面では、これから仮想ディスクを保存するための場所を指定する。

保存場所の指定 保存場所の指定
仮想ディスクをどこに保存するかを指定する。
  (1)ここでは、ほかの仮想ディスクファイルと同じ場所に保存するように指定している。

 インポートする仮想マシンに実行中の「状態が保存」されている場合(仮想マシンが一時的にサスペンドしているような状態)、OSやHyper-V、CPU環境などに互換性がないとインポートできない(基本的には、エクスポートしたサーバでないと「状態」付きのままインポートできない)。その場合は「状態」を削除する必要がある。ただし状態を削除すると、仮想マシンの電源をいきなり切ったのと同じになり、障害が発生する可能性がある。そこでインポートする前に仮想マシンを正常にシャットダウンさせておくべきである。

状態の削除の確認 状態の削除の確認
仮想マシンに保存された「状態」がある場合、このようなダイアログが表示される。基本的には「状態」はインポートできないので、削除する必要がある。
  (1)これをクリックして、仮想マシンに保存されている状態を削除するしかない。しかし、仮想マシンの電源をいきなり切ったのと同じになり、障害が発生する可能性がある。キャンセルしてインポートウィザードを中断し、いったん仮想マシンをシャットダウンすることが望ましい。

 構成ファイルに記録されているパスに仮想ディスクが見つからない場合、次のような画面が表示されるので、正しいパスを指定するか、仮想マシンから仮想ディスクを削除する。複数のスナップショットがある場合は、その数だけ聞いてくるので、スナップショット名やフルパス名などを参考に、それぞれフルパスを指定すること。

仮想ディスクのパスの指定 仮想ディスクのパスの指定
インポート前の環境とインポート後の環境が異なり、同じ場所に仮想ディスクファイルが見つからない場合は、このような画面が表示され、手動でファイルのパスを入力しなければならない。
  (1)仮想ディスクが見つからない場合に表示されるメッセージ。
  (2)これを選択して、正しいパスを入力する。
  (3)実際の仮想ディスクのパス名。
  (4)これを選択すると、仮想マシンから該当する仮想ディスクが削除される。
  (5)1つ目は最初の(ベースとなる)仮想ディスクのパスの指定。
  (6)2つ目は現在有効なスナップショット用のパス指定。指定するのが面倒なら、インポートする前にスナップショットも削除しておくとよい。

 指定した仮想ディスクが差分ディスクの場合、実際にインポート作業を始めてからエラーとなりインポートできないことがある。リンク先が存在しない差分ディスクが含まれている場合は、あらかじめ[ディスクの検査]ウィザードでリンク先の親ディスク情報を修正するか、[ディスクの編集]ウィザードで親ディスクと結合するなどしておく

 次の画面では仮想ネットワークスイッチを指定する。仮想ネットワークスイッチは、一見すると表記は同じでも、異なるWindows OSなら異なる内部識別番号が付いており、区別されている。同じHyper-Vサーバ上にインポートするのでない限り、仮想スイッチ名も選択し直す必要がある。

仮想スイッチの選択 仮想スイッチの選択
システムが異なると、同じ名前でも異なるネットワークインタフェースとなるので、どれを使うかを手動で選択する。
  (1)仮想ネットワークスイッチが見つからないというエラーメッセージ。
  (2)あらかじめ作成しておいたネットワークを選択する。
  (3)仮想ディスクと同様に、仮想ネットワークスイッチもスナップショットのイメージごとに指定する必要がある。こちらは一番ベースとなるイメージ用のスイッチの指定。
  (4)こちらはスナップショット用のスイッチの指定。

 以上でウィザードは終了である。ウィザードのステップ数は多いが、インポート後のパス名などが同じなら実際には必要ない項目は表示されないので、もっと簡単に終了する。最後に[完了]ボタンをクリックすると実際の構成ファイルの作成や仮想ディスクファイルのコピーなどが行われる。

ウィザードの完了 ウィザードの完了
最後に設定項目の一覧が表示され、[完了]をクリックすると実際にインポート処理が始まる。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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