Linux ソフトウェア RAID 10 は 1 つのドライブが故障した後にハングし、mdadm では障害のあるデバイスを強制的に削除できません。

Linux ソフトウェア RAID 10 は 1 つのドライブが故障した後にハングし、mdadm では障害のあるデバイスを強制的に削除できません。

私は、5 つの RAID 1 (ミラーリングされたセットアップごとに 2 つのドライブ) と、5 つの RAID 1 ペアすべてにわたる RAID 0 で構成される Linux ソフトウェア RAID 10 セットアップを持っています。負荷がかかった状態でドライブがすぐに故障しないかどうかをテストするために、破壊的な読み取り/書き込みモードで RAID 0 全体に badblocks を使用しました。

Badblocks コマンド: badblocks -b 4096 -c 98304 -p 0 -w -s /dev/md13

デバイスの 1 つに障害が発生し、badblocks プログラムが正常に動作する代わりにハングしました。同期コマンドを実行しても、ハングします。まず、これは RAID 1 デバイスの標準的な動作ではないと思います。ドライブの 1 つに障害が発生した場合でも、2 つのドライブが構成する仮想デバイスに問題なく書き込むことができるはずです。

そこで、ドライブを強制的に故障させて、取り外そうとしました。問題なくドライブを障害ありに設定できます (ただし、IO 操作はハングしたままです)。デバイスを RAID から完全に取り外すことはできません。デバイスはビジー状態です。RAID からデバイスを完全に追い出すことができれば、IO は継続するだろうと推測していますが、これは単なる推測であり、ある種のバグに対処していると思います。

ここでは一体何が起こっているのでしょうか? バグのせいで回復不能な状況に陥っているのでしょうか?

システムではカーネル 2.6.18 が実行されているため、まったく新しいものではありませんが、ソフトウェア RAID が長い間使用されてきたことを考えると、このような問題は発生しないと思われます。

どのようなご意見でも大歓迎です。

mdadm --detail /dev/md13

/dev/md13:

    Version : 00.90.03   Creation Time : Thu Jan 21 14:21:57 2010
 Raid Level : raid0
 Array Size : 2441919360 (2328.80 GiB 2500.53 GB)    Raid Devices : 5  

合計デバイス数: 5 優先マイナー: 13 永続性: スーパーブロックは永続的

Update Time : Thu Jan 21 14:21:57 2010
      State : clean  Active Devices : 5 Working Devices : 5 

故障したデバイス: 0 予備デバイス: 0

 Chunk Size : 64K

       UUID : cfabfaee:06cf0cb2:22929c7b:7b037984
     Events : 0.3

Number   Major   Minor   RaidDevice State
   0       9        7        0      active sync   /dev/md7
   1       9        8        1      active sync   /dev/md8
   2       9        9        2      active sync   /dev/md9
   3       9       10        3      active sync   /dev/md10
   4       9       11        4      active sync   /dev/md11

失敗した RAID 出力:

/dev/md8: バージョン: 00.90.03 作成時間: 2010 年 1 月 21 日木曜日 14:20:47 Raid レベル: raid1 アレイ サイズ: 488383936 (465.76 GiB 500.11 GB) デバイス サイズ: 488383936 (465.76 GiB 500.11 GB) Raid デバイス: 2
合計デバイス数: 2 優先マイナー: 8 永続性: スーパーブロックは永続的です

Update Time : Mon Jan 25 04:52:25 2010
      State : active, degraded  Active Devices : 1 Working Devices : 1

故障したデバイス: 1 予備デバイス: 0

       UUID : 2865aefa:ab6358d8:8f82caf4:1663e806
     Events : 0.11

Number   Major   Minor   RaidDevice State
   0      65       17        0      active sync   /dev/sdr1
   1       8      209        1      faulty   /dev/sdn1

答え1

申し訳ありませんが、私がよく理解していなかったのかもしれません。cat /proc/mdstat が役に立つかもしれませんが、私が見る限り、RAID0 のデータとその基礎となる RAID1 アレイを破壊して、自ら足を撃ってしまったようです。RAID の信頼性をテストする必要がある場合は、ドライブ、ディスクを故障としてタグ付けする必要があります。基礎となるすべての RAID1 ディスクを参照する論理ブロックを破壊するのではなく、私が問題をよく理解していれば (教えてください)。

答え2

おそらく、カーネルに障害のあるドライブを削除するように依頼する必要があります。これにより、ハングした RAID が解放されます。

次のようなスクリプトで削除できますhttp://bash.cyberciti.biz/diskadmin/rescan-linux-scsi-bus/

関連情報