天天看点

Linux—Linux之lvm

一. 什么是LVM:PV,PE,VG,LV的概念

LVM的全名为Logical Volume Manager 逻辑卷管理器 LVM是将几个物理分区通过软件组合成一个大磁盘(VG),然后再将这块大磁盘分成可使用的分区(LV),然后进行挂载使用
pv   物理卷  被lv命令处理过的物理分区

vg   物理卷组     被组装到一起的物理卷

pe   物理扩展     lvm设备的最小存储单元,lvm是pe的整数倍

lv   逻辑卷       从VG中拿出的我们想要的存储空间

           
##lvm建立##
watch -n 1 'pvs;vgs;lvs;df -h /mnt'   ##再另打开一个Terminal 观察变化
1.分区时定分区标签为8e
pvcreate /dev/vdb1
vgcreate vg0 /dev/vdb1          ##vg0为自定义物理卷组的名字
lvcreate -L 20M -n lv0 vg0      ##lv0为自定义lv的名字
mkfs.xfs /dev/vg0/lv0           ##格式化并搭载文件系统
mount /dev/vg0/lv0 /mnt         ##挂载
df -H /mnt                     
df -h /mnt          
           
Linux—Linux之lvm
Linux—Linux之lvm
Linux—Linux之lvm
Linux—Linux之lvm
##lvm的拉伸##

lvm支持热拉伸                            ##支持挂载时进行拉神

1.当vg中的剩余容量充足情况
lvextend -L 80M /dev/vg0/lv0 		##拉伸设备 由上面设定的20M拉伸到80M
xfs_growfs /dev/vg0/lv0		        ##拉伸文件系统
##一定先拉神设备再拉神文件系统

2.当vg中的容量不足时
再次建立分区并修改标签8e
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2		##拉伸物理卷组
lvextend -L 200M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
           
Linux—Linux之lvm
Linux—Linux之lvm
3.针对ext文件系统的设备扩展和缩减
1.改变文件系统
umount /mnt                 ##改变文件系统必须先卸载
mkfs.ext4 /dev/vg0/lv0      ##将文件系统改为ext4
           
Linux—Linux之lvm
2.ext4文件设备的扩展
     
lvextend -L 100M /dev/vg0/lv0
resize2fs /dev/vg0/lv0 100M 
mount /dev/vg0/lv0 /mnt
           
3.设备的缩减
umount /mnt                 ##缩减不支持在挂载时缩减。所以先卸载,先缩小文件系统
mkfs.ext4 /dev/vg0/lv0      ##xfs文件系统只支持扩展,不支持缩减 所以先将文件系统改为ext4,再缩减     
e2fsck -f /dev/vg0/lv0      ##扫描,防止缩小到存储不了原来的内容
resize2fs /dev/vg0/lv0 100M    
lvreduce -L 100M /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
           
Linux—Linux之lvm
Linux—Linux之lvm
Linux—Linux之lvm
##缩减vg
vgreduce vg0 /dev/vdb2   缩减vg

vgextend vg0 /dev/vdb2  扩展vg
           
##数据迁移(移除含有数据的设备)
pvmove /dev/vdb1 /dev/vdb2
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
           
Linux—Linux之lvm
####lvm快照####
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup  /mnt
如果截取数据大于40M,会损坏设备
dd if=/dev/zero of=/mnt/file bs=1M count=60
再次挂载会报错

umount /mnt
lvremove /dev/vg0/lv0-backup
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0	##相当于设备reset
再次挂载可以看原设备数据
           
Linux—Linux之lvm
Linux—Linux之lvm
####全部删除还原####
lvremove /dev/vg0/lv0-backup	##先删快照,再删设备本身
lvremove /dev/vg0/lv0
vgremove vg0
pvremove /dev/vdb2
fdisk /dev/vdb
d *
           
Linux—Linux之lvm
Linux—Linux之lvm