2006年01月15日

Xenによる仮想マシンの導入 - ホストOSのインストール

まず計画としては、パーティションの切り方を決めておく。e-uedaは下記のように切った。

/boot 100MB

/ 30GB (ホストOS)

swap 1GB

/ 5GB (ゲストOS)

/dev/sda1

/dev/hda2

/dev/hda3

/dev/hda5

ホストOSをインストールする領域は、別に小さくても構わない。e-uedaは他にもいろいろ実験しようと思っているので少し大きめに取った。/dev/hda5は、今回は未使用領域にしておき、後でゲストOSをインストールする。

ホストOSのインストールは、CDブートで普通にインストールをする。計画通りパーティションを切り、パッケージ選択の部分では「開発ツール」のみを選択し、他のものは全部チェックを外す。ホストOSなので無駄なものは一切入れないし、必要ない。また、「開発ツール」を選べば、その「開発ツール」の詳細を開けて、チェックのついているものは全部外してもよい。要するに「開発ツール」の基本部分だけが入れば十分だ。(それでも余計なものは入ってしまうが)

インストールが終わったら、追加で必要なパッケージを導入する。

# rpm -ivh bridge-utils-1.0.4-6.i386.rpm sysfsutils-1.2.0-4.i386.rpm 
python-twisted-1.3.0-4.i386.rpm SDL-1.2.8-3.2.i386.rpm (実際には一行)

次にTLSライブラリを無効にする。起動時には毎回「TLSを無効にしろ」とのメッセージが出る。あらかじめその通りにしておく。

# mv /lib/tls /lib/tls.disabled

今度は下記のURIより、XenとXen対応カーネルのパッケージを取得する。
http://people.redhat.com/riel/xen_for_fc4/

必要パッケージは下記の通り

xen-3.0-0.20050912.fc4.i386.rpm
kernel-xen0-2.6.12-1.1454_FC4.i686.rpm
kernel-xenU-2.6.12-1.1454_FC4.i686.rpm

XenパッケージとXen対応カーネルをインストール。

# rpm -ivh xen-3.0-0.20050912.fc4.i386.rpm
# rpm -ivh kernel-xen0-2.6.12-1.1454_FC4.i686.rpm
# rpm -ivh kernel-xenU-2.6.12-1.1454_FC4.i686.rpm

ホストOSはできる限り必要のないサービスは起動しないようにする。インストールの種類を「サーバー」、パッケージ選択の部分では「開発ツール」のみを選択した場合、下記の必要のないサービスが起動していたので、chkconfig コマンドで自動起動しないようにする。

# chkconfig --level 2345 anacron off   (以下、同様のコマンドですべてOFFにする)

anacron
auditd
bluetooth
canna
cups
gpm
iiim
iptables
nfs
nfslock
pcmcia
portmap
rhnsd
rpc
rpcgssd
rpcidmapd
smartd
xfs

仕上げにXenのサービスを自動起動にし、再起動をかける。

# chkconfig --level 2345 xend on
# reboot

起動時にはエラーが出るが気にしない。起動しログインしたら、freeコマンドを実行してみてほしい。必要ないサービスを除いたので、メモリの消費量はごくわずかである (e-uedaの環境で50Mほど)。これこそ必要なサービスに特化した、カスタムメイド環境を可能にするLinuxの醍醐味だ。小さくすればするほど大きな力を発揮するのがLinux。Windowsみたいな自動販売機のようなOSにはできない芸当であろう。

さて、ログインしたら、xmコマンドで状態を見てみよう。

# xm list
Name              Id  Mem(MB)  CPU VCPU(s)  State  Time(s)
Domain-0           0      188    0      1   r----     19.2

Domain-0 と呼ばれるホストOSが動作しているのが分かる。これでホストOSの準備が整った。

とても簡単であることがお分かりいただけたと思う。しかし大切なのは単なる手順ではなく、仮想マシンの概念やXenがどうやって仮想マシンを実現しているのか、それを理解することである。次回はゲストOS側の設定について述べる。

Posted by e-ueda at 2006年01月15日 19:58