◆物理マシンを仮想マシンイメージにP2Vする方法
現在稼働しているサーバ機能などを VMware や Xen や KVM などの仮想マシン上に移行したい時に行う作業が P2V (Physical to Virtual) です。
P2Vでは、現行マシンのディスク上のデータを吸い上げて、仮想マシンのためのイメージファイルを作成し、さらに仮想マシン環境として動作させるための設定を行います。
保守切れのハードウェアや老朽化したハードウェアから新しいハードウェアに移行しつつも、OS環境は今まで通り使いたい時に非常に便利な方法です。場合によっては、現在多数存在しているサーバを安全に集約することができるかもしれません。
P2Vを行う時、その手段はいくつか考えられます。Windowsであれば、商用ツールなどがいくつか出ていたりVMware社が無料で利用できるツールを提供していたりするので、それを利用するのが手軽でしょう。しかし、現在、Linuxの環境をP2Vしたいと思ったときに「これぞ!」という情報にはあまり当たれないのが現実です。
ここでは、ツール virt-p2v を使って、ハードディスクイメージを吸い上げて仮想マシン用のディスクイメージファイルを作成する方法を簡単に紹介します。
virt-p2v のダウンロードする
virt-p2v は、Red Hat社の Richard W.M. Jones 氏が開発しているライブCD型のP2Vツールです。対象マシンのハードディスクからデータを吸い上げ、ssh経由で他のマシン上に仮想マシンイメージファイルを作成します。
まずは、virt-p2v のISOイメージをダウンロードして、CD-ROMに焼きます。 ・Virt-P2V ・Virt-P2V downloads 例えば、バージョン0.99のイメージファイルは「virt-p2v-0.9.9.iso」となっています(手元で利用していたISOイメージをここに置いておきます)
仮想マシンの転送先サーバを準備する
virt-p2vでは、ハードディスクから吸い出したイメージファイルをsshを利用してリモートマシンに転送します。したがって、あらかじめ、P2Vの対象マシンからネットワークで接続できて、sshでログインできる環境を用意しておきます。転送されるイメージファイルは、対象となるハードディスクの容量になるため、十分な空き領域があることを確認しておき必要があります。
virt-p2vの実行
P2Vの対象マシンを(virt-p2v のISOイメージを焼いた)CD-ROMから起動させます。起動すると、次のような画面が表示されます。virt-p2vに関する簡単な説明が記述されていますので、内容を確認した上で OK を押して進みます。
「tranfer type」を選択する画面が出てきます。ここでは、P2Vを行うので「Physical to Virtual(P2V)」にチェックをいれて「OK」を押します。
ネットワーク設定を行う「configure network」画面が出てきます。ハードディスク内の設定を利用する Automatic from で対象ディスクを選択してもよいですが、static configuration で手動で設定してもよいでしょう。
「SSH configuration」では、イメージファイルを転送するリモートホストを設定します。ホスト名やディレクトリパス、ユーザー名などを設定します。「Test SSH connection」にチェックを入れている場合、「OK」を押した後、sshでのログインができることを確認する画面が表示されます。
「Select block device to send」画面では、イメージ化する対象ディスクを選択します。基本的には全てのディスクにチェックを入れたまま「OK」を押すとよいでしょう。
「Select root filesystem」では、ルートファイルシステム(/)があるパーティションを選択します。
「Configure target system」では、転送先で動作させる仮想マシンモニタ・ハイパーバイザやそれにともなう設定が行えます。移行先の仮想マシン環境にあわせて、設定を行います。Xen や KVM ではなく、最終的に VMware のディスクイメージを作成したい場合は、ハイパーバイザに QEMU を選択し「Use remote libvirtd」のチェックを外した設定にしておきます(後述のqemu-imgでイメージファイルを変換します)。
あとは、転送先のサーバにsshでログインするためのパスワード入力を求められ、正常に認証が行われると、吸い出されたイメージファイルがネットワークを通じて転送されます。ディスク容量が大きい場合、かなり時間がかかります。作業が完了したら、CD-ROMを取り外して、マシンを停止させます。転送先には「p2v-localhost_localdomain-200905020736-hda.img」といったイメージファイルが無事に作成されているはずです。念のため、ファイルサイズと元のディスク容量が一致していることを確認しておくとよいでしょう。
あとは、このイメージファイルを使って、XenやKVMなどのハイパーバイザの設定を行うだけです。OSを起動しようとすると、OSから見えるハードウェア環境が変わっているため、GRUBの設定やfstabの設定を変更する必要があったり、initrdのイメージファイルを更新する必要があるかもしれません。
VMware用のvmdkフォーマットに変換する方法
ハイパーバイザに VMware を用いる場合、転送したディスクイメージを VMware 用のフォーマット vmdk に変換する必要があります。手軽に行うには、QEMUに付属する qemu-img コマンドを利用します。変換元のファイルを指定し、-Oオプションで変換先のタイプを指定して実行することでディスクイメージの変換が行えます。 # qemu-img convert p2v-localhost-hda.img -O vmdk server02-hda.vmdk 容量が大きい場合は、やはりそれなりに時間を要します。
その他の方法
virt-p2vは、システムを停止してディスクイメージを吸い出す Cold Cloning(コールド クローニング)ですが、他にも対象システムを起動したまま移行を行う Hot Cloning(ホット クローニング)を行うこともできます。
Linux環境で Hot Cloning に使えるツールとしては Mond Rescue などが知られています。手元の環境では、Red Hat Enterprise LinuxやCentOSの移行などが無事に行えています。また、VMware vCenter Converter でも行えることが知られています。
virt-p2v による仮想マシン用のディスクイメージファイルの作成以外にも ・ddコマンドを用いた方法 ・VMware 社が提供する VMware Converter の BootCD (起動CD)を用いる方法 ・Plate Spin PowerConvert や Norton Ghost や True Image などの商用ツールを用いる方法 などがあります。ディスクイメージから取り出して vmdk を作成するのは VMware Converter の BootCD を使えば一気に行えますので、VMware vCenter Server のライセンスを持っている方は利用するとよいでしょう。
|