我刚刚读过“如何在 Linux 中将空间从一个卷组重新分配到另一个卷组?”如何在 Linux 中将空间从一个卷组重新分配到另一个卷组? 但我还是很困惑。
我继承了一台 Linux NAS 的管理,它由一个 16 磁盘超微机箱、一个 3ware 9650 RAID 卡和 Centos 5 组成。3ware 主板创建了三个 2.73 TB 的 raid 单元;启用了自动分割至 1.5TB 的功能,因此 Centos 可以看到六个物理卷。
这 6 个 PV 被安排在 2 个卷组中,其中一个卷组 (volgroup1) 有 2.15TB 的可用空间。我需要将这 2.15TB 的可用空间移动到另一个卷组 (volgroup2),然后我需要将这 2.15TB 分配给逻辑卷“mmedia0”上的 ext3 分区,而不会中断任何其他 LV/文件系统。
相关 LVM 命令的输出如下。
提前感谢 Guido
[root@lt-nas1 ~]# pvscan
PV /dev/sdd1 VG volgroup2 lvm2 [1.50 TB / 0 free]
PV /dev/sdf1 VG volgroup2 lvm2 [1.50 TB / 0 free]
PV /dev/sdg1 VG volgroup2 lvm2 [1.23 TB / 0 free]
PV /dev/sdb1 VG volgroup1 lvm2 [1.50 TB / 1.00 TB free]
PV /dev/sdc1 VG volgroup1 lvm2 [1.22 TB / 24.00 GB free]
PV /dev/sde1 VG volgroup1 lvm2 [1.23 TB / 1.12 TB free]
Total: 6 [8.18 TB] / in use: 6 [8.18 TB] / in no VG: 0 [0 ]
[root@lt-nas1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
volgroup1 3 5 0 wz--n- 3.95T 2.15T
volgroup2 3 3 0 wz--n- 4.23T 0
[root@lt-nas1 ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
cli-bak volgroup1 -wi-ao 515.88G
fatt-dig volgroup1 -wi-ao 10.00G
fil-ut volgroup1 -wi-ao 220.00G
homes volgroup1 -wi-ao 100.00G
serv-bak volgroup1 -wi-ao 1000.00G
esxp-bak volgroup2 -wi-ao 3.73T
lt-services volgroup2 -wi-ao 10.00G
mmedia0 volgroup2 -wi-ao 501.97G
[root@lt-nas1 ~]# pvdisplay -m
--- Physical volume ---
PV Name /dev/sdd1
VG Name volgroup2
PV Size 1.50 TB / not usable 31.88 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 49151
Free PE 0
Allocated PE 49151
PV UUID dj86xG-bVvy-e2KS-dxCb-oDTB-vqfB-oIFEFn
--- Physical Segments ---
Physical extent 0 to 32767:
Logical volume /dev/volgroup2/esxp-bak
Logical extents 89404 to 122171
Physical extent 32768 to 33087:
Logical volume /dev/volgroup2/lt-services
Logical extents 0 to 319
Physical extent 33088 to 49150:
Logical volume /dev/volgroup2/mmedia0
Logical extents 0 to 16062
--- Physical volume ---
PV Name /dev/sdf1
VG Name volgroup2
PV Size 1.50 TB / not usable 29.98 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 49151
Free PE 0
Allocated PE 49151
PV UUID VzrYLh-qzGP-JlfN-WtUn-39Li-mq4Z-M4AlkY
--- Physical Segments ---
Physical extent 0 to 49150:
Logical volume /dev/volgroup2/esxp-bak
Logical extents 0 to 49150
--- Physical volume ---
PV Name /dev/sdg1
VG Name volgroup2
PV Size 1.23 TB / not usable 27.98 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 40253
Free PE 0
Allocated PE 40253
PV UUID w2AczV-NUC1-K6xj-Qom6-NsNb-0mXk-o9a63M
--- Physical Segments ---
Physical extent 0 to 40252:
Logical volume /dev/volgroup2/esxp-bak
Logical extents 49151 to 89403
--- Physical volume ---
PV Name /dev/sdb1
VG Name volgroup1
PV Size 1.50 TB / not usable 31.88 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 49151
Free PE 32832
Allocated PE 16319
PV UUID Kilk0G-0qxl-ft2w-8iU7-abaa-u1n2-d9EHiO
--- Physical Segments ---
Physical extent 0 to 32767:
FREE
Physical extent 32768 to 39167:
Logical volume /dev/volgroup1/fil-ut
Logical extents 0 to 6399
Physical extent 39168 to 39231:
FREE
Physical extent 39232 to 39871:
Logical volume /dev/volgroup1/fil-ut
Logical extents 6400 to 7039
Physical extent 39872 to 49150:
Logical volume /dev/volgroup1/cli-bak
Logical extents 0 to 9278
--- Physical volume ---
PV Name /dev/sdc1
VG Name volgroup1
PV Size 1.22 TB / not usable 16.80 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 39997
Free PE 768
Allocated PE 39229
PV UUID EAtHL7-wraU-DdRP-d9Fq-xdrU-Wyf0-8PlCqj
--- Physical Segments ---
Physical extent 0 to 31999:
Logical volume /dev/volgroup1/serv-bak
Logical extents 0 to 31999
Physical extent 32000 to 32767:
FREE
Physical extent 32768 to 39996:
Logical volume /dev/volgroup1/cli-bak
Logical extents 9279 to 16507
--- Physical volume ---
PV Name /dev/sde1
VG Name volgroup1
PV Size 1.23 TB / not usable 14.18 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 40253
Free PE 36733
Allocated PE 3520
PV UUID I1RUAu-P8Sw-waPF-b8u1-0szV-lR9D-hY1DvA
--- Physical Segments ---
Physical extent 0 to 32767:
FREE
Physical extent 32768 to 33087:
Logical volume /dev/volgroup1/fatt-dig
Logical extents 0 to 319
Physical extent 33088 to 33887:
FREE
Physical extent 33888 to 37087:
Logical volume /dev/volgroup1/homes
Logical extents 0 to 3199
Physical extent 37088 to 40252:
FREE
答案1
由于您只能将整个 PV 从一个 VG 移动到另一个 VG,因此无法移动全部从一个 VG 到另一个 VG 释放空间。但您可以部分地实现这一点:
首先,将其中一个 PV 上的所有数据移动到另一个 PV 上:
pvmove -v /dev/sdb1
这将开始将数据从 sdb1 移至其他 PV。-v 选项还将确保您看到一些进度信息。移动完成后,您可以将其从卷组中删除:
vgreduce -a
这将报告类似以下内容的内容removing /dev/sdb1 from volgroup1
(抱歉,已经有一段时间了,我没有机器可以测试)。然后您可以将其添加到另一个 VG:
vgextend volgroup2 /dev/sdb1
此后,volgroup2
应该将 sdb1 上的空间添加到其中。
您可能能够使用 sde1 重复此操作;取决于volgroup1
第一次移动后剩余的可用空间量(我太懒了,不想进行必要的计算 ;-)。我还建议将所有数据移动到单个卷组中;但是,这样做需要您在 volgroup2 中创建一个新的 LV,在其上创建一个文件系统,挂载它,使用 rsync 或类似方法移动日期,然后销毁旧日期。显然,这是一个更危险的操作。