ML115に
debianでNASっぽいものを作ってみる話で、
アクセスの無いときはHDD電源を落とすとかがんばって
それにゃりに出来たのだが、ちょっと改良。
HDD回転停止させて出てくる不満点は何たって初回アクセス時の起動待ち。致し方にゃいとはいえやはりおもしろくにゃい。
で、そういやNTFSでも似たようにゃことしたにゃぁ、という、ディレクトリエントリのキャッシュをやってみる。
方法は単純に find / >/dev/null を定期的に動かすだけ〜
といいたいがいらんディレクトリまで見させるとディスク書き込みが発生したりとかややこしいので、今回はsambaで公開してる/homeのみを巡回。さらにファイル属性その他も拾っとくべきにゃので-printf "%a%A@%c%f%F%g%h%i%m%n%s%t%u%Y"とかにゃんとか適度に。sambaからのアクセスを装ってmount -t cifs //localhost/homes /home/tmp -o iocharset=utf8とかしたディレクトリ相手に。
これで、sambaから見た範囲ではどのディレクトリを見に行ってもHDDアクセスはにゃくにゃり、HDD起動無しの快速レスポンスとにゃる。ACL? それは拾えてにゃいようにゃ・・・
さらにreiserfsのおまけ機能のおかげか、.md5のようにゃ微細にゃファイルがキャッシュされてることがある。もちろんHDD稼働時においてもエントリのリストアップは瞬時に帰ってくるようににゃる。
〜 memo 〜
umount /mnt/preread
rmdir /mnt/preread
mkdir /mnt/preread
chmod 777 /mnt/preread
mount -t cifs //localhost/homes /mnt/preread -o iocharset=utf8,username=neko
echo start.
while : ; do
nice -19 find /mnt/preread -printf "%a%A@%c%f%F%g%h%i%m%n%s%t%u%Y\n" ;
sleep 10
done|
nice -19 perl -e 'use Time::HiRes qw(sleep);while(<>){sleep(0.001)}'