MZK-NAS02静音化(ソフトウェア編)

プラネックス製のNASサーバ「MZK-NAS02」を購入したのですが、動作音が思ったよりうるさかったので、静音化を試みました。

騒音源は、ファンとハードディスク。ファンはハードウェア的に何とかしないといけないので後回し。ハードディスクのアクセスが定期的に発生していてシーク音が気になったので、ソフト的に設定を見直しました。

OSはLinuxなのでtelnetでログインできます。TeraTermIPアドレスを指定してアクセスすると、ログインプロンプトが出るので、login: root でログイン可能。(パスワードなし・・・)

※以下の設定は、linux の起動に必要なシステムファイルの修正を含みます。最悪起動しなくなることがありますので、理解せずに修正するのはお勧めしません。また、各設定ファイルの修正前には、修正対象のファイルのバックアップを取ることをお勧めします。

/etc/syslog.conf 修正

/var/log/syslog, /var/log/debug, /var/log/messages はコメントアウトして出力しないようにする。

#*.*;auth,authpriv.none         -/var/log/syslog
〜
#*.=debug;\
#       auth,authpriv.none;\
#       news.none;mail.none     -/var/log/debug
#*.=info;*.=notice;*.=warn;\
#       auth,authpriv.none;\
#       cron,daemon.none;\
#       mail,news.none          -/var/log/messages

/var/log/kern.log も量が多いので err のみにする。

kern.err                        -/var/log/kern.log

その他は notice レベルでOK。

cron.notice                     /var/log/cron.log
daemon.notice                   -/var/log/daemon.log
〜
lpr.notice                      /var/log/lpr.log
mail.notice                     /var/log/mail.log
user.notice                     /var/log/user.log
uucp.notice                     /var/log/uucp.log

/etc/mt-daapd.conf 修正

mt-daapd (iTunesサーバ)がデフォルトで30分おきにmp3ファイルをスキャンしてたので起動時のみスキャンするように変更。

rescan_interval 0

/etc/samba/smb.conf 修正

Windowsを落としてたら/var/log.nmbd に Domain Master Browser が見つからないというログが15分おきに書き込まれてたので、[global]セクションに下記を追加して自分が Domain Master Browser になるようにした。

os level = 65
domain master = yes
local master = yes
preferred master = yes

また、プリントサーバとしては使わないのでプリンタ関係を無効に。

load printers = no
disable spoolss = yes

/var/run ディレクトリをtmpfs化

/var/run/samba 配下にはsamba実行時に頻繁に更新されるファイルがあるので、tmpfsにマウントしてRAM化する。まず、下記のスクリプトを作成。実行権限をつける。

/etc/init.d/maketmprun ファイル:

start ()
{
    echo -n "mount /var/run ramdisk."
    mount -t tmpfs -o size=512k tmpfs /var/run
    chmod ugo+rwx /var/run
}

stop ()
{
    echo -n "unmount /var/run."
    umount /var/run
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    reload|force-reload)
        # nothing to do
        ;;
    *)
        echo "Usage: /etc/init.d/maketmprun start|stop|restart"
        exit 1
        ;;
esac
exit 0

起動時に各サービスの前にマウントするよう、下記コマンドでrc3に上記ファイルへのシンボリックを作成。

# ln -s /etc/init.d/maketmprun /etc/rc.d/rc3.d/S01maketmprun

いらないサービスを起動しないようにする

/etc/rc.d/rc3.d 以下の下記のシンボリックリンクを削除。

S04btd              #btサービス ※使う場合は消さない。
S97emailAlert       #eメール通知サービス ※設定ファイルが無効のため起動する意味なし
S98digital5         #DLNAサーバ ※使う場合は消さない。
S99cups             #プリントサーバー ※サポートしてないのになぜ起動する?
S99usb-automount    #USBのautomount ※使う場合は消さない。

/etc/fstab ファイルの修正

通常は、ファイルの読込み時にも、iノード上の最新アクセス日時が更新されディスクへの書き込みが発生する。マウント時にnoatimeオプションをつけることで最新アクセス日時の更新を無効化する。

/dev/rdea2 / ext3 defaults,noatime 1 1
/dev/rdea3 /storage/rdea3 xfs defaults,uquota,noatime 1 2

/etc/crontab, /etc/cron.d/anacron の修正

cronがデフォルトでは毎日実行されるので、週一に変更。

/etc/crontab:

25 6	* * 7	root	test -e /usr/sbin/anacron || run-parts --report /etc/cron.daily
〜
00 7	* * 7	root	mv /var/lib/logrotate.status /var/lib/logrotate.status_bak
05 7	* * 7	root	logrotate  -s /var/lib/logrotate.status /etc/logrotate.d/logsize

/etc/cron.d/anacron:

15 7    * * 7   root	test -x /etc/init.d/anacron && /etc/init.d/anacron start >/dev/null

ここまでの結果

ここまでの修正で、PCシャットダウン時にはディスクアクセスが無くなることを確認しました。しかし、PCを起動している間にはディスクアクセスが定期的に発生しているため、原因調査中です。

  • Windows起動時:下記のエラーが約30分間隔でログに記録される。

lib/util_sock.c:get_peer_addr(1435)
getpeername failed. Error was Transport endpoint is not connected

  • Mac起動時:定期的に不明なディスクアクセス発生。