仮想化の仕組みがいくつかある中、RedHatがRHELで対応する標準の仮想化をXenからKVMに切り替えたこともあり、自分で使っている仮想機ホストOSもXenからKVMに移行した。ホストOSの移行についてはmizzyさんのこの記事が参考になる。
新しくKVMなVMだけ作っていくなら上の手順で、後は通常通り運用していけば特に問題ないのだけれど、今まで使っていたXenのDomUをそのままKVMでも使えるようにしたいなーと思い、ゲストOSの移行を試してみたのでメモ。
一応環境を ホストOS: CentOS 5.4 (XenからKVM移行済み) ゲストOS: CentOS 4.7 test.tnmt.info (Xen Paraviutualized VM, 単一ディスクイメージファイル)
ゲストOSでの準備
これは移行したいゲストOSでの作業、動いているXenのDomUで行う。どこか別のDom0で作業出来るといいけど、一時的にマイグレート先KVMホストOSをxenカーネルであげてもOK。
grub, kernel(not kernel-xen)パッケージが入っていることを確認、無ければインストール
1
| |
/boog/grub/menu.lst修正
ゲストOSにgrubとkernelが入っていれば、以下の作業はディスクイメージをマウントして、直接作業でもOK。
いくつかkernelパッケージが入っているとエントリが複数あるけど、kernel-xenじゃない通常のkernelでbootしてくるようにdefaultの指定を編集
kernelのオプションで、consoleの指定を修正
kernel /vmlinuz-2.6.9-89.0.20.EL ro root=LABEL=/ console=xvc0
↓
kernel /vmlinuz-2.6.9-89.0.20.EL ro root=LABEL=/ console=ttyS0,115200
/etc/inittab修正
co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav
↓
co:2345:respawn:/sbin/agetty ttyS0 9600 vt100-nav
/etc/securetty追記
1
| |
この作業で、KVMのローカルVNCからもコンソールでの接続が行えるようになる。
ホストOSでの作業
KVMへの移行は済んでいる前提、もしゲストOSの上記準備を同じホストOSで行った場合は、通常のkernelで起動しなおすのを忘れないこと。
ディスクイメージコピー
Xenのイメージをコピーする
1
| |
KVMのVM用設定ファイル作成
今回は手で作った。たとえば、下記のようなXenのVM設定ファイル /etc/xen/test.tnmt.info があるとする
name = "test.tnmt.info"
uuid = "575b7c53-46d2-46a0-8f3a-3270a31a833d"
maxmem = 128
memory = 128
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ ]
disk = [ "tap:aio:/var/lib/xen/images/test.tnmt.info-disk0,xvda,w" ]
vif = [ "mac=00:16:3e:XX:XX:XX,bridge=br0" ]
と、これに対応する、KVMのVM設定ファイル /etc/libvirt/qemu/test.tnmt.info.xmlは下記のようになる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | |
直接スクラッチから書いてもいいんだけど、既存のKVMイメージの設定ファイルコピって、メモリ容量、ディスクの位置とMACアドレスだけ書き変えればいいと思う。VMのUUIDは別に合わせなくても問題ない。
1
| |
1
| |
起動、確認
1
| |
1
| |
初回ブート時はkudzuがあがっていると色々設定するか聞いてくるけど、適宜設定すればOK。ログイン画面が出てログインできれば作業完了。
今回はゲストOSが単一ディスクイメージだけど、たとえばLVM領域にインストールしてても要領は一緒の模様(※参照)。FullVirtualizedなイメージは試してないから分からない。
2010年5月にリリース予定のFedora 13では、XenイメージからKVMイメージへのマイグレーションツールが入る予定とのこと。とはいえRHELに組み込まれるのはまだ大分先の話かな。。
参考: Migrate Paravirtualized Xen to KVM under RHEL そのままズバリです。