仮想マシンを自由自在に管理できるXenServerのスナップショット機能を活用する 5ページ

VMwareやVirtualPCの仮想マシンを変換する

 仮想化システムはXenServer以外にも多くがリリースされているが、その中でも比較的メジャーなものがVMwareとVirtualPCであろう。両者ともに手軽に利用できるデスクトップ向け仮想化環境が用意されているため、テスト環境として利用している開発者も少なくない。XenServerではこれらのシステムで作成された仮想マシンをインポートするためのツール「XenConvert」が用意されている。XenConvertはWindows環境で動作するGUIツールで、VMwareやVirtualPC向けの仮想マシンをXenServerに簡単にインポートできる。

 また、XenConvertには実マシン上で稼働しているWindows環境をディスクイメージに変換したり、XenServerにインポートする機能も備えている。これは「Physical to Virtual Conversion」(P2V)と呼ばれており、これにより稼働中のWindows環境をXenServerに移動して動かすことが可能となる。

 XenConvertはCitrixのダウンロードサイトからダウンロードできる。2011年1月末時点での最新版は2.3で日本語化もされているのだが、筆者の環境では日本語UIで起動すると原因不明のエラーが発生したほか、インポートに失敗するという問題もあるようだ(この件はCitrixのサポートフォーラムでも議論されている)。そのため、以下では1つ前のバージョンである2.2.1を使用している。こちらはCitrixのダウンロードサイトからは直接ダウンロードできないため、使用する際はサポートフォーラムを参照してダウンロードしてほしい。

XenConvertでVMware用仮想マシンをXenServerにインポートする

 XenConvertはVMwareで用いられているVMDK形式のディスクイメージやVirtualPC、Virtual Serverなどで用いられているVHD形式、仮想化システム間で仮想マシンのインポート/エクスポートするための標準形式であるOpen Virtualization Format(OVF)などをXenServerにインポートすることが可能だ。ここではまずVMware用の仮想ディスクをインポートする例を紹介しよう。なお、それ以外の仮想ディスクイメージや仮想マシンをインポートする場合も、作業手順はほぼ同様となる。

 XenConvertではウィザード形式で各種パラメータ等を指定していく。XenConvertを起動するとまず変換元と変換先を指定する画面が表示されるので、それぞれ目的のものを選択して「次へ」をクリックする。VMware用の仮想ディスクイメージをXenServerにインポートする場合は変換元として「VMware仮想ハードディスク(VMDK)」を、変換先には「XenServer」を指定する(図24)。

図24 変換元として「VMware仮想ハードディスク(VMDK)」を、変換先には「XenServer」を指定する
図24 変換元として「VMware仮想ハードディスク(VMDK)」を、変換先には「XenServer」を指定する

 次に、変換元の仮想ディスクイメージを選択する。VMwareの場合、拡張子「.vmdk」のファイルがディスクイメージファイルとなる(図25)。VMwareは分割されたディスクイメージをサポートしており、その場合ディスクイメージは複数のファイルから構成されるが、その中で連番の付いていないファイルを指定する。

図25 対象とする仮想ディスクイメージファイルを選択する
図25 対象とする仮想ディスクイメージファイルを選択する

 続いてインポート先となるXenServerのホスト名やユーザー名、パスワードと、変換作業に使用するワークスペース(作業ディレクトリ)を指定する(図26)。XenConvertはここで指定した作業ディレクトリに中間ファイルを作成するため、十分な空き容量のあるディレクトリを指定しておく。

図26 インポート先となるXenServerの情報と作業ディレクトリを指定する
図26 インポート先となるXenServerの情報と作業ディレクトリを指定する

 最後に、作成される仮想マシンの名称を入力する(図27)。

図27 作成される仮想マシンの名前を指定する
図27 作成される仮想マシンの名前を指定する

 以上で設定は完了となる。確認画面が表示され、「変換」をクリックすると仮想ディスクイメージの変換と転送が開始される(図28)。

図28 最後に確認画面が表示される。ここで「変換」をクリックすると作業が開始され、進行状況がプログレスバーで表示される
図28 最後に確認画面が表示される。ここで「変換」をクリックすると作業が開始され、進行状況がプログレスバーで表示される

 なお、XenServerとVMwareでは異なる仮想化方式が用いられているため、VMware上で動作していた仮想マシンをXenServerにインポートした場合は別途起動オプションやネットワーク関連設定、デバイスファイル設定などの変更が必要となる場合がある。たとえばDebian GNU/Linux 5.0(Lenny)をインポートした場合、下記の変更が必要であった。

  • Linuxカーネルのブートオプションを変更
  • fstabの修正
  • IPアドレスなどネットワーク設定の変更

 まず、VMwareでは仮想ディスクは「/dev/hda*」というデバイスファイルに対応していたが、XenServerの場合「/dev/sda*」というデバイスファイルに対応する。そのため、Linuxカーネルのブートオプションでルートファイルシステムを指定する「root=」オプション部分の「hda」という表記を、「sda」に変更する必要がある。

 また、同様の理由でLinuxカーネルのロード後、ファイルシステムのマウントが行えない状態となる。この場合復旧用のシステムが立ち上がるので、そこで下記のようにルートファイルシステムをマウントし、fstabファイルを書き換えて再起動を行えば良い。

