XenからKVMへのゲストイメージ変換


RedHatがRHEL6系から仮想化ソフトウェアがXenからKVMに変更されたため
古いサーバで動作しているゲストOSを、KVMに変換しつつホストOSを引越しする。

旧ホスト(CentOS5)から新ホスト(CentOS7)へ移行する手順。

参考サイトに情報があったが、多少変わっている部分もあったので手順を載せておく。
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Virtualization_for_Desktops/2.2/html/Administration_Guide/virt-v2v-scripts.html
http://blog.tsunokawa.net/entry/20111109/p1
https://blog.tnmt.info/2010/02/08/migrate-vm-xen-to-kvm-on-centos5/

旧ホスト(Xen)作業 「CentOS5」

1.ミドルウェアインストール

Xenで動作しているゲストOSに、インストールしておく。

yum install kernel grub

2.設定の変更

この設定を行った後シャットダウンすると、Xen側では起動しなくなるので注意。

vi /boot/grub/grub.conf

kernel /vmlinuz-2.6.18-238.el5xen ro root=/dev/VolGroup00/LogVol00 consoole=xvc0
↓
kernel /vmlinuz-2.6.18-238.el5xen ro root=/dev/VolGroup00/LogVol00 consoole=xvc0 console=ttyS0,115200n8

vi /etc/inittab

co:2345:respawn:/sbin/agetty xvc0 115200 vt100-nav
↓
co:2345:respawn:/sbin/agetty ttyS0 115200 vt100-nav

(もしくは追記)

vi /etc/securetty

ttyS0

(追記)

3.定義ファイルの出力

virsh dumpxml VM名 > /tmp/VM名.xml

以上の3点を行い、ゲストOSをシャットダウンさせたら
xmlファイル、imgファイルを新ホストにコピーする。
(imgファイルを退避させる場所があれば、1台のサーバで新OSをインストールし直して移行する事も出来る)

新ホスト(KVM)作業 (CentOS7)

CentOS7をインストールする時に、パッケージ「仮想化」をインストールしておく。

1.ストレージプールの作成

作成する

virsh pool-create-as default --print-xml dir null null null null /var/lib/libvirt/images > default.xml
virsh pool-create default.xml

確認する

virsh pool-list

2.イメージのコンバート

旧OS側で作成した、xmlファイルを編集しておく。

  • 新ホスト側のimgファイルのパスに変更する
  • brigeの名前を変更する(xenbr0→virbr0など)
virt-v2v -v -x -i libvirtxml VM名.xml -os default

コンバートが終わったら起動するはず。

virsh start VM名
virsh console VM名