LVM(Logic Volume Manager)逻辑卷管理,它是linux环境下对磁盘分区进行管理的一种机制。
基本术语
- PV: Physical Volume 物理卷
- VG: Volume Group 卷组,由一个或多个PV组成。可以在其上创建一个或多个LV
- LV: Logical Volume 逻辑卷,在其上可以创建文件系统
- PE: Physical Extent 物理扩展盘区,每个PV都会被划分成PE,它是可以被LVM寻址的最小单元
- LE: Logical Extent 逻辑扩展盘区,
基本原理
1) 物理磁盘被格式化为PV,空间被划分为一个个PE
2) 不同的PV加入到同一个VG中,其对应的所有PE都进入VG的PE池中
3) LVM从PE池中选择PE创建LV,不同物理盘中的PE可能会划分到同一个LV中
4) 在LV上创建文件系统后就可以挂载使用了
5) 对LV的扩容和缩减其实就是相应的增加或减少PE数量
创建逻辑卷时,定义了逻辑扩展盘区与物理扩展盘区的映射关系。
创建流程
创建分区
1 | [root@localhost ~]# fdisk /dev/sdb |
创建pv
1 | [root@localhost ~]# pvcreate /dev/sdb1 |
创建vg
1 | [root@localhost ~]# vgcreate vg0 /dev/sdb1 |
创建lv
1 | [root@localhost ~]# lvcreate -L 100m -n lv0 vg0 |
创建LV时LV的大小有以下两种方式指定
- 通过
-L
参数,表示物理大小 - 通过
-l
参数,使用相关VG/LV或PV大小的百分比来指定- 10%VG, 表示10%的VG总大小
- 20%FREE, 表示VG中剩余空间的20%
- 30%PVS, 表示PV集合中剩余空间的30%
- 该参数后面跟数值(非百分比)时,表示包含多少个PE大小。
1 | [root@localhost ~]# lvremove /dev/vg0/lv0 |
格式化文件系统
1 | [root@localhost ~]# mkfs.ext3 /dev/vg0/lv1 |
扩容
扩容LV
1 | [root@localhost ~]# lvs |
1 | [root@localhost ~]# lvs |grep lv1 |
lvextend 中 -L
和 -l
参数中如果没有使用 +
号,则表示扩容到指定大小
扩容VG
当VG中没有空闲资源时需要先扩容VG才能扩容LV
1 | [root@localhost ~]# pvs |
缩减容量
- 先umount设备
- 缩减文件系统大小
- 缩减LV大小
1 | [root@localhost ~]# umount -l /usr1 |
分区扩展
1 | root@baoze:# pvs |