Linux怎么配置LVM逻辑卷在线扩容 Linux磁盘不关机扩展详解
Linux怎么配置LVM逻辑卷在线扩容 Linux磁盘不关机扩展详解

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
想给服务器磁盘扩容,又怕影响线上服务?其实,只要用对了方法,整个过程完全可以做到不关机、不卸载、服务零中断。这里面的关键,就在于lvextend和resize2fs或xfs_growfs这两个命令必须分步执行,缺一不可。只要你的环境是LVM管理,并且文件系统是ext4或XFS,这套流程就能确保万无一失。
怎么确认当前环境支持在线扩容
动手之前,先别急着敲命令。花一分钟,用下面三行命令快速验证一下前提条件是否都满足,能帮你避开不少坑。
df -hT /path:确认目标挂载点(比如/data)的文件系统类型是ext4还是xfs。其他类型(比如btrfs或ext3)虽然也能扩容,但兼容性和操作方式有所不同,不在本文讨论范围。lsblk:看看有没有未使用的磁盘(比如/dev/sdb),或者卷组下面显示的VG Free空间是不是非零。vgs && lvs:这是最关键的一步。确认目标逻辑卷(LV)所属的卷组(VG)有空闲的物理盘区(PE),也就是Free PE / Size那一行不能是零。同时,记下LV的明确路径,比如/dev/vg01/lv_data。
如果vgs显示VFree为0,那就说明卷组已经满了。这时候直接运行lvextend,系统会毫不客气地报错Insufficient free extents。遇到这种情况,就必须先给卷组添加新的物理卷(PV)了。
卷组有空闲空间时,怎么安全扩 LV 和文件系统
这是最常见,也最容易出错的环节。很多人扩完了LV,却发现df -h显示的容量纹丝不动。问题出在哪?往往是文件系统没跟上。下面这个顺序,请务必记牢。
- 第一步,扩展逻辑卷:
lvextend -l +100%FREE /dev/vg01/lv_data。这里推荐使用-l +100%FREE这个参数,它能自动用完所有空闲空间,避免手动计算PE数量或者单位大小写错误带来的麻烦(比如老版本里,-L +10g的小写‘g’可能导致失败,稳妥起见还是用大写的‘G’)。 - 第二步,扩展文件系统。这里分两种情况:
- 如果是ext4文件系统,运行:
resize2fs /dev/vg01/lv_data。注意,命令参数是设备路径,它支持在线操作,不需要卸载(umount)。 - 如果是XFS文件系统,运行:
xfs_growfs /data。这里有个关键区别:参数必须是挂载点(比如/data),而不是设备名。如果你传了/dev/vg01/lv_data,系统会直接报错Invalid argument。
- 如果是ext4文件系统,运行:
- 最后一步,验证结果。正确的验证顺序是:先用
lvdisplay /dev/vg01/lv_data查看LV的大小是否已经改变;再用df -h /data检查挂载点的容量是否同步更新。只有当两者显示的容量一致时,才说明扩容真正生效了。
新硬盘怎么加入现有卷组并完成扩容
当卷组空间不足时,我们就需要引入新的物理硬盘(比如/dev/sdb)。注意,新硬盘不能直接拿来就用,通常需要经过分区、设置类型、刷新识别这几个步骤。
- 首先,用
fdisk /dev/sdb为磁盘创建一个主分区(比如sdb1)。创建后,使用t命令,将分区类型设置为8e(即Linux LVM)。 - 接着,执行
partprobe /dev/sdb,强制内核重新读取分区表。这一步能确保/dev/sdb1这个设备节点立即可用,否则接下来的pvcreate可能会提示设备忙或找不到。 - 然后,初始化物理卷:
pvcreate /dev/sdb1。 - 再将这个新的物理卷加入到现有的卷组中:
vgextend vg01 /dev/sdb1(请将vg01替换为你自己的卷组名称)。 - 最后,空间已经添加到卷组里了,后续的扩容操作就和上一节完全一样了:执行
lvextend -l +100%FREE ...以及对应的文件系统扩展命令即可。
需要提醒的是,虽然pvcreate命令也可以直接对整块磁盘(如/dev/sdb)操作,但在生产环境中,强烈建议先分区再使用。这样做可以避免与多路径软件或虚拟化层管理产生潜在的冲突。
虚拟机磁盘扩容后,LVM 怎么识别新增空间
这是虚拟化环境下的一个高频问题:你在VMware或KVM的管理界面里,已经把虚拟磁盘(比如/dev/sda)从50G扩容到了100G,但回到系统里用lsblk一看,显示的却还是原来的大小。原因在于,底层的分区表没有更新,LVM根本“看不见”后面新增的那50G空间。
- 第一步,让内核重新扫描磁盘容量:
echo 1 > /sys/class/block/sda/device/rescan(请将sda替换为你的实际磁盘符)。 - 第二步,调整分区表。使用
fdisk /dev/sda:- 删除原来的LVM分区(比如
sda2)。 - 新建一个同编号的主分区。
- 关键点来了:起始扇区(Start)必须保持和原来一模一样;结束扇区(End)直接按回车,让它默认使用所有可用空间。
- 使用
t命令,将分区类型设置为8e(Linux LVM)。 - 最后输入
w保存并退出。
- 删除原来的LVM分区(比如
- 第三步,刷新分区表:
partprobe /dev/sda。 - 第四步,这才是让LVM识别扩容的关键命令:
pvresize /dev/sda2。这个命令会告诉LVM:“这个物理卷现在变大了”,系统会自动增加可用的PE总数。 - 完成以上步骤后,卷组里就有了新的空闲空间,后续操作依然是熟悉的
lvextend -l +100%FREE ...加上文件系统扩展。
整个流程虽然不需要重启,也不会触碰原有数据或格式化,但毕竟操作了分区表,存在一定风险。因此,务必在开始之前备份重要数据——这是最容易被忽略,也最不应该省略的一步。
相关攻略
Linux系统编程:使用stat()函数精准获取文件inode编号的完整指南 在Linux系统编程中,获取文件的inode编号是一项基础且关键的操作。标准流程是调用stat()系统调用,填充struct stat数据结构,然后访问其st_ino成员。一个常见误区是字段名称:正确的字段是st_ino,
C++如何读取Linux内核生成的Device Tree二进制流【深度】 Linux用户态如何解析内核加载的dtb文件 Linux内核在启动过程中会加载并解析dtb(设备树二进制)文件,将其转换为内部数据结构(如struct device_node)。一个关键限制是:**用户态程序无法直接访问内核内
实战解析:如何用C++精准读取Linux系统的CPU负载信息 在性能监控和系统调优时,CPU使用率是一个绕不开的核心指标。很多开发者第一反应是去调用系统命令,但直接在程序中解析系统数据源,往往能获得更高效、更灵活的解决方案。今天,我们就来深入聊聊如何从 proc stat这个宝藏文件中,用C++提取
用C语言实现目录同步:一个基于readdir的实战示例 在C语言编程实践中,目录同步是文件系统操作中的一项关键任务,广泛应用于数据备份、应用部署和系统管理等场景。readdir函数作为POSIX标准库的重要组成部分,为遍历目录条目提供了高效接口。本文将深入解析如何利用readdir函数构建一个基础目
Node js日志管理最佳实践:提升应用可观测性与排障效率 如何确保您的Node js应用运行稳定、问题排查高效?核心在于构建一套专业的日志管理体系。日志不仅是程序运行的“黑匣子”,更是洞察性能瓶颈、优化代码逻辑、提升运维效率的关键基础设施。以下十项经过验证的实践策略,将帮助您将简单的日志输出转化为
热门专题
热门推荐
蔚来2026年4月交付数据发布:多品牌齐头并进,累计交付突破110万台 最新数据显示,2026年4月,蔚来公司整体交付新车达到29,356台,实现了22 8%的同比增长。这份成绩单背后,是旗下多品牌矩阵的共同发力。 具体来看,作为基石的蔚来品牌交付了19,024台;而面向主流家庭市场的乐道品牌表现稳
集中治理电视剧侵权传播动员会召开,行业版权保护再升级 近日,国家广播电视总局的一场动员会,为视听行业的版权保护工作按下了加速键。这场聚焦于集中治理电视剧侵权传播的会议,传递出的信号明确而有力:打击侵权盗版,维护健康生态,已成行业共识与当务之急。 侵权之害:动摇行业根基 会议一针见血地指出,电视剧乃至
维信诺闪耀SID DW 2026:以“屏台”技术硬核实力,定义下一代显示升级方向 五月初的洛杉矶,再次成为全球显示技术的焦点。当地时间5月5日至7日,国际显示周(SID Display Week)如期而至,这场行业顶级盛会向来是窥探未来显示趋势的绝佳窗口。今年,维信诺携其全尺寸创新成果亮相,可谓阵容
2026年Q1全球手机市场:苹果的“统治力”与安卓的“哑铃困境” 5月6日,市场研究机构Counterpoint发布了2026年第一季度的全球智能手机销量榜单。数据揭示了一个近乎“单方面碾压”的格局:苹果在高端市场展现出绝对的统治力,而安卓阵营则显得有些“无力招架”。 仔细看这份TOP10榜单,iP
快科技5月6日消息:7年前丢的手机发回定位,机主成功找回 今天,一则“7年前丢的手机发回定位,机主找回”的消息,冲上了网络热搜榜。 事件引发广泛讨论后,魅族客服方面向媒体做出了最新回应:只要机主曾在系统中挂失过手机,并且这部手机处于开机联网状态、同时登录了原机主的魅族Flyme账号,手机确实会自动拍





