2-DISK 連続故障発生!


何と、sdaが以上検知して、RAID1のmd2リカバリー中に、sdbの以上を検知してしまった。

* syslogから状況確認
時刻状況syslog抜粋
01:06:32 sdaの異常検知 ata1.00: exception Emask 0x0 SAct 0x4 SErr 0x0 action 0x0
09:17:45 sda5(md1)故障診断確定 md/raid1:md1: Disk failure on sda5, disabling device.
09:17:45 sda6(md2)故障診断確定 md/raid1:md2: Disk failure on sda6, disabling device.
09:17:47 md1のリカバリー開始 md: recovery of RAID array md1
09:17:52 sda1(md0)故障診断確定 md/raid1:md0: Disk failure on sda1, disabling device.
09:29:15 md1のリカバリー完了(成功) md: md1: recovery done.
09:29:15 md2のリカバリー開始 md: recovery of RAID array md2
10:48:28 sdbの異常検知 ata2.00: exception Emask 0x0 SAct 0x7fffffff SErr 0x0 action 0x0
10:49:44 md2のリカバリー終了(失敗) md: md2: recovery done.
10:49:44 md0のリカバリー開始 md: recovery of RAID array md0
10:49:47 md0のリカバリー完了(成功) md: md0: recovery done.
10:49:47 md2のリカバリー開始(2度目) md: recovery of RAID array md2
md: resuming recovery of md2 from checkpoint.
10:53:27 md2のリカバリー終了(失敗) md: md2: recovery done.
10:53:27 md2のリカバリー開始(3度目) md: recovery of RAID array md2
md: resuming recovery of md2 from checkpoint.
10:54:09 md2のリカバリー終了(失敗) md: md2: recovery done.
10:54:10 md2のリカバリー開始(4度目) md: recovery of RAID array md2
md: resuming recovery of md2 from checkpoint.
11:10:36 md2のリカバリー終了(失敗) md: md2: recovery done.
11:14:43 md2のリカバリー開始(5度目) md: recovery of RAID array md2
md: resuming recovery of md2 from checkpoint.
11:17:17 md2のリカバリー終了(失敗) md: md2: recovery done.
この段階で、以下のような状態と推測(その時に見たわけじゃないの..)
MD disk 備考
md2 sdc6(S) sdb6 [_U]sdc6へのリカバリーが失敗し、sdb6のみの片肺動作
md1 sdc5 sdb5 [UU]sdc5,sdb5の正常動作
md0 sdc1 sdb1 [UU]sdc1,sdb1の正常動作
ログによると、12:00前にはVMが異常になり、name-serverが機能していない様子がわかった(dhcpがno free leasesとなっていた)。
18:00ごろにネットワークの異変に気付く。サーバの操作ができなくて、19:30ごろに強制OFF。
で、起動させた...sdbのエラーを吐きつつ起動開始...時間がかかる。約40分かけて起動。
23:30頃、正規コマンドでshutdown。もう一度起動...sdbのエラーを吐きつつ起動開始...時間がかかる。とりあえず就寝。
この段階で、以下のような状態。
MD disk 備考
md2 sdc6(S) sdb6 [_U]sdc6へのリカバリーが失敗し、sdb6のみの片肺動作
md1 sdc5 sdb5 [UU]sdc5,sdb5の正常動作
md0 sdc1 [U_]sdc1のみの片肺動作
早朝、外部からsshでログインできる事を確認して出社。

リモートでmd2のリカバリーを試みるも、失敗。
 $ cd /home
 $ tar cvf - . > /dev/null
して、md2の全ファイルの読み出しを確認...読み出しは成功(とりあえず読み出し失敗はしない..破壊が無いとは言えないが...)。
VM達が動作していないようなので、下記のようにリモートからVMに接続。
 $ ssh -X hostname
 $ sudo XAUTHORITY=/home/$USER/.Xauthority virt-viewer vm00
起動時にDISKチェックで停止していたので、手動のfsckを実施し。 再起動させた。
VM1つだけがfsckも失敗してまったく起動しなくなってしまたが...
そこで故障したsda6を下記のようにmountし、該当libvertのimageを もってきて、該当VMを起動させた(その後、fsckに成功し起動した)。
 $ sudo mdadm --assemble /dev/md6 /dev/sda6
 $ sudo mdadm --run /dev/md6
 $ sudo mount -o ro /dev/md6 /mnt
VM動作した事から元の設定に戻して、とりあえずHDD故障前の機能は復活。
HDDを3つ発注し、到着待ちとなる。
HDDが到着したので、shutdownしてsdaの入れ替えから実施。
16:30頃起動させたが、...sdbのエラーを吐きつつ起動開始...md2のリカバリー開始!。リカバリー中もsdbのエラー発生しつづける。
しかし、8時間程かけたが、リカバリーのリトライを繰り返して、最後までリカバリーを行なえた(^^)。
で、sda6をaddしえ、sdb6をfailにして、リカバリー開始(3:30頃)。9:00頃にリカバリーを完了(約5時間30分)。
md1とmd0もsdaをaddしてリカバリーさせた。 この段階で、以下のような状態。
MD disk 備考
md2 sda6 sdc6 [UU]sdc6,sdb6の正常動作
md1 sda5 sdc5 [UU]sdc5,sdb5の正常動作
md0 sda1 sdc1 [UU]sdc1,sdb1の正常動作
あとは、sdbを換装して、md2,md1,md0およびswapに加える。
そして、sdcを元のspareに戻す。