web-dev-qa-db-ja.com

mdadmがRAID5アレイの再構築を99.9%で停止

最近、QNAP TS-412NASに3つの新しいディスクをインストールしました。

これらの3つの新しいディスクは、既存のディスクと組み合わせて4ディスクのRAID5アレイにする必要があるため、移行プロセスを開始しました。

複数回試行した後(それぞれ約24時間かかります)、移行は機能しているように見えましたが、NASが応答しなくなりました。

その時点で、NASをリセットしました。そこからすべてが下り坂になりました。

  • NASは起動しますが、最初のディスクを失敗としてマークし、すべてのアレイから削除して、それらをぐったりさせます。
  • ディスクでチェックを実行しましたが、問題は見つかりませんでした(とにかく、ほとんど新しいので奇妙です)。
  • 管理インターフェイスにはリカバリオプションが用意されていなかったため、手動で行うだけだと思いました。

mdadm/dev/md4/dev/md13/dev/md9)を使用してすべてのQNAP内部RAID1アレイを正常に再構築し、RAID5アレイのみを残しました。 /dev/md0

次のコマンドを使用して、これを複数回試しました。

mdadm -w /dev/md0

(アレイはNASから/dev/sda3を削除した後)によって読み取り専用でマウントされたため必須です。ROモードではアレイを変更できません)。

mdadm /dev/md0 --re-add /dev/sda3

その後、アレイは再構築を開始します。ただし、システムが非常に遅いか応答しない間、99.9%で停止します。 (SSHを使用したログインはほとんどの場合失敗します)。

物事の現状:

[admin@nas01 ~]# cat /proc/mdstat                            
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
md4 : active raid1 sdd2[2](S) sdc2[1] sdb2[0]
      530048 blocks [2/2] [UU]

md0 : active raid5 sda3[4] sdd3[3] sdc3[2] sdb3[1]
      8786092608 blocks super 1.0 level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
      [===================>.]  recovery = 99.9% (2928697160/2928697536) finish=0.0min speed=110K/sec

md13 : active raid1 sda4[0] sdb4[1] sdd4[3] sdc4[2]
      458880 blocks [4/4] [UUUU]
      bitmap: 0/57 pages [0KB], 4KB chunk

md9 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
      530048 blocks [4/4] [UUUU]
      bitmap: 2/65 pages [8KB], 4KB chunk

unused devices: <none>

2928697160/2928697536で何時間も停止しています)

[admin@nas01 ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 01.00.03
  Creation Time : Thu Jan 10 23:35:00 2013
     Raid Level : raid5
     Array Size : 8786092608 (8379.07 GiB 8996.96 GB)
  Used Dev Size : 2928697536 (2793.02 GiB 2998.99 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Mon Jan 14 09:54:51 2013
          State : clean, degraded, recovering
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

 Rebuild Status : 99% complete

           Name : 3
           UUID : 0c43bf7b:282339e8:6c730d6b:98bc3b95
         Events : 34111

    Number   Major   Minor   RaidDevice State
       4       8        3        0      spare rebuilding   /dev/sda3
       1       8       19        1      active sync   /dev/sdb3
       2       8       35        2      active sync   /dev/sdc3
       3       8       51        3      active sync   /dev/sdd3

/mnt/HDA_ROOT/.logs/kmsgを調べた後、実際の問題は代わりに/dev/sdb3にあるように見えることがわかりました。

<6>[71052.730000] sd 3:0:0:0: [sdb] Unhandled sense code
<6>[71052.730000] sd 3:0:0:0: [sdb] Result: hostbyte=0x00 driverbyte=0x08
<6>[71052.730000] sd 3:0:0:0: [sdb] Sense Key : 0x3 [current] [descriptor]
<4>[71052.730000] Descriptor sense data with sense descriptors (in hex):
<6>[71052.730000]         72 03 00 00 00 00 00 0c 00 0a 80 00 00 00 00 01 
<6>[71052.730000]         5d 3e d9 c8 
<6>[71052.730000] sd 3:0:0:0: [sdb] ASC=0x0 ASCQ=0x0
<6>[71052.730000] sd 3:0:0:0: [sdb] CDB: cdb[0]=0x88: 88 00 00 00 00 01 5d 3e d9 c8 00 00 00 c0 00 00
<3>[71052.730000] end_request: I/O error, dev sdb, sector 5859367368
<4>[71052.730000] raid5_end_read_request: 27 callbacks suppressed
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246784 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246792 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246800 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246808 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246816 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246824 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246832 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246840 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246848 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5:md0: read error not correctable (sector 5857246856 on sdb3).
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.
<4>[71052.730000] raid5: some error occurred in a active device:1 of md0.

上記のシーケンスは、585724XXXX範囲のさまざまな(ランダム?)セクターに対して一定の速度で繰り返されます。

私の質問は次のとおりです。

  • システムがストールするほど多くのリソースを使用しているのに、なぜそれが終わり近くでストールするのですか(md0_raid5およびmd0_resyncプロセスはまだ実行中です)。
  • 失敗/ストールの原因を確認する方法はありますか? <-sdb3エラーが原因である可能性があります。
  • 3TBのデータを失うことなく操作を完了するにはどうすればよいですか? (sdb3の厄介なセクターをスキップするのと同じように、そのままのデータを保持しますか?)
3
Remco Overdijk

障害のあるディスクが何らかのステータスを返す必要があるため、終了する前にストールする可能性がありますが、取得されていません。

とにかく、すべてのデータは4つのディスクのうち3つだけで無傷です(または無傷である必要があります)。

障害のあるディスクをアレイから排出すると言うので、劣化モードではありますが、まだ実行されているはずです。

マウントできますか?

次の手順を実行して、アレイを強制的に実行できます。

  • 配列の詳細を出力します:mdadm -D /dev/md0
  • 配列を停止します:mdadm --stop /dev/md0
  • 配列を再作成し、mdにそれを受け入れるように強制します: `` mdadm -C -n md0 --assume-clean/dev/sd [abcd] 3`

この後者のステップは、次の場合に限り完全に安全です。

  • 配列に書き込まず、
  • 以前とまったく同じ作成パラメータを使用しました。

その最後のフラグは、再構築を防ぎ、整合性テストをスキップします。
これで、マウントしてデータを回復できるようになります。

2
adaptr

明らかなアプローチは、障害のあるディスクを交換し、アレイを再作成し、アレイ拡張操作の前に作成したバックアップを再生することです。

しかし、あなたにはこのオプションがないように見えるので、これは次善の策です:

  • すべてのディスクのrawスペースを収容するのに十分なスペースを備えたLinuxシステムを入手してください(数値が正しければ12 TB)
  • ディスクからこのシステムにデータをコピーします。宛先はファイルまたはブロックデバイスである可能性があります。mdraidにとってはそれほど重要ではありません。あなたの欠陥の場合sdb3デバイスデータをコピーするために単純なddrescueの代わりにddを使用する必要があるかもしれません。
  • そこからアレイを再構築して再構築してみてください

また、RAID 5アレイの複数デバイス障害の状況を評価するために何ができるかについてのヒントについては、 このブログページ を参照してください。

3
the-wabbit