機能を紹介します。
テレポート機能とは?
テレポート機能は、あるPCで稼働中のVirtualBox仮想マシンを停止することなく、他のPCに移動させる機能です。この機能は一般的には“ ライブマイグレーション” と呼ばれ、多くのサーバ仮想化ソフトに搭載されています。VMware vSphereでは「VMotion」 、Citrix XenServerでは「XenMotion」 、Hyper-V 2.0やKVMではそのまま「ライブマイグレーション」と呼ばれています。
企業においては「サーバを止める=業務を止める」ことになるため、多くのサーバは高い可用性が求められます。そこでサーバ仮想化ソフトはライブマイグレーション機能を用いて、仮想マシンの可用性を高めています。通常、ハードウェアメンテナンスや仮想化ソフトのアップデートの際には、そのホスト上で動く仮想マシンを停止してから作業する必要がありますが、ライブマイグレーション活用すれば、仮想マシンを動作させたまま他の物理マシンに退避させることで、業務を停止せずにメンテナンスやアップデートが行えます。
テレポート機能の仕組み
テレポート機能は、稼働している仮想マシンのメモリデータをTCP/IPネットワーク経由で他の物理マシンに送信します。送信完了後は、仮想マシンが移動先の物理マシン上で動作することになりますが、移動後も移動前と同じ仮想ハードディスクにアクセスする必要があるため、仮想ハードディスクはネットワークで共有します。
図1 テレポート機能の仕組み
手軽に試せるテレポート
ライブマイグレーションはサーバ仮想化においては広く使われている機能ですが、仮想化に初めて触れる人が実際に構築して試すには、少々ハードルが高い部分があります。仮想化ソフトにより詳細な要件は異なりますが、多くのケースでは以下のような点がネックになるでしょう。
CPUが同じアーキテクチャのマシンを2台以上用意する必要がある。
共有ストレージ(ファイバーチャネル、iSCSI、NFSで接続)が必要
サーバ仮想化ソフト自体の導入/管理知識が必要
一方、VirtualBox/テレポートは以下のような理由から、試すにあたってのハードルはそれほど高くありません。
VirtualBoxはOS上にアプリケーションとしてインストールするタイプ(Hosted型)の仮想化ソフトであるため、既存のOSを消す必要がない。
ホストOSの種類(Windows、Linux、Solaris 10、Mac OS X)が異なってもテレポートできる。
CPUの種類が異なっていてもテレポートできる(Intel→AMDなど) 。
共有ストレージはiSCSIやNFSに加え、SMB/CIFS(Windowsファイル共有)がサポートされるため、家庭用のNASやファイル共有を設定したWindowsマシンを使用できる。
テレポートに必要な設定が他のサーバ仮想化ソフトに比べて複雑でない
今回は2台のPCを用いて、テレポートをなるべく簡単に試す手順を解説しますので、ぜひチャレンジしてみてください。
テレポート機能を使ってみよう
今回は2台のPC(OSはWindows)と1台のファイルサーバ(NAS)で環境を作ります。ゲストOSにはOpenSolarisを使用しています。
【1】VirtualBoxの入手とインストール
VirtualBoxの入手やインストールは特に難しい点はありません。作業的にも従来のバージョンと変わっていないため、今回は説明を割愛します。ホストOSの種類に合ったものをダウンロードし、インストーラに従って導入してください。
VirtualBoxは下記のサイトから入手できます。
URL :http://dlc.sun.com/virtualbox/vboxdownload.html
【2】共有ストレージの準備
共有ストレージは、家庭用のNASやWindowsのファイル共有機能で簡単に用意できます。VirtualBoxをインストールした2台のPCの両方からアクセスできる共有フォルダを作り、読み取り・書き込みの両方が可能なアクセス権を設定してください。
【3】仮想ハードディスクの作成
テレポートを行う仮想マシンの仮想ハードディスクは、共有ストレージに配置してください。仮想ハードディスクの新規作成はVirtualBoxのGUI画面で[ファイル] →[ 仮想メディアマネージャ(V)]を起動し、[ 新規(N)]で行います。
図2 仮想メディアマネージャ
ウィザードの「仮想ディスクの場所とサイズ」の段階で、[ 場所(L)]の欄にNAS上の共有フォルダに仮想ディスクを作成するように指定してください。図3では、共有フォルダ“ \\NAS\disk1_pt1\virtualbox” に仮想ディスク“ OpenSolaris0906.vdi” を作成するように指定しています。
図3 仮想ディスクの場所とサイズ
片方のPCで仮想ディスクを作ったら、もう片方のPCでは仮想メディアマネージャの[追加(A)]で、作成済みの仮想ハードディスクを仮想メディアマネージャに登録してください。
【4】仮想マシンの作成
VirtualBoxでテレポートを行う場合には、移行元のPCと移行先のPCの両方に、同じ構成の仮想マシン を作る必要があります。「 同じ構成」というのは、仮想CPU数やメモリ容量、仮想ディスクやネットワークアダプタ設定など、すべての仮想マシン設定を指しています。異なる構成の部分があると、テレポートできない場合や、できても動作に支障をきたす場合があるので注意してください。
仮想ディスクは【3】で作成・登録したものを使います。
【5】テレポートの実行
現段階では、テレポート機能はGUIで実行できないため、コマンドラインを操作します。コマンドラインによる操作は、送信側・受信側のそれぞれで必要となります。実行の流れは以下の通りです。
① [受信側]テレポートの受信待機指示
> cd “C:\Program Files\Sun\VirtualBox”
> VBoxManage modifyvm VM名 --teleporter on
上記のコマンドは、テレポート受信側 となるWindowsホストでのコマンド実行例です。VirtualBoxの関連コマンドは、プログラムのインストール先フォルダに格納されているため、cdコマンドで移動してからVBoxManageコマンドを使用しています。
VM名はテレポートに使用する仮想マシンの名前、ポート番号は受信用ポートの指定です。--teleporterportオプションは省略可能ですが、あらかじめファイアウォールの特定のポートを開放し、このオプションで毎回同じポートを指定してテレポートを使うと、ファイアウォールの管理が楽です。
② 【受信側】受信用VMの起動。
> VBoxManage startvm VM名
テレポートを行うには、受信用のVMをあらかじめ起動する必要があります。上記は仮想マシンを起動するコマンドですが、この操作はGUIで行ってもかまいません。①で受信待ち受けを指示した仮想マシンを起動すると、下図のように受信待機状態で仮想マシンが起動します。
図4 受信待機状態の仮想マシン
③ [送信側]テレポートの実行
> cd “C:\Program Files\Sun\VirtualBox”
> VBoxManage controlvm VM名 teleport --host 送信先IPアドレス --portポート番号
上記のコマンドは、テレポートの送信側 で実行します。VM名は送信する仮想マシンの名前、送信先IPアドレスは受信側ホストOSのIPアドレス、ポート番号は①で指定したポート番号を指定してください。
テレポートを実行すると、メモリデータの転送進捗状況が送信側・受信側の双方に表示されます。テレポートが完了すると、送信側は仮想マシンのウィンドウが閉じられ、受信側ホストで仮想マシンのウィンドウが開かれます。テレポートにかかる時間はネットワーク速度、メモリサイズ、メモリの使用状況に依存します。私の試した環境ではおおむね数秒から十数秒でテレポートが完了しました。
私の環境で異なるホストOS間(Windows 7、Mac OS X)や異なるCPUベンダ間(Intel、AMD)でのテレポートを試したところ、Youtubeの動画を読み込み・再生させながらテレポートさせた場合も成功しました。組み合わせによってはテレポート後に音が出なくなる場合もありましたが、リリース直後の機能としてはそれなりに使える状態になっているようです。
まとめ
PC仮想化は1台のPC上で開発環境やテスト環境を動かすといった使い方が多く、テレポートのような可用性を向上させる機能は搭載されてきませんでした。現に、競合製品のVMware WorkstationやVMware Player、Microsoft Virtual PCには同様の機能は搭載されていません。
その一方、VirtualBoxはリモートデスクトップ機能(VRDP) 、Webベースの管理コンソール(vboxweb) 、他の仮想化ソフトウェアの仮想ハードディスク(VMwareのVMDKやHyper-VのVHD)に対応するなど、サーバ仮想化ソフトに引けを取らない機能を搭載しつつあり、着実に発展しています。
VirtualBoxは高機能でありながら、個人利用や評価目的であれば無償で使用でき、ユーザーインターフェースも比較的シンプルで分かりやすい製品です。これから仮想化を始めてみたい人や、現在別のPC仮想化ソフトを使っている人もVirtualBoxを試してみてはいかがでしょうか。