
我有所有重要資料的備份。最後需要進行恢復。但我想在走這條路之前先嘗試一些東西,這是一個很好的情況來了解我在這裡使用的所有東西。
我有一個 mpt sas 控制器,具有 8 個 SATA 通道,連接到配置的兩個內部 2,5" 磁碟托架。其中兩個用於 SSD 驅動器,僅用於快取 lvm 磁碟區。
6 個 1 TB 磁碟用於分割區 3 上的資料部分,配置為 RAID5 軟陣列。
其中兩個已用於分割區 1 上的引導部分和分割區 2 上的根部分。兩個 bootpart 都是使用 luks 加密的 RAID1,並且有一個帶有多個 lvs 的 lvm vg xenrootdg。如所述,所有 6 個資料部分都用作 RAID5。 raid 卷經過 luks 加密,並且在這些卷上有一個帶有 vg xendatadg 的 lvm。僅在 RAID5 磁碟區上出現問題才能啟動它們。
主要問題是容納 6 個 1TB 光碟中的 4 個的 4 個光碟盒多次斷電。由於刪除了光碟,因此必須新增光碟,也許接近尾聲時必須重新同步新光碟。這還不清楚。
我可以在第一次失敗後啟動該卷,並可以開始重新同步。但問題再次出現,因此這些 RAID 磁碟區再次出現故障。
第二次故障時,系統無法讀取特殊磁碟的磁區,並且由於其中一張故障磁碟的某些磁區記錄了永久讀取錯誤,RAID5 已降級。
同時,核心以新名稱重新註冊光碟(例如,從 sde 重新命名為 sdk 等)。
系統重新啟動後,我檢查了哪張光碟被記錄為故障,並透過比較序號找到了它們。將光碟新增至 /dev/zero 沒有顯示任何問題,因此我嘗試再次重新同步,但出現了相同的問題。
現在我意識到這可能是光碟托架電源的問題,因此我取出了所有光碟並至少將它們連接到主機板上現有的 SATA 連接埠上。我為 sas 控制器添加了更多光碟,這樣我現在就可以使用 dd 在分割區上進行備份。
我能夠將所有相關分區複製到兩張新光碟上,因此讀取不是問題。
也僅最大。 lvm vg 內的 3 個磁碟區已被使用。所以大多數 lvs 應該仍處於乾淨狀態,因為在我刪除第一個光碟 #2 (sdl3) 後尚未修改。
我檢查了 smartctl,因此註冊的光碟本身不存在永久性問題(沒有不可恢復的錯誤,也沒有顯示重新定位的扇區)。
但我無法啟動 RAID5 卷,儘管它應該有足夠的磁碟。
我有 5 個光碟(#0,1,3,4,5)和仍然存在的已移除光碟 #2。另外,新的替換光碟 #2 也在那裡,但顯示為備用。應該可以使用#0、1、3、4、5 來提高音量,這是可用的 6 卷中的 5 卷。但無論我嘗試什麼,至少#3 都會給我帶來最大的問題,因為它從未被接受為該卷的一部分。
因為 sdX 可以更改此處顯示的設備角色順序的檢查。這裡是目前的簡短清單:
#0 sdc3 #1 sdk3 #3 sda3 #4 sdg3 #5 sdf3
刪除了 #2 sdl3 新的 #2 標記了 #S sdb3
root@newxen:~# mdadm -E /dev/sdc3
/dev/sdc3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Name : newxen:128 (local to host newxen)
Creation Time : Sun Nov 8 22:22:15 2015
Raid Level : raid5
Raid Devices : 6
Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
Data Offset : 260992 sectors
Super Offset : 8 sectors
Unused Space : before=260912 sectors, after=1200 sectors
State : clean
Device UUID : 1142cc76:b224395c:8fb15126:fd1801fe
Internal Bitmap : 8 sectors from superblock
Update Time : Tue Jan 16 00:02:32 2024
Checksum : bae896cd - correct
Events : 248741
Layout : left-symmetric
Chunk Size : 64K
Device Role : Active device 0
Array State : AARA.A ('A' == active, '.' == missing, 'R' == replacing)
root@newxen:~# mdadm -E /dev/sdk3
/dev/sdk3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Name : newxen:128 (local to host newxen)
Creation Time : Sun Nov 8 22:22:15 2015
Raid Level : raid5
Raid Devices : 6
Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
Data Offset : 260992 sectors
Super Offset : 8 sectors
Unused Space : before=260912 sectors, after=1200 sectors
State : clean
Device UUID : 701ed2ed:13a03708:da9cc185:9c9ce3e2
Internal Bitmap : 8 sectors from superblock
Update Time : Tue Jan 16 10:26:32 2024
Checksum : 223defb1 - correct
Events : 248741
Layout : left-symmetric
Chunk Size : 64K
Device Role : Active device 1
Array State : .A...A ('A' == active, '.' == missing, 'R' == replacing)
root@newxen:~# mdadm -E /dev/sdl3
/dev/sdl3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Name : newxen:128 (local to host newxen)
Creation Time : Sun Nov 8 22:22:15 2015
Raid Level : raid5
Raid Devices : 6
Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
Data Offset : 260992 sectors
Super Offset : 8 sectors
Unused Space : before=260912 sectors, after=1200 sectors
State : clean
Device UUID : 1b34e8d5:f3df3e52:307a06a0:38c265e4
Internal Bitmap : 8 sectors from superblock
Update Time : Mon Jan 15 13:36:40 2024
Checksum : 7023234b - correct
Events : 248741
Layout : left-symmetric
Chunk Size : 64K
Device Role : Active device 2
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
root@newxen:~# mdadm -E /dev/sda3
/dev/sda3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x83
Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Name : newxen:128 (local to host newxen)
Creation Time : Sun Nov 8 22:22:15 2015
Raid Level : raid5
Raid Devices : 6
Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
Data Offset : 260992 sectors
Super Offset : 8 sectors
Recovery Offset : 0 sectors
Unused Space : before=260912 sectors, after=1200 sectors
State : clean
Device UUID : fa9d44c6:bb18bc8c:04ed5943:13a6ddfb
Internal Bitmap : 8 sectors from superblock
Update Time : Tue Jan 16 00:02:32 2024
Checksum : 55c99a69 - correct
Events : 243265
Layout : left-symmetric
Chunk Size : 64K
Device Role : Active device 3
Array State : AAAA.A ('A' == active, '.' == missing, 'R' == replacing)
root@newxen:~# mdadm -E /dev/sdg3
/dev/sdg3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x8b
Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Name : newxen:128 (local to host newxen)
Creation Time : Sun Nov 8 22:22:15 2015
Raid Level : raid5
Raid Devices : 6
Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
Data Offset : 260992 sectors
Super Offset : 8 sectors
Recovery Offset : 0 sectors
Unused Space : before=260904 sectors, after=1200 sectors
State : clean
Device UUID : 63a171d2:dad103ed:ff18efc4:d31bc05d
Internal Bitmap : 8 sectors from superblock
Update Time : Tue Jan 16 10:22:01 2024
Bad Block Log : 512 entries available at offset 72 sectors - bad blocks present.
Checksum : a5b990c1 - correct
Events : 244946
Layout : left-symmetric
Chunk Size : 64K
Device Role : Active device 4
Array State : .AA.AA ('A' == active, '.' == missing, 'R' == replacing)
root@newxen:~# mdadm -E /dev/sdf3
/dev/sdf3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Name : newxen:128 (local to host newxen)
Creation Time : Sun Nov 8 22:22:15 2015
Raid Level : raid5
Raid Devices : 6
Avail Dev Size : 1909221936 (910.39 GiB 977.52 GB)
Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
Data Offset : 260992 sectors
Super Offset : 8 sectors
Unused Space : before=260912 sectors, after=1200 sectors
State : clean
Device UUID : d6e11e48:e1258598:f9d5251c:795c8308
Internal Bitmap : 8 sectors from superblock
Update Time : Tue Jan 16 10:26:32 2024
Checksum : c8dc31e3 - correct
Events : 248741
Layout : left-symmetric
Chunk Size : 64K
Device Role : Active device 5
Array State : .A...A ('A' == active, '.' == missing, 'R' == replacing)
Here the replacing disc
root@newxen:~# mdadm -E /dev/sdb3
/dev/sdb3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x9
Array UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Name : newxen:128 (local to host newxen)
Creation Time : Sun Nov 8 22:22:15 2015
Raid Level : raid5
Raid Devices : 6
Avail Dev Size : 7720024847 (3681.19 GiB 3952.65 GB)
Array Size : 4773051840 (4551.94 GiB 4887.61 GB)
Used Dev Size : 1909220736 (910.39 GiB 977.52 GB)
Data Offset : 260992 sectors
Super Offset : 8 sectors
Unused Space : before=260912 sectors, after=5810804111 sectors
State : clean
Device UUID : 1be91027:ca00bcc9:7e21dd61:76cdf787
Internal Bitmap : 8 sectors from superblock
Update Time : Tue Jan 16 10:26:32 2024
Bad Block Log : 512 entries available at offset 16 sectors - bad blocks present.
Checksum : f892a18d - correct
Events : 248741
Layout : left-symmetric
Chunk Size : 64K
Device Role : spare
Array State : .A...A ('A' == active, '.' == missing, 'R' == replacing)
現在的情況:
root@newxen:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md128 : inactive sda3[3](S) sdb3[6](S) sdf3[5](S) sdc3[0](S) sdg3[2](S) sdk3[1](S)
8633067263 blocks super 1.2
...
root@newxen:~# mdadm --detail /dev/md128
/dev/md128:
Version : 1.2
Raid Level : raid0
Total Devices : 6
Persistence : Superblock is persistent
State : inactive
Working Devices : 6
Name : newxen:128 (local to host newxen)
UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Events : 248741
Number Major Minor RaidDevice
- 8 163 - /dev/sdk3
- 8 99 - /dev/sdg3
- 8 83 - /dev/sdf3
- 8 35 - /dev/sdc3
- 8 19 - /dev/sdb3
- 8 3 - /dev/sda3
如果我檢查最新日期和數組狀態,那麼我的意思是,首先 Jan 15 13:36:40 sdl3 必須使用 AAAAAA 設定失敗並刪除(我手動製作),但應該是乾淨的 Jan 16 00:02:32 sda3 AAAA.A 看起來像乾淨的Jan 16 00:02:32 sdc3 和AARA.A 看起來像乾淨的Jan 16 10:22:01 sdg3 和.AA.AA 看起來像不乾淨的Jan 16 10:26: 32 sdk3 和.A。
應該可以使用現有零件 sda3 sdc3 sdg3 sdk3 sdf3 組裝 raid 卷,可能是因為它位於陣列 sdb3 中。
我嘗試了不同的方法,但沒有一個讓我回到重新同步磁碟區。
mdadm --assemble --scan --verbose
...
mdadm: /dev/sda3 is identified as a member of /dev/md128, slot 3.
mdadm: /dev/sdl3 is identified as a member of /dev/md128, slot 2.
mdadm: /dev/sdf3 is identified as a member of /dev/md128, slot 5.
mdadm: /dev/sdg3 is identified as a member of /dev/md128, slot 4.
mdadm: /dev/sdk3 is identified as a member of /dev/md128, slot 1.
mdadm: /dev/sdc3 is identified as a member of /dev/md128, slot 0.
mdadm: /dev/sdb3 is identified as a member of /dev/md128, slot -1.
mdadm: ignoring /dev/sdk3 as it reports /dev/sdl3 as failed
mdadm: ignoring /dev/sdf3 as it reports /dev/sdl3 as failed
mdadm: device 12 in /dev/md128 has wrong state in superblock, but /dev/sdb3 seems ok
mdadm: no uptodate device for slot 1 of /dev/md128
mdadm: added /dev/sdl3 to /dev/md128 as 2
mdadm: added /dev/sda3 to /dev/md128 as 3 (possibly out of date)
mdadm: added /dev/sdg3 to /dev/md128 as 4 (possibly out of date)
mdadm: no uptodate device for slot 5 of /dev/md128
mdadm: added /dev/sdb3 to /dev/md128 as -1
mdadm: added /dev/sdc3 to /dev/md128 as 0
mdadm: /dev/md128 assembled from 2 drives and 1 spare - not enough to start the array.
...
root@newxen:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md128 : inactive sdf3[5](S) sdb3[6](S) sdc3[0](S) sdk3[1](S) sdg3[2](S) sdl3[4](S)
8633067263 blocks super 1.2
...
root@newxen:~# mdadm --detail /dev/md128
/dev/md128:
Version : 1.2
Raid Level : raid0
Total Devices : 6
Persistence : Superblock is persistent
State : inactive
Working Devices : 6
Name : newxen:128 (local to host newxen)
UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Events : 248741
Number Major Minor RaidDevice
- 8 179 - /dev/sdl3
- 8 163 - /dev/sdk3
- 8 99 - /dev/sdg3
- 8 83 - /dev/sdf3
- 8 35 - /dev/sdc3
- 8 19 - /dev/sdb3
所以看起來舊的刪除的 sdl3 和替換的 sdb3 造成了一些麻煩。所以再次停止 md128 並嘗試在沒有它們的情況下手動啟動它:
root@newxen:~# mdadm --assemble /dev/md128 /dev/sdc3 /dev/sdk3 /dev/sda3 /dev/sdg3 /dev/sdf3 --verbose
mdadm: looking for devices for /dev/md128
mdadm: /dev/sdc3 is identified as a member of /dev/md128, slot 0.
mdadm: /dev/sdk3 is identified as a member of /dev/md128, slot 1.
mdadm: /dev/sda3 is identified as a member of /dev/md128, slot 3.
mdadm: /dev/sdg3 is identified as a member of /dev/md128, slot 4.
mdadm: /dev/sdf3 is identified as a member of /dev/md128, slot 5.
mdadm: ignoring /dev/sdk3 as it reports /dev/sdc3 as failed
mdadm: ignoring /dev/sdg3 as it reports /dev/sdc3 as failed
mdadm: ignoring /dev/sdf3 as it reports /dev/sdc3 as failed
mdadm: no uptodate device for slot 1 of /dev/md128
mdadm: no uptodate device for slot 2 of /dev/md128
mdadm: added /dev/sda3 to /dev/md128 as 3 (possibly out of date)
mdadm: no uptodate device for slot 4 of /dev/md128
mdadm: no uptodate device for slot 5 of /dev/md128
mdadm: added /dev/sdc3 to /dev/md128 as 0
mdadm: /dev/md128 assembled from 1 drive - not enough to start the array.
root@newxen:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md128 : inactive sdk3[1](S) sdf3[5](S) sdg3[2](S) sdc3[0](S)
3818443872 blocks super 1.2
...
root@newxen:~# mdadm --detail /dev/md128
/dev/md128:
Version : 1.2
Raid Level : raid0
Total Devices : 4
Persistence : Superblock is persistent
State : inactive
Working Devices : 4
Name : newxen:128 (local to host newxen)
UUID : 8d0acbbb:73bcfac9:a26557de:c29d5434
Events : 248741
Number Major Minor RaidDevice
- 8 163 - /dev/sdk3
- 8 99 - /dev/sdg3
- 8 83 - /dev/sdf3
- 8 35 - /dev/sdc3
所以我想知道sda3沒有顯示在細節中。
我還嘗試使用 sdl3 而不是 sdb3 並嘗試重新添加缺少的部分,但沒有任何幫助。所以我想我應該將超級區塊歸零並使用 --assume-clean 選項重新建立 raid。在我看來,它應該按正確的順序進行。最好的情況也許應該沒有 sdb3 和 sdl3,因為我不確定 sdb3 在第一個問題發生之前是否已經達到同步狀態。有辦法檢查嗎?
因此,如果不存在其他選擇,我會這樣做(這個順序正確嗎?)
mdadm --create --verbose --force --assume-clean /dev/md128 --level=5 --raid-devices=6 /dev/sdc3 /dev/sdk3 missing /dev/sda3 /dev/sdg3 /dev/sdf3
另一個解決方案可能是,如果我假設磁碟 sdb3 已經幾乎同步。
mdadm --create --verbose --force --assume-clean /dev/md128 --level=5 --raid-devices=6 /dev/sdc3 /dev/sdk3 /dev/sdb3 /dev/sda3 /dev/sdg3 /dev/sdf3
我怎樣才能檢查它?
echo check >> /sys/block/md128/md/sync_action and then check dmesg carefully?
我想知道的另一件事是,在重建完成後,我必須在哪些方面做好應對問題的準備?有什麼建議我可以如何識別它們嗎?
添加更多詳細資訊:很難找到詳細資訊。因此,如果有人能夠證實或糾正我的想法,那就太好了。
同時,解密測試已經完成。設備順序的排列不必很好地進行。
因此,可以透過啟動 RAID 陣列並運行資料本身看起來仍然混合且仍然無法使用的方式來實現。因此,我暫時無法解密其中的 luks 資料。