1.PV VG LV的建立
##用于空间拉伸,因为有时候并不能估计空间大小,如果空间满了,可以再添加空间。
##桔子模型:将桔子榨成汁,然后将果汁倒入大杯子,用的时候将果汁倒入小杯子,小杯子的果汁用完后,从大杯子里加入,大杯子果汁没有了,继续拿桔子榨汁。
##上述模型中,PV相当于桔子,即硬盘,VG相当于大杯子,LV相当于小杯子
##查看LVM命令:pvs|pvdisplay vgs|vgdisplay lvs|lvdisplay
##创建
fdisk /dev/vdb ##创建一个分区,并且标识为LVM
pvcreate /dev/vdb1 ##创建一个pv
vgcreate vg0 /dev/vdb1 ##创建一个vg
lvcreate -L 200M -n lv0 vg0 ##创建一个lv并且分得200M空间
mkfs.xfs /dev/vg0/lv0 ##格式化lv
mount /dev/vg0/lv0 ##挂载
##拉伸
##在lv的空间用满了之后,就需要重新在vg中加入空间,当vg空间用完后,需要从pv中获取。
fdisk /dev/vdb2 ##重新创建一个分区vdb2,标识也为LVM
pvcreate /dev/vdb2 ##将所做的分区重新创建一个pv
vgextend vg0 /dev/vdb2 ##将新建的pv空间加入vg中
lvextend -L xxxM /dev/vg0/lv0 ##将vg中的空间加入lv中
xfs_growfs /dev/vg0/lv0 ##格式化新加入的空间
##直接lvextend空间,空间是不会同步到之前的lv空间的,需要进行格式化,但不能直接格式化,会删除之前的数据,所以使用"xfs_growfs",xfs文件系统只能添加空间,不能缩小空间。
##ext4文件系统
##ext4文件系统相比较xfs来说,可以拉伸和缩减空间。
##拉伸
##在做拉伸之前,需要将/dev/vg0/lv0格式化成ext4文字格式
lvextend -L 1G /dev/vg0/lv0 ##将空间拉伸至1G
resize2fs /dev/vg0/lv0 ##格式化添加的空间,于xfs的格式化方法不同
##缩减
umount /mnt ##在进行空间缩减之前必须取消挂载
e2fsck -f /dev/vg0/lv0 ##对分区进行扫描,在缩减过度时会提示
resize2fs /dev/vg0/lv0 200M r ##将dev/vg0/lv0缩减至200M
mount /dev/vg0/lv0 /mnt ##重新挂载
lvreduce -L 200M /dev/vg0/lv0 ##缩减lv空间
缩减的时候一定要先将文件系统格式化再格式化磁盘
2.PV中磁盘的移除#######
pvmove /dev/vdb1 /dev/vdb2 ##将vdb1中的数据移至vdb2下,如果移除的硬盘没有数据,可以忽略
vgreduce vg0 /dev/vdb1 ##将vdb1的空间从vg0中拿出来
pvmove /dev/vdb1 ##从pv中移除vdb1
##移除磁盘时必须先确保没有数据,将磁盘从vg0中拿出来,然后再从pv中移除。
3.LVM快照#############
##在挂载后使用文件时有时会误删一些数据,删除后无法恢复,但是可以使用LVM快照对数据进行备份,在错误操作后可以还原。
##快照操作
umount /mnt ##快照时必须先取消挂载
lvcreate -L xxxM -n lv0-backup -s /dev/vg0/lv0 ##对/dev/vg0/lv0进行快照
mount /dev/vg0/lv0-backup /mnt ##将快照后的文件挂载
##误删后恢复
umount /mnt ##取消挂载
lvremove /dev/vg0/lv0-backup ##移除误删后的快照
lvcreate -L xxxM -n lv0-backup -s /dev/vg0/lv0 ##重新对/dev/vg0/lv0-backup备份
mount /dev/vg0/lv0-backup /mnt ##将新的快照重新挂载
4.LVM的删除##########
umount /mnt ##取消挂载
lvremove /dev/vg0/lv0-backup ##删除lv快照
lvremove /dev/vg0/lv0 ##删除lv
vgremove vg0 ##删除vg
pvremove /dev/vdb2 ##删除pv
##完成后可以通过pvs,vgs,lvs来检测是否删除。