Debian
用更大的磁碟替換軟 RAID1 LUKS 磁碟
我打算用兩個相同的(4TB 磁碟)替換兩個軟 RAID1 磁碟(2TB)。目前磁碟配置有執行 debian 11 的軟 RAID 1。這些磁碟不是 root。
我的計劃是用新的 4TB 磁碟替換(支持熱交換)一個 2TB 磁碟,然後等待磁碟與 mdadm 同步(我什至不知道該怎麼做,但我想我會Google它)。同步結束後,我計劃用剩餘的 2TB 磁碟進行相同的熱交換,用另一個新的 4TB 磁碟替換它,然後等待 mdadm 完成同步。
在這一點上,我仍然(希望)發現自己有兩個需要擴大的 2TB 分區的 LUKS 磁碟。這個操作很麻煩,但我以前在筆記型電腦上做過,但從來沒有使用 RAID1 配置。
- 你覺得我的計劃有意義嗎?
- 您能否就如何擴大 RAID 1 LUKS 分區(即我計劃的最後一步)提供一些指導?
- 還有其他更聰明的選擇嗎?
根據評論中的要求,以下是以下輸出
lsblk
:root@server:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 3.6T 0 disk `-sda1 8:1 0 3.6T 0 part `-md4 9:4 0 3.6T 0 raid1 `-4tb 253:1 0 3.6T 0 crypt /media/4tb sdb 8:16 0 3.6T 0 disk `-sdb1 8:17 0 3.6T 0 part `-md4 9:4 0 3.6T 0 raid1 `-4tb 253:1 0 3.6T 0 crypt /media/4tb sdc 8:32 0 119.2G 0 disk `-sdc1 8:33 0 119.2G 0 part `-md127 9:127 0 119.2G 0 raid1 / sdd 8:48 0 119.2G 0 disk `-sdd1 8:49 0 119.2G 0 part `-md127 9:127 0 119.2G 0 raid1 / sde 8:64 0 465.8G 0 disk `-sde1 8:65 0 465.8G 0 part `-md0 9:0 0 465.6G 0 raid1 sdf 8:80 0 2.7T 0 disk `-sdf1 8:81 0 2.7T 0 part `-3tb 253:2 0 2.7T 0 crypt /media/3tb sdg 8:96 1 931.5G 0 disk `-sdg1 8:97 1 931.5G 0 part `-md1 9:1 0 931.4G 0 raid1 `-vm 253:3 0 931.4G 0 crypt /media/vm sdh 8:112 1 1.8T 0 disk `-sdh1 8:113 1 1.8T 0 part `-md2 9:2 0 1.8T 0 raid1 `-backup 253:0 0 1.8T 0 crypt /media/backup sdi 8:128 1 931.5G 0 disk `-sdi1 8:129 1 931.5G 0 part `-md1 9:1 0 931.4G 0 raid1 `-vm 253:3 0 931.4G 0 crypt /media/vm sdj 8:144 1 1.8T 0 disk `-sdj1 8:145 1 1.8T 0 part `-md2 9:2 0 1.8T 0 raid1 `-backup 253:0 0 1.8T 0 crypt /media/backup
您的所有
/media/*
掛載似乎都使用了磁碟->部分->raid1->crypt 分層。請注意,如果您現有的 2 TB 磁碟以 MBR 樣式進行分區,則您無法真正使用新的更大磁碟執行此操作,因為您將達到 MBR 最大容量限制。幸運的是,Linux 軟體 RAID 不要求您在 RAID 集的各個部分上具有相同類型的分區(或者實際上,對於非引導磁碟,您可以選擇根本不使用任何分區方案)。
因此,假設這
md2
是您希望遷移到更大磁碟的 RAID 集,並且您需要先進行交換sdh
:
- 標記
sdh1
為失敗的 RAID1 組件:mdadm --manage /dev/md2 --fail /dev/sdh1
- 從
md2
RAID 集中刪除它:mdadm --manage /dev/md2 --remove /dev/sdh1
- 告訴核心磁碟將被熱拔出:
echo 1 > /sys/block/sdh/device/delete
. 根據控制器和磁碟型號,磁碟可能會或可能不會在您執行此操作時實際降速。- 用新磁碟物理更換
sdh
磁碟。- 找出新的磁碟設備名稱(它可能是也可能不是
/dev/sdh
;我們稱之為sdX
)。- 如果您希望使用分區,請使用 GPT 分區類型並創建一個覆蓋整個磁碟的分區。將分區類型設置為“Linux RAID”(GPT 分區類型 GUID
A19D880F-05FC-4D3B-A006-743F0F84911E
;大多數 GPT 分區工具都有一些更使用者友好的方式來指定。)這個分區將比這個 RAID 集的現有一半大;在這一點上這完全沒問題。mdadm
將只使用鏡像分區所需的數量,sdi1
直到您稍後在第 10 步中授予它使用全部容量的權限。(如果您使用分區,您可能希望使用一些特定的大小而不是只使用完整的磁碟,以防止您將來可能需要更換磁碟並且可能無法找到替換磁碟具有完全相同數量的塊。再說一次,未來的磁碟可能會比目前的磁碟大,這不會成為問題。)
- 將新磁碟添加到 RAID 集。如果您對磁碟進行了分區,請使用
mdadm --manage /dev/md2 --add /dev/sdX1
; 如果您決定將整個磁碟用作未分區的 RAID 設備,請使用mdadm --manage /dev/md2 --add /dev/sdX
.- 監視
/proc/mdstat
以查看同步何時完成。- 對第二個磁碟重複步驟 1-8
sdj
。- 當兩個磁碟都已更換且同步時,使用
mdadm --grow /dev/md2 --size=max
允許md2
RAID 設備充分利用增加的容量。(如果您在上面的第 6 步中選擇不使用分區,您也可以使用特定大小而不是
--size=max
此處,原因與第 6 步相同。)
md2
成功調整設備大小後,用於在RAID 集cryptsetup resize /dev/mapper/backup
頂部調整加密設備的大小。md2
- 最後,在加密設備上調整文件系統的大小,使用
fsadm resize /dev/mapper/backup
或使用文件系統特定工具(resize2fs /dev/mapper/backup
對於 ext2/ext3/ext4 文件系統類型,xfs_growfs /media/backup
對於 XFS 等)