/*
 * 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」を採用しました。 装置全体のファンはこの電源ファンのみになります。
ファンの回転数は H/M/L/auto から選べ、今のところ自動調律にて 最低回転で回っており非常に静かです。
    (近頃(2007.7.2)はさすがに中速で回ることも多いようです)
●HDD
250GB の SATA HDD を 2台搭載し、バックアップとして 1週間に一度 ミラーリングする運用です。つい勢いで SATA を選んでしまいましたが、 通信回路の消費電力が PATA のタイプに比べてやや大きいように感じます。
ATA の stand-by timer 機能により自動的にスタンバイモードに入る ように設定して使用し、メインは 60分毎に 最大 45分 idle 状態 (spindle 停止)になります。 またサブ HDD は 1週間に一度10〜30分のバックアップジョブ以外は完全に idle 状態です。
動作音は、ケースに顔を近づけて耳を澄ますと聴こえるぐらいな感じです。
●サービスとシステムチューニング
サーバーで実行している主なバックグラウンドサービスは以下の通りです。
ntp server (ntpd)
nfs server (nfsd)
samba (smbd)
apache (httpd)
unix マシンとしての周期ジョブは毎時 00分近傍に集中して実行させ、 それ以外できうる限り HDD へのアクセスが発生しないように設定を 変更しました。 主な設定変更は以下のとおりです。
/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 をダメにするのか、 それともスピンダウン・アップ回数増加による衝撃が影響が大きいのか、 さあどうなりますことやら。

- * - * -

本日も稼動中(かな)        




[2010.9.10]
4回目の夏を乗り越えようとしています。
(データ数が増えて重くなってきたので、温度履歴のグラフ、 過去 3年の測定値は一日の min/max 各3点に絞りました)

この間に遭遇したトラブルは、LAN が死んで再起動したことが数回と、 HDD の通信が死んで (原因はSATAケーブルっぽい) 再起動したことが 数回ぐらいです。   たいしたもんです。

実は夏場は、基本的にサービスを要求しないという本末転倒な使い方をしてます。 必要な場合は、毎時 00分直後の すでに HDD が回っている時をねらって さっと済ませるようにしてます。 サーバーをいたわるという意味が主ですが、 そもそもクライアント PC や 人間が あっちっちの部屋の中で ヘロヘロで、激しくコンピューティングできません。

思い立って ワットチェッカー を買いましたので、 遅ればせながら消費電力も測定して見ました。

 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 している状態
HDD stand-by によって 7W ぐらい電力セーブできているみたいです。
夏場のいたわりモードで、平均で 35.4W ぐらいの消費電力になりました。 (月当たり 27kWh)

あ それと samba に関して、ディスクアクセスを止められなかったので nmbd は使いません。名前解決は 各 windows client に %WINDIR%\system32\drivers\etc\hosts ファイルを用意して行います。

    uratan@miomio.jp
upward