% 表題: www トラブルシューティング % % 履歴: 2011/07/29 川畑 拓也 2006/11/10 トラブルカルテを元に作成 % 2011/08/01 川畑 拓也 更新 本ドキュメントは, 2011/07/29 に発生した www サーバ /home 領域のハードディスク 故障に関する作業メモである. ■ 症状 07/29 19:20, /dev/sda1 (/home 領域) において, I/O error を発見. 川畑が orange で作業していたため早期発見できた. * /var/log/syslog に I/O エラーの表示 ■ 原因 /dev/sda1 (/home 領域) の HD の故障. ■ 作業方針 □ 07/29 応急処置: 作業内容 1--7 + 現状の把握 + 破損領域拡大の防止 - network 線を抜く - sda1, sdb1 を umount - /home の rsync を止める + shutdown - eSATA 外付けを取り扱うため □ 08/01 本格的な作業: 作業内容 7--15 + sdb1 (旧 /home.bk) を /home に mount + 新しいディスクに, sda1 の内容を rsync + その後, 新しいディスクを /home.bk に mount ■ 作業内容 1. /dev/sda1 (/home 領域) で I/O error を発見 (29 日 19:20) # lv /var/log/syslog Jul 29 19:17:26 orange kernel: [961950.741962] end_request: I/O error, dev sda, sector 244020871 Jul 29 19:17:26 orange kernel: [961950.741982] sd 1:0:0:0: rejecting I/O to offl ine device Jul 29 19:17:26 orange kernel: [961950.741996] sd 1:0:0:0: [sda] Result: hostbyt e=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK Jul 29 19:17:26 orange kernel: [961950.742000] sd 1:0:0:0: [sda] Sense Key : Abo rted Command [current] [descriptor] Jul 29 19:17:26 orange kernel: [961950.742004] Descriptor sense data with sense descriptors (in hex): Jul 29 19:17:26 orange kernel: [961950.742007] 72 0b 00 00 00 00 00 0c 0 0 0a 80 00 00 00 00 00 Jul 29 19:17:26 orange kernel: [961950.742018] 00 00 00 00 Jul 29 19:17:26 orange kernel: [961950.742022] sd 1:0:0:0: [sda] Add. Sense: No additional sense information Jul 29 19:17:26 orange kernel: [961950.742027] end_request: I/O error, dev sda, sector 324534367 Jul 29 19:17:26 orange kernel: [961950.742040] Buffer I/O error on device sda1, logical block 40566788 Jul 29 19:17:26 orange kernel: [961950.742051] lost page write due to I/O error on sda1 2. syslog で念のため, いつから I/O error が出ているか確認 # lv /var/log/syslog.0 # lv /var/log/syslog.1.gz 2 日遡って I/O error が出ていないか確認したところ, I/O error は検出されなかった. 3. rsync を止める # emacs /etc/cron.daily/rsync /home のバックアップの行をコメントアウト 4. 破損拡大防止のため, /sda1 (/home), /sdb1 (/home.bk) を umount # umount /home /home.bk ネットワーク線を外したままで放置. -> shutdown せずに他のユーザのログインを防ぐため. sudo -s を /home /home.bk 以外の場所で行わないと, device is busy と言われて umount できない. 念のためサイズの確認. # df -h 5. /etc/fstab の編集 # emacs /etc/fstab LABEL=home LABEL=home-bk の行をコメントアウト. 6. コメントアウトの確認 # lv /etc/fstab LABEL=home LABEL=home-bk 7. 外付け SATA ディスクを外す # halt /home, /home.bk の外付け SATA を外す 8. 旧 /home.bk(この時点で LABEL=home-bk) と, 新 /home にラベルをつける 別の計算機 (joho18 を使用) に旧 /home.bk を USB接続 # dmesg 旧 /home.bk の<デバイス名>を確認 # e2label /dev/<デバイス名> home 旧 /home.bk を取り外す 続いて, 新 /home を接続 # dmesg パーティションの作成 # cfdisk /dev/<デバイス名> 全領域を一つのパーティションにする part type は primary を選択 file type は Linux を選択 ファイルシステムを作成 # mke2fs -jc /dev/<デバイス名> -c: デバイスにファイルシステムを作成する前に, fast read-only テストを用いて, 不良ブロックを検査する. 非常に時間がかかる (2 時間強) -j: ext3 を持ったシステムファイルを作成. パーティションにラベルをつける # e2label <デバイス名> home-bk 新 /home.bk を joho18 から取り外す. 9. 新 /home (旧 /home.bk) と新 /home.bk を orange に接続 10. orange 起動 この時点では, まだネットワーク線は抜かれたまま. 11. マウント fstab のコメントアウトを元に戻す # nano /etc/fstab LABEL=home LABEL=home-bk # mount -a 確認 # df -h 12. ネットワーク線をつなぐ * この時点で外部からアクセスできる * ネットワーク線の差し口に注意 * 2 つある * 間違えた方につけたまま起動したため, ネットワーク設定がなされなかった /etc/init.d/networking restart 13. 空の /home.bk に /home の内容をバックアップ /etc/cron.daily/rsync の先ほどのコメントアウトを外す バックアップの実行 # /etc/cron.daily/rsync 時間がかかることが予想される (2 時間強は覚悟する) /home と /home.bk の使用量が大体同じ大きさになっていることを確認 # df -h 各ソフトウェアの動作確認 http://www.ep.sci.hokudai.ac.jp http://www.ep.sci.hokudai.ac.jp/~epcore/ https://www.ep.sci.hokudai.ac.jp/ https://www.ep.sci.hokudai.ac.jp/~epcore/ http://www.ep.sci.hokudai.ac.jp/~hoge/ error の確認 http://www.cosmo.sci.hokudai.ac.jp http://www.ep.sci.hokudai.ac.jp/server-status/ gate の動作確認 14. 問題なければ復旧宣言 15. 故障物品は廃棄置き場へ