一、扩展卷组
扩展卷组相对简单,只需要添加一个物理卷即可,使用的命令是vgextend,其格式为:
vgextend VG_NAME /PATH/TO/PV
下面来演示一下扩展卷组的过程:
1.首先准备一块id号位8e的分区,具体过程见前文。
[root@localhost ~]# fdisk/dev/sdcWARNING: DOS-compatible mode is deprecated. It's stronglyrecommended to
switch offthe mode (command 'c') and change display units to
sectors(command 'u').
Command (m for help): p
Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb8ee6343
Device Boot Start End Blocks Id System
/dev/sdc1 1 654 5253223+ 8e Linux LVM
/dev/sdc2 655 786 1060290 fd Linux raid autodetect
/dev/sdc3 787 918 1060290 8e Linux LVM
/dev/sdc4 919 1305 3108577+ 5 Extended
/dev/sdc5 919 1050 1060258+ 8e Linux LVM
# 选择/dev/sdc5作为物理卷
/dev/sdc6 1051 1182 1060258+ 83 Linux
/dev/sdc7 1183 1305 987966 83 Linux
[root@localhost ~]# vgs# 查看当前的卷组信息
VG #PV #LV #SN Attr VSize VFree
VolGroup 1 2 0 wz--n- 24.51g 0
testvg 2 1 0 wz--n- 2.02g 1.02g
2.为卷组添加物理卷
[root@localhost ~]# vgextendtestvg /dev/sdc5No physical volumelabel read from /dev/sdc5
Physical volume/dev/sdc5 not found
Physical volume"/dev/sdc5" successfully created
Volume group"testvg" successfully extended
# 提示卷组扩展成功
[root@localhost ~]# vgsVG #PV #LV #SN Attr VSize VFree
VolGroup 1 2 0 wz--n- 24.51g 0
testvg 3 1 0 wz--n- 3.02g 2.02g
# 当前卷组的大小多了1G
到这里VG的扩展就完成了。
VG的扩展不会影响LV的使用,现在我们可以查看一下以前LV中存放的文件:
[root@localhost ~]# cat/mnt/fstab# /etc/fstab
# Created by anaconda on Wed Jul 9 21:21:40 2014
#
# Accessible filesystems, by reference, are maintained under'/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/orblkid(8) for more info
#
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
UUID=d9512fb3-8dd6-4613-ae55-8e99ba0ef627 /boot ext4 defaults 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
# LV中的文件可以照常访问
二、缩减卷组
缩减卷组的操作也很容易,要缩减之前,需要先确定要移除的PV,然后使用pvmove命令将此PV上的数据转移至其他的PV,最后使用命令vgreduce从卷组中移除此PV。
其中pvmove的基本使用格式为:
pvmove/Path/From/Where [/PATH/To/Where]
如果不指定要移到哪个物理卷上,则会自动分配。
命令 vgreduce的用法格式如下:
vgreduceVG_NAME PV_NAME
现在觉得testvg太大了,想要缩减其体积,可以进行以下操作:
1. 首先来查看一下当前卷组的物理卷构成情况
[root@localhost ~]# pvsPV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a-- 24.51g 0
/dev/sdc3 testvg lvm2 a-- 1.01g 8.00m
/dev/sdc5 testvg lvm2 a-- 1.01g 1.01g
/dev/sdd3 testvg lvm2 a-- 1.01g 1.01g
# 可以看到卷组testvg由三个物理卷构成
2. 将要移除的物理卷上的数据转移到其他PV上
[root@localhost ~]# pvmove/dev/sdc3/dev/sdc3: Moved:1.2%
/dev/sdc3: Moved:21.9%
/dev/sdc3: Moved:42.2%
/dev/sdc3: Moved:62.5%
/dev/sdc3: Moved:82.8%
/dev/sdc3: Moved:100.0%
3. 使用命令vgreduce移除物理卷
[root@localhost ~]# vgreducetestvg /dev/sdc3Removed"/dev/sdc3" from volume group "testvg"
# 提示移除了/dev/sdc3
[root@localhost ~]# vgsVG #PV #LV #SN Attr VSize VFree
VolGroup 1 2 0 wz--n- 24.51g 0
testvg 2 1 0 wz--n- 2.02g 1.02g
# 再次查看VG,可以发现它又还原成2G了
[root@localhost ~]# pvremove/dev/sdc3Labels on physicalvolume "/dev/sdc3" successfully wiped
# 当完成了移除工作后,就可以删除这个PV了
注意,移除物理卷和删除物理卷的是两种不同的操作,vgreduce是从指定卷组中移除物理卷,pvremove是将某一个物理卷从当前系统的可用物理卷列表中删除。
[root@localhost ~]# pvsPV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a-- 24.51g 0
/dev/sdc5 testvg lvm2 a-- 1.01g 1.01g
/dev/sdd3 testvg lvm2 a-