P2V マイグレーション(Xen 準仮想化)
CentOS4,CentOS5で動いてるマシンを、CentOS5のXenハイパーバイザ内へP2Vマイグレーションしてみよう、ただし、XenのサーバがIntel-VT,AMD-Vがついてないので、完全仮想化でなく、準仮想化として引っ越した時のメモ。まとめるのが面倒になってきたので、必要かどうかわからないけど変更したほうがいいかもしれない箇所を列挙。
ゲストは、CentOS5かCentOS4.6以上、まず、移行する前準備
◆DomU用のKernelをインストール
CentOS5 yum install kernel-xen CentOS4.6 yum install kernel-xenU
◆modprobe.confの修正
/etc/modprobe.conf alias eth0 xennet alias eth1 xennet alias scsi_hostadapter xenblk
◆DomUカーネル用initrdの作成
例1 mkinitrd /boot/initrd-test.img 2.6.9-67.0.22.ELxenU --with xenblk --with xennet --preload xenblk --preload xennet 例2 mkinitrd /boot/initrd-test.img 2.6.18-92.1.6.el5xen --with xenblk --with xennet --preload xenblk --preload xennet
「2.6.9-67.0.22.ELxenU」とか「2.6.18-92.1.6.el5xen」は「/lib/modules/」内のKernelバージョン名
◆grub.confの設定
/etc/grub.conf 例1 title CentOS (2.6.9-67.0.22.ELxenU) root (hd0,0) kernel /boot/vmlinuz-2.6.9-67.0.22.ELxenU ro root=LABEL=/ console=xvc0 initrd /boot/initrd-test.img 例2 title CentOS (2.6.18-92.1.10.el5xen) root (hd0,0) kernel /boot/vmlinuz-2.6.18-92.1.10.el5xen ro root=LABEL=/ console=xvc0 initrd /boot/initrd-test.img
kernelのパラメータに「console=xvc0」をつける
initrdのファイル名を上で作ったinitrdのファイル名にする。
◆fstabの確認
rootとかがラベル運用になっていない時は、/dev/hda(/dev/sda)→/dev/xvdaにしておく(Xenの定義ファイル次第)
◆XenのDomUを作成
省略。
dd if=/dev/hda of=xenimage.img とか、cp とか rsyncとか
◆DomU定義作成
/etc/xen/guestname name = "guestname" uuid = "9ade4b0d-23c7-c31f-b859-6fccf49de495" maxmem = 512 memory = 512 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" vfb = [ ] disk = [ "tap:aio:/home/xen/test.img,xvda,w" ] ←DISKイメージ vif = [ "mac=00:16:3e:xx:xx:xx,bridge=xenbr0" ] ←Network設定
◆起動
xm create guestname -c
コンソールでDomU用のカーネルを選択して起動
カテゴリー: 仮想化
ronztirauaxo