勉強会聴講メモ 【第28回 #FreeBSD 勉強会 数千台のFreeBSD Jailホストを管理する技術、実務実践からのテクニック】 #FreeBSDStudy
第28回 FreeBSD勉強会 数千台のFreeBSD Jailホストを管理する技術、実務実践からのテクニック を見に行ってきました。
用語
- FreeBSD
- jail
- qjail
FreeBSD jail管理
株式会社デジタルファーム CTO 浅川倫之さん
- SORD出身
- 1996年から地域インターネット・プロバイダーを立ち上げる
- Web屋としてNextStepを使っていたが、高いのでFreeBSDを使う。2.2.1から。
サーバ構成 (概念)
- 一台のサーバの中にjail(2~30)動いている
- 中田の公式携帯サイトをやっていたので。PCサイトが落ちてアクセスが集中した。
- 新千歳空港のサイトは冬にアクセスが集中する。
- これらの経験から負荷対策の為に本格的にjailを使うようになった。
- Yahoo!トピックに載っても耐えられる
jailとは
- FreeBSD上の仮想環境
- XenやKVMのようなハイパーバイザーではない。FreeBSD専用。
jailのパフォーマンス
- ハイパーバイザと違ってオーバーヘッドが無い。親サーバで動かすのと同じ。
jailの設定(基本編)
- リリースディスクイメージを用意する
- jail用のディレクトリを作る
- ディスクをマウントする
- バイナリを展開する
Qjail (jail設定ツール)
- /usr/jails/sharedfs に共通ファイルがある
- nullfsでマウント
- /sharedfsからシンボリックリンク
- portsも共用
- ディスクの節約になり、アップデートも楽になる
jailの設定 (qjail編)
- qjail install
- qjail create -4 ipV4address jailname
- qjail start jailname
- qjail console jailname
- qjail console jailname
- qjail stop jailname
- qjail list
- qjail update -p -b (portsをアップデート、親から持ってくる)
jailの注意
- qmail 3 になって、便利になったがマルチIFに対応していない。 (2は使えた)
- /etc/rc.jail は、書き換えられてしまう。
- MySQLは同一Portで複数のjailで起動可。PostgreSQLは同一Portでは不可。
- 異なるバージョンや、64bitの親に、32bitのjailを作成可能。
- psやtop(カーネルのメモリを覗いているアプリ)は使えない「場合」がある。親のを入れればOKな場合が「多い」。
ufsをraid0で使っている
jailの基本 2
- jailの中からfreebsd-updateが使えない
- 親のバージョンを見てしまう
- updatehは外から
- freebsd-update -b
- qjail update -b (バイナリを親から持ってくる)
- qjail update -p (portsのアップデート)
やんちゃupdate
- freebsd-update upgrade は7.2から可能
- それ以前はmakeするのが一般的
- バイナリ上書きすれば良いのでは?
- 9.xまでは /8.2-RELEASE/base/base.*
- 10.xからは /usr/freebsd-dist/base.txz
- /etcは自分でマージ
コメント
まとめ記事ありがとうございます。
@asakawaya