熱暴走

こないだインストールしたインフラサーバが昨夜、make buildworld中にいきなり落ちる。もう鍵がしまっていたのでサーバ室に入れず、今朝再起動してみてみたらなんと

Jul 23 22:45:44 epdc root: WARNING: system temperature too high, shutting down soon!
Jul 23 22:46:14 epdc root: WARNING: system temperature too high, shutting down soon!
Jul 23 22:46:24 epdc kernel: acpi_tz0: WARNING - current temperature (88.0C) exceeds safe limits

ぎゃあ熱暴走だった。(←実際には暴走せず、きちんとshutdownされてたけど)

とりあえず風通しのよいところに移動。
http://www.usamimi.info/~sakura/cgi-bin/blog/article.php?id=164
を参考にさせてもらって、/boot/loader.confに「coretemp_load="YES"」を追加し、「sysctl -v hw.acpi.thermal.tz0.temperature」を毎分ログることにした。ログファイルは/etc/newsyslog.confできちんとローテートする。

(追記)「sysctl -v hw.acpi.thermal.tz0.temperature」はacpi経由で取得する温度で、coretempモジュールをkldloadしてなくても取れる。coretemp経由での取得は「dev.cpu.0.temperature」である。
参考:http://gihyo.jp/admin/clip/01/fdt/200708/19

イマドキのFreeBSDサーバ構築参考サイト(更新予定)

FreeBSDサーバ構築 http://wirednoize.net/freebsd/

構築ポリシーが似ているので参考にさせていただくことにする。

usamimi.info http://www.usamimi.info/~sakura/cgi-bin/blog/index.php

ネットワーク図が更新されていて、ZFSの情報などもあり、現実的。

FreeBSD備忘録 http://www.kishiro.com/FreeBSD/index.html

HowTo形式になっていて、7系にも対応している。

(追加予定)

イマドキのFreeBSD (7.2現在)

やっぱりそういうドキュメントがないなあ。

親OSインストール

  • BIOS設定を確認
  • disc1かDVDでブート
  • キーボード設定
  • Developerを選択して、portsも同時にインストール
  • timezone設定
  • ネットワークインターフェイスの設定
  • rootパスワード設定
  • sshd有効
  • オペレート用ユーザ追加
  • 再起動(メディア抜いて)
  • /etc/rc.confで
sendmail_enable="NONE"
ntpdate_enable="YES"
ntpdate_flags="ntp.nict.jp"
(ついでに不要なコメント行を削除)
  • freebsd-update fetch / free-bsd-update install
  • 再起動
  • portsnap fetch / portsnap extract
  • /usr/ports/ports-mgmt/portupgrade を make config-recursive; make install clean(あとrehash)
  • portupgrade -ar
  • 再起動して、不要なサービスが動いてないか確認。
  • touch .hashlogin
  • vi .login (/usr/games/fortuneをコメントアウト)

jailインストール (/home/jails/j# (j#は実際にはJ0とか)というディレクトリにアプリ毎のjailを作成)

  • /etc/ssh/sshd_configを編集して、親OSのIPアドレスのみListenするように設定。
  • setenv D /home/jails/j#
  • mkdir -p $D
  • cd /usr/src
  • make buildworld
  • make installworld DESTDIR=$D
  • cd etc/
  • make distribution DESTDIR=$D
  • mount -t devfs devfs $D/dev
  • /etc/rc.confを編集
ifconfig_xxx_alias#="192.168.0.11 netmask 255.255.255.255" (xxxはネットワークインターフェイス名に置換)
jail_enable="YES"
jail_list="j#"
jail_j#_rootdir="/usr/jails/j#"
jail_j#_hostname="j#.example.org"
jail_j#_ip="192.168.0.11"
jail_j#_devfs_enable="YES"
jail_j#_devfs_ruleset="j#_ruleset"
  • # /etc/rc.d/jail start j#
  • # jexec j# /bin/sh

jail内でアプリケーションをインストール

(続く)

カスタムカーネルとfreebsd-update

multipul FIBS(複数のルーティングテーブル)を使うためには、kernel設定を「options ROUTETABLES=16」にしたカスタムカーネルが必要になるが、freebsd-updateを使って更新するとGENERICに上書きされてしまう。
GENERICカーネルでnet.fibs=2とかならいいのに。もしくは「sysctl net.fibs=16」とかやって設定できればいいのだけれど。