LVM(Logical Volume Manager)逻辑卷管理

一、什么是 LVM?
传统的磁盘分区方式,一旦分区确定,后续调整空间大小就很麻烦。而 LVM 不一样,它允许我们在不重新分区的情况下,动态地调整磁盘分区的大小,还能方便地创建、删除和管理逻辑卷。比如说,你原本给某个分区分配了 100GB 空间,后来发现不够用了,用 LVM 就能轻松给它扩容,是不是超棒!
二、LVM 的基本组件
物理卷(Physical Volume,PV)这是 LVM 的基础,它可以是整个硬盘、硬盘分区或者其他存储设备。简单理解,就是实实在在的物理存储单元。卷组(Volume Group,VG)卷组是由一个或多个物理卷组成的集合,它相当于一个大的存储池,把多个物理卷的空间整合到一起,方便统一管理。逻辑卷(Logical Volume,LV)从卷组这个存储池中划分出来的空间就是逻辑卷,我们日常使用的文件系统(如 ext4 等)就建立在逻辑卷上,它才是真正给用户使用的存储空间。
三、Centos7 中 LVM 的操作步骤
(一)准备工作
假设我们有一块新添加的硬盘 /dev/sdb,准备用来创建 LVM。首先,我们要确保系统识别了这块新硬盘,可以通过fdisk -l命令查看。
(二)创建物理卷
使用pvcreate命令将物理硬盘 /dev/sdb 创建为物理卷。
pvcreate /dev/sdb
执行完这个命令,这块硬盘就被纳入 LVM 的管理范畴啦。
(三)创建卷组
接下来,我们要把刚刚创建的物理卷加入到卷组中。这里我们创建一个名为myvg的卷组。
vgcreate myvg /dev/sdb
现在,myvg这个卷组就拥有了 /dev/sdb 的全部空间,可以用来创建逻辑卷了。
(四)创建逻辑卷
我们从myvg卷组中划分出一个大小为 50GB 的逻辑卷,命名为mylv。
lvcreate -L 50G -n mylv myvg
这里-L参数指定逻辑卷的大小,-n参数指定逻辑卷的名称。
(五)格式化逻辑卷
创建好逻辑卷后,还不能直接使用,需要格式化。这里我们格式化为 ext4 文件系统。
mkfs.ext4 /dev/myvg/mylv
注意,这里的路径是/dev/卷组名/逻辑卷名。
(六)挂载逻辑卷
最后一步,把格式化好的逻辑卷挂载到系统的某个目录下,比如/data目录。
mkdir /data
mount /dev/myvg/mylv /data
到这里,一个完整的 LVM 逻辑卷就创建并挂载成功啦,你可以在/data目录下尽情使用这个 50GB 的存储空间了。
四、LVM 的扩容与缩容
(一)扩容逻辑卷
当你发现之前创建的 50GB 空间不够用时,该怎么办呢?别慌,LVM 轻松搞定。
先检查卷组剩余空间,使用vgdisplay命令查看myvg卷组的剩余空间。假设卷组还有足够空间,我们给mylv逻辑卷扩容 10GB。
lvextend -L +10G /dev/myvg/mylv
这里+10G表示增加 10GB 空间。
扩容后,还需要调整文件系统大小,让系统识别新增加的空间。对于 ext4 文件系统,使用resize2fs命令。
resize2fs /dev/myvg/mylv
这样,mylv逻辑卷就成功扩容到 60GB 了。
(二)缩容逻辑卷
如果逻辑卷空间用不完,想要缩小,也可以操作。不过要注意,缩容有一定风险,操作前一定要备份重要数据!
首先卸载逻辑卷。
umount /dev/myvg/mylv
检查文件系统完整性,使用e2fsck -f /dev/myvg/mylv命令。缩小文件系统,假设我们要把mylv逻辑卷缩小到 40GB。
resize2fs /dev/myvg/mylv 40G
缩小逻辑卷大小。
lvreduce -L 40G /dev/myvg/mylv
最后重新挂载逻辑卷。
mount /dev/myvg/mylv /data
这样,逻辑卷就成功缩容到 40GB 了。
通过今天的教程,大家对 Centos7 系统下的 LVM 应该有了全面的了解。在实际的服务器运维中,合理运用 LVM 能让我们的工作更加高效、灵活。