将软 RAID1 LUKS 磁盘替换为更大的磁盘

将软 RAID1 LUKS 磁盘替换为更大的磁盘

我计划用两个相同的(4TB 磁盘)替换两个软 RAID1 磁盘(2TB)。当前磁盘配置为运行 debian 11 的软 RAID 1。磁盘不是 root。

我的计划是用新的 4TB 磁盘替换(支持热插拔)一个 2TB 磁盘,并等待磁盘与 mdadm 同步(我什至不知道如何执行此操作,但我想我会 Google 一下)。同步结束后,我计划对剩余的 2TB 磁盘进行相同的热插拔,将其替换为另一个新的 4TB 磁盘,并等待 mdadm 完成同步。

此时,我仍然(希望)发现自己有两个分区为 2TB 的 LUKS 磁盘,需要扩大。这个操作很麻烦,但我以前在我的笔记本电脑上做过,但从未使用过 RAID1 配置。

  1. 你觉得我的计划有意义吗?
  2. 您能否指导如何扩大 RAID 1 LUKS 分区(即我计划的最后一步)?
  3. 还有其他更明智的选择吗?

根据评论中的要求,以下是输出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

答案1

你所有的/media/*坐骑似乎都使用磁盘->部分->raid1->crypt分层。

请注意,如果您现有的 2 TB 磁盘以 MBR 样式进行分区,则您实际上无法对新的更大磁盘执行此操作,因为您将达到 MBR 最大容量限制。幸运的是,Linux 软件 RAID 不要求您在 RAID 集的各个部分上具有相同类型的分区(或者事实上,对于非引导磁盘,您可以选择根本不使用任何分区方案)。

因此,假设这md2是您希望迁移到更大磁盘的 RAID 集,并且您需要sdh首先进行交换:

  1. 标记sdh1为故障 RAID1 组件:mdadm --manage /dev/md2 --fail /dev/sdh1
  2. 将其从md2RAID 集中删除:mdadm --manage /dev/md2 --remove /dev/sdh1
  3. 告诉内核磁盘将被热拔出:echo 1 > /sys/block/sdh/device/delete。根据控制器和磁盘型号的不同,执行此操作时磁盘实际上可能会或可能不会旋转。
  4. 以物理方式更换sdh新磁盘。
  5. 找出新的磁盘设备名称(可能是也可能不是/dev/sdh;我们称之为sdX)。
  6. 如果您希望使用分区,请使用 GPT 分区类型并创建覆盖整个磁盘的单个分区。将分区类型设置为“Linux RAID”(GPT 分区类型 GUID A19D880F-05FC-4D3B-A006-743F0F84911E;大多数 GPT 分区工具都有一些更用户友好的方式来指定。)该分区将比该 RAID 集现有的一半大;此时完全没问题。mdadm将仅使用镜像分区所需的容量,sdi1直到您在稍后的步骤 #10 中授予其使用全部容量的权限。

(如果您使用分区,您可能需要使用一些特定的大小,而不是完全使用磁盘,以防止您将来可能需要更换磁盘并且可能无法找到替换磁盘同样,未来的磁盘可能比当前的磁盘更大,这将不再是问题。)

  1. 将新磁盘添加到 RAID 集。如果您对磁盘进行了分区,请使用mdadm --manage /dev/md2 --add /dev/sdX1;如果您决定使用整个磁盘作为未分区的 RAID 设备,请使用mdadm --manage /dev/md2 --add /dev/sdX.
  2. 监视/proc/mdstat以查看同步何时完成。
  3. 对第二个磁盘重复步骤 1-8 sdj
  4. 当两个磁盘均已更换且同步后,使用mdadm --grow /dev/md2 --size=max以使md2RAID 设备能够充分利用增加的容量。

(如果您在上面的步骤 #6 中选择不使用分区,您也可以使用特定的大小来代替--size=max此处,原因与步骤 #6 中相同。)

  1. md2成功调整设备大小后,可用于cryptsetup resize /dev/mapper/backup调整 RAID 集之上的加密设备的大小md2
  2. fsadm resize /dev/mapper/backup最后,使用或使用特定于文件系统的工具(resize2fs /dev/mapper/backup对于 ext2/ext3/ext4 文件系统类型、xfs_growfs /media/backupXFS 等)调整加密设备顶部的文件系统大小。

相关内容