2008年10月31日金曜日

vserver on CentOS5

vserver をubuntu に入れようと思っていろいろ調べ, カーネルのコンパイル準備をして,さあ,パッチをあてるぞ, と思ったら.カーネルが新しすぎて入らない...

方針変更で,CentOS5を試す.こちらは簡単. http://linux-vserver.org/Installation_on_CentOS に書いてあるとおり,yumで行ける.

ちょっと引っかかったのは,

yum install kernel 
とやったときに,vserverのレポジトリの他に 別のカーネルがなぜか引っかかってきて,そちらの バージョンが現行版より古いという理由で,vserver用の カーネルのインストールも失敗すること.
yum install kernel-2.6.22.19-vs2.3.0.34.1
のように直接指定すればOK.

インストール

vserver はファイルシステムを構成しないと機能しない.vserver-utilにはこのためのツールがふくまれており,簡単にファイルシステムを構成することができるようになっている.このツールでは幾つかのディストリビューションがサポートされている.

http://linux-vserver.org/Building_Guest_Systems に書いてあるとおり

vserver vserver2 build -m yum --context 42 \
    --hostname vserver2.mydomain.com \
    --interface eth0:192.168.1.11/24 -- -d centos5
とかやる.yumのレポジトリは,ホストの設定を使うようだ.

インストールされたファイルシステムの実体は,

/etc/vservers/vserver2/vdir/ 
以下に展開される.
vserver vserver2 start
で起動.
vserver vserver2 enter
とやるとゲストにroot で入れる.ネットワークもちゃんとできている.ifconfigで確認できる.

この状態では,ssh もsshdも立たないので,yumで入れてやる必要がある.と思ったらyumも入っていない.こりゃ面倒.

実はホスト側でvyumというものを使うらしい.一度

vserver vserver2 stop
として,ゲストを落としてから
vyum vserver2 -- install yum
とやるとゲストの中にyumがインストールされる.あとは,パッケージの管理を中でやるという宣言をしてから,ゲストを再度立ち上げる.
vserver vserver2 pkgmgmt internalize
vserver vserver2 start
vserver vserver2 enter
これで中でyumが使えるのだが,/etc/resolv.confがないのでDNSルックアップが効かない.のでここでこのファイルを作ってやる必要がある.が,この時点ではゲストには vi もないので,
cat > /etc/resolv.conf 
とやって標準入力から食わせる.もしくは落ちているときに,ホスト側からファイルシステムを直接いじってもいいのだろう.

これで中でyumが使えるようになったので後は中で設定できる.

参考リンク: http://www.os-museum.com/linux/vserver/vserverfc5/vserverfc5.htm

2008年10月25日土曜日

linux での Java のタイムゾーン

ここ参照

/etc/localtime をいじってもだめで, /etc/sysconfig/clock のZONEを設定しないとだめ. ということで.面倒だなあ...

linux timezone

/etc/localtime を /usr/share/zoneinfo 以下のどれかにln -sするのが流儀. が,ubuntuもCentOSもcpしているようだ.

/etc/timezone というファイルもあるが,これはAsia/Tokyo というような/usr/share/zoneinfoからの相対パスに一致する情報が 収められている.どうも消去しても特に影響はないようだ.

TZ=JST-9
のように環境変数を書くことでオーバライドできる.