LVM擴容、縮減和刪除
常用命令:
lvextend:LV擴容
vgextend:VG擴容
lvreduce:LV縮減
vgreduce:VG縮減
lvremove
:LV刪除
vgremove:VG刪除
pvmove:PV數據移動到所屬邏輯卷的其它物理卷
pvremove:PV刪除
vgchange:VG狀態改變
一、LVM擴容
1、LV擴容之前,先查看LV和所屬VG可用容量(VFree)
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
LV1 VG1 -wi-ao---- 4.00g
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 VG1 lvm2 a-- 2.00g 0
/dev/sdb2 VG1 lvm2 a-- 2.00g 8.00m
/dev/sdb3 lvm2 --- 2.01g 2.01g
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VG1 2 1 0 wz--n- 4.01g 8.00m
LV1大小爲4G,VG1的VFree大小8M。要給LV增加2G容量,VG1可用剩餘僅爲8M,因爲此需要給VG1擴容,將一個新的分區sdb3添加到卷組中:
[root@localhost ~]# vgextend VG1 /dev/sdb3
Volume group "VG1" successfully extended
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VG1 3 1 0 wz--n- 6.01g 2.01g
2、現在VG1的VFree爲2.01G,可以直接給LV1擴容:
[root@localhost ~]# lvextend -L +2G /dev/mapper/VG1-LV1
Size of logical volume VG1/LV1 changed from 4.00 GiB (1024 extents) to 6.00 GiB (1536 extents).
Logical volume LV1 successfully resized
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
LV1 VG1 -wi-ao---- 6.00g
注:也可以使用
lvextend -L 6G /dev/mapper/VG1-LV1直接擴容到6G
3、對文件系統進行擴容
LV1容量已擴容到6G,現在查下LV1的掛載點/LV1容量:
[root@localhost ~]# df -h /LV1
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VG1-LV1 3.9G 8.0M 3.7G 1% /LV1
/LV1容量爲3.9G,而剛剛已將LV1擴容到6G,這是爲什麼呢?
因爲剛纔僅僅擴容了邏輯卷LV1的容量,而沒有文件系統擴容,因此需要對文件系統擴容:
[root@localhost ~]# resize2fs /dev/mapper/VG1-LV1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VG1-LV1 is mounted on /LV1; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mapper/VG1-LV1 to 1572864 (4k) blocks.
The filesystem on /dev/mapper/VG1-LV1 is now 1572864 blocks long.
[root@localhost ~]# df -h
/dev/mapper/VG1-LV1 5.8G 8.0M 5.5G 1% /LV1
到此/LV1已經擴容成功!
二、LV縮減,先卸載掛載點,再對文件系統進行縮減,最後縮減邏輯卷LV
1、先卸載掛載點:
[root@localhost ~]# umount /LV1/
[root@localhost ~]# mount -l
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda3 on /usr type ext4 (rw)
/dev/sr0 on /mnt type iso9660 (ro) [CentOS_6.6_Final]
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
2、縮減文件系統:
[root@localhost ~]# resize2fs /dev/mapper/VG1-LV1 4G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/VG1-LV1 to 1048576 (4k) blocks.
The filesystem on /dev/mapper/VG1-LV1 is now 1048576 blocks long.
注:將文件系統/dev/mapper/VG1-LV1
縮減到4G
3、縮減邏輯卷LV:
[root@localhost ~]# lvreduce -L -2G /dev/mapper/VG1-LV1
WARNING: Reducing active logical volume to 4.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LV1? [y/n]: y
Size of logical volume VG1/LV1 changed from 6.00 GiB (1536 extents) to 4.00 GiB (1024 extents).
Logical volume LV1 successfully resized
4、掛載、查看lv和掛載點大小 :
[root@localhost ~]# mount /dev/mapper/VG1-LV1 /LV1/
[root@localhost ~]# df -h
/dev/mapper/VG1-LV1 3.9G 8.0M 3.7G 1% /LV1
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
LV1 VG1 -wi-ao---- 4.00g
三、LVM刪除(LVM刪除之前,請對重要數據備份到其它分區或LVM分區上)
刪除LV,VG順序:卸載掛載的邏輯卷,刪除相應的邏輯卷,再刪除卷組,最後刪除物理卷PV。1、卸載掛載的邏輯卷
[root@localhost ~]# umount /LV1/
2、刪除相應的邏輯卷LV
刪除相應的邏輯卷前,需要先使用命令vgchange將活動的邏輯組停止:
[root@localhost ~]# vgchange -an VG1
0 logical volume(s) in volume group "VG1" now active
注:-a是available的縮寫,y表示yes,n表示no
查看邏輯卷LV路徑:
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/VG1/LV1
刪除邏輯卷LV:
[root@localhost ~]# lvremove /dev/VG1/LV1
Logical volume "LV1" successfully removed
3、刪除邏輯卷組VG
[root@localhost ~]# vgremove VG1
Volume group "VG1" successfully removed
查看卷組VG1是否刪除成功:
[root@localhost ~]# vgdisplay
No volume groups found
4、刪除物理卷PV
查看PV信息
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 2.01g 2.01g
/dev/sdb2 lvm2 --- 2.01g 2.01g
/dev/sdb3 lvm2 --- 2.01g 2.01g
刪除PV:
[root@localhost ~]# pvremove /dev/sdb{1,2,3}
Labels on physical volume "/dev/sdb1" successfully wiped
Labels on physical volume "/dev/sdb2" successfully wiped
Labels on physical volume "/dev/sdb3" successfully wiped
驗證PV刪除成功與否:
[root@localhost ~]# pvs
如果只想將某個分區從物理卷中刪除,首先使用使用pvmove將該物理館上的數據移到別的物理卷,再使用vgreduce命令刪除該物理卷。這樣這個物理卷就像普通分區一樣使用了。
[root@localhost ~]# pvmove /dev/sdb1
/dev/sdb1: Moved: 0.6%
/dev/sdb1: Moved: 39.6%
/dev/sdb1: Moved: 78.6%
/dev/sdb1: Moved: 100.0%
[root@localhost ~]# vgreduce VG1 /dev/sdb1
Removed "/dev/sdb1" from volume group "VG1"