Data-Recovery

NAS 上的 RAID5 修復凍結,現在嘗試使用 mdadm 進行恢復

  • December 1, 2019

我正在執行帶有 4x4TB 硬碟的 Zyxxel NAS540。幾天前 NAS 開始發出嗶嗶聲,我看到 RAID 處於降級狀態。由於其中一個驅動器的 SMART 值非常差,我關閉了 NAS,訂購了一個替換磁碟,插入它並通過 Web 界面開始修復過程。

幾天后(週末去了),我想檢查進度,無法再登錄網路界面。NAS 也沒有顯示磁碟活動(LED 既沒有閃爍也沒有噪音)。我嘗試通過 ssh 和 mdadm 獲取狀態,它說 3 個驅動器狀態乾淨,一個處於備用狀態。所以就像在成功修復之前一樣?因為沒有訪問權限,也沒有明顯的磁碟訪問權限,所以我重啟了 NAS。

現在網路界面再次工作,但說“降低音量”。沒有辦法在菜單中修復它。此外,當我點擊磁碟時,它說磁碟 1,2 和 3 是“熱備件”。磁碟 4 沒有狀態。我更換的磁碟是磁碟 3。

從那時起,我將磁碟放入我的 PC 並執行了一些命令以了解情況,因為我也失去了對 NAS 的 ssh 訪問權限。這些是輸出:

貓 /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
unused devices: <none>

sudo mdadm –examine / dev / sd$$ abcdef $$3

/dev/sda3:
         Magic : a92b4efc
       Version : 1.2
   Feature Map : 0x0
    Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
          Name : NAS540:2
 Creation Time : Tue Nov 24 23:18:19 2015
    Raid Level : raid5
  Raid Devices : 4

Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
    Array Size : 11708660160 (11166.25 GiB 11989.67 GB)
 Used Dev Size : 7805773440 (3722.08 GiB 3996.56 GB)
   Data Offset : 262144 sectors
  Super Offset : 8 sectors
  Unused Space : before=262064 sectors, after=384 sectors
         State : clean
   Device UUID : ac8c7cd6:a8f3d86e:cb210c2b:bcdfc2eb

   Update Time : Thu Nov 14 16:31:43 2019
      Checksum : 667f486f - correct
        Events : 1210

        Layout : left-symmetric
    Chunk Size : 64K

  Device Role : Active device 3
  Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdb3:
         Magic : a92b4efc
       Version : 1.2
   Feature Map : 0x0
    Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
          Name : NAS540:2
 Creation Time : Tue Nov 24 23:18:19 2015
    Raid Level : raid5
  Raid Devices : 4

Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
    Array Size : 11708660160 (11166.25 GiB 11989.67 GB)
 Used Dev Size : 7805773440 (3722.08 GiB 3996.56 GB)
   Data Offset : 262144 sectors
  Super Offset : 8 sectors
  Unused Space : before=262064 sectors, after=384 sectors
         State : active
   Device UUID : 1bbec5f9:dec5a68a:d07cfdbe:e05d0cb4

   Update Time : Mon Nov 11 18:02:11 2019
      Checksum : 1cd3509 - correct
        Events : 74

        Layout : left-symmetric
    Chunk Size : 64K

  Device Role : Active device 2
  Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd3:
         Magic : a92b4efc
       Version : 1.2
   Feature Map : 0x0
    Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
          Name : NAS540:2
 Creation Time : Tue Nov 24 23:18:19 2015
    Raid Level : raid5
  Raid Devices : 4

Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
    Array Size : 11708660736 (11166.25 GiB 11989.67 GB)
   Data Offset : 262144 sectors
  Super Offset : 8 sectors
  Unused Space : before=262064 sectors, after=0 sectors
         State : clean
   Device UUID : 78f30bc0:b68074ee:9a3a223c:93decfd4

   Update Time : Sun Nov 17 23:41:48 2019
      Checksum : c9cda273 - correct
        Events : 1230

        Layout : left-symmetric
    Chunk Size : 64K

  Device Role : Active device 0
  Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde3:
         Magic : a92b4efc
       Version : 1.2
   Feature Map : 0x0
    Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
          Name : NAS540:2
 Creation Time : Tue Nov 24 23:18:19 2015
    Raid Level : raid5
  Raid Devices : 4

Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
    Array Size : 11708660736 (11166.25 GiB 11989.67 GB)
   Data Offset : 262144 sectors
  Super Offset : 8 sectors
  Unused Space : before=262064 sectors, after=0 sectors
         State : clean
   Device UUID : 85b74994:874b016e:609081d6:4cfcd0ee

   Update Time : Sun Nov 17 23:41:48 2019
      Checksum : d1f8a2d1 - correct
        Events : 1230

        Layout : left-symmetric
    Chunk Size : 64K

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

