CentOS 下使用 LVM 扩展根分区空间的完整流程

在服务器运维中,会遇到磁盘空间不足的问题。如果系统使用了 LVM(Logical Volume Manager) 来管理磁盘,就可以很方便地对逻辑卷进行扩容,而不需要重装系统。


1. 查看磁盘使用情况

首先,使用 lsblk 查看磁盘分区布局:

bash 复制代码
lsblk

输出示例:

bash 复制代码
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda             252:0    0  400G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0  249G  0 part 
  ├─centos-root 253:0    0  197G  0 lvm  /
  ├─centos-swap 253:1    0   32G  0 lvm  
  └─centos-home 253:2    0   20G  0 lvm  /home

可以看到:

  • 磁盘总大小是 400G

  • 已经分区使用了 250G(vda1 + vda2);

  • 还剩下大约 150G 空闲未分配空间

再确认卷组信息:

bash 复制代码
vgdisplay

输出关键部分:

bash 复制代码
VG Name               centos
VG Size               <249.00 GiB
Alloc PE / Size       63743 / <249.00 GiB
Free  PE / Size       0 / 0

说明卷组 centos 当前已经用满,没有空余 PE。


2. 新建分区

使用 fdisk/dev/vda 上创建一个新分区:

bash 复制代码
fdisk /dev/vda

在交互界面依次输入:

bash 复制代码
n   # 新建分区
p   # 主分区
3   # 分区号(已有 vda1,vda2,这里用 vda3)
回车 # 默认起始扇区
回车 # 默认结束扇区,使用剩余所有空间
t   # 修改分区类型
3   # 选择 vda3
8e  # 设置为 Linux LVM
w   # 保存退出

让内核重新加载分区表:

bash 复制代码
partprobe

这时可以看到新分区 /dev/vda3


3. 创建物理卷并加入卷组

创建物理卷(PV):

bash 复制代码
pvcreate /dev/vda3

扩展卷组 centos

bash 复制代码
vgextend centos /dev/vda3

验证:

bash 复制代码
vgdisplay centos

此时应该能看到 Free PE / Size 大约为 150G。


4. 扩展逻辑卷

查看逻辑卷路径:

bash 复制代码
lvdisplay

假设根分区逻辑卷是 /dev/centos/root,执行:

bash 复制代码
lvextend -l +100%FREE /dev/centos/root

这条命令会将卷组中所有空余空间都分配给根分区。


5. 扩展文件系统

如果根分区文件系统是 XFS(CentOS 7/8 默认):

bash 复制代码
xfs_growfs /

如果是 ext4 文件系统:

bash 复制代码
resize2fs /dev/centos/root

6. 验证扩容结果

bash 复制代码
df -h

输出中可以看到 / 的容量已经增加,大约多了 150G。


总结

通过以上步骤,我们顺利地将磁盘剩余的 150G 空间扩展到 LVM 根分区,整个过程无需重启系统。

LVM 的优势就在于此:能够在业务不中断的情况下灵活扩展存储空间。

相关推荐
The Chosen One9856 分钟前
OS第二章随手记(2.1)
linux·运维·服务器·笔记
小马同学-12 分钟前
04 容器存储知识点
运维·docker·云计算
暖核36 分钟前
多容器部署利器,详解 Docker Compose 核心配置与命令
运维
青峰客1 小时前
DeepSeek 大模型新手快速上手指南
运维·服务器·github
小马同学-1 小时前
03 容器网络
运维·云计算
xx~t1 小时前
嵌入式——ARM——汇编1
linux·汇编·arm开发·嵌入式硬件·arm
ly76891 小时前
磁盘 I/O 延迟突增:用 iostat、blktrace 与火焰图定位到具体调用栈
java·linux·前端·数据库·iostat·磁盘 i/o·blktrace
程序员-Benothing1 小时前
Linux查找文件命令:find、locate、which、whereis实战
linux·运维·服务器
j7~1 小时前
【Linux网络加餐】(篇七)网络版计算器(中):协议落地、报文分隔与完整链路
linux·c++·网络编程·tcp·报文分割·网络计算器·协议落地
团子股股东峥哥1 小时前
day39-RHEL-访问网络附加存储
linux·运维·服务器