mdadm アレイを起動するためのデバイスが足りません - 回復は可能ですか?

mdadm アレイを起動するためのデバイスが足りません - 回復は可能ですか?

MD raid5アレイが突然動作しなくなったようです。症状は次のようなものと似ています。この問題アレイを起動するにはデバイスが足りないというエラーが表示されますが、私のケースでは、3 つのドライブのイベント数は同じです。これは、2 つのアクティブ ドライブと 1 つのパリティを持つ RAID 5 アレイですが、各ドライブで mdadm --examine を実行すると、2 つのドライブの役割がスペアとしてリストされ、1 つのドライブのみがアクティブ ドライブとしてリストされていることが示されます。

私はもう試したmdadm --stop /dev/md1に続くmdadm --assemble /dev/md1(--force および --run フラグを使用した試行を含む)。

SMARTデータはドライブに問題がないことを示しています(そして現在保留中および再割り当てされたセクター数はすべてゼロです)。raid.wiki.kernel.org ガイドfrostschutz が以下にリンクした、マップされたオーバーレイ デバイスの設定手順を参照してください。

次のコマンドを実行すると、RAIDアレイが作成され、それを読み取り専用でマウントして、読み取り可能なファイルシステムになるか、文字化けした混乱になるかを確認できると想定していました(つまり、sdf1がパリティドライブであるという推測が正しいか、sde1で再試行する必要があるかを判断するため)が、代わりに以下に示すエラーが表示されます(関連するループデバイスでも試しました)。losetup --list、結果は同じです)。

mdadm --create /dev/md2 --assume-clean --level=5 --chunk=64K --metadata=1.2 --data-offset=261888s --raid-devices=3 /dev/mapper/sdh1 /dev/mapper/sdf1 がありません

mdadm: super1.x cannot open /dev/mapper/sdh1: Device or resource busy
mdadm: /dev/mapper/sdh1 is not suitable for this array.
mdadm: super1.x cannot open /dev/mapper/sdf1: Device or resource busy
mdadm: /dev/mapper/sdf1 is not suitable for this array.
mdadm: create aborted

また、mdadm --detail /dev/md1以前は以下の出力が得られましたが、現在は次のようになります。

/dev/md1:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 3
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 3

              Name : bob:1  (local to host bob)
              UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
            Events : 373364

    Number   Major   Minor   RaidDevice

       -     253       11        -        /dev/dm-11
       -     253       10        -        /dev/dm-10
       -     253        9        -        /dev/dm-9

また、私は気づいたdmsetup ステータス3 つのオーバーレイすべてに同じ情報が表示され、個々のドライブ (8TB) ではなく元の RAID アレイのサイズ (16TB) を参照していると思われる数字が表示されますが、これが正しいかどうかはわかりません。

sde1: 0 15627528888 snapshot 16/16777216000 16
sdh1: 0 15627528888 snapshot 16/16777216000 16
sdf1: 0 15627528888 snapshot 16/16777216000 16

この時点で、デバイスの作成、マウント、ファイルシステムの検査を試み、正しいパリティ デバイスを推測したかどうかを確認し、オーバーレイを使用して実際のドライブに何も書き込まれないようにする方法がわかりません。

アップデート: frostschutzの以下の提案によると、アレイは何らかの状態にあり、基盤となるドライブで何かを行う前に--stopを発行する必要がある状態でした。私は以前、その可能性を否定していました。/proc/mdstat を cat するアレイが非アクティブとして表示されていたので、ドライブを拘束しているのはアレイではないだろうと想定していましたが、実際はそうではありませんでした(以前にも --stop を実行しましたが、その後何かが行われたために停止していない状態に戻ったようです)。ドライブの順序を正しくした後(最初の試みではなく、オーバーレイを使用していてよかったです)、アレイは fsck チェックに合格し、エラーは報告されませんでした。何も起こらなかったかのように稼働しています


他の診断コマンドを実行した結果:

/proc/mdstat を cat する:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md1 : inactive sdh1[1](S) sde1[3](S) sdf1[0](S)
      23440900500 blocks super 1.2

