ファイルサーバにファイルが置けなくなった

ファイルをサーバに置こうとしたら置けませんでした。
こんなエラーが。

ファイル書き込みエラー

ディスクがいっぱいなのか?と思ってdfしてみると・・・。

# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda3 3182276 1115796 1902216 37% /
/dev/sda1 101086 12120 83747 13% /boot
tmpfs 1020832 0 1020832 0% /dev/shm
/dev/sdb1 1442145212 1103546812 265341600 81% /var/storage/00/main
/dev/sdc1 1442145212 1103963652 264924760 81% /var/storage/00/mirror

まだ、81%なので大丈夫。

ちゃんとミラーリングできてるのか不安になったのでログを見てみると・・・

# ls /var/log/sync_storage/
201108170212.log 201108301300.log 201109131300.log 201109271300.log 201110111300.log 201110241300.log 201111071300.log 201111181300.log 201112021300.log
201108170814.log 201108311300.log 201109141300.log 201109281300.log 201110121300.log 201110251300.log 201111081300.log 201111211300.log 201112051300.log
201108180409.log 201109011300.log 201109151300.log 201109291300.log 201110131300.log 201110261300.log 201111091300.log 201111221300.log
201108191300.log 201109021300.log 201109161300.log 201109301300.log 201110141300.log 201110271300.log 201111101300.log 201111231300.log
201108221300.log 201109051300.log 201109191300.log 201110031300.log 201110161310.log 201110281300.log 201111111300.log 201111241300.log
201108231300.log 201109061300.log 201109201300.log 201110041300.log 201110171300.log 201110311300.log 201111130714.log 201111251300.log
201108241300.log 201109071300.log 201109211300.log 201110051300.log 201110181300.log 201111011300.log 201111141300.log 201111281300.log
201108251300.log 201109081300.log 201109221300.log 201110061300.log 201110191300.log 201111021300.log 201111151300.log 201111291300.log
201108261300.log 201109091300.log 201109231300.log 201110071300.log 201110201300.log 201111031300.log 201111161300.log 201111301300.log
201108291300.log 201109121300.log 201109261300.log 201110101300.log 201110211300.log 201111041300.log 201111171300.log 201112011300.log

12/5が最後になってます。不安です。
とりあえず邪魔なのでログファイルを消してみる。

# rm -f /var/log/sync_storage/*
rm: cannot remove `/var/log/sync_storage/201108170212.log': 読み込み専用ファイルシステムです
rm: cannot remove `/var/log/sync_storage/201108170814.log': 読み込み専用ファイルシステムです
(略)
rm: cannot remove `/var/log/sync_storage/201112021300.log': 読み込み専用ファイルシステムです
rm: cannot remove `/var/log/sync_storage/201112051300.log': 読み込み専用ファイルシステムです

消せません。

読み取り専用?

# ll /var/log/sync_storage/*
-rw-r--r-- 1 root root 2998275 8月 17 02:32 /var/log/sync_storage/201108170212.log
-rw-r--r-- 1 root root 508 8月 17 08:17 /var/log/sync_storage/201108170814.log
(略)
-rw-r--r-- 1 root root 388 12月 2 13:00 /var/log/sync_storage/201112021300.log
-rw-r--r-- 1 root root 95878 12月 5 13:02 /var/log/sync_storage/201112051300.log

読み取り専用にはなっていません。

ということはドライブが読取専用にでもなっている??

# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/sda1 /boot ext3 rw,data=ordered 0 0
tmpfs /dev/shm tmpfs rw 0 0
/dev/sdb1 /var/storage/00/main ext3 ro,data=ordered 0 0
/dev/sdc1 /var/storage/00/mirror ext3 rw,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

なんと /dev/sdb1 がroでマウントされてます。
なぜ???

fstabを見ても default でマウントするようになってるし・・・。

# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda2 swap swap defaults 0 0
/dev/sdb1 /var/storage/00/main ext3 defaults 0 0
/dev/sdc1 /var/storage/00/mirror ext3 defaults 0 0

謎です。

でsyslogを見てみると

