FC5+Xen+Slackware
coLinux実験の勢いに乗って、Fedora Core 5に含まれているXenの実験をしてみました。ホストOSとしては、最新のXen3.0が含まれているFedora Core 5を選択しました。
取り合えず、Linux World 5月号に掲載されている「Linux OS別 Xen導入ガイド」を参考にして、ゲストOSとしてFC5をyumでインストールする方法を試してみました。ところが、どうもレポジトリにうまくアクセスできないようなので、路線変更。
# 記事中に書かれているようにyumの設定ファイルを記述すれば良いのかもしれません。
ということで、ゲストOSとして、coLinuxの実験のためにインストールしたslackwareを流用することを試みてみました。slackwareとFC5を別のマシンにインストールした都合上、dumpコマンドを使った吸い出したファイルシステムをscpでコピーして、restoreコマンドでイメージファイルに書き出すという方法を取りました。
# おそらくddでイメージ吸い出し+scpでコピーでも問題ないと思いますが、転送時間削減とdump/restoreコマンドを試してみるという観点から、この方法を取りました。
以下は使ったコマンドのメモ。
ファイルシステムのダンプ:
# dump -0zf slackware-root.dump /dev/hdaX
ファイルシステムのリストア: 出力先のディレクトリをカレントディレクトリとして、以下のコマンドを実行。
# restore -rf slackware-root.dump
- -rオプションで、ファイルシステム全体の展開を指定。
- -fオプションで、バックアップファイルのファイル名を指定。
この後、前述のLinux World記事を参考にして、ホストOS (domain0) からゲストOSのディスクイメージをマウントして、以下の変更を加えました。
- /etc/fstab を書き換えて、/dev/hda1 をルートディレクトリをしてマウントするように変更。
- ホストOS上のXen domainU用のカーネルモジュールを、/lib/modules/ にコピー。
さらに、以下のようなXen設定ファイルを作成。
name = "vm_slack" memory = "256" kernel = "/boot/vmlinuz-2.6.16-1.2080_FC5xenU" ramdisk = "/boot/initrd-2.6.16-1.2080_FC5xenU.img" disk = ['file:/tmp/xen/slack-root.img,hda1,w'] vif = [''] root = "/dev/hda1 ro"
これで xm create を実行したところ、とりあえずゲストOSが起動することまでを確認しました。ネットワークの設定は後日行いたいと思います。
coLinuxやVMwareのようにWindows上でLinuxが動くような技術と比較すると、Xenは面白みが今ひとつ少ないかもしれません。