ReadyNASのRAID-5障害復旧

遠隔地に配置していたNETGEARのReadyNASで障害が発生、RAID-5構成の4台中2台で障害が起きてお亡くなりに。
でも良く見ると片方はなんとか認識できそうだったのでがんばってみた。

起きたことはServerFaultの質問 What steps should I take to best attempt to recover a failed software raid5 setup?とほぼ同じ。

うちの場合は1台が故障したのち、復旧(rebuild)”後”になにかが起きてこの現象に陥った。
残念ながらうっかりSSHのウィンドウを閉じてしまったので詳しいログは残していない。(運用者失格)

SSHでログインしてdmesgするとこんなメッセージが見える。

kicking non-fresh sde1 from array!
not enough operational devices (2/4 failed)

どうやらLinuxのmdでRAIDを実現しているらしいことをここで知り、mdadmでいろいろできることもわかる。
そしてmdadm --examine /dev/md127の結果から以下にたどり着く。
mdadm – re-added disk treated as spare
生きているハズの3台を使ってmdadm --assembleしようとすると、なぜかspare扱いされるというもの。

mdadm: /dev/md127 assembled from 2 drives and 1 spare - not enough to start the array.

最終的にどうしたかというと、まさに上記にあるとおり、mdadm --createした。
ここでやっているのは「パーティションテーブルを消して、同じ形でパーティションテーブルを切ればアクセスできる」というのと同じで、間違った形で定義しようものならデータが吹き飛ぶ危険な操作。それでも復旧できたのでよかった。

# mdadm --stop /dev/md127
# mdadm --create /dev/md2 --level=5 --raid-devices=4 --chunk=64 --name=RackStation:2 /dev/sdd3 /dev/sdc3 missing /dev/sda3 --assume-clean

ちなみに壊れたのは緑のWD 1.5TB(WD15EADS)の2台。
rebuild中にiostat -xで見ているとawaitが10000(ms)を超えていた。
テストマシンにつないでddを叩いても似たような感じだったので廃棄コースへ。2010年購入なので約6年稼動。