一、lvm的介绍
1、lvm:是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
2、pv:是物理卷(physical volume)的简写,就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
3、vg:是卷组(Volume Group)的简写。LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
4、pe:每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
5、le:LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
总结:PV是物理的磁盘分区,而pv必须加入vg,可以将vg理解为一个仓库或者是几个大的硬盘,LV也就是从VG中划分的逻辑分区。
二、lvm的建立
在执行本次实验前,先执行一个监控命令,以便于在学习过程中可以快速看到效果!!
分别监控生成的pv,vg,lv和设备挂载情况
建立lvm设备时,先建立一个普通分区(在上一篇博客中介绍了分区建立方法),然后再将普通分区的类型改为lvm类型
fdisk /dev/vdb--->t---->8e---->wq退出保存
分区建立后,首先创建物理卷:pvcreate /dev/vdb1
然后用建好的物理卷建立物理卷组:vgcreate vg0 /dev/vdb1(中间为卷组名称,可随意命名)
然后在物理卷组中创建逻辑卷:lvcreate -L 100M -n lv0 vg0
注意:-L表示逻辑卷组的大小;-n表示逻辑卷组的名称(可随意命名)
建立好逻辑卷后,需要对设备进行格式化:mkfs.xfs /dev/vg0/lv0
可以将设备挂载在目录上看是否可以被系统使用
三、lvm的拉伸(扩展)
lvm逻辑卷管可以理相比于其他物理硬盘的好处在于当创建的lvm大小在实际应用中不够用时,可以增加,进行拓展!!
1、当vg中容量充足时
扩展命令:lvextend -L 300M /dev/vg0/lv0
命令中-L表示扩展后的大小
扩展前:
扩展后:
注意:-L后的大小是扩展后的总大小,不是扩展了多少,所以该值不能比原来的值小,否则会报错!!如下:
对逻辑卷进行扩展后,需要对设备进行同步扩充:xfs_growfs /dev/vg0/lv0
2、当vg中的 剩余容量不够所要扩充的大小时,就需要先扩展vg,然后再扩充lv
先建立新的普通分区,转化为lvm类型,方式如上,然后将其创建为新的pv
然后将新建的pv添加至需要扩充的vg中:vgextend vg0 /dev/vdb2
再对逻辑卷进行扩充:lvextend -L 700M /dev/vg0/lv0
然后对设备进行扩充:xfs_growfs /dev/vg0/lv0
在ext文件系统中:
先将设备转换为ext文件系统:mkfs.ext4 /vg0/lv0
拉伸:lvextend -L 400M /dev/vg0/lv0
文件系统重定义大小:resize2fs /dev/vg0/lv0
缩减:
对设备:
对设备缩减前先将挂载中的设备进行卸载。
扫描 文件设备,如果有重要的数据,需要先将数据备份:e2fsck -f /dev/vg0/lv0
缩减设备大小:resize2fs /dev/vg0/lv0 300M
缩减逻辑卷:lvreduce -L 200M /dev/vg0/lv0
对卷组:
在移除物理卷前,需要将其中的数据移动到其他pv中 :pvmove /dev/vdb1 /dev/vdb2
把物理卷从物理卷组中移走:vgreduce vg0 /dev/vdb1
删除该物理卷:pvremove /dev/vdb1
四、lvm快照
1、建立快照:lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0
2、快照的删除
lvm的快照在/dev/mapper目录下
五、lvm的删除
删除逻辑卷:lvremove /dev/vg0/lv0
删除物理卷组:vgremove vg0
删除物理卷:pvremove /dev/vdb2
最后再删除lvm分区:fdisk /dev/vdb中删除