LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制.Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
二、基本术语物理卷(Physical Volume,PV):指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元;
卷组(Volume Group,VG):类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷);
逻辑卷(Logical Volume,LV):类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
从上面的定义我们可以了解到:逻辑卷(LV)是建立在卷组(VG)上的,而卷组(VG)则是建立在物理卷(PV)上的。
从中还可以作更深一层的理解:LVM的可伸缩性无非是建立在卷组(VG)和逻辑卷(LV)的可伸缩性的基础上的:
- 只要存在尚未使用的磁盘或者分区,就可以动态的扩展卷组(VG)的大小;
- 只要卷组(VG)中存在尚未分配的空间,就可以动态的扩展逻辑卷的大小。
从以上二点出发就可以达到动态调整分区大小的目的。
因为本文中很多的命令都是以上述术语的缩写开头,因此了解各个缩写对命令的记忆和使用是非常有帮助的。
三、基本命令示例中的 vg1 和 lv1 分别为物理卷组名和逻辑卷名,可自行替换成任意名称。
分类命令说明示例PV pvcreate 创建物理卷 pvcreate /dev/sdb1
PV pvdisplay 显示已创建的物理卷的详细信息
PV pvs 显示已创建的物理卷的汇总信息
PV pvremove 删除物理卷 pvremove /dev/sdb1
VG vgcreate 创建卷组 pvcreate vg1 /dev/sdb1 /dev/sdb2 …
VG vgdisplay 显示已创建的卷组的详细信息
VG vgs 显示已创建的卷组的汇总信息
VG vgextend 扩展卷组 vgextend vg1 /dev/sdb3 …
VG vgreduce 收缩卷组 vgreduce vg1 /dev/sdb5
VG vgremove 删除卷组 vgremove vg1
LV lvcreate 创建逻辑卷 lvcreate -L 1000M -n lv1 vg1
LV lvdisplay 显示已创建的逻辑卷的详细信息
LV lvs 显示已创建的逻辑卷的汇总信息
LV lvresize 重设逻辑卷大小 lvresize -L 1000M /dev/vg1/lv1
LV resize2fs 更新逻辑卷信息(ext4) resize2fs /dev/vg1/lv1
LV lvremove 删除逻辑卷 lvremove /dev/vg1/lv1
LV xfs_growfs 更新逻辑卷信息(xfs) xfs_growfs /dev/vg1/lv1
LV e2fsck 检查逻辑卷错误(ext4) e2fsck -f /dev/vg1/lv1
四、实验的操作环境 五、创建LVM
在这里我带着大家从一块全新的磁盘开始,一步步创建LVM分区。
流程