環境
- Hardware: MacMini(Early 2009)
- Memory: 4GB
- Xen: xen-4.2.0 (リリース版) (64bit)
- Dom0(kernel): Linux 3.4.9 (リリース版)
- Dom0(distribution): Ubuntu 12.04
動作確認できたDomU達
- DomU(PVM): NetBSD 6.0 BETA2 (64bit) (動作不安定)
- DomU(PVM): NetBSD 6.0 RC1 (64bit) (動作不安定)
- DomU(PVM): Linux 3.4.9/Ubuntu 12.04(64bit)
- DomU(PVM): Linux 3.5.2/Ubuntu 12.04(64bit)
パーティション作成、refit導入、ubuntuインストールを行い、64bit環境(x86_64)のUbuntuは
多くのサイトでインストール方法がのっているので詳細は省略します。
以下の作業はUbuntu上での作業です。
下準備
Ubuntuなので/etc/defaultが使われるようにあらかじめ/etc/sysconfigを削除しておきます。
# rm -fr /etc/sysconfig
xen 4.1系では必要なかったyajlが必要となるのでインストールしておきます。
# aptitude install libyajl1 libyajl-dev
Xen4.2.0のビルド
まずは
http://xen.org/download/index_4.2.0.htmlから
xen-4.2.0.tar.gzを取得します。
$ tar zxvf xen-4.2.0.tar.gz
nVidiaベースのMacだとLinux同様Xenでもrebootが正常に動作しない問題があるので、以下のパッチをxen 4.2にも適用します。
xen-4.1-macmini-reboot.diff
このパッチを適用して、xen kernelとツールをbuildします。
$ cd xen-4.2.0
$ patch -s -p1 < xen-4.1-macmini-reboot.diff
$ ./configure
$ make xen tools
作成したxen kernelとtoolsをinstallします。
$ su
# make install-xen install-tools
Xen向け設定
domUの起動がうまくいかないことがあったので、複数domU起動時の間隔を調整します。デフォルト5秒ですが15秒にします。
xlではXENDOMAINS_USLEEP, XENDOMAINS_CREATE_USLEEP等は変更しなくても起動できるようになりました。
/etc/default/xendomains:
xenドメインのsave, restoreなどはしません。XENDOMAINS_AUTO_ONLYのdefault値が4.1系と変わったのでfalseにします。
XENDOMAINS_SAVE=""
XENDOMAINS_RESTORE=false
XENDOMAINS_AUTO_ONLY=false
起動スクリプトの/etc/init.d/xendomainsは完全にはxlには対応していないようなので以下のように修正します。これをしないとshutdown時にdomUのshutdownを待たずにdom0がshutdownしてしまいます。
--- xendomains 2012-09-17 19:21:18.000000000 +0900
+++ xendomains 2012-09-20 12:46:24.000000000 +0900
@@ -438,7 +438,7 @@
echo -n "(shut)"
watchdog_xencmd shutdown &
WDOG_PID=$!
- XMR=`$CMD shutdown $id $XENDOMAINS_SHUTDOWN 2>&1 1>/dev/null`
+ XMR=`$CMD shutdown -w $id 2>&1 1>/dev/null`
if test $? -ne 0; then
echo -e "\nAn error occurred while shutting down domain:\n$XMR\n"
rc_failed $?
@@ -452,19 +452,6 @@
# AUTODIR/*
# This is because it's easier to do <img src="/plugins/serendipity_event_emoticate/img/emoticons/wink.png" alt=";-)" class="emoticon" /> but arguably if this script is run
# on system shutdown then it's also the right thing to do.
- if ! all_zombies && test -n "$XENDOMAINS_SHUTDOWN_ALL"; then
- # XENDOMAINS_SHUTDOWN_ALL should be "--all --halt --wait"
- echo -n " SHUTDOWN_ALL "
- watchdog_xencmd shutdown 1 false &
- WDOG_PID=$!
- XMR=`$CMD shutdown $XENDOMAINS_SHUTDOWN_ALL 2>&1 1>/dev/null`
- if test $? -ne 0; then
- echo -e "\nAn error occurred while shutting down all domains: $XMR\n"
- rc_failed $?
- echo -e '!'
- fi
- kill $WDOG_PID >/dev/null 2>&1
- fi
# Unconditionally delete lock file
rm -f $LOCKFILE
xendが起動しているとxlが使えないのでxendを起動しないようにします。
# update-rc.d -f xend remove
/boot/grub/grub.cfgを更新します。
# update-grub2
rebootして無事起動すれば完了です。
# reboot
一応これでdomU達は起動するようにはなりました。
ただ、しばらく使っているとNetBSD6 DomUが反応がなくなります。
consoleにもとくにメッセージはださずにだんまり状態です。
git pullをしている途中で2回ほどこの現象が起きました。
原因究明には至っていません。
というわけで安定しないため、今回はxen 4.2.0は見送ることにしました。