sudo mdadm –examine –brief –scan –config=partitions

ARRAY /dev/md/2  metadata=1.2 UUID=73e88019:b7cf694c:8584cbaa:47f57992 name=NAS540:2
ARRAY /dev/md/0  metadata=1.2 UUID=b705c51b:2360cd8e:6b81c03f:2072f947 name=NAS540:0
ARRAY /dev/md/1  metadata=1.2 UUID=186ed461:615007c3:ab9e4576:7b5f7084 name=NAS540:1
ARRAY /dev/md/2  metadata=1.2 UUID=73e88019:b7cf694c:8584cbaa:47f57992 name=NAS540:2

sudo mdadm –assemble –scan

mdadm: Devices UUID-73e88019:b7cf694c:8584cbaa:47f57992 and UUID-73e88019:b7cf694c:8584cbaa:47f57992 have the same name: /dev/md/2
mdadm: Duplicate MD device names in conf file were found.

所以現在我想知道接下來的步驟應該是什麼樣的。我發現了一些類似的情況,其中手動編輯 /etc/mdadm.conf 以消除重複條目。

在其他情況下,RAID 是手動組裝的(例如 mdadm–assemble /dev/mdX /dev/sda3 /dev/sdb3 …),但在這裡我不知道我的 RAID 名稱(mdX)。

有什麼想法可以繼續嗎?

PS:是的,我有一個關鍵文件的備份,但也可以恢復其他所有文件。

我現在更進一步了。我設法使用重新組裝陣列

mdadm --create --assume-clean --level=5  --raid-devices=4 --metadata=1.2 --chunk=64K  --layout=left-symmetric /dev/md2 /dev/sdd3 /dev/sde3 missing /dev/sda3

然後我將分區佈局複製到使用

sfdisk -d

最後加入了新磁碟

sudo mdadm --manage /dev/md2 --add /dev/sdb3

mdadm –details 的輸出將每個設備顯示為“乾淨”,RAID 狀態為“AAAA”。現在,當我嘗試掛載突襲時,出現以下錯誤:

sudo mount /dev/md/2 /media/raid
mount: /media/raid: wrong fs type, bad option, bad superblock on /dev/md2, missing codepage or helper program, or other error.

現在Data Offset有差異,懷疑是來自header中的點陣圖。

Data Offset : 262144 sectors
Data Offset : 264192 sectors

mdadm 手冊頁說:

When creating an array on devices which are 100G or larger, mdadm automatically adds an internal bitmap as it will usually be beneficial. This can be suppressed with --bitmap=none or by selecting a different consistency policy with --consistency-policy.

所以我應該使用--bitmap=none. 我可以通過像手冊頁所說的那樣執行它來解決這個問題,還是會破壞一些東西?

If the word none is given with --grow mode, then any bitmap that is present is removed.

我設法通過手動指定數據偏移來重新創建數組。

sudo mdadm --create --assume-clean --level=5  --raid-devices=4 --metadata=1.2 --chunk=64K  --layout=left-symmetric --data-offset=262144s /dev/md2 /dev/sdd3 /dev/sde3 /dev/sdc3 /dev/sda3

我現在可以掛載它並訪問數據。它也適用於 NAS。

mdadm --create如編輯中所述,我通過使用正確的數據偏移量再次執行命令解決了我的問題。我的突襲再次變得可讀。由於我已經在我的新磁碟 3 上執行了恢復,所以我能夠執行我的 OP 中所述的命令,但假設您將處於失敗的初始位置,您將執行:

sudo mdadm --create --assume-clean --level=5  --raid-devices=4 --metadata=1.2 --chunk=64K  --layout=left-symmetric --data-offset=262144s /dev/md2 /dev/sdd3 /dev/sde3 missing /dev/sda3

其次是

sudo mdadm --manage /dev/md2 --add /dev/sdb3

當然使用你自己的說明符而不是sdbX.

引用自:https://unix.stackexchange.com/questions/553055