玄箱の静音化
ファイルサーバ用として買った玄箱に施した静音化方法についてメモ書きしておく。
静音化の方法
- ソフトウェア
- ソフトウェア設定でHDDの回転を抑止するなどして静音化を実施する方法。今回メモした内容。
- ハードウェア
- ハードウェア的に静音化対策を実施する方法。ファンやHDDの交換など。ハードウェアは今回いじってないのでメモはなし。
HDDの回転を止める
うちの場合ですが、HDDの音が一番気になるので、これを何とかする。常にファイルサーバを必要としているわけではないので、必要ないときはHDDは止めるようにする。これには、hdparmというソフトウェアを使用する。
hdparmのインストール
apt-get install hdparmでインストール完了。簡単。
スクリプトの作成
/etc/init.d/hdparmに以下の内容を記述。
#!/bin/sh hdparm -S 36 /dev/hda echo 100 0 0 0 500 20000 60 0 0 > /proc/sys/vm/bdflush
2行目のhdparamコマンドで、36*5秒=3分間ディスクアクセスがなかった場合はHDDを止めるように設定している。
3行目ではbdflushの設定も行い、無駄なディスクアクセスを減らしてHDDが回転しないようにしている。
bdfulshについてはB-ビューティーサプリ グラマー こんなに効果が出ましたが参考になる。
/proc/sys/vm/bdflushに適切な数値を保存することで、キャッシュフラッシュのタイミングを制御することができ、結果として無駄なディスクアクセスを減らすことができるようです。
B-ビューティーサプリ グラマー こんなに効果が出ました
スクリプトの自動起動の設定
hdparmの設定はサーバを再起動すると消えてしまうので、起動時に自動的に実行されるようにする。
/etc/rc2.d以下にシンボリックリンクを作成して完了。
ln -s ../init.d/hdparm /etc/rc2.d/S89hdparm
HDDのディスクアクセスを抑止する
hdparmを設定して回転を停止させても、どうやら色んなプロセスがHDDにアクセスするらしく、すぐにHDDが動き出してしまう。
bdflushによる抑止
既にhdparmの設定のところで登場しているので省略。
ntp-serverのログ抑止
玄箱の時計はめちゃくちゃずれるらしいので、NTPDを起動して自動的に時刻設定を行っている。ところがNTPDがログを吐いてしまうので、そのタイミングでHDDが動いてしまう。時刻調整はntpdateをcronで1日1回設定するだけにして、NTPDは停止した。NTPDのログ出力を止める方法があればいいですが分かりません。
ちなみに私はLinuxスキルはほとんどないので、cronの設定方法*1も知らなかった。その設定方法もメモっておこう。
crontabコマンドを以下のように編集モードで実行する。
crontab -e
そして、以下のようにntpdateが自動実行されるように設定して保存した。
24 2 * * * /usr/sbin/ntpdate -s ntp1.jst.mfeed.ad.jp
設定内容を確認するには以下のコマンドを実行すればよい。
crontab -l
syslogへの--MARK--出力抑止
/var/log/syslogに20分ごとにMARKと出力されるらしい。本当かどうか確かめていないけど、玄箱の静音化に取り組んでいる人達はやっているみたいなので一応やっておく。
/etc/init.d/sysklogdをviで開いて、以下のように設定する。
SYSLOGD="-m 0"
cronによるsyslogへの出力抑止
vi /etc/cron.d/exim で以下のように#をつけてコメントアウトする。
#08,23,38,53 * * * * mail if [ -x /usr/lib/exim/exim3 -a -f /etc/exim/ exim.conf ]; then /usr/lib/exim/exim3 -q ; fi
vi /etc/crontab で以下のように#をつけてコメントアウトする。
#17 * * * * root run-parts --report /etc/cron.hourly
気になる点
WindowsPCを起動しているとWindowsが名前解決のためにブロードキャストし、それに反応してHDDが動き出すらしい。
*1:[http://www.atmarkit.co.jp/flinux/rensai/linuxtips/066cronset.html:title]が参考になる