~nabeken/diary/

Gentoo Linux(6年くらい)とFreeBSD(1年くらい)とOpenBSD(新参者)を使う日々。


IHANet BGP peering overview

Xen のディスクイメージを KVM で使用する

Posted on Tue Apr 07 23:47:23 +0900 2009 by nabeken

LVM上のディスクで Xen の xvda1 として使用していたものを KVM で使用するための方法を記す。自身へのメモなのでかなり簡潔なものとなっている。

構成

Xenの構成は以下の通り。

  • dom0: Debian GNU/Linux 5.0
  • domU: Gentoo Linux

共に 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 上でサービスしている。