Posted on Tue Apr 07 23:47:23 +0900 2009 by nabeken
LVM上のディスクで Xen の xvda1 として使用していたものを KVM で使用するための方法を記す。自身へのメモなのでかなり簡潔なものとなっている。
Xenの構成は以下の通り。
共に amd64 で動かしている。domUの設定は以下。
$ cat /etc/xen/domU/mocha kernel = '/boot/vmlinuz-2.6.26-1-xen-amd64' ramdisk = '/boot/initrd.img-2.6.26-1-xen-amd64' memory = '512' vif = [ 'mac=XX:XX:XX:XX:XX:XX', bridge=xenbr0' ] disk = ['phy:main/mocha-root,xvda1', 'phy:main/mocha-home,xvda2'] name = 'mocha' root = "/dev/xvda1 ro console=tty1" extra = "xencons=tty"
Xenで使用していたイメージでは MBR を含んでいない。一方、KVMはディスク全体のイメージであるため、MBRを含んでいる。よって、Xenのイメージそのままでは使えない。
そこで、LVMで MBR を含んだ小さな LV を作り、/dev/hdb に Xen のディスクイメージを割当てることにした。XenのディスクイメージはLVMからddで吸い出し、予め /tmp/mocha/{home,root} にあるものとする(この事例では Xen と KVM の動いているホストが異なるため)。kvmコマンドはディストリビューションによっては qemu の場合もある。また、LiveCDは適当に指定する。今回はGentoo LinuxのLiveCDを使用した。
kvm# lvcreate vg/mocha-boot -L1G kvm# kvm -hda /dev/vg/mocha-boot -hdb /tmp/mocha/root -hdd /tmp/mocha/home -m 512 -net nic,model=virtio,macaddr=XX:XX:XX:XX:XX:XX -net tap,script=/bin/true,downscript=/bin/true -cdrom /var/storage/ISO/oss/install-amd64-minimal-20090402.iso -boot d -vnc 127.0.0.1:1 --daemonize
これで、LiveCDで起動することができる。あとは grub をインストールし、
vm# mount /dev/hdb /mnt/gentoo vm# vi /mnt/gentoo/etc/fstab
で適当にデバイス名を修正すれば作業は完了。ポイントはMACアドレスを無修正のまま移行が可能な点である。これで IPv6 経由の通信でもアドレスを変えることなく通信が可能となる。あなたが今見ているこのページも元々 Xen 上でサービスされていたもので、現在は一時的に KVM 上でサービスしている。