LVM2逻辑卷之1——创建及扩容

简介:

一、背景介绍

LVM2逻辑卷由于支持空间的动态扩展或收缩,在中小企业中有一定的使用场景,在CentOS5、6系统中经常会见到,从CentOS7以后默认的文件系统由ext4改为btrfs,而btrfs也支持空间的动态扩展和收缩,所以在CentOS7以后的系统中再使用LVM就是不明智的选择了

二、LVM原理介绍

在介绍LVM之前首先需要对几个名词进行说明:

PV——physical volume,在物理层面磁盘组成的磁盘卷

VG——volume group,在较低的逻辑层从多个PV中抽象出来的卷组

PE——physical extend,VG将PV所提供的容量再次以“块”的形式对外提供,每一个“块”的大小

LV——logical volume,由多个LV“块”组成可供挂载使用的设备文件

wKioL1jbxO_h88RYAAAu8Tvb9ug359.png

从上图可以看出VG是一个或多个PV抽象出一个逻辑层,该逻辑层对外提供的块大小称为PE,将多个PE组成的LV就是用于挂载的设备文件。空间的扩展或收缩就是增加或减少PE的过程。LVM功能实际上是通过内核中的dm模块(device mapper)实现,它将一个或多个底层块设备组织成一个逻辑设备的模块,在/dev/目录下以dm-#形式展现

三、创建LVM2逻辑卷

1.添加一个新磁盘,或在原有磁盘剩余空间上新创建几个分区(只要是块设备都可以用于创建LVM2),注意分区时ID号要是8e

wKiom1jbxO-hztDPAAAo3wnIQHg183.png

2.从分区类型中可以看到,8e是用于LVM的的ID号

wKioL1jbxO-gzNK5AAAj3Bud0PU449.png

3.使用pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3命令新建3个PV,完成后可以使用pvs查看

wKiom1jbxPDCpGT5AABAuJL9T5U827.png

4.使用命令vgcreate [-s #[kKmMgG]] myvg /dev/sdb1 /dev/sdb2 /dev/sdb3 创建VG,可以使用-s设置PE块的大小,默认是4M,myvg是自定义的VG名称

wKioL1jbxPCyr8uqAABLw02NTWI731.png

5.使用命令lvcreate -L 15G -n mylv myvg创建LV,此处需要注意的是如果后期删除LV需要之名LV的路径,即使用lvremove /dev/myvg/mylv命令完成

wKiom1jbxPGBpydHAAAulsGY54A653.png

创建好的LV可以在/dev/mapper/下通过VG_NAME-LV_NAME或者在/dev/下通过VG_NAME/LV_NAME找到,这两个路径其实都是指向/dev/dm-#的链接

wKiom1jbxPHyTxjaAABMjRCRnBA115.png

6.此时LV就已将创建完成,使用mke2fs命令将LV格式化后就可以挂载使用了

wKioL1jbxPGD78K5AAAZbpSSSnE985.png

三、LVM2扩容

从前文得知LV的大小受制于PE、VG、PV,所以当要对LV进行扩容时推荐的步骤为:扩容PV——扩容VG——扩容LV——扩大文件系统大小

1.再将一个分区创建为PV

wKiom1jbxPLih1b4AAA2tWUGDpo543.png

2.将新创建的分区加入myvg的VG中,使用vgs可以看到PV数量由3变成了4

wKioL1jbxPLhOVqyAAA5yFCZ3-Q244.png

3.在通过lvresize -L +4G /dev/myvg/mylv命令扩容LV大小,此处注意-L后+4G表示再原有基础上再增加4G的空间,也可以写成lvresize -L 19G /dev/myvg/mylv表示空间大小增加到19G

wKioL1jbxPPS09WAAAEvm46k48c863.png

4.此时LV空间虽然扩大了,但是会发现挂载的设备文件空间大小并没有发生变化

wKiom1jbxPOxoBcAAAAYkA8ZOGY407.png

卸载原来的挂载点,使用resize2fs /dev/myvg/mylv命令对文件系统扩容后,再挂载看到已经变成19G了

wKiom1jbxPTgjWuuAAAYF0Fcskk147.png

补充说明

在讲LV设备(/dev/myvg/mylv)挂载到/lvm目录下后,直接扩展文件系统时提示无法在线扩展

wKioL1jbxPSCNl8yAAA6KjW_gGE632.png

卸载后再次尝试扩展文件系统提示找不到有效的超级块

wKiom1jbxPWi8qKgAAAyH94d_Qg543.png

重启后再次尝试,提示先检查并修复文件系统

wKioL1jbxPXRUZ7cAAAo5DBgOQU642.png

只有当检查完文件系统后再次扩容才能够成功,具体产生的原因尚且不清楚

wKiom1jbxPWgNmE-AABXK0F-mBo814.png



本文转自 qiao645 51CTO博客,原文链接:http://blog.51cto.com/arkling/1911573

相关文章
|
缓存 运维 监控
10分钟带你了解 Linux 系统中的 Top 命令
`top`命令是Linux系统中用于实时监控系统资源利用率的工具,展示CPU、内存使用情况及进程状态。启动`top`只需在终端输入`top`。默认按CPU使用率排序,可通过`P`、`M`、`T`键改变排序。使用`k`键可结束进程,`d`键调整刷新率,`q`键退出。输出信息包括系统负载、进程状态、内存使用等。通过进程列表,可以观察到每个进程的CPU和内存占用、用户、运行时间等。了解`top`能帮助测试工程师排查性能问题。
|
SQL 存储 关系型数据库
MySQL主从复制之原理&一主一从部署流程—2023.04
MySQL主从复制之原理&一主一从部署流程—2023.04
1688 0
10zTree - 用 zTree 方法异步加载节点数据
10zTree - 用 zTree 方法异步加载节点数据
374 0
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
企业级API集成方案:基于阿里云函数计算调用DeepSeek全解析
DeepSeek R1 是一款先进的大规模深度学习模型,专为自然语言处理等复杂任务设计。它具备高效的架构、强大的泛化能力和优化的参数管理,适用于文本生成、智能问答、代码生成和数据分析等领域。阿里云平台提供了高性能计算资源、合规与数据安全、低延迟覆盖和成本效益等优势,支持用户便捷部署和调用 DeepSeek R1 模型,确保快速响应和稳定服务。通过阿里云百炼模型服务,用户可以轻松体验满血版 DeepSeek R1,并享受免费试用和灵活的API调用方式。
594 12
|
JavaScript Java 关系型数据库
学习平台|基于Springboot+vue的学习平台系统的设计与实现(源码+数据库+文档)
学习平台|基于Springboot+vue的学习平台系统的设计与实现(源码+数据库+文档)
455 1
|
运维 监控 Linux
在Linux中,如何查看所有正在运行的进程?
在Linux中,如何查看所有正在运行的进程?
|
监控 Ubuntu 数据可视化
如何使用各种工具和命令来检查 Ubuntu 中的 CPU 使用情况?
如何使用各种工具和命令来检查 Ubuntu 中的 CPU 使用情况?
3881 0
如何使用各种工具和命令来检查 Ubuntu 中的 CPU 使用情况?
|
JavaScript 开发者
【掰开揉碎】深入了解 @tap 和 @click
【掰开揉碎】深入了解 @tap 和 @click
752 0
|
小程序 JavaScript 前端开发
【每周一个小技巧】支付宝小程序跳转生活号的几种方式
【每周一个小技巧】支付宝小程序跳转生活号的几种方式
643 8
|
Ubuntu 数据安全/隐私保护 存储