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 的优势就在于此:能够在业务不中断的情况下灵活扩展存储空间。

相关推荐
在角落发呆10 小时前
工具配置备份步骤:从手动备份到自动化方案
运维·windows·自动化
_upupup11 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
百度一下吧11 小时前
Nginx 使用手册:从安装配置到实战部署
运维·nginx
JeJe同学11 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR12 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
回眸&啤酒鸭12 小时前
【回眸】自动化白盒测试落地实战指南
运维·自动化·log4j
闲云野鹤在人间12 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
一个风轻云淡13 小时前
GCC 和 GDB命令简单解读
java·linux·前端
H.莓飛14 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
资料库0114 小时前
Linux 8个常见运维故障排查
java·linux·运维