
我的 raid6 陣列在我成長後重新啟動時消失了。我相信問題是在整個磁碟而不是分割區的情況下增長了兩倍。有人建議驅動器未正確識別的另一個可能原因是我在讀取到新陣列之前沒有將超級區塊歸零。它可以是兩者的結合嗎?以下是發出的命令(從歷史記錄中提取,格式化為具有一致的磁碟機號碼):
mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sd[b-c]1
#將 ROC raid 10 完整備份到這些磁碟機上,將大部分檔案複製到其他磁碟機後,檢查以確保重新啟動後運作正常。
mdadm --create /dev/md1 --level=6 --raid-devices=4 /dev/sd[d-g]1
#時間傳遞到同步驅動器,然後從 md0 同步數據,重新啟動正常。
mdadm -S /dev/md0
mdadm /dev/md0 -r /dev/sd[b-c]
#注意下面缺少的分割區號碼。
mdadm /dev/md1 --add /dev/sdb
mdadm /dev/md1 --add /dev/sdc
mdadm -list
mdadm --detail /dev/md1
mdadm --grow --raid-devices=6 --backup-file=/media/FastRaid/md1_grow.bak /dev/md1
重新啟動後,raid6 消失並被 2 個 raid0 陣列取代,其中一個處於活動狀態 (sdb/sdc),一個處於非活動狀態 (sdd-sdg)。以下是我透過檢查超級塊得到的結果:
/dev/sdb1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 501c08da:5069a3d8:b2982a5d:ab56c37c
Name : tim-server:0 (local to host tim-server)
Creation Time : Tue Dec 13 22:01:10 2022
Raid Level : raid0
Raid Devices : 2
Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
State : clean
Device UUID : e8db27d6:0dbd1ac5:4456c304:0b43f09c
Update Time : Tue Dec 13 22:01:10 2022
Bad Block Log : 512 entries available at offset 8 sectors
Checksum : dfd187c0 - correct
Events : 0
Chunk Size : 512K
Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 501c08da:5069a3d8:b2982a5d:ab56c37c
Name : tim-server:0 (local to host tim-server)
Creation Time : Tue Dec 13 22:01:10 2022
Raid Level : raid0
Raid Devices : 2
Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
State : clean
Device UUID : 3ce84b05:607f8565:456e7f83:88b83052
Update Time : Tue Dec 13 22:01:10 2022
Bad Block Log : 512 entries available at offset 8 sectors
Checksum : e35ce3e5 - correct
Events : 0
Chunk Size : 512K
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
Name : tim-server:0 (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
Raid Level : raid6
Raid Devices : 6
Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
State : clean
Device UUID : eaf10189:940aeaf8:947efe82:5d0e4aea
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : e38a1bd9 - correct
Events : 26630
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
Name : tim-server:0 (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
Raid Level : raid6
Raid Devices : 6
Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
State : clean
Device UUID : 5c34a9c7:bcc3f190:d1719a9c:8aa2b722
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : c429edf - correct
Events : 26630
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
Name : tim-server:0 (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
Raid Level : raid6
Raid Devices : 6
Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
State : clean
Device UUID : 12d1e3a8:b8749f59:654bcca4:4f4750df
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : 7af56ae7 - correct
Events : 26630
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdg1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
Name : tim-server:0 (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
Raid Level : raid6
Raid Devices : 6
Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
State : clean
Device UUID : 72085967:835efe92:cb268a64:4d192b52
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : a5623977 - correct
Events : 26630
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
我在某個時候停用了 md0,所以我用mdadm -A -o /dev/md0 /dev/sdb1 /dev/sdc1
.這是/proc/mdstat
現在:
cat /proc/mdstat
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active (read-only) raid0 sdb1[0] sdc1[1]
7813770240 blocks super 1.2 512k chunks
md1 : inactive sdf1[0](S) sde1[3](S) sdd1[1](S) sdg1[2](S)
15627541790 blocks super 1.2
unused devices: <none>
如果我嘗試,mount /dev/md0 /media/tmp_md_raid
我會得到:mount: /media/tmp_md_raid: wrong fs type, bad option, bad superblock on /dev/md126, missing codepage or helper program, or other error.
。如果我嘗試:mdadm -A -o /dev/md1 /dev/sdf1 /dev/sde1 /dev/sdd1 /dev/sdg1
我得到:
mdadm: /dev/sdf1 is busy - skipping
mdadm: /dev/sde1 is busy - skipping
mdadm: /dev/sdd1 is busy - skipping
mdadm: /dev/sdg1 is busy - skipping
所有 smartctl 都說所有驅動器都很好。我不確定我是否應該先嘗試 mdadm --assemble --force 還是先嘗試 mdadm --create --assume-clean 。我應該嘗試第二個 -o 設置,看看是否可以重新建立陣列並查看數據,而不會破壞恢復?感謝您的任何建議。
答案1
您似乎有 6 個設備陣列 (AAAAAA),但只有 4 個組件設備可用 ( /dev/sd[defg]1
)。容量計算證實了這一點:需要6塊4TB的磁碟才能建立16TB的RAID6陣列。
由於這是 RAID6 並且所有 4 個可用設備似乎都是同步的,因此它可以運行,但只能在所謂的完全降解模式。在此模式下,要讀取任何區塊,它需要從所有磁碟機讀取條帶(這是I/O 密集型)並執行重建(它使用涉及CPU 密集型伽羅瓦域計算的奇偶校驗綜合症),並寫入一個區塊需要讀取整個條帶,計算新的奇偶校驗綜合症並寫入至少三個裝置(總體上 I/O 更加密集)。
如果陣列正在運作且某些裝置在使用過程中發生故障,Linux 沒有其他辦法,只能回退到此,這就是 RAID 陣列的全部意義。正如您可能已經猜到的,這種狀態下的效能非常糟糕,而且遺失資料的風險非常高,這就是為什麼您不應該在這種狀態下長時間運行陣列。理想情況下,除了工作設備之外,您還提供熱備件,以便在檢測到任何組件故障時能夠立即開始重建。
但在啟動過程中,它不知道某些設備是否永久丟失,或者由於交錯旋轉或其他初始化延遲而尚不可用。過早激活陣列將使較晚的設備失去同步並強制進行長時間的重新同步,在此期間陣列將經歷如上所述的最差性能特徵。這促使人們等待較晚出現的設備。預設情況下,Linux 不會自動啟動部分可用的陣列,即使有足夠的設備至少在某些降級模式下運行它也是如此。
但作為管理員,您可以力量它這樣做。為了這,重新組裝數組--force
:
mdadm --stop /dev/md1
mdadm --force --assemble /dev/md1 /dev/sd[defg]1
更準確地說,如果可用設備少於目前設備的超級區塊中記錄的數量(在您的情況下,記錄了所有設備上次都可用),則它不會自動組裝陣列;當您使用mdadm -f
/順序正確刪除設備時mdadm -r
,或強制組裝它時,它會記錄下來,然後陣列將在以下位置自動組裝相同的自動降級狀態。
如果該數組不包含有價值的數據,最好重新建立它。初始化感覺快點而不是增加設備和遭受重建。