Linux-VServerのインストール方法Linux Hacks(2/2 ページ)

» 2006年06月27日 09時33分 公開
[Sukrit-Dhandhania,Open Tech Press]
SourceForge.JP Magazine
前のページへ 1|2       

カーネル

 さて、ここからが佳境だ。すでに述べたように、Linux上のVServerはOSレベルで仮想化される。つまり、カーネルがVServerをサポートする。しかし、CentOSの標準カーネルはVServerをサポートしていないため、カーネルのソースを入手し、VServerパッチを当ててコンパイルする必要がある。

 そこで、カーネルソースを取ってこよう。現在のlinux-vserver最新安定版は2.6.14.3カーネルだ。入手の手順は以下の通り。

# cd /usr/src

# wget ftp://ftp.probe-networks.lkams.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.3.tar.bz2


次に、linux-vserver.orgまたは13thfloor.at/vserverから最新カーネルパッチを入手する。

# wget http://www.13thfloor.at/vserver/s_rel26/v2.01/patch-2.6.14.3-vs2.01.diff.bz2

# tar xjf linux-2.6.14.3.tar.bz2


 そして、カーネルソースにパッチを当てる。

# cd /usr/src/linux-2.6.14.3

# bzip2 -dc ../patch-2.6.14.3-vs2.01.diff.bz2 | patch -p1


 次にconfigを作成するのだが、運用している2.6.xカーネル――2.4.xのconfigファイルは駄目――があれば、そのconfigをコピーする。

# cp /boot/config-`uname -r` .config


 VServer対応カーネルのためのコンパイル時に含めておきたいものあれば、ここで済ませておく。カーネルのコンパイルで問題が発生したら、このページが参考になるはずだ。それでは、makeに進もう。まず、次のコマンドを実行する。

# make menuconfig


 Linux VServer関連の構成は最後の方だ。選択を求められた場合はデフォルトを選べばよい。ただし、次の項目が有効になっていることは確認すること。

Enable Legacy kernel API

Enable Proc Security

Enable Hard CPU Limits


 これで、configの設定は完了。いよいよ、カーネルをmakeする。次のコマンドで、カーネルをコンパイルしインストールすることができる。しばらく時間がかかるので、コーヒーを入れ、ピザを頬張りながら待とう。

# make bzImage && make modules && make modules_install && make install


 次に、GRUB構成ファイル/boot/grub/menu.lstを編集する。default=とある行を探し、次のように0に設定されていることを確認する。

default=0

title CentOS (2.6.14.3-vs2.0.1)

root (hd0,0)

kernel /vmlinuz-2.6.14.3-vs2.0.1 ro root=/dev/VolGroup00/LogVol00 rhgb quiet


 次に、マシンをリブートし、VServer対応カーネルを動かす。起動したら、uname -rコマンドでカーネルのバージョンを調べ、今作ったカーネルが確かに動作していることを確認する。2.6.14.3-vs2.0.1のように表示されるはずだ。そうでなければ、ここまでの手順を確認し、間違えた個所を特定して再挑戦する。

VServerのバイナリ

 以上で、VServer対応CentOS 4.2のシステムができ上がり、VServerのバイナリをインストールする準備ができた。VServerの作成と管理のためのuserlandのユーティリティがあるのでダウンロードし、これを使ってバイナリを抽出することにしよう。

# cd /usr/src/

# wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz

# tar -zxvf util-vserver-0.30.209.tar.gz

# cd util-vserver-0.30.209


 ここで、次のコマンドを使って、dietlibcとbeecrypt-develがインストールされていることを確認する。

# yum install -y dietlibc beecrypt-devel


 それでは、util-vserverツールをビルドしインストールしよう。以下に示すのは、その一例である (インストール先は/lib、/sbin、/etc/init.d)。

# cd /usr/src/util-vserver-0.30.209

# ./configure --prefix= --sysconfdir=/etc

# make && make install && make install-distribution


 インストールの成否を確認しておこう。

# wget http://vserver.13thfloor.at/Stuff/SCRIPT/testme.sh

# chmod 700 testme.sh;./testme.sh


 問題がなければ、次のように表示されるはずだ。

Linux-VServer Test [V0.15] Copyright (C) 2003-2006 H.Poetzl

chcontext is working.

chbind is working.

Linux 2.6.14.3-vs2.0.1 #1 SMP Thu Mar 2 12:45:32 IST 2006 i686

Ea 0.30.209 273/glibc (DSa)

VCI: 0002:0001 273 03110036 (TbLgnPD)

---

[000]# succeeded.

[001]# succeeded.

[011]# succeeded.

[031]# succeeded.

[101]# succeeded.

[102]# succeeded.

[201]# succeeded.

[202]# succeeded.


仮想サーバの設定

 仮想サーバを作成するのは極めて簡単、しかも1回だけだ。ただし、時間がかかる。まず、ホストシステムからテンプレートを作る必要がある。つまり、/procと/devなどのディレクトリを除いた全ファイルシステムのダンプを取る。

# mkdir /vservers/template/

# dump 0f - /usr | (cd /vservers/template/ && restore rf -)


 同様に、次のディレクトリのダンプを取る。

/bin、/etc、/home、/include、/initrd、/lib、/opt、/root、/sbin、/tmp、/usr、/var


 このテンプレートを掃除しておくとVServerが小さくなり、また速度の点でも有利だ。ファイルをコピーしながらVServerに不要なものを削除する。根気のいる作業だ。今は止めておく。

 さて、VServerを作ろう。次のコマンドを実行する。

# /sbin/vserver build -m --hostname --interface =:/


 以下に、実例を示す。

# /sbin/vserver calvin build -m skeleton --hostname calvin --interface calvin=eth0:192.168.0.10/24


 この場合、1つめの仮想サーバは次のような構成になる。

VSERVER_NAME calvin
FQDN calvin
NET_DEVICE eth0
IP 192.168.0.10
CIDR 24 (255.255.255.0)
BUILD_METHOD skeleton

 次に、VServerにテンプレートのデータを流し込む。

# cp -a /vservers/template/. /vservers/calvin/


 そして、運用するネットワークに合わせてVServerの/etc/hostsを編集する。

# vi /vservers/calvin/etc/hosts


 最後に、リソースをグループに分離するVServer関連スクリプトを起動する。このスクリプトは、ブートのたびに実行する必要がある。

# /etc/init.d/vprocunhide start


 以上で、VServerの設定は終わりだ。それでは神に祈りつつ、ピカピカのVServerを起動してみよう。

# /sbin/vserver calvin start


 サービスが起動しないなどといったエラーならたいした問題ではないが、VServerが立ち上がらない場合は VServerメーリングリストのアーカイブを検索してみる必要がある。うまく立ち上がったら、VServerに入ってみよう。

# /sbin/vserver calvin enter


 以下、VServerで必要となる基本コマンドを幾つか挙げておく。まずは、次のコマンド。

# /sbin/vserver [ start | stop | restart | enter ]


 何か実行してみたいなら、ntsysvまたはchkconfigのいずれかを実行してみよう。それから、起動する必要のないサービスをすべて停止させること。すべてのネットワーク関連サービスとカーネル関連サービス、特に、iptablesやkudzuなどは間違いなく停止させておく。

 VServerの動作状況は次のコマンドで得られる。

# /sbin/vserver-stat


 問題や疑問があれば、VServerパッケージのmanページを見てみよう。それでも分からなければ、VServerメーリングリストが助けてくれるだろう。

関連キーワード

カーネル | Linux | 運用管理 | 仮想化


前のページへ 1|2       

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