次のページ 前のページ 目次へ

6. 再構築

この HOWTO を読み進んできたなら、デグレード RAID の再構築について、すでにかなりよいアイデアがあるはずです。簡単にまとめると−

  • システムの電源を落とす
  • 壊れたディスクを交換する
  • システムの電源を再投入する
  • アレイにディスクを元通りに挿入するために raidhotadd /dev/mdX /dev/sdX コマンドを使用する
  • 自動再構築を見てる間はコーヒーでもどうぞ
ということになりましょうか。

さて、冗長分よりも多くのディスクが故障したことにより RAID が使えなくなるという事態は、普通に起こりうることです。たくさんのディスクが同じバスにつながっていると、実際に起こることがあります。1台のディスククラッシュがバスに影響を及ぼすのです。他のディスクが正常な状態でもバスがダウンしているので RAID レイヤに到達できず、故障とマークされるのです。1台のディスクを冗長とする RAID-5 の上で 2台以上のディスク故障は致命的です。

以下のセクションは Martin Bene が私に説明してくれたことであって、前述の恐ろしいシナリオからの回復方法を記述します。それには /etc/raidtab に failed-disk の記述をする必要がありますので、カーネル 2.2.10 以降でないと動作しません。

6.1 複数ディスクの故障からの回復

シナリオは、以下の通りです。

  • コントローラが死んで、同時に 2 台のディスクがオフラインになる
  • 1 台のディスクが死ぬと、scsi バス上のすべてのディスクが認識されなくなる
  • ケーブルがはずれる...
要するに− たびたび起こる複数ディスクの一時的な故障によって RAID スーパーブロックの sync がうまくいかなくなり、もはや RAID アレイを初期化できなくなった状態です。

残された道は、mkraid --force によって RAID スーパーブロックを書き直すことです。

これがうまく動作するためには最新の /etc/raidtab が必要で、オリジナルとぴったりマッチするデバイスと順序を守らないとうまくいきません。

アレイを始動しようとした時の syslog を見ると、各スーパーブロックのイベントカウントが見られます。通常、最も低いイベントカウントのディスク(つまり最も古いもの)を除いておくのがベストです。

failed-disk なしに mkraid するとリカバリスレッドがすぐに起動し、パリティブロックの再構築が始まります。−いま必要なものじゃないですね。

failed-disk ありなら、正確にどのディスクをアクティブにしたいかについて指定することができ、おそらく最善の結果のために異なる組み合わせを試してみることができます。この手順を試す間は、ファイルシステムはリードオンリーでマウントするようにすべきです。この方法で、私の知っている少なくとも 2 人はうまくいきました。


次のページ 前のページ 目次へ

[