我有一台有 12 个盘位的 Synology NAS。最初,我们决定将所有 12 个磁盘分配给单个 RAID-6 卷,但现在我们想缩小卷以仅使用 10 个磁盘并分配两个 HDD 作为备用。
这卷管理器向导可以通过添加硬盘轻松扩展卷,但我发现没有办法通过移除硬盘来缩小卷。我怎样才能做到这一点而不必重新初始化整个系统?
答案1
为此,我假设阵列中有 12 个磁盘,每个磁盘大小为 1TB。
这意味着有 10TB 的存储空间。例如,如果您使用的存储空间不超过 6 个磁盘(6TB),那么它们的大小无关紧要。
免责声明:Synology 可能不支持上述任何一种方式,因此我会向他们确认这种方法是否会导致问题,事先备份,并事先关闭任何 Synology 服务。据我所知,Synology 使用标准 md raid 阵列,如果将磁盘移动到支持 md 的标准服务器,则可以访问它们 - 因此应该沒有問題。
概述
顺序如下:
- 减小文件系统大小
- 减小逻辑卷大小
- 减小数组大小
- 重新调整文件系统大小
- 将备用磁盘转换为热备用磁盘
文件系统
找到主分区,使用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]