% 表題: www トラブルシューティング % % 履歴: 2004/05/21 福井 隆 % 本ドキュメントは, 2004/04/24 に発生した, www サーバ /home 領域のハードディスク故障に関する作業メモである. ■ 症状 04/24 2:00, /dev/sdc1 (/home 領域) に於いて I/O error を発見. error は少なくとも 04/01 から出ていたが, www サーバとしての機能には ほとんど影響は出ていなかったため, 発見が遅くなった. ■ 原因 /dev/sdc1 (/home 領域) の HD の故障. ■ 作業方針 □ 04/24 … 応急処置 (深夜のため) ; 作業内容 1 〜 3 + 現状の把握 + 破損領域拡大の防止 - sdc1, sdd1 を umount + shutdown せずに user の login を防ぐ - network 線を抜く □ 04/26 … 本格的な作業 ; 作業内容 4 〜 12 + sdd1 (旧 /home.bk) を /home に mount + sde1 (林研から借用) に, sdd1 の内容を rsync + その後, sde1 を /home.bk に mount ■ 作業内容 1. /dev/sdc1 (/home 領域) で I/O error を発見 (24日 2:00) $ dmesg | head ------------ I/O error: dev 08:21, sector 25864176 SCSI disk error : host 0 channel 0 id 2 lun 0 return code = 8000002 Current sd08:21: sense key Aborted Command Additional sense indicates Scsi parity error ----------(以下続く) 2. kern.log でいつから I/O error が出ているのか確認. # head /var/log/kern.log.0 ------------ Apr 21 09:32:59 orange kernel: Additional sense indicates Scsi parity error Apr 21 09:32:59 orange kernel: I/O error: dev 08:21, sector 25864544 Apr 21 09:32:59 orange kernel: SCSI disk error : host 0 channel 0 id 2 lun 0 re\turn code = 8000002 ----------(以下続く) # tail /var/log/kern.log ------------ Apr 21 09:32:59 orange kernel: Additional sense indicates Scsi parity error Apr 21 09:32:59 orange kernel: I/O error: dev 08:21, sector 25864544 Apr 21 09:32:59 orange kernel: SCSI disk error : host 0 channel 0 id 2 lun 0 re\turn code = 800000 ----------(以下続く) 04/01--04/21 に I/O error の記録. 以降 4/24 迄 I/O error は無し. I/O error は id 2 (/dev/sdc1 /home 領域) にて発生している模様. ( 04/01 以前は kern.log.[2-3].gz のログが残っていないため不明...) 3. 破損領域拡大防止のため, /sdc1 (/home) , /sdd1 (/home.bk) を umount # umount /home /home.bk ネットワーク線を外して shutdown せずに放置. -> shutdown をせずにユーザのログインを防ぐため. /home.bk の umount -> /home を外したことによる影響で /home.bk のデータが 消去されるのを防ぐため. 4. /etc/fstab の編集 /dev/sdc1 /dev/sdd1 のコメントアウト. 5. 外付 SCSI の電源を落し, 予備ディスクを接続. ID は 4 以上に設定, option8 6. reboot 起動メッセージでディスクが認識されているか確認. 7. root でログイン. まずは sdd(home.bk) を /home としてマウント. # df # mount /dev/sdd1 -t ext2 /home # mount /dev/sde1 -t ext2 /home.bk # df 8. home.bk -> backup Disk に backup # /etc/cron.dairy/rsync 9. 二つのディスクを umount # umount /home /home.bk 10. /etc/fstab をかきかえ. home : /dev/sdc1 -> /dev/sdd1 home.bk: /dev/sdd1 -> /dev/sde1 # これまでの設定はコメントアウト. # usrquota が /dev/sdd1 にかかっていることを確認. 11. データ領域をマウント. # df # mount /home /home.bk # df 12. 最終確認 (のはずだった…) $ dmesg |less ----------------- (scsi0:A:0:0): parity error detected in Data-in phase. SEQADDR(0x83) SCSIRATE(0\95) (scsi0:A:0:0): parity error detected in Data-in phase. SEQADDR(0x84) SCSIRATE(0\95) ※ 04/26 17:00, 作業後新たに /dev/sda1/ の I/O エラーを発見. ※ 04/28 のトラブルカルテに続く ...