今回は,米Red Hat社の新旧2つのLinuxディストリビューションRed Hat Enterprise Linux 4,同5と,Debian GNU/Linux 4.0でのXenのインストールに取り組んでみましょう。Xenに正式に対応したディストリビューションとそうでないものの違いがはっきり分かります。

 前回は米Novell社のSUSE Linux Enterprise Server 10(以下,SLES 10)を例に採り,YaSTを使ったXenのインストール方法を紹介しました。今回は他のLinuxディストリビューションにおけるXenのインストール方法を紹介します。前半では米Red Hat社のRed Hat Enterprise Linux 4(以下,REHL4)を,後半では同RHEL5と,Debian GNU/Linux 4.0(以下,Debian)の例を紹介します*1

 これまでの復習になりますが,Xenを使う手順は,(1)Linuxディストリビューションに仮想化ソフトXenをインストールする,(2)Xenに対応したLinuxカーネルからマシンを起動した後,ゲストOSが動作するドメインUを作成する,という2段階に分かれます。

 (1)については,Xenのパッケージを利用すれば極めて簡単にインストールができます。(2)の段階ではドメインUを作成していなくても,既にXenのハイパーバイザ(仮想マシン・モニター)が起動し,LinuxがXen上でドメイン0として動作しています。つまり,ゲストOSをインストールしていなくても,Xenをインストールしただけで仮想実行環境が動作するようになります。

 ドメイン0上で動作するLinuxは,通常他のドメインを管理するための専用OSとして使用するため,不要なサーバー・ソフトやアプリケーションを動作させることはありません。

RHEL4U4での仮想環境構築方法

 まずはRHEL4 Update4(以下,RHEL4U4)を用いて,Xenの仮想実行環境を構築してみましょう。RHEL4U4には標準でXenのRPMパッケージが含まれていません。そこで,英XenSource社のWebサイトからRHEL4U4用に作成されたRPMパッケージをダウンロードしてインストールします*2

 今回はXenを動作させることを目的としていますので,思わぬトラブルを避けるためにSELinux*3は無効にしておいてください。

 XenのRPMパッケージを追加する際,bridge-utilsパッケージが必要となりますので,あらかじめ追加しておきます。もう1点,Xen対応のLinuxカーネルをインストールする際にlksctp-toolsパッケージが競合しますので,こちらは除去しておきます(図1)。

$ su
# rpm -ivh bridge-utils-1.0.4-4.i386.rpm
# rpm -e lksctp-tools lksctp-tools-devel
# mv /lib/tls /lib/tls.disabled
図1●XenのRPMパッケージをインストールするための下準備

 次にXenを追加します。XenSource社のWebページからダウンロードするパッケージは次の2つ,「xen-3.0.4.1-1.i386.rpm」と「kernel-xen-2.6.16.33-3.0.4.1.i386.rpm」です。2つのパッケージをダウンロードしてから,図2のようにしてインストールします。

# rpm -ivh xen-3.0.4.1-1.i386.rpm
# rpm -ivh kernel-xen-2.6.16.33-3.0.4.1.i386.rpm
図2●Xenのインストール方法

 これでXen本体がインストールできました。実際に/bootディレクトリ以下を表示するとXen対応のLinuxカーネルやXenを起動させるために必要なファイルが作成されています。

 最後にXen対応カーネルから起動するよう「/boot/grub/grub.conf」を図3のようにテキスト・エディタを用いて編集し,ブート・ローダーを設定します。

#boot=/dev/cciss/c0d0
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title Xen (2.6.16.33-xen _ 3.0.4.1)
        root (hd0,0)
        kernel /xen-3.0.4.1.gz dom0 _ mem=524288
        module /vmlinuz-2.6.16.33-xen _ 3.0.4.1 ro root=LABEL=/
        module /initrd-2.6.16.33-xen _ 3.0.4.1.img
title Red Hat Enterprise Linux AS (2.6.9-42.ELsmp)
        root (hd0,0)
        kernel /vmlinuz-2.6.9-42.ELsmp ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.9-42.ELsmp.img
title Red Hat Enterprise Linux AS-up (2.6.9-42.EL)
        root (hd0,0)
        kernel /vmlinuz-2.6.9-42.EL ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.9-42.EL.img
図3●grub.confの編集内容

 ファイルを保存後,再起動してください。起動時のgrubの画面でXen(Xen (2.6.16.33-xen_3.0.4.1))が選択されていることを確認し,起動します。

 起動後は,通常のRHEL4U4のログイン画面が現れます。しかし,実際に動作しているのはXenのドメイン0内のRHEL4U4です。

 ログインしてターミナルを起動し「xm list」コマンドを実行してみてください。図4のように「Domain-0」が表示されていれば成功です。

# xm list
Name        ID  Mem VCPUs   State   Time(s)
Domain-0    0   512     4   r-----   1673.0
図4●Xenの起動状態を表示