ESC

开始输入,可搜索发票、服务、域名、工单,以及 更多...

搜索... Ctrl+K
Linux 服务器

Linux LVM 扩容磁盘教程:lvextend 扩容与 growpart 扩容根分区

6 个步骤 6 分钟阅读 991 次阅读 80
本文目录

磁盘空间不够时,如果系统使用了 LVM(逻辑卷管理),就可以在不重装系统、通常也无需停机的情况下增加容量。本文介绍 Linux 使用 LVM 扩容磁盘的两种常见场景:新增一块硬盘加入卷组,以及原有磁盘被扩大后扩展分区;同时说明没有 LVM 时如何用 growpart 扩容根分区。命令适用于 Debian/Ubuntu 与 CentOS/Rocky/AlmaLinux,以 root 执行。

扩容操作涉及分区表和文件系统,虽然通常是安全的在线操作,但仍建议先做快照或备份重要数据,并逐条执行、确认输出后再进行下一步。

步骤 1:安装 LVM 工具并查看当前磁盘结构

先安装 lvm2 和 growpart 所在的软件包,然后用 lsblk、pvs、vgs、lvs 了解当前布局:哪块磁盘是物理卷(PV),卷组(VG)叫什么名字,逻辑卷(LV)挂载在哪里。下文以卷组 vg0、逻辑卷 /dev/vg0/root 为例,请替换为实际名称。

# Debian / Ubuntu
apt update && apt install -y lvm2 cloud-guest-utils

# CentOS / Rocky / AlmaLinux
dnf install -y lvm2 cloud-utils-growpart

# Inspect the current layout
lsblk
pvs
vgs
lvs
df -hT

步骤 2:场景 A——新增硬盘加入 LVM 卷组

如果是额外添加了一块新硬盘(如 /dev/vdc),先将它初始化为物理卷,再加入现有卷组。执行后 vgs 中的 VFree 会增加,表示卷组有了可分配的空闲空间。注意不要对已有数据的磁盘执行 pvcreate。

# Scenario A: a new disk /dev/vdc was added
pvcreate /dev/vdc
vgextend vg0 /dev/vdc
vgs vg0

步骤 3:场景 B——原磁盘扩大后用 growpart 扩展分区

如果是原有磁盘容量被调大(例如从 40G 升级到 100G),需要先用 growpart 扩展分区到磁盘末尾,再用 pvresize 让物理卷识别新增空间。注意 growpart 的磁盘名和分区号之间有空格。

# Scenario B: the existing disk /dev/vda was enlarged and the PV is partition 2
growpart /dev/vda 2
pvresize /dev/vda2
vgs

步骤 4:使用 lvextend 扩容逻辑卷

卷组有空闲空间后,用 lvextend 把空间分配给目标逻辑卷。-l +100%FREE 表示使用全部剩余空间,-L +50G 表示增加固定大小。

# Give all free space in the VG to the logical volume
lvextend -l +100%FREE /dev/vg0/root

# Or add a fixed amount
lvextend -L +50G /dev/vg0/data

步骤 5:扩展文件系统(resize2fs / xfs_growfs)

逻辑卷变大后,文件系统还需要同步扩展,df 中才会显示新容量。ext4 使用 resize2fs 指定逻辑卷路径,XFS 使用 xfs_growfs 指定挂载点。也可以给 lvextend 加 -r 参数,一步完成逻辑卷和文件系统的扩容。

# ext4
resize2fs /dev/vg0/root

# XFS (pass the mount point)
xfs_growfs /

# Alternative: extend LV and filesystem in one step
lvextend -r -l +100%FREE /dev/vg0/root

df -hT

步骤 6:没有 LVM 时用 growpart 扩容根分区

很多云镜像的根分区是普通分区而非 LVM。磁盘升级后,只需 growpart 扩展分区,再扩展文件系统即可,全程在线完成,无需重启。

# Root partition without LVM, e.g. /dev/vda1 mounted on /
growpart /dev/vda 1
resize2fs /dev/vda1      # ext4
xfs_growfs /             # XFS
df -hT /

常见问题

growpart 提示 NOCHANGE 是什么意思?

说明分区后面没有可用空间,可能是磁盘容量尚未生效或分区已是最大。可先确认 lsblk 中磁盘大小是否已变大,必要时重启服务器后再试。

XFS 文件系统可以缩小吗?

不可以,XFS 只支持扩大。如果需要缩小,只能备份数据后重新创建文件系统。ext4 支持缩小,但必须先卸载,操作风险较高,建议谨慎执行。

根分区后面紧跟着 swap 分区导致无法扩容怎么办?

需要先关闭并删除该 swap 分区,扩容根分区后再改用 swap 文件,或在空闲空间重建 swap。此操作较复杂,如不熟悉可提交工单寻求协助。

如按以上步骤操作后仍无法解决,欢迎提交工单联系 IMIDC 7×24 技术支持。提交时请注明服务器 IP、操作系统、已执行的命令和报错截图,工程师可以更快定位问题。

这篇文章有帮助吗?

相关教程