仮想化, 自宅サーバー

VMware ServerからXenに移植

VMware Server上で動いている仮想マシンからXen on Debianへの移植作業に成功したので、手順を晒しておきます。

元環境:VMware Server on Vine3.1 (PentiumM)

新環境:Xen 3 on Debian etch(Athlon X2)

移行対象:Debian etch

ステップ1:VMware Serverから仮想サーバーのディスクイメージを取り出す

まずは、必要なパッケージのインストール。カーネルは不要だが、/lib/modules/2.6.18-5-xen-686以下は必要。またlibc6-xenがないと、”4gb seg fixup”なるメッセージがこれでもかっ!というくらい出てくるので入れておく。

$ sudo aptitude install xen-linux-system-2.6.18-5-xen-686 libc6-xen

ターゲットのサーバーを停止します。

$ sudo shutdown -h now

シャットダウンしたらVMwareコンソールからsnapshotを取っている場合はsnapshotを削除しておく。

次は、イメージの変換でVMware独自のvmdkファイルをrawフォーマットに変換する。Linux上で作業したい場合は、QEMUのホームページからダウンロードしてビルドする。ただ欲しいのは、eqmu-imgコマンドだけなので次で十分である。

./configure –disable-gfx-check
make qemu-img

Windowsで変換するのであれば、QEMU on Windows
からバイナリーを落とせばよい。

で、次のとおり変換する。出力されるサイズが大きいので要注意。

qemu-img convert -f vmdk hoge.vmdk -O raw hoge.img

そんでもってそれをXenのサーバーにコピーして適当な場所に配置する。ネットワーク経由だとこれがまた時間がかかる。

ステップ2:Xen Serverの構成

これは、Xen on etchのページを参考にした。

まずは必要なパッケージをインストール

$ sudo aptitude xen-linux-system-2.6.18-5-xen-686 libc6-xen

Domain0のメモリーを制限する。/boot/grub/menu.datを次のようにする

kernel /xen-3.0.3-1-i386-pae.gz dom0_mem=524288

xend-config.sxpの次の行のコメントをはずしてブリッジを使えるようにする。

(network-script network-dummy)

ステップ3:新しいDomainUサーバーの構成

そして次のような設定ファイルを/etc/xen/hoge.cfgとして作成

#
# Configuration file for the Xen instance hoge, created on
# Sun Dec 9 18:46:42 2007.
#

#
# Kernel + memory size
#
kernel = ‘/boot/vmlinuz-2.6.18-5-xen-686′
ramdisk = ‘/boot/initrd.img-2.6.18-5-xen-686′

memory = ’128′

#
# Disk device(s).
#
root = ‘/dev/sda1 ro’
#root = ‘/dev/sda1 rw’

disk = [ 'file:/home/xen/domains/hoge/hoge.img,sda,w' ]

#
# Hostname
#
name = ‘hoge’

#
# Networking
#
vif = [ '' ]

#
# Behaviour
#
on_poweroff = ‘destroy’
on_reboot = ‘restart’
on_crash = ‘restart’

最後に起動する。そのままコンソールが使えるのでrootでログインする。

$ sudo xm create -c /etc/xen/hoge.cfg

起動すると、新しいインターフェースが eth1になったりしているのでもうVMware Serverに戻るつもりがないのなら、新しい仮想イーサカードをeth0にする。/etc/udev/rules.d/z25_persistent-net.rulesを開いて新しいMACアドレスをeth0にして古いエントリーはコメントアウトしておく。

# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# MAC addresses must be written in lowercase.

# PCI device 0x10ec:0×8167 (r8169)
SUBSYSTEM==”net”, DRIVERS==”?*”, ATTRS{address}==“xx:xx:xx:xx:xx:xx”, NAME=”eth0

上の、xx…の部分が新しいMACアドレスなので次回以降も同じMACアドレスになるように、Domain0上の/etc/xen/hoge.cfgに書いておく。

vif = [ 'mac=xx:xx:xx:xx:xx:xx, bridge=xenbr0' ]

最後に、 keymap.shが起動時にエラーが出るので無効にしておく。

$ sudo update-rc.d -f keymap.sh remove

これでDomainUを再起動すると移植完了である。試していないが、逆の手順でやればXen→VMware Serverも可能だろう。

similar posts

comment

よろしければ、コメントをどうぞ。トラックバックはこちら

このエントリーのコメントの購読

次のHTMLタグが使えます。: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

*Required Fields