エラーにもかかわらず RAID0 アレイを再構築する

エラーにもかかわらず RAID0 アレイを再構築する

私の古い Synology CS407 は (意図的に) RAID0 でセットアップされており、バックアップ システムはまだセットアップされていませんでした。4 台の 1TB ドライブで 4TB のボリュームが構成されています。1 台のドライブに障害が発生したため、オンボード ソフトウェアがボリュームの使用/マウントをまったく拒否しました。これは重大な障害であり、RAID0 には冗長性がないため、一般的に 4 台のドライブすべてにわたるボリュームに障害が発生することは理解しています。それでも、Ubuntu でアレイを再構築し、エラーを無視/不良データをスキップして、ボリュームの状態を確認したいと思います。予想どおり、障害が発生した 1 台のディスクで問題が発生しています。Ubuntu はパーティション テーブルを確認し、不良セクターを 1 つ報告します。

結果は次のとおりです/proc/mdstat

Personalities : 
md2 : inactive dm-3[3](S) dm-2[2](S) dm-1[1](S) dm-0[0](S)
      3901770794 blocks super 1.1
       
unused devices: <none>

そしてmdadm --examine --scan

ARRAY /dev/md/2  metadata=1.1 UUID=442ee8f0:7c679b96:de0a0544:f72b1167 name=2

LVM データは各ディスクのパーティション 3 にあります。 で再構成するとmdadm --assemble --run --force --verbose /dev/md2 /dev/sd[cdef]3次のようになります。

mdadm: looking for devices for /dev/md2
mdadm: /dev/sdc3 is identified as a member of /dev/md2, slot 0.
mdadm: /dev/sdd3 is identified as a member of /dev/md2, slot 32769.
mdadm: /dev/sde3 is identified as a member of /dev/md2, slot 2.
mdadm: /dev/sdf3 is identified as a member of /dev/md2, slot 3.
mdadm: no uptodate device for slot 1 of /dev/md2
mdadm: added /dev/sde3 to /dev/md2 as 2
mdadm: added /dev/sdf3 to /dev/md2 as 3
mdadm: added /dev/sdc3 to /dev/md2 as 0
mdadm: failed to RUN_ARRAY /dev/md2: Invalid argument
mdadm: Not enough devices to start the array.

/dev/md2これにより、Ubuntu で RAID デバイスとして表示される役に立たない が作成されます。stopを再度組み立て直す前に、これを実行する必要があります。 のスロット番号が奇妙に思えます/dev/sdd3

他に試せることが 2 つあるのですが、どちらかが役立つかどうかについてアドバイスを求めています。

  • 失敗して削除し/dev/sdd3、再度追加する
  • 予備の 1TB ディスクがあります。ディスク コピーを作成してdd古いディスクを失敗させ、新しいディスクを追加することができます。セクター単位でコピーすると、新しいディスクが成功する可能性が高くなるかどうか疑問に思っています。異なる UUID に基づいて試行されますか?

編集 - 出力mdadm --examine /dev/sdd3:

/dev/sdd3:
          Magic : a92b4efc
        Version : 1.1
    Feature Map : 0x0
     Array UUID : 442ee8f0:7c679b96:de0a0544:f72b1167
           Name : 2
  Creation Time : Sun Feb 13 00:14:43 2022
     Raid Level : raid0
   Raid Devices : 4

 Avail Dev Size : 1950885397 (930.25 GiB 998.85 GB)
    Data Offset : 8 sectors
   Super Offset : 0 sectors
          State : active
    Device UUID : 23292ce9:221ebbfa:ea131c60:7888bc0c

    Update Time : Sun Feb 20 19:02:34 2022
       Checksum : e4ebe933 - correct
         Events : 1

     Chunk Size : 64K

   Device Role : Active device 32769
   Array State : A.AA ('A' == active, '.' == missing, 'R' == replacing)

答え1

これは深刻な問題ではありません。これは壊滅的な問題です。RAID0 (ストリッピング RAID として使用した場合) は、すべてのドライブにデータの断片を保存します。したがって、1 つのファイルの一部が 4 つのディスクすべてに存在する可能性があります。
情報が非常に貴重な場合は、一部の情報を回復できる専門会社に問い合わせることができます。ただし、これには莫大な費用がかかる可能性があります。

RAID が連結アルゴリズムを使用してアレイを作成する可能性はわずかです。その場合、かなりの量の情報を回復できる可能性があります。しかし、これもまた家庭でできる作業ではありません。

答え2

この問題がどの程度解決可能かは分かりません。

私が最初に試みるのは、Synology の電源をオフにし、故障したドライブを取り外し、Linux ボックスで ddrescue を使用して、できる限りそのドライブのクローンを作成することです。次に、クローンしたドライブを Synology に挿入します。

そうすれば、配列を「強制的にアセンブル」できるかもしれません。私はまだ試したことがありませんが、次のようなコマンドでできるかもしれません。

mdadm --force --assemble /dev/md2 /dev/sdc3 /dev/sdd3 /dev/sde3 /dev/sdf3

LUKS MANページによれば、鍵となるのは(アセンブルの場合)

「--force 一部のデバイスのメタデータが古くなっている場合でもアレイをアセンブルします。mdadm がアレイを起動するのに十分な動作デバイスを見つけられないが、障害が発生したと記録されているデバイスがいくつか見つかった場合、それらのデバイスを動作中としてマークし、アレイを起動できるようにします。これはネイティブでのみ機能します。外部メタデータの場合、ダーティな劣化 RAID 4、5、6 を起動できます。--force を起動する必要があるアレイには、データ破損が含まれている可能性があります。慎重に使用してください。」"

ddrescue を実行せずにこれを行うこともできますが、ハードウェア障害のあるドライブで作業しようとすると、作業が困難になるだけでなく、さらに困難になります。

データを信頼すべきではありません。どこかに破損や不整合がある可能性があります。

これが失敗した場合は、photorec または同等のツールを使用することで、残りの正常なドライブからデータの一部を取得できる可能性があります。

答え3

ディスクのできるだけ多くの部分を新しいディスクにコピーしてみるのが最善策です。 ではなくddを使用してくださいddrescueddは最初のエラーで停止します。 でほぼ完全なディスクを復元したのでddrescue、ほとんどのデータを復元できます。 にはddrescue時間がかかる場合があります。

次に、コピーしたディスクを使用して、@davidgo の解決策を試してください。

これで、RAID 0 の欠点を体験できました。ディスク容量が本当に不足していない限り、RAID 5 への移行を検討してください。

関連情報