儘管出現錯誤,仍重新組裝 RAID0 陣列

儘管出現錯誤,仍重新組裝 RAID0 陣列

我的舊 Synology CS407(刻意)設定了 RAID0,但我還沒有設定備份系統。有四個 1TB 驅動器構成 4TB 卷。一個驅動器故障,導致板載軟體根本拒絕使用/安裝該磁碟區。據我了解,這是一個嚴重的故障,一般來說,所有 4 個磁碟機上的磁碟區都出現故障,因為 RAID0 沒有冗餘。儘管如此,我還是想嘗試在 Ubuntu 上重新組裝陣列,忽略錯誤/跳過錯誤資料並查看磁碟區處於什麼狀態。 Ubuntu 看到它的分割區表,並報告一個壞磁區。

這是結果/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

我還有兩件事可以嘗試,我正在尋求建議以了解其中一項是否有幫助:

  • 失敗並刪除/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 時)將資料區塊儲存到所有磁碟機。因此一個文件的部分內容可以位於所有 4 個磁碟上。
如果資訊非常有價值,您可以嘗試聯繫專業公司,他們可能會恢復一些資訊。但這可能要花費一大筆錢。

RAID 極有可能使用連接演算法來建立陣列。在這種情況下,您可能會恢復大量資訊。但這又不是家庭任務。

答案2

我不確定這個問題如何解決。

我嘗試的第一件事是關閉 Synology,刪除故障驅動器,然後在 Linux 機器上使用 ddrescue 盡可能克隆該驅動器。然後我會將克隆的驅動器放入 Synology 中。

然後您就可以“強制組裝”陣列。我從來沒有嘗試過,但也許使用像這樣的命令

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

關鍵是,根據 LUKS MAN 頁面(對於 Assemble)

"--force 組裝陣列,即使某些設備上的元資料似乎已過時。如果 mdadm 找不到足夠的工作設備來啟動陣列,但可以找到一些記錄為已失敗的設備,那麼它將將這些設備標記為正在運行,以便可以啟動陣列。 這僅適用於本機。

您可以在不進行 ddrescue 的情況下完成此操作 - 但如果嘗試在硬體故障的驅動器上工作,您的生活將會變得非常困難。

您不應該相信您的數據。某處可能有腐敗/不一致。

如果失敗,您可以使用 photorec 或等效工具從剩餘的良好磁碟機中取得部分資料。

答案3

最好的機會是嘗試將盡可能多的磁碟複製到新磁碟。不要使用dd,使用ddrescuedd將在第一個錯誤處停止。我已經使用 恢復了幾乎完整的磁碟ddrescue,因此可以恢復大部分資料。ddrescue可能需要很長時間。

然後,使用複製的磁碟,嘗試@davidgo 的解決方案。

您現在已經體驗到了 raid 0 的缺點。

相關內容