什么是lvm?
LVM是Logical Volume Manager(逻辑卷管理)的简写,它将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,支持扩展或缩减空间。与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。
LVM由三层组成:底层PV,中间VG,上层LV,关系图如下所示:
LVM:逻辑卷,可以让设备自由伸缩的一个设备管理软件 PV:底层的物理卷,如硬盘,分区或者RAID等 VG:物理卷组,是PV的组合,可以将它理解为一个仓库或者是几个大的硬盘 PE:物理拓展,lvm最小的存储单元 LV:逻辑卷,是最终我们使用的可以伸缩的设备
创建LVM
**第一步** fdisk /dev/vdb命令新建分区,Command (m for help):命令下选t,指定设备的功能id为linux LVM **第二步** 开启一个监控窗口,实时查看物理卷、物理卷组、逻辑卷设备、/mnt目录下的设备挂载情况 watch -n 1 'pvs;echo ===============;vgs;echo ===============;lvs;echo ===============;df -h /mnt' **第三步** pvcreate /dev/vdb1 ##把物理分区做成物理卷 vgcreate vg0 /dev/vdb1 ##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0 lvcreate -L 200M -n lv0 vg0 ##在vg0这个组中建立出lv0设备,-L指定设备大小,-n指定设备名称 **第四步** mkfs.xfs /dev/vg0/lv0 ##格式化lv0设备 mount /dev/vg0/lv0 /mnt/ ##挂载至/mnt/目录下至此,查看监控效果,如下图所示。
相关设备的属性
扩容LVM(xfs文件系统) 注:此文件系统只能扩大,不能缩减
**第一步** lvextend —L 90M /dev/vg0/lv0 ##扩大lvm设备到90M xfs_growfs /dev/vg0/lv0 ##扩大xfs文件系统到设备大小 **第二步** fdisk /dev/vdb命令新建分区,大小200M,指定设备的功能id为linux LVM,partprobe命令同步分区表 **第三步** pvcreate /dev/vdb2 ##在pv中增加一块设备/dev/vdb2 vgextend vg0 /dev/vdb2 ##把新建立的/dev/vdb2添加到vg0中 lvextend —L 150M /dev/vg0/lv0 ##扩大lvm设备到150M xfs_growfs /dev/vg0/lv0 ##扩大xfs文件系统到设备大小再次查看监控效果
扩容LVM(ext文件系统) 注:此文件系统既可以扩大,也可以缩减
**扩容** umount /mnt/ ##取消挂载 mkfs.ext4 /dev/vg0/lv0 ##重新格式化lv0设备 mount /dev/vg0/lv0 /mnt/ lvextend -L 200M /dev/vg0/lv0 ##扩大lvm设备到2G resize2fs /dev/vg0/lv0 ##设定文件系统大小和设备同步 **缩减** umount /dev/vg0/lv0 ##卸载设备,文件系统的缩减不支持在线操作 e2fsck -f /dev/vg0/lv0 ##检测文件系统,确定文件系统中已有数据大小防止过度缩减 resize2fs /dev/vg0/lv0 150M ##把文件系统缩减到150M lvreduce -L 150M /dev/vg0/lv0 ##设备缩减到150M pvmove /dev/vdb1 /dev/vdb2 ##把设备1上的所有数据移动到设备2上 vgreduce vg0 /dev/vdb1 ##把vg0中的/dev/vdb1删除 pvremove /dev/vdb1 ##把/dev/vdb1上的lvm管理信息删除再次查看监控效果
制作快照
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 ##给/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s指定快照模板设备 mount /dev/vg0/lv0-backup /userdate ##挂载快照 注:当快照设备里的数据被更改,如果想还原,删除快照设备,在重新建立快照即可