勉強会聴講メモ 【第28回 #FreeBSD 勉強会 数千台のFreeBSD Jailホストを管理する技術、実務実践からのテクニック】 #FreeBSDStudy


第28回 FreeBSD勉強会 数千台のFreeBSD Jailホストを管理する技術、実務実践からのテクニック を見に行ってきました。

用語


FreeBSD jail管理

株式会社デジタルファーム CTO 浅川倫之さん

  • SORD出身
  • 1996年から地域インターネット・プロバイダーを立ち上げる
  • Web屋としてNextStepを使っていたが、高いのでFreeBSDを使う。2.2.1から。

サーバ構成 (概念)

  • 一台のサーバの中にjail(2~30)動いている
  • 中田の公式携帯サイトをやっていたので。PCサイトが落ちてアクセスが集中した。
  • 新千歳空港のサイトは冬にアクセスが集中する。
  • これらの経験から負荷対策の為に本格的にjailを使うようになった。
  • Yahoo!トピックに載っても耐えられる
    DSC04618

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は自分でマージ

jailの中でloopbackが使える

sshやsendmailなど、jail上で上げておかないと親にいってしまうので注意

qjailは楽!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. 浅川倫之 says:

    まとめ記事ありがとうございます。

    @asakawaya

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA