/* * sleeping FreeBSD server * FreeBSD でエコなホームサーバーをたてる * by uratan! 2007.4.17 * revised: 2011.5.5 */
[2011.5.5]
本初代サーバー、2010年の冬場、事情により家を空けることが 多かったため「一週間停止」を数回やったのですが、 ブートディスクが冷え冷えでの起動後、数時間は HDD のリード・ライトが不安定な症状を示すことがありました。
(unrecovered-read-error が発生、書き込み失敗か読み出し失敗かは未確認)
まあそれだけではないのですが、 二代目サーバーにバトンタッチしました。
FreeBSD 6.2-RELEASE(i386) で
なるべく静かで発熱の少ない家庭内サーバーの構築を目指してみました。
●マザーボード
VIA製の C7 Processor 1GHz を搭載したファンレスの EPIA-CN10000Gを使いました。 計算をさせると遅いけど、シーケンサとして使う分には普通な感じです。●電源
ヒートシンクは自然対流タイプですが、ケースに設置すると電源の吸入フローが うまくこのあたりの空気を吸う感じになります。
本マザーボードには温度センサが一切ついていないらしく、CPU 温度を直接 モニターできないのがちょっと残念です。
14cm の大口径ファンを使った 岡谷エレクトロニクス製の 「音無しぃSP」を採用しました。 装置全体のファンはこの電源ファンのみになります。●HDD
ファンの回転数は H/M/L/auto から選べ、今のところ自動調律にて 最低回転で回っており非常に静かです。
(近頃(2007.7.2)はさすがに中速で回ることも多いようです)
250GB の SATA HDD を 2台搭載し、バックアップとして 1週間に一度 ミラーリングする運用です。つい勢いで SATA を選んでしまいましたが、 通信回路の消費電力が PATA のタイプに比べてやや大きいように感じます。●サービスとシステムチューニング
ATA の stand-by timer 機能により自動的にスタンバイモードに入る ように設定して使用し、メインは 60分毎に 最大 45分 idle 状態 (spindle 停止)になります。 またサブ HDD は 1週間に一度10〜30分のバックアップジョブ以外は完全に idle 状態です。
動作音は、ケースに顔を近づけて耳を澄ますと聴こえるぐらいな感じです。
サーバーで実行している主なバックグラウンドサービスは以下の通りです。●結果ntp server (ntpd)unix マシンとしての周期ジョブは毎時 00分近傍に集中して実行させ、 それ以外できうる限り HDD へのアクセスが発生しないように設定を 変更しました。 主な設定変更は以下のとおりです。
nfs server (nfsd)
samba (smbd)
apache (httpd)
/usr/src/sys/dev/ata/ata-queue.c --- タイムアウト伸張
/usr/src/sys/dev/ata/ata-disk.c --- 同上、ATA_IDLE_CMD 発行
(patch はこちら)
/etc/fstab --- noatime 追加
/etc/crontab --- ジョブを 00分近傍に集中
/etc/syslog.conf --- 不要なログの抑制
以下は、1時間おきに HDD 関連のデータを採取させプロットしたもの です。●考察
緑が、SMART により取得したメイン HDD の温度です。そして黄色のバーが、温度測定前の 1時間でメイン HDD が active であった時間(単位:分)をあらわします。
各周期ジョブを毎時 00分近傍に実行させてますので、 1時間毎に 約15分(ジョブ5分+タイムアウト10分)間は必ず HDD が active になります。 4/15日は試しに HDD をスリープをなしの連続稼動にしています。気温が 異なるので直接は比較できませんが、HDD スタンバイによってそれなりに (5〜10℃)発熱が抑えられていることがわかります。
ミラーコピー先のバックアップ HDD は 1週間に一度10〜30分だけ仕事します。 赤はコピー開始前に採取したバックアップ HDD の温度です。
それなりに静音・エコなサーバーが作れたと思いますが、夏場の状態と 耐久性の確認はこれからですね。 (ちなみにエアコンの無い部屋に設置してます)
耐久性に関しては、 HDD 連続稼動による発熱・消耗が先に HDD をダメにするのか、 それともスピンダウン・アップ回数増加による衝撃が影響が大きいのか、 さあどうなりますことやら。
- * - * -
本日も稼動中(かな?)
4回目の夏を乗り越えようとしています。
(データ数が増えて重くなってきたので、温度履歴のグラフ、 過去 3年の測定値は一日の min/max 各3点に絞りました)
この間に遭遇したトラブルは、LAN が死んで再起動したことが数回と、 HDD の通信が死んで (原因はSATAケーブルっぽい) 再起動したことが 数回ぐらいです。 たいしたもんです。
実は夏場は、基本的にサービスを要求しないという本末転倒な使い方をしてます。 必要な場合は、毎時 00分直後の すでに HDD が回っている時をねらって さっと済ませるようにしてます。 サーバーをいたわるという意味が主ですが、 そもそもクライアント PC や 人間が あっちっちの部屋の中で ヘロヘロで、激しくコンピューティングできません。
思い立って ワットチェッカー を買いましたので、 遅ればせながら消費電力も測定して見ました。
HDD stand-by によって 7W ぐらい電力セーブできているみたいです。
off: 3W ... 待機電力 boot: 85W ... ブート時の最大表示 (peak とは限らない) idle 2HDD: 47W ... HDD 2台が回っていて CPU は仕事していない状態 calc 2HDD: 51W (+4W) ... HDD 2台が回っていて CPU が仕事している状態 idle 1HDD: 40W (-7W) ... HDD 1台が回っていて CPU は仕事していない状態 calc 1HDD: 44W (+4W) ... HDD 1台が回っていて CPU が仕事している状態 seek 1HDD: 44W (+4W) ... HDD 1台が回っていて disk アクセスしている状態 sleep: 33W (-7W) ... HDD が 2台とも stand-by している状態
夏場のいたわりモードで、平均で 35.4W ぐらいの消費電力になりました。 (月当たり 27kWh)
あ それと samba に関して、ディスクアクセスを止められなかったので nmbd は使いません。名前解決は 各 windows client に %WINDIR%\system32\drivers\etc\hosts ファイルを用意して行います。