Linux通过LVM管理磁盘卷 动态扩容与缩容

梦墨酱_8972

梦墨酱_8972

2026-04-11

970人浏览

原创

lvm扩容需先确保vg有空闲空间,再lvextend扩展lv,最后resize2fs调整ext4文件系统;缩容必须先e2fsck和resize2fs缩小文件系统,再lvreduce缩小lv;xfs不支持缩容,应避免强行操作。

linux通过lvm管理磁盘卷 动态扩容与缩容

扩容逻辑卷前必须先扩展底层物理空间

很多人卡在 lvextend 报错“insufficient free space”,其实不是命令写错了,而是没确认 vgdisplay 显示的 Free PE / Size 是否为正。LVM 扩容是分层操作:物理磁盘空闲 → 物理卷(PV)已纳入卷组(VG)→ 卷组有剩余空间 → 逻辑卷(LV)才能扩展。

常见疏漏点:

  • 新加硬盘没执行 pvcreate /dev/sdX 就直接 vgextend,报错 Device /dev/sdX not found
  • 用 fdisk 分区后写了新分区表但没执行 partprobe 或重启,内核没识别新分区,pvcreate 失败
  • 误以为 lvextend -l +100%FREE 能自动拉满 VG 空间,结果发现 VG 本身没空余 —— 先跑 vgdisplay 看一眼再动手

ext4 文件系统扩容必须分两步:LV 扩展 + 文件系统在线调整

lvextend 只改块设备大小,不碰文件系统。如果跳过 resize2fs,df -h 仍显示旧容量,且后续写入可能触发 I/O 错误。

实操要点:

  • 在线扩容(ext4):先 lvextend -L +10G /dev/vgname/lvname,再 resize2fs /dev/vgname/lvname(无需卸载)
  • 如果 LV 已挂载在 /data,resize2fs 会自动识别并扩展已挂载文件系统,但要求内核支持 online resize(2.6.10+ 基本都支持)
  • 别用 resize2fs /dev/vgname/lvname 20G 指定绝对大小,容易算错;优先用 resize2fs /dev/vgname/lvname(无参数)让它自动匹配 LV 当前大小

缩容逻辑卷是高危操作,必须严格按顺序且全程校验

缩容出问题基本等于丢数据,因为 lvreduce 会直接截断 LV 底层块,而文件系统未必知道上层被砍了。核心原则:文件系统先缩,LV 再缩,且文件系统缩的尺寸必须小于 LV 目标尺寸。

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载

安全缩容步骤:

  • 强制检查文件系统:e2fsck -f /dev/vgname/lvname(必须,否则 resize2fs 拒绝缩小)
  • 缩小文件系统(例如缩到 15G):resize2fs /dev/vgname/lvname 15G(注意:这是文件系统目标大小,不是 LV 大小)
  • 再缩小 LV:lvreduce -L 15G /dev/vgname/lvname(必须 ≤ 上一步的文件系统大小,否则元数据损坏)
  • 最后再跑一次 e2fsck 校验

常见错误:lvreduce -L 15G 后立刻 mount,结果 kernel 报 bad magic number —— 因为文件系统还没缩,LV 就被硬砍了。

缩容 XFS 文件系统不支持在线缩小,必须备份重做

XFS 的设计决定它无法安全缩小已挂载或未挂载的文件系统。任何尝试用 xfs_growfs -D 或第三方工具强行缩容,都会导致不可逆损坏。

真实可行路径只有两条:

  • 备份数据 → umount → mkfs.xfs 重建更小 LV → 恢复数据
  • 保持原 LV 不变,用 lvs 查看实际使用率,如果远低于当前大小,其实没必要缩容 —— LVM 的优势本就是“用多少划多少”,空间闲置不影响性能

很多团队踩坑在于查到 “XFS can’t be shrunk” 就放弃,却忽略了:只要没填满,XFS 在大 LV 上运行完全正常,缩容反而是引入风险的操作。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3930

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3373

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2513

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6070

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5702

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3353

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2845

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3079

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习