# mount -t ext3 /dev/hda1 /mnt/   # ルートファイルシステムを/mnt/にマウントする
# vi /mnt/etc/fstab
 
 (fstabファイル中の「hda」表記を「sda」表記に変更する
 
# vi /mnt/boot/grub/menu.lst
 
 (ブートローダの設定ファイル中の「hda」表記を「sda」表記に変更する
 
# umount /mnt
# reboot

実マシンで動作しているWindows環境をXenServerにインポートする

 XenConvertでは先にも述べたとおり、仮想ディスクイメージだけでなく、実マシンで動作しているWindows環境を仮想ディスクイメージに変換してXenServerに転送する機能も備えている。続いてはこちらの機能を使って、Windows XP環境をXenServerに転送する例を紹介しよう。

 まず、変換したいWindows環境上でXenConvertを起動し、変換元として「このマシン」を指定する(図29)。ここでは変換先としてXenServerを指定している。

図29 変換元として「このマシン」を選択する。括弧内にはマシン名が表示される
図29 変換元として「このマシン」を選択する。括弧内にはマシン名が表示される

 次に、変換対象とするドライブを選択する(図30)。ここでは空き容量を圧縮して最終的に作成される仮想ディスクのサイズを減らすことも可能だ。

図30 変換対象とするドライブを選択する
図30 変換対象とするドライブを選択する

 あとは仮想ディスクイメージからの変換の場合と同じく、インポート先となるXenServerのホスト名やユーザー名、パスワード、作業ディレクトリ、仮想マシン名を指定し、変換作業を実行するだけだ(図31~33)。

図31 インポート先となるXenServerの情報と作業ディレクトリを指定する
図31 インポート先となるXenServerの情報と作業ディレクトリを指定する
図32 作成される仮想マシンの名前を指定する
図32 作成される仮想マシンの名前を指定する
図33 最後に確認画面が表示される。ここで「変換」をクリックすると作業が開始され、進行状況がプログレスバーで表示される
図33 最後に確認画面が表示される。ここで「変換」をクリックすると作業が開始され、進行状況がプログレスバーで表示される

 転送された仮想マシンをXenServerで起動すると、各種デバイスドライバのインストール等が行われ、場合によっては再起動が行われる。また、場合によってはアクティベーションも求められるので、適切にこれらの作業を行おう。また、XenServer用のデバイスドライバであるXenServerToolsのインストールも行っておこう。

コラム Linux環境のP2Vを行うには

 上記で説明しているとおり、Windows環境のP2VについてはXenConvertで非常に容易に行えるが、XenConvertはWindows版のみがリリースされており、Linux環境では動作しない。また、以前のXenServerではインストールディスクにLinux向けのP2Vツールが同梱されていたのだが、XenServer 5.6以降ではこの機能は削除されており、原則としてLinux環境のP2Vはサポートされていない。そのため、Linux上のVMwareやそのほかの仮想化システム上で動作している仮想マシンをXenConvertにインポートする場合は、一度Windows上にその仮想マシンをエクスポートした上でXenConvertを使用してXenServerにインポートを行う必要がある。

 また、XenのコミュニティによりLinux向けの仮想マシンマイグレーションツール「XCP Migaration Utility – XVA」も開発されている。こちらはXen環境用の仮想マシンエクスポートツールであるが、P2Vにも対応しているとのこと。詳細についてはCitrixのサポートフォーラムにて説明されているので、興味のある方はそちらを参照してほしい。

XenServerでは柔軟な仮想マシン管理が可能、ただし仮想マシンの転送には注意

 XenServerでは、XenCenterを利用することで複雑なコマンドラインなどを使用せず、手軽に仮想マシンの管理が行える、という点が大きなメリットとなる。また、VMwareなどほかの仮想化システムからの仮想マシンの移動も容易だ。ただし、Linux環境の移行については移行後の設定変更にやや専門的な知識が必要となる場合もある。また、XenServerでは仮想マシンから実マシン環境への変換(Virtual To Physical Conversion、V2P)についてはサポートされない。そのため、V2Pを行いたい場合はPlateSpinなどのサードパーティ製品が必要だ。仮想マシンの転送には時間がかかることもあり、仮想マシンの移行については十分に考慮して作業を計画したほうが良いだろう。