NAS 上的 RAID5 修復凍結,現在嘗試使用 mdadm 進行恢復
我正在執行帶有 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
.