在生产环境中,通常会使用LVM(Logical Volume Manager,逻辑卷管理)作为管理存储设备的工具,以便于快速灵活地进行扩容、缩容等操作。本文将展示如何基于LVM创建分区,并对该分区扩容。
首先,我们需要认识LVM中的几个基本概念:
- 物理卷(Physical Volume,PV):存储底层的块设备,通常是物理磁盘,也可以是磁盘上的某个分区。
- 卷组(Volume Group,VG):由一个或多个物理卷组成,为逻辑卷提供待分配的空间。
- 逻辑卷(Logical Volume,LV):从卷组中划分的虚拟分区,是实际上用于存储文件系统的空间。
- 物理块(Physical Extent,PE):LVM中用于分配的最小存储单元,默认为4MB,逻辑卷和物理卷都由这种单元构成,并且组成同一卷组的PE大小相同。
壹、初始分区环境
首先看一下当前的分区情况:
图片
我们计划在 vdb 这块磁盘上创建一个LVM分区,挂载到工作目录/tyun。
贰、创建一个基本LVM分区
刚挂载的物理磁盘需要经过 LVM 的初始化操作,才能被 LVM 管理。
具体流程如下:
1. 创建物理卷、卷组和逻辑卷
2. 查看物理卷、卷组和逻辑卷
因为磁盘操作涉及数据,每一步的检查都是必要的,每一步的操作都要小心谨慎。
3.格式化逻辑卷
此时再次查看磁盘分区,发现 vdb 磁盘下已经有了一个 lvm 分区。
图片
4. 挂载分区到工作目录上
需要提醒的是,该命令只是临时挂载,系统重启就会取消。如果想要挂载持久化,需要编辑/etc/fstab文件,让系统启动时自动挂载。
具体操作如下:
查看分区,已经成功挂载。
叁、扩容LVM分区
LVM最强大的地方就在于可以灵活地对逻辑卷进行扩容和缩容,此时我们需要对刚刚创建的/tyun分区进行扩容,添加一块磁盘 vdc 后,分区情况如下:
图片
1. 将新添加的磁盘 vdc 初始化为物理卷
2. 对现有卷组 vg0 进行扩展,把新的物理卷加入
查看当前卷组,确认卷组容量已扩容,确认 vdc 已加入 vg0 。
3. 对挂载工作目录/tyun的逻辑卷 lv0 进行扩容
此时查看分区信息,发现逻辑卷 lv0 已经扩容到 50G,但/tyun分区还是原来的 30G。
这是因为文件系统层感知不到逻辑卷的大小变化,需要用一些工具根据实际的卷空间,重新调整文件系统的大小。
4. 调整文件系统的大小
因为是 ext4 文件系统,使用resize2fs工具在线扩容。如果是 xfs 文件系统,可使用xfs_growfs工具进行扩容。
再次查看,已经完成扩容。
肆、关于LVM的一些扩展
1. 磁盘空间收缩
与扩容相反,这是个不常见的操作,同样是通过分配逻辑卷空间实现,涉及到文件系统调整,且需要卸载分区,如果条件允许,操作前一定要进行备份。
此时查看 lv0 逻辑卷大小,已经缩容到 40G,重新挂载到工作目录即可。
再次提醒,缩小磁盘容量是一个敏感操作,可能导致数据丢失,一定要确保对重要文件做了备份,以及预留了足够的缩容空间。
LVM 的快照功能
LVM的快照就是对逻辑卷拷贝一份副本,可以在进行重要操作前创建一个逻辑卷快照,防止操作意外导致的数据损失。
- --size:指定快照的大小
- --snapshot:表示创建快照操作
- --name:指定快照的名称
- /dev/vg0/lv0:指定需要创建快照的逻辑卷
使用快照就是将这个快照的逻辑卷挂载到新建的某个目录上。
LVM 默认创建的快照是 COW(Copy-On-Write,写时复制)类型的,即在原始卷上写入时,在快照卷记录发生变化的数据,这种类型可以在创建快照后继续对原始卷进行写入而不影响快照一致性,一般用于测试操作前的备份。
如果在创建快照的命令中加-ro参数,可以创建一个RO(Read-Only,只读)快照,它是原始卷的静态副本,不允许在快照卷上进行写入操作,通常用于记录某个时间点的原始卷状态。
伍、总结
LVM 作为 Linux 下的磁盘管理工具,已在各种环境和场景中得到了广泛应用,将底层的存储设备抽象成一个逻辑层,令运维人员可以灵活和高效地管理存储空间,并提供了快照等丰富功能。
掌握 LVM 如何扩容,熟悉它的功能,是系统运维人员必修的技能,但须注意:在生产环境中,任何对磁盘的操作都是高危操作,一定要小心谨慎,避免影响数据!