LVM卷可以很灵活方便地在线调整磁盘空间的大小,可以使用同一块硬盘的其他分区进行扩容,也可以使用其他硬盘进行扩容,本文将分别进行测试,本文使用的测试环境是Red Hat Enterprise Linux Server release 6.5 (Santiago)。
LVM主要由物理卷(PV)、卷组(VG)、逻辑卷(LV)三层构成,具体如下:
PV(physical volume,PV):物理卷,它的文件格式不是ext4这些,而是具有LVM管理功能的LVM格式
VG(Volume Group,VG):卷组,卷组是在PV物理卷的基础上创建的,卷组是由一个或多个物理卷组成的,卷组可以在物理卷PV的基础上扩展和缩小。
LV(logical volume,LV):逻辑卷,在VG的基础上创建,可以进行格式化、可以创建文件系统、可以被挂载。对于用户相当于一个磁盘分区,不过实际上是在VG上逻辑出来的,可以在VG的基础上实现扩展和缩小,扩展的边界是不能超过VG的。
还需要提一下的另一个概念是PE,PE相当于block块,默认是4M,一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,VG是由这些PE块组成,也是VG可以自由扩展和缩小的关键原因。
一、创建LVM卷
1、增加一块硬盘,使用fdisk -l命令查看可看到多了一个/dev/sdb,大小为5G
2、对新增的硬盘/dev/sdb进行分区,并转换成LVM格式
3、使用fdisk -l命令确认分区/dev/sdb1已经创建
4、使用分区/dev/sdb1进行LVM物理卷的创建:pvcreate /dev/sdb1,创建成功后可以使用命令pvdisplay查看创建的物理卷,必须将分区先创建成物理卷(PV),才能进行后续卷组(VG)的创建
5、使用分区/dev/sdb1进行卷组vg01的创建:vgcreate vg01 /dev/sdb1,创建成功后可以使用命令vgdisplay查看创建的卷组,注意要确认卷组的大小,即VG Size 4.99G,后面创建逻辑卷(LV)时大小最大只能是4.99G
6、一个卷组可以包含多个逻辑卷(LV),我们这里的卷组vg01只包含一个逻辑卷就行,逻辑卷lv01的大小跟卷组一样大:lvcreate -L 4.99G -n lv01 vg01,其中-L是指定大小,-n是指定名称
7、逻辑卷lv01创建完成后需要进行格式化:mkfs.ext4 /dev/vg01/lv01
8、格式化完成后的逻辑卷lv01就可以挂载到目录了,我把它挂在到/mnt目录:mount /dev/vg01/lv01 /mnt,并使用df -ah命令进行查看,若要开机自动挂载则需将挂载信息写入fstab文件
9、测试写入文件到/mnt目录:touch /mnt/test.txt
二、使用相同硬盘的不同分区扩容LVM卷
本文原始出处:江健龙的技术博客 http://jiangjianlong.blog.51cto.com/3735273/1845149
1、使用虚拟机可以很容易进行虚拟硬盘的扩容,我把那块5G的盘扩容到15G
2、通过命令fdisk -l可以看到/dev/sdb已经变成了16.1G,实际上是15G,因为15G=16106127360字节,而Linux不按1024来换算,直接用1000来换算,导致16106127360字节就显示成16.1G了
3、为/dev/sdb扩容出来的未使用空间创建第二个分区,同样也是转换成lvm分区
4、创建完第二个分区/dev/sdb2后输入w保存提示无法更新分区表除非reboot或执行partprobe命令,但是我直接执行partprobe命令失败,执行partprobe /dev/sda1虽没报错,但好像并未生效,后面使用新加分区/dev/sdb2来创建PV会提示分区/dev/sdb2 not found,还是reboot一下吧
5、reboot完之后就可以使用第二个分区/dev/sdb2来创建PV了:pvcreate /dev/sdb2
6、再使用/dev/sdb2对vg01进行扩容:vgextend vg01 /dev/sdb2,使用命令vgdisplay可以看到VG Size 已经从之前的4.99G变成了14.99G,并且空闲的容量Free Size是10G
7、接下来就是扩容逻辑卷lv01了:lvextend -L 14.99G /dev/vg01/lv01,在扩容前后通过lvs命令查看逻辑卷lv01的大小,可以很明显地看到lv01已经从4.99G变成了14.99G
8、但是此时使用df-ah命令可以看到实际大小还是5G
9、执行命令重定义文件系统的大小:resize2fs /dev/vg01/lv01,然后再df -ah查看就可以发现已经变成15G了
10、最后再fdisk -l查看确认一下扩容后的磁盘信息
三、使用不同硬盘扩容LVM卷
本文原始出处:江健龙的技术博客 http://jiangjianlong.blog.51cto.com/3735273/1845149
1、再增加一块10G的硬盘,使用fdisk -l可以看到这块新硬盘是/dev/sdc,我们将用它来扩容上文的lv01
2、将新硬盘/dev/sdc创建分区/dev/sdc1并转换成LVM卷
3、使用分区/dev/sdc1创建PV:pvcreate /dev/sdc1
4、将/dev/sdc1扩容到卷组vg01中:vgextend vg01 /dev/sdc1,通过命令vgs、vgdisplay可以看到卷组vg01已经从上文扩容后的容量14.99G再次扩容到了24.98G,并且空闲容量Free Size是9.99G
5、扩容逻辑卷lv01的操作跟上文同理:lvextend -L 24.98G /dev/vg01/lv01,在扩容前后通过lvs命令查看逻辑卷lv01的大小,可以很明显地看到lv01已经从14.99G变成了24.98G
6、最后同样是使用命令重定义文件系统的大小:resize2fs /dev/vg01/lv01,然后再df -ah查看就可以发现已经变成25G了
7、fdisk -l查看确认一下扩容后的磁盘信息