この HOWTO を読み進んできたなら、デグレード RAID の再構築について、すでにかなりよいアイデアがあるはずです。簡単にまとめると−
raidhotadd /dev/mdX /dev/sdX
コマンドを使用するさて、冗長分よりも多くのディスクが故障したことにより RAID が使えなくなるという事態は、普通に起こりうることです。たくさんのディスクが同じバスにつながっていると、実際に起こることがあります。1台のディスククラッシュがバスに影響を及ぼすのです。他のディスクが正常な状態でもバスがダウンしているので RAID レイヤに到達できず、故障とマークされるのです。1台のディスクを冗長とする RAID-5 の上で 2台以上のディスク故障は致命的です。
以下のセクションは Martin Bene が私に説明してくれたことであって、前述の恐ろしいシナリオからの回復方法を記述します。それには /etc/raidtab
に failed-disk の記述をする必要がありますので、カーネル 2.2.10 以降でないと動作しません。
シナリオは、以下の通りです。
残された道は、mkraid --force
によって RAID スーパーブロックを書き直すことです。
これがうまく動作するためには最新の /etc/raidtab
が必要で、オリジナルとぴったりマッチするデバイスと順序を守らないとうまくいきません。
アレイを始動しようとした時の syslog を見ると、各スーパーブロックのイベントカウントが見られます。通常、最も低いイベントカウントのディスク(つまり最も古いもの)を除いておくのがベストです。
failed-disk
なしに mkraid
するとリカバリスレッドがすぐに起動し、パリティブロックの再構築が始まります。−いま必要なものじゃないですね。
failed-disk
ありなら、正確にどのディスクをアクティブにしたいかについて指定することができ、おそらく最善の結果のために異なる組み合わせを試してみることができます。この手順を試す間は、ファイルシステムはリードオンリーでマウントするようにすべきです。この方法で、私の知っている少なくとも 2 人はうまくいきました。