小川 大地,飯島 徹
日本ヒューレット・パッカード
ここでは,既存の物理環境から仮想環境へのサーバー移行を実現するP2V(Physical to Virtual)について,基本的な考え方と実際の手順を説明する。
VMware Infrastructure 3の中にあるVMware ESXでは,新規の仮想環境を非常に簡単に構築できる。仮想マシンはウィザードで作成可能で,仮想マシンへのOSなどのインストールは通常の物理環境における作業と同じである。
しかし,既に稼働している物理環境を仮想環境へ移行する場合,この方法で新規に仮想マシンを構築して,アプリケーション類を移植すると非常に面倒だ。そのようなときP2Vツールを使えば,既存の物理サーバーの環境をもとに,仮想化した環境を構築することで,移行作業を効率化できる。
既存の仮想環境を,別の仮想化ソフトで構築した仮想環境へ移行する場合もあるだろう。その際には,V2V(Virtual to Virtual)に対応したツールを利用することを検討したい。
既存の物理環境を効率的に仮想化
まずP2Vについて,基本的な考え方を説明しよう。物理環境を仮想環境に移行しようとした場合,一般的に次のような作業が必要だ。
(1) 仮想マシンの作成
(2) 仮想マシンにゲストOSをインストール
(3) OSへの修正パッチの適用/再設定
(4) アプリケーションのインストール
(5) アプリケーションへの修正パッチ適用/再設定
(6) データの移行
これらの作業にそれなりの工数がかかることは容易に想像できる。また,移行前の物理サーバー環境は長い運用期間をかけて細かな設定変更やチューニングを重ねたものが多いはずだ。果たしてそれと全く同じ環境を一から再構築できるだろうか。ドキュメントの不備でOSやアプリケーションの設定に微妙な差異が生じ,移行したら正常に動作しなくなるといったことはよく聞く話である。ましてやドキュメントがないシステムでは「同じように設定したはずなのになぜか動かない」といったトラブルは普通にある。
P2Vという移行方法はこうした問題に対して非常に効果的で,トラブルの発生率を最小限に抑えられる。具体的には「VMware Converter」というツールを利用すると,OSを含めたディスクの全内容を,イメージ・レベルで丸ごとコピーするため,前述の「設定の微妙な差異」は発生しない。
イメージ・バックアップ・ソフトでは不十分
ディスクのイメージ・コピーと聞くと,サード・パーティ製のイメージ・バックアップ製品を思い出される方も多いだろう。しかし,単純に物理マシンのディスク・イメージを仮想マシンにリストアしても一般にはうまく移行できない。ディスク・コントローラをはじめとするハードウエア構成が違うため,図1に示すように起動中に深刻なエラーが発生することが多いのだ。
そこでVMware ConverterのようなP2Vツールは,ディスクのイメージ・コピーを行うとともに,その中のデバイス・ドライバを仮想マシン用に置換することで,移行作業を支援するようになっている。
改良されたVMware Converter
VMware Converterは,そのほか数々の機能が備わっている。以前,VMwareはESX 2.xの時代に「P2V Assistant」というP2Vツールを提供していた。これの後継に当たるのが「VMware Converter」である。
P2V Assistantで実行できる移行方法は「P2V」と,Symantec Ghostなどのイメージ・バックアップ・ソフトで取ったバックアップ・データを仮想マシンへインポートするI2V(Image to Virtual)の2種類だけだった。
それに対して,VMware Converterでは,この二つに加えてV2V(Virtual to Virtual)と呼ばれる仮想化ソフトウエア製品間の移行を支援できる。例えば,無償提供のホストOS型仮想化ソフトで作った仮想環境を,企業向けのハイパーバイザー型製品による仮想環境へ移行するときなどに便利である。VMwareからは「VMware Server」,またマイクロソフトからは「Virtual PC」「Virtual Server」というホストOS型の仮想ソフトがそれぞれ無償提供されている。
ホストOS型の仮想ソフトは仮想化技術を試験利用する際に大変手軽である。VMware ConverterではV2Vがサポートされたため,そのようなホストOS型仮想化ソフトで作ったテスト環境をシームレスにVMware Infrastructureによる本番環境へ移行可能になった。2008年7月の時点で最新版であるVMware Converter Enterprise Update2 for VirtualCenter 2.5では,表1の環境がサポートされている。