mdadm --detail /dev/md1:

/dev/md1:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 3
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 3

              Name : bob:1  (local to host bob)
              UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
            Events : 373364

    Number   Major   Minor   RaidDevice

       -       8      113        -        /dev/sdh1
       -       8       81        -        /dev/sdf1
       -       8       65        -        /dev/sde1

dmesgに次の行が表示されるmdadm --assemble /dev/md1:

md/raid:md1: device sdh1 operational as raid disk 1
md/raid:md1: not enough operational devices (2/3 failed)
md/raid:md1: failed to run raid set.
md: pers->run() failed ..

そしてそのmdadm --検査s

/dev/sde1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
           Name : bob:1  (local to host bob)
  Creation Time : Mon Mar  4 22:10:29 2019
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 15627267000 (7451.66 GiB 8001.16 GB)
     Array Size : 15627266688 (14903.32 GiB 16002.32 GB)
  Used Dev Size : 15627266688 (7451.66 GiB 8001.16 GB)
    Data Offset : 261888 sectors
   Super Offset : 8 sectors
   Unused Space : before=261808 sectors, after=312 sectors
          State : clean
    Device UUID : e856f539:6a1b5822:b3b8bfb7:4d0f4741

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun May 30 00:22:45 2021
  Bad Block Log : 512 entries available at offset 40 sectors
       Checksum : 9b5703bc - correct
         Events : 373364

         Layout : left-symmetric
     Chunk Size : 64K

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

/dev/sdf1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
           Name : bob:1  (local to host bob)
  Creation Time : Mon Mar  4 22:10:29 2019
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 15627267000 (7451.66 GiB 8001.16 GB)
     Array Size : 15627266688 (14903.32 GiB 16002.32 GB)
  Used Dev Size : 15627266688 (7451.66 GiB 8001.16 GB)
    Data Offset : 261888 sectors
   Super Offset : 8 sectors
   Unused Space : before=261800 sectors, after=312 sectors
          State : clean
    Device UUID : 7919e56f:2e08430e:95a4c4a6:1e64606a

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun May 30 00:22:45 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : d54ff3e1 - correct
         Events : 373364

         Layout : left-symmetric
     Chunk Size : 64K

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

/dev/sdh1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 07ff9ba9:e8100e68:94c12c1a:3d7ad811
           Name : bob:1  (local to host bob)
  Creation Time : Mon Mar  4 22:10:29 2019
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 15627267000 (7451.66 GiB 8001.16 GB)
     Array Size : 15627266688 (14903.32 GiB 16002.32 GB)
  Used Dev Size : 15627266688 (7451.66 GiB 8001.16 GB)
    Data Offset : 261888 sectors
   Super Offset : 8 sectors
   Unused Space : before=261800 sectors, after=312 sectors
          State : clean
    Device UUID : 0c9a8237:7e79a439:d4e35b31:659f3c86

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun May 30 00:22:45 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 6ec2604b - correct
         Events : 373364

         Layout : left-symmetric
     Chunk Size : 64K

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


答え1

変な感じがします。mdadm --オーバーレイ付きで作成この場合は (正しいデータ オフセット、チャンク サイズ、ドライブ順序で)、最初のドライブが欠落している可能性があります。最初のドライブが最初に故障したようです...

基本的に、ドライブがデバイス ロールを記憶しなくなると、従来の方法では回復できません。どちらも「スペア」と表示されるため、どちらのドライブがロール 0 だったのか、ロール 2 だったのか、あるいはまったくロールがなかったのかは不明です (一部の RAID5 セットアップでは、何らかの理由でスペアが実際に使用されます)。したがって、ドライブに有用なデータがあるかどうか、またある場合はどのような順序になっているのかは不明です。自分で判断する必要があります。

ついでに、SMART データも確認し、ddrescueこれらのドライブのいずれかに RAID 障害の原因となった可能性のある再割り当て済みまたは保留中のセクターが実際にあるかどうかを最初に確認してください。

関連情報