LVM是 Logical Volume Manager(逻卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。
一.基本概念及关系
PV (物理卷) :可以是磁盘分区、硬盘本身或回环文件。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(PE)。
VG(卷组): 由一个或多个PV组成,可以创建一个或多个LV。
LV(逻辑卷): 虚拟分区,由PE组成。
PE(物理区域):硬盘可供指派给逻辑卷的最小单位(通常为4MB)。
分区的大小为物理边界。 文件系统的大小为逻辑边界或文件系统边界。
二.LVM管理
1.lvm的制作:
fdisk dev/vdb ##划分分区,注意功能id必须为Linux LVM,即在划分输入命令“t”后面写"8e"
pvcreate /dev/vdb1 ##把物理分区做成物理卷
pvs ##查看物理卷
vgcreate vg0 /dev/vdb1 ##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
vgs ##查看卷组
lvcreate -L 200M -n lv0 vg0 ##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字
lvs ##查看逻辑卷设备
2.lvm设备扩大/缩减
a.xfs文件系统扩大(xfs文件系统只能扩大不能缩减)
1)lvm扩大
lvextend —L 500M /dev/vg0/lv0 ##将LVM设备扩大至500M
xfs_growfs /dev/vg0/lv0 ##扩大xfs文件系统到设备大小
2)vg扩大
pvcreate /dev/vdb2 ##在pv中增加设备/dev/vdb2
vgextend vg0 /dev/vdb2 ##把新建立的/dev/vdb2添加到vg0中
b.ext文件系统扩大(ext文件系统可以扩大也可以缩减)
1)lvm扩大
lvextend —L 2G /dev/vg0/lv0 ##扩大lvm设备到2G
resize2fs /dev/vg0/lv0 ##设定文件系统大小和设备同步
2)vg扩大
pvcreate /dev/vdb3
vgextend vg0 /dev/vdb3
3)lvm缩减
umount /dev/vg0/lv0 ##文件系统缩减不支持在线操作,所以先卸载设备
e2fsck -f /dev/vg0/lv0 ##检测文件系统,防止过度缩减
resize2fs /dev/vg0/lv0 1G ##把文件系统(逻辑边界)缩减到1G
lvreduce -L 1G /dev/vg0/lv0 ##设备(物理边界)缩减到1G
4)vg缩减(只能缩减没有被占用的设备)
pvmove 设备1 设备2 ##把设备1上的所有数据移动到设备2上
vgreduce vg0 /dev/vdb1 ##把vg0中的/dev/vdb1删除
pvremove /dev/vdb1 ##把/dev/vdb1上的lvm管理信息删除
3.lvm丢失设备的删除
例如:
[root@lmy Desktop]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 820.00m
/dev/vdb2 vg0 lvm2 a-- 1020.00m 1020.00m
unknown device vg0 lvm2 a-m 996.00m 996.00m ##设备丢失
[root@lmy Desktop]# vgreduce --removemissing vg0 ##删除vg0中丢失的设备
PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
Wrote out consistent volume group vg0
[root@lmy Desktop]# pvs ##删除成功
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 820.00m
/dev/vdb2 vg0 lvm2 a-- 1020.00m 1020.00m
4.lvm快照
lvcreate -L 20M -n lv1 /dev/vg0/lv0 ##给/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s指定快照模板设备
mount /dev/vg0/lv1 /media
当快照设备里的数据被更改,如果想还原,删除快照设备,在重新建立快照即可
5.lvm删除
先卸载,用lvremove命令删除逻辑卷,再用vgremove命令删除卷组,最后用pvremove删除物理卷。
转载于:https://blog.51cto.com/11859650/1903459