通过移除磁盘来缩小 RAID 吗?

通过移除磁盘来缩小 RAID 吗?

我有一台有 12 个盘位的 Synology NAS。最初,我们决定将所有 12 个磁盘分配给单个 RAID-6 卷,但现在我们想缩小卷以仅使用 10 个磁盘并分配两个 HDD 作为备用。

卷管理器向导可以通过添加硬盘轻松扩展卷,但我发现没有办法通过移除硬盘来缩小卷。我怎样才能做到这一点而不必重新初始化整个系统?

答案1

为此,我假设阵列中有 12 个磁盘,每个磁盘大小为 1TB。

这意味着有 10TB 的存储空间。例如,如果您使用的存储空间不超过 6 个磁盘(6TB),那么它们的大小无关紧要。

免责声明:Synology 可能不支持上述任何一种方式,因此我会向他们确认这种方法是否会导致问题,事先备份,并事先关闭任何 Synology 服务。据我所知,Synology 使用标准 md raid 阵列,如果将磁盘移动到支持 md 的标准服务器,则可以访问它们 - 因此应该沒有問題。

概述

顺序如下:

  1. 减小文件系统大小
  2. 减小逻辑卷大小
  3. 减小数组大小
  4. 重新调整文件系统大小
  5. 将备用磁盘转换为热备用磁盘

文件系统

找到主分区,使用df -h,它看起来应该像这样:

Filesystem                Size      Used Available Use% Mounted on
/dev/vg1/volume_1         10T       5T   5T         50% /volume1

使用此命令可以调整大小到所需的最大值,但不能超过:

umount /dev/vg1/volume_1
resize2fs -M /dev/vg1/volume_1

现在检查:

mount /dev/vg1/volume_1 /volume1
df -h

Filesystem                Size      Used Available Use% Mounted on
/dev/vg1/volume_1         5T       5T    0T        100% /volume1

体积

要减小卷大小,请使用 lvreduce(为了以防万一,将其弄大一些):

umount /dev/vg1/volume_1
lvreduce -L 5.2T /dev/vg1/volume_1

现在逻辑卷已经减小,使用 pvresize 来减小物理卷大小:

pvresize --setphysicalvolumesize 5.3T /dev/md0

如果调整大小失败,请参阅另一个问题用于将分配在物理卷末尾的数据部分移向开头。

现在我们在 10T 阵列上有一个 5.3T 的卷,因此我们可以安全地将阵列大小减少 2T。

大批

找出 md 设备:

 pvdisplay -C
 PV         VG      Fmt  Attr PSize   PFree
 /dev/md0   vg1     lvm2 a--  5.3t    0.1t

第一步是告诉 mdadm 减少数组大小(使用 grow):

mdadm --grow -n10 /dev/md0
mdadm: this change will reduce the size of the array.
       use --grow --array-size first to truncate array.
       e.g. mdadm --grow /dev/md0 --array-size 9683819520

这就是说,为了使当前阵列适合 10 个磁盘,我们需要减小阵列大小。

 mdadm --grow /dev/md0 --array-size 9683819520

现在它变小了,我们可以减少磁盘数量:

 mdadm --grow -n10 /dev/md0 --backup-file /root/mdadm.md0.backup

这将花费很长时间,可以在这里监控:

 cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
md4 : active raid6 sda4[0] sdb4[1] sdc4[2] sdd4[3] sde4[4] sdf4[5] sdg4[6] sdh4[7] sdi4[1] sdj4[1] 
      [>....................]  reshape =  1.8% (9186496/484190976)
                              finish=821.3min speed=9638K/sec [UUUUUUUUUU__]

但我们不需要等待。

将 PV、LV 和文件系统的大小调整为最大值:

pvresize /dev/md0
lvextend -l 100%FREE /dev/vg1/volume_1
e2fsck -f /dev/vg1/volume_1
resize2fs /dev/vg1/volume_1

将备用磁盘设置为备用

这里无需执行任何操作,阵列中的任何备用磁盘都会自动成为备用磁盘。 重新整形完成后,请检查状态:

cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
md4 : active raid6 sda4[0] sdb4[1] sdc4[2] sdd4[3] sde4[4] sdf4[5] sdg4[6] sdh4[7] sdi4[S] sdj4[S] 

相关内容