PLANEXのNAS(MZK-NAS02)をなんとかする

家のNASがぶっ壊れたので、RAID1対応で安いものをAmazonで探して買ってみた。
HDD無しだったけど同じくAmazonで安い500GBのHDDを2本買って合計30000円以内だったのでかなりお得な感じだと思う。

到着してからwktkしながら箱から出してセットアップしていざ使おうとしたけど、何となく気になったのでtelnetしてみたらすんなりログインできた。なんというセキュリティ。

ローカルだし自宅だしまぁいいかと思って見てたら、なんか色々「なってない」感じだったのでなんとかした。

1. sambaの設定ファイル

他のLinuxサーバ同様samba使ってファイル共有を行う仕様だけど、設定ファイル見たらtypoあったりcharset指定なかったりでそりゃないだろっていう状態なので以下のように修正。

・globalセクションにcharset設定を追加

unix charset = UTF-8
dos charset = CP932
display charset = UTF-8

・デフォルトで用意されている homes セクションにtypoがあるので修正

[homes]
× pash = /content/home/%S
↓
○ path = /content/home/%S

2. 起動スクリプト修正

「iTuneサーバ対応」とか「DLNA対応」とか「BitTorrent対応」とか正直使わないので停止しようとしたけど、せっかく用意されているサービス管理コマンド(initdconfig)が使えない状態になっているので起動スクリプトの修正。

・「/etc/init.d/mt-daapd」の先頭に以下を追加

#!/bin/bash
#
# DAAP 
#
# chkconfig: 2345 99 41
# description: DAAP server
# processname: mt-daapd

・「/etc/init.d/digital5」の先頭に以下を追加

#! /bin/sh
#
# digital5 
#
# chkconfig: 2345 98 42
# description: digital5 server
# processname: digital5

・「/etc/init.d/btd2」の先頭部分を以下のように修正

#!/bin/bash
#
# btd   This shell script takes care of starting and stopping
#       standalonv btd
#
# chkconfig: 2345 60 50
# description: btd is a BitTorrent Server daemon, which is the program \
#              that answers incoming BitTorrent service requests.
# processname: btd

3. サービス設定

起動スクリプトを修正したらinitdconfigの管理下に置くために以下コマンドを実施

# initdconfig --add mt-daapd
# initdconfig --add digital5
# initdconfig --add btd

これでサービスの管理をinitdconfigで操作できる。

とりあえずデフォルトで配備されているrc.d配下のシンボリックリンクを削除

# rm -rf /etc/rc.d/rc?.d/[S,K]*mt-daapd
# rm -rf /etc/rc.d/rc?.d/[S,K]*digital5
# rm -rf /etc/rc.d/rc?.d/[S,K]*btd

あとはサービス起動の設定をinitdconfigで実施

# initdconfig --level 2345 mt-daapd off
# initdconfig --level 2345 digital5 off
# initdconfig --level 2345 btd off

4. アラートメールの設定

デフォルトでは「/var/nascfg/scripts/notification.pl」でHDDがFULLの時、CPUのオーバーロード時、Raidの縮退モード時にアラートメールを送ることができるっぽいのだが動かない。というか自動起動しようとしてるけどスクリプトのエラーで動いてない。
さらにメール送信の設定や、サービスの起動などがGUIの管理画面から弄れない。
せっかく用意しているなら使えるようにしとけと思うのだが、なんだろねこれ。

まず、普通に実行するとperlのモジュールがいろいろ見つかりませんエラーがでる。多分スクリプトと同じディレクトリにモジュール色々おいてるけど@INCに追加してないのが原因。perl -I でやっても良いけどとりあえずソースを修正しておく。
あと、cpuの使用率チェックのところで、$cpu->{total} ってなってるけどこれってidle含むから常に100%じゃないの?
チェックするならiowaitとかuserとかになると思うんだがなぁ。。。

ということでパッチ作成。

--- notification.org.pl 2008-10-21 22:55:52.665724000 +0900
+++ notification.pl     2008-10-21 23:10:08.065724000 +0900
@@ -1,4 +1,5 @@
 #!/usr/bin/perl
+use lib '/var/nascfg/scripts';
 use Sys::Statistics::Linux::DiskUsage;
 use Sys::Statistics::Linux;
 use Mail::Sendmail;
@@ -275,12 +276,12 @@
  sleep(1);
  my $stats = $lxs->get;
  my $cpu   = $stats->{CpuStats}->{cpu};
- if($cpu->{total}>= $gCpuPer) 
+ if($cpu->{idle}<= 100-$gCpuPer) 
  {
    
    $time = localtime; 
    $Msg = "**************************************************************\n";   
-   $Msg .= "Cpu usage is $cpu->{total}%  on $gIP.\n";
+   $Msg .= "Cpu idle is $cpu->{idle}%  on $gIP.\n";
    $Msg .= "Please kill unnecessary processes .\n"; 
    $Msg .= "Mail sent at: $time \n ";
    $Msg .= "**************************************************************\n";

とりあえずcpuはidleの比率見て判断するようにした。

あとは、「/var/nascfg/CfgFile.txt」に以下設定を書き込めばよい。

ServerIp:192.168.1.1;         # smtpサーバのIP
EmailId:test@example.com;     # アラートの送信先(To:)
DiskPer:90;                   # HDD使用率警告しきい値(%)
DiskCriticalPer:95;           # HDD使用率臨界値(%)
CpuPer:100;                   # CPU使用率警告しきい値(%)
TimeDelay:10;                 # チェック間隔(分)
FromEmailId:root@example.com; # アラートメールの送信元(From:)

5. よくわからないもの

デフォルトでCPU使用率がやたらと高い。topでみると /etc/MemoryDriver/otabd の占有率が高すぎる。
名前からして、おそらくメモリーカードリーダのドライバ関係じゃないかと。

これも使わないので思い切って無効にしちゃう。

# rm /etc/rc.d/*/S98otab




[2008.10.22 追記]
これ切っちゃうと本体の「RAID」REDが赤色に点灯してしまうみたい。うーん。
一緒にMitacGPIOていうモジュールをロードするようになってて、これが多分前面パネルのRED関係のモジュールなんじゃないかと思われる。

RAID異常のアラートはメールで飛んでくるからまぁいいけど、なんか気持ち悪いのでモジュールのロードだけしておく。

# insmod /etc/MemoryDriver/MitacGPIO.ko

という感じでロードすればREDも正常に戻るみたい。



これであとは再起動して正常動作確認すればおk。
今のところウチはこれで問題なく動いてる。なんとなくパフォーマンスも良くなったような気がしないでもない。

もちろん必要に応じてFTPTELNET(SSHつかえるので)つぶしたりすればさらに良いかもしれない。
RPM使えるのでどうにかすればソフトウエア追加してごにょごにょもできるかもしれないけど、正直この機械でそこまでする気は沸かないなぁという感じ。

多分デフォルトだとパフォーマンス悪くてぶちぶち切れたりして使い物にならないんじゃないかと思うんだけど、あんまり言うとPLANEXに悪いのでこのへんにしておく。