# cat /var/log/messages
Dec 4 04:02:02 localhost syslogd 1.4.1: restart.
Dec 4 04:02:02 localhost smbd[2068]: [2011/12/04 04:02:02, 0] param/loadparm.c:map_parameter(2794)
Dec 4 04:02:02 localhost smbd[2068]: Unknown parameter encountered: "revalidate"
Dec 4 04:02:02 localhost smbd[2068]: [2011/12/04 04:02:02, 0] param/loadparm.c:lp_do_parameter(3541)
Dec 4 04:02:02 localhost smbd[2068]: Ignoring unknown parameter "revalidate"
Dec 4 06:33:30 localhost smbd[12853]: [2011/12/04 06:33:30, 0] lib/util_sock.c:read_data(540)
Dec 4 06:33:30 localhost smbd[12853]: read_data: read failure for 4 bytes to client 192.168.0.3. Error = No route to host
Dec 4 14:00:10 localhost smbd[16200]: [2011/12/04 14:00:10, 0] lib/util_sock.c:read_data(540)
Dec 4 14:00:10 localhost smbd[16200]: read_data: read failure for 4 bytes to client 192.168.0.3. Error = No route to host
Dec 4 22:40:26 localhost smbd[19089]: [2011/12/04 22:40:26, 0] lib/util_sock.c:read_data(540)
Dec 4 22:40:26 localhost smbd[19089]: read_data: read failure for 4 bytes to client 192.168.0.3. Error = No route to host
Dec 4 22:40:26 localhost smbd[19089]: [2011/12/04 22:40:26, 0] lib/util_sock.c:write_data(568)
Dec 4 22:40:26 localhost smbd[19089]: write_data: write failure in writing to client 192.168.0.3. Error Broken pipe
Dec 4 22:40:26 localhost smbd[19089]: [2011/12/04 22:40:26, 0] lib/util_sock.c:send_smb(767)
Dec 4 22:40:26 localhost smbd[19089]: Error writing 75 bytes to client. -1. (Broken pipe)
Dec 5 10:44:08 localhost smbd[22701]: [2011/12/05 10:44:08, 0] lib/util_sock.c:read_data(540)
Dec 5 10:44:08 localhost smbd[22701]: read_data: read failure for 4 bytes to client 192.168.0.3. Error = No route to host
Dec 5 20:13:12 localhost smbd[27496]: [2011/12/05 20:13:12, 0] lib/util_sock.c:read_data(540)
Dec 5 20:13:12 localhost smbd[27496]: read_data: read failure for 4 bytes to client 192.168.0.4. Error = Connection reset by peer
Dec 6 03:24:08 localhost smbd[29574]: [2011/12/06 03:24:08, 0] lib/util_sock.c:read_data(540)
Dec 6 03:24:08 localhost smbd[29574]: read_data: read failure for 4 bytes to client 192.168.0.3. Error = No route to host
Dec 6 04:02:02 localhost kernel: ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0

最終行にカーネルが何か言ってます。
ata1がどうとか・・・。

これってHDD死にかけ的なものでは?

で、このディスクにログが出るようになってるから最終行を吐いたあとに読取専用に勝手に変更したせいでそれ以降の詳細なログがでてないのでしょう。

でもこれじゃなんだかわからないのでとりあえず再起動してみます。

# reboot

もう一度マウントの状況を見てみます。

# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/sda1 /boot ext3 rw,data=ordered 0 0
tmpfs /dev/shm tmpfs rw 0 0
/dev/sdb1 /var/storage/00/main ext3 ro,data=ordered 0 0
/dev/sdc1 /var/storage/00/mirror ext3 rw,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

変わらずroのままでした。

このままrsyncが動き続けると怖いので止めます。

# crontab -e
/tmp/crontab.XXXXn3XfMD: 読み込み専用ファイルシステムです

なんとcrontab -eができません。
仕方ないので直接編集します。

# vi /var/spool/cron/root
#0 13 * * 1-5 /root/sync_storage.sh

コメントにしておきます。

これで自動で同期しなくなったのでミラー先のファイルを削除するようなことはしなくなりました。

仕事に行かないといけないので今日はここまでにしておきます。

コメント