目前我有一个没有 LVM 的 2TB 硬盘,很快就会添加第二个硬盘,形成 2 条带卷。所以我正在计划未来的扩展,届时我需要添加第三个硬盘。因此需要解决的问题是:2 个物理驱动器形成 2 条带 LVM 卷,其中装满数据;1 个空物理驱动器;需要“合并”这 3 个物理驱动器以形成 3 条带卷。
这答案,一般来说,推荐一种方法,在新空间上创建一个3条带卷,并将现有数据复制到其中,然后清空原来的存储,然后重新占用所有空间。但这种方法似乎不适用于新添加的空间小于源空间的设置。也就是说,您可以将 2 TB 数据复制到新的 2+2 TB 空位置,但显然 4TB 相反无法放入 2TB。
到目前为止,我一直在虚拟机中进行实验:
- 将新的单个“硬盘”拆分为 3 个物理卷;
- 用它们制作一个 LVM 卷,有 3 个条带;
- 将数据移到那里(只有 50% 适合);
- 释放空间后缩小原磁盘上的PV和LV;
- 将第 3 个驱动器的 PV 逐个移至原始驱动器并扩展以逐渐重新占用释放的空间,从而获得包含 3 个驱动器的 3 个 PV 的 LVM 卷。
但如果不缩小原始驱动器上的 LVM,就无法做到这一点。这看起来不可行,因为即使在我删除了大部分数据之后,所有空间看起来都已分配。
搜索仅提供有关非条带卷或有额外空间来临时存储所有数据的情况的答案。
有什么方法可以安全地缩小有条纹的LVM 卷?
或者也许有其他方法可以完成该主题的任务,除了提到的 3 个驱动器之外不需要额外的存储?
#pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 lv_s lvm2 a-- 1020.00m 0
/dev/vdc1 lv_s lvm2 a-- 1020.00m 0
/dev/vdd1 lt_t lvm2 a-- 336.00m 0
/dev/vdd2 lt_t lvm2 a-- 336.00m 0
/dev/vdd3 lt_t lvm2 a-- 336.00m 0
#vgs
VG #PV #LV #SN Attr VSize VFree
lt_t 3 1 0 wz--n- 1008.00m 0
lv_s 2 1 0 wz--n- 1.99g 0
忽略小尺寸,这只是虚拟机中的示例设置。
在 man lvreduce 中,建议首先减小 PV 大小。但 pvresize 无法缩小卷,因为它已 100% 分配。
pvresize --setphysicalvolumesize 700M /dev/vdb1
/dev/vdb1: Requested size 700.00 MiB is less than real size 1022.00 MiB. Proceed? [y/n]: y
WARNING: /dev/vdb1: Pretending size is 1433600 not 2093056 sectors.
/dev/vdb1: cannot resize to 174 extents as 255 are allocated.
0 physical volume(s) resized or updated / 1 physical volume(s) not resized
看来我可以手动(基于文件大小的总和)计算这些驱动器中实际使用的空间,但违背了建议:首先将 LV 缩小到所需的范围,然后才缩小 PV。但这似乎很危险。
另外,如果不在文件管理器中打开空间并对文件求和,则无法找出如何读取正确的已用空间量。在此测试环境中,没有一个存储实际上已满,但无论如何我得到以下信息:
#pvdisplay
--- Physical volume ---
PV Name /dev/vdd1
VG Name lt_t
PV Size 340.00 MiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 84
Free PE 0
Allocated PE 84
PV UUID 4vph5m-kReY-yukF-Crre-k2G9-c2UK-2pob7V
--- Physical volume ---
PV Name /dev/vdd2
VG Name lt_t
PV Size 340.00 MiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 84
Free PE 0
Allocated PE 84
PV UUID LfE23C-rU4f-N404-5bBa-zstP-qHd8-SbwYru
--- Physical volume ---
PV Name /dev/vdd3
VG Name lt_t
PV Size 340.00 MiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 84
Free PE 0
Allocated PE 84
PV UUID peDK1t-SZW6-VX0x-q0v1-7TUL-QZqq-unBeAV
--- Physical volume ---
PV Name /dev/vdb1
VG Name lv_s
PV Size 1021.00 MiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 255
Free PE 0
Allocated PE 255
PV UUID 8sCpwh-2D5S-V5VP-v1N8-sgpd-dyra-xeqNXD
--- Physical volume ---
PV Name /dev/vdc1
VG Name lv_s
PV Size 1022.00 MiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 255
Free PE 0
Allocated PE 255
PV UUID OF4fxd-f3eN-keTP-sf8p-ahVc-r35C-x7sb6l