仮想マシン環境Xenのインストール。 ここではFedora Core 4にXen対応カーネルをインストールしてDomain-0(ホストOS)とする。 また、同一マシン上に作成したディスクイメージにFedora Core 4をインストールして、Domain-U(ゲストOS)を作成する。
以下のコマンドでXenをインストールする。
インストールされたパッケージ、バージョンは下記の通り。
つづいて、GRUBの起動設定ファイル(/boot/grub/grub.conf)を編集して、Xen対応のカーネルで起動するように変更する。
「Fedora Core (2.6.15-1.1833_FC4)」はXenインストール前の設定で、Xenをインストールするとこれを元にして作成された設定が「Fedora Core (2.6.13-1.1532_FC4xen0)」に書き込まれる。 デフォルトでXen対応カーネルの方を起動するように「default=0」に書き換える。 書き換えが終わったら再起動する。
ちなみに、今回使用したマシン環境で起動すると、
と表示されて起動に失敗したため、XenSourceで公開されているバイナリパッケージをダウンロード・インストールした。
grub.confも次のように書き換えた。
変更したのは下記の箇所(/bootにインストールされたファイルの名称にあわせて変更)。
- title
- 「Fedora Core (2.6.13-1.1532_FC4xen0)」→「Fedora Core (2.6.12.6-xen3_12.1_fc4)」
- kernel
- 「/xen.gz」→「/xen-3.gz com1=115200,8n1 dom0_mem=131072」 「dom0_mem=131072」を指定することでDomain-0に割り当てる物理メモリサイズを131072kB(=128MB)に設定している。
- module(1行目)
- 「/vmlinuz-2.6.13-1.1532_FC4xen0 ro root=LABEL=/ vga=775」→「/vmlinuz-2.6.12.6-xen3_12.1_fc4 ro root=LABEL=/ maxcpus=1 console=tty1」
- module(2行目)
- 「/initrd-2.6.13-1.1532_FC4xen0.img」→「/initrd-2.6.12.6-xen3_12.1_fc4.img」
再起動してシステムが立ち上がったら、/var/lib/xenstoredと/var/run/xenstoredが存在することを確認する。
ファイルやディレクトリが表示されれば問題なし。 もし存在しない場合は、手作業で作成する。
続けて、xendを起動する。
xm listでドメイン(仮想マシン)の一覧を表示してDomain-0が存在していることを確認する。
ここまで確認できたら、xendを自動起動するように設定しておく
Domain-Uのシステムをインストールするために、10GB(1MB×10240)のイメージファイルを作成する。
作成したイメージファイル上にext3ファイルシステムを作成する。
マウント時のファイルシステムの自動チェック(fsck)を行わせないようにする。
/mntにイメージファイルをマウントする。 (これ以降の操作は、イメージファイル内に作成するシステムに対しての操作である点に注意すること)
/mnt/devにデバイスファイルを作成する。
/mnt/etcディレクトリを作成して、その中に/etc/fstabを作成する
以下は、fstabの内容の一例。
/mnt/procディレクトリを作成して、procファイルシステムをマウントする。
/mntにFedora Core 4のベースシステムをインストールする。
参考までに、yum-xen.confの内容は下記の通り。
/etc/selinux/configをコピーする。 その前に、SELinuxが無効になっていることを確認する(SELINUX=disabledとなっていること)。
/mnt/etc/selinux/configにコピーする。
Xenのパフォーマンスを悪化させないために、/lib/tlsをリネームしてTLSライブラリを無効化する(Domain-0、Domain-U両方とも)。
カーネルのモジュールをコピーする。
/etc/sysconfig/networkを作成する。
以下は、/etc/sysconfig/networkの内容の一例。
/etc/resolv.confをコピーする。
/etc/sysconfig/network-scripts/ifcfg-eth0をコピー・編集する。
以下は、/etc/sysconfig/network-scripts/ifcfg-eth0の内容の一例。
ここまで終わったら、umountする。
まずは適当な場所にDomain-U用の起動設定ファイルを作成する。
以下は、/opt/xen/fedora.confの内容の一例。
各値の意味は次の通り。
- kernel
- ドメインで使用するカーネル
- ramdisk
- ドメインで使用するinitrd
- memory
- 割り当てる物理メモリの上限(MB単位)
- name
- ドメインの名前(xmコマンドによるドメインの操作で使用するため、他のドメインと重複しないようにすること)
- vif
- ドメインで使用するネットワークインタフェイスの設定(ここではデフォルトの設定を適用させるため['']を指定)
- disk
- ドメインで使用するディスクイメージと名前、割り当てるデバイス名、読み書きの可否を設定する
- root
- ドメインのルートパーティション
- extra
- 起動オプション。 「selinux=0」でSELinuxを無効にし、ランレベル3で起動させる。
- ip
- IPアドレス
- netmask
- サブネットマスク
- gateway
- デフォルトゲートウェイ
#で始まる行はコメントとして無視される。 この設定ファイルで指定するデバイス名は、/etc/fstabでルートディレクトリに割り当てたデバイス名と同じにすること。
ここではイメージファイルをDomain-Uとしたためdiskを「file:〜」としているが、「phys:/dev/sdb1」のように指定することでDomain-Uに論理パーティションを指定することもできる。
起動設定ファイルが作成できたら、Domain-Uを起動する。
-cを指定することで、Domain-Uが現在のコンソールに接続されて起動する。 起動が完了したら、Ctrl+]を押してDomain-0に戻り、各ドメインの状況を見てみる。
再びDomain-Uのコンソールに接続するには、次のようにドメイン名を指定してxm consoleを使う。
ドメインをシャットダウンするには、xm shutdownを使う。
ドメインを完全にクリアするには、xm destroyを使う。
ドメイン名の代わりに、xm listで表示されるドメインのIDを指定して操作することも出来る。
実際にDomain-0を動作させた環境でのdmesg
実際にDomain-Uを動作させた環境でのdmesg