mdadm 沒有足夠的設備來啟動陣列 - 可以恢復嗎?

mdadm 沒有足夠的設備來啟動陣列 - 可以恢復嗎?

MD raid5 陣列似乎突然停止運作。症狀有些相似這個問題因為我收到有關沒有足夠的設備來啟動陣列的錯誤,但在我的情況下,所有三個驅動器上的事件計數是相等的。這是一個 raid 5 陣列,應該有 2 個活動驅動器和一個奇偶校驗,但是每個驅動器上的 mdadm --examine 顯示其中兩個的角色列為備用驅動器,只有一個作為活動驅動器。

我試過了mdadm --stop /dev/md1其次是mdadm --彙編 /dev/md1(包括嘗試使用 --force 和 --run 標誌)。

SMART 資料並未顯示磁碟機有任何問題(目前待處理和重新分配的磁區計數均為零),我已經嘗試過raid.wiki.kernel.org 指南下面由frostschutz 連結了涉及設定映射覆蓋設備的步驟。

然後,我假設運行以下命令將創建一個raid 陣列,然後我可以嘗試以唯讀方式掛載該陣列,並查看這是否會導致可讀檔案系統或只是亂碼(即確定我對sdf1 的猜測是否是奇偶校驗)驅動器是正確的,或者我是否應該使用 sde1 重試) - 但它給出了下面顯示的錯誤(也按照相關的循環設備進行了嘗試遺失設定--列表,結果相同)。

mdadm --create /dev/md2 --assume-clean --level=5 --chunk=64K --metadata=1.2 --data-offset=261888s --raid-devices=3 缺少 /dev/mapper/sdh1 /開發/映射器/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 --詳細資料 /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

另外,我還注意到dm安裝狀態為所有三個覆蓋提供相同的信息,並且有一個看起來可疑的數字,它可能指的是原始 raid 陣列 (16TB) 而不是單個驅動器 (8TB) 的大小 - 不確定這是否應該如此?

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

不知道如何從這一點開始嘗試建立設備,安裝並檢查檔案系統以確認我是否猜到了正確的奇偶校驗設備,使用覆蓋層來防止將任何內容寫入實際驅動器。

更新:根據下面的弗羅斯特舒茨的建議,陣列不知何故處於某種狀態,在能夠對底層驅動器執行任何操作之前,需要發出 --stop 。我之前就低估了這種可能性貓 /proc/mdstat將陣列顯示為非活動狀態,我認為這意味著它不可能是捆綁驅動器的原因,但事實並非如此(我之前也運行過 --stop,但似乎有些東西是之後完成觸發它返回到不間斷狀態)。在獲得正確的驅動器順序後(不是第一次嘗試,很高興我使用了覆蓋),陣列通過了 fsck 檢查,沒有報告錯誤,並且現在已啟動並運行,就像什麼都沒發生過一樣


執行其他診斷命令的結果:

貓 /proc/mdstat:

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 --詳細資料 /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 --彙編 /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 失敗。

相關內容