简介
LVM(Logical Volume Manager)逻辑卷管理,是Linux环境下更为灵活弹性的磁盘管理工具。LVM使用的是内核中的dm(device mapper)模块,它的作用是将一个或多个底层块设备组织成一个逻辑设备的模块。 现在有两个Linux的版本,分别是LVM1,LVM2。 逻辑卷管理提供了比传统的磁盘和分区视图更高级别的计算机系统上磁盘存储的试图。 在逻辑卷管理的控制下创建的存储卷可以随意调整大小和移动。 逻辑卷管理还允许用户自定义组中的存储卷,允许系统管理员处理明显命名的卷组(例如:"development")。
工作原理
lvm的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。传统的磁盘管理机制中,上层应用直接访问文件系统,从而对底层的物理硬盘进行读取。而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。
基本术语
physical volume(PV)
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是RAID硬盘。
常用命令
- pvs:输出格式化的物理卷简要信息
~]# pvs
- pvdisplay:显示物理卷的详细属性信息
~]# pvdisplay /dev/sdb5
- pvcreate:将物理硬盘分区初始化为物理卷
~]# pvcreate /dev/sdb5
- pvmove:转移物理卷数据
~]# pvmove /dev/sdb5 /dev/sdb6
- pvremove:删除一个存在的物理卷
~]# pvremove /dev/sdb5
volume group(VG)
卷组建立在逻辑卷之上,一个卷组至少要包括一个物理卷,在卷组建立之后可动态添加或缩减物理卷。
常用命令
- vgs:输出格式化的卷组简要信息
~]# vgs
- vgdisplay:显示卷组的详细属性信息
~]# vgdisplay
- vgcreate:创建卷组并指定物理块大小
~]# vgcreate testVG -s 8M /dev/sdb5
- vgextend:动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量
~]# vgextend testVG /dev/sdb6
- vgreduce:删除LVM卷组中的物理卷来减少卷组容量
将要删除的物理卷数据通过pvmove转移到其他物理卷 ~]# pvmove /dev/sdb6 /dev/sdb5 ~]# vgreduce testVG /dev/sdb6
- vgremove:用于用户删除LVM卷组。
~]# vgremove testVG
logical volume(LV)
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
常用命令
- lvs:输出格式化的逻辑卷简要信息
~]# lvs
- lvdisplay:显示逻辑卷的详细属性信息
~]# lvdisplay
- lvcreate:用于创建LVM的逻辑卷
~]# lvcreate -L 5G -n testLV testVG
- lvremove:用于删除LVM的逻辑卷
~]# lvremove /dev/testNG/testLV
扩展逻辑卷
- lvextend:在现有逻辑卷的基础上扩展3G
~]# lvextend -L +3G /dev/testVG/testLV 扩展物理边界后,需要再次扩展文件系统边界 ~]# resize2fs /dev/testVG/testLV
缩减逻辑卷
-
lvreduce:在现有逻辑卷的基础上缩减3G
1.取消逻辑卷挂载 ~]# umount /dev/testVG/testLV 2.强制修复 ~]# e2fsck -f /dev/testVG/testLV 3.缩减文件系统边界 ~]# resize2fs /dev/testVG/testLV 3G 4. 缩减物理边界 ~]# lvreduce -L -3G /dev/testVg/testLV
physical extent(PE)
每个物理卷都被划分为数据块(称为物理扩展盘区),这些扩展盘区与卷组的逻辑盘区具有相同的大小。 LVM 默认使用4MB的PE区块。
logical extent(LE)
每个逻辑卷都被分割成数据块,称为逻辑盘区。 卷组中的所有逻辑卷的区段大小都是相同的。