服务器磁盘满了怎么办?博主之前遇到过这种情况,用 LVM 在线扩容就搞定了。今天分享一下 LVM 磁盘扩容的教程,命令可以直接复制使用。
一、什么是 LVM
LVM(Logical Volume Manager,逻辑卷管理器)是 Linux 的磁盘管理方案。
LVM 的优势:
二、核心概念
| |
|---|
| 物理磁盘或分区如 /dev/sda、/dev/sdb1 |
| |
| |
关系图:
PV1 (/dev/sda) ─┐ ├─→ VG (存储池) ─→ LV1 (逻辑卷,挂载到 /data)PV2 (/dev/sdb) ─┘
三、常用命令速查
磁盘查看命令
# 查看磁盘树形结构和分区lsblk# 查看磁盘分区类型和 UUIDblkid# 查看磁盘分区使用情况df -h# 查看所有磁盘分区信息fdisk -l
LVM 管理命令
虚拟机磁盘扩容
- VMware 菜单:虚拟机 → 设置 → 硬盘 → 扩展
# 查看磁盘使用,确认还是 40Gdf -h# 查看新磁盘分区信息fdisk -l
fdisk /dev/sda 对新加的磁盘进行分区操作,输入“p”回车,查看已分区的数量:可知目前有两个分区sda1和sda2

输入n回车,新增一个分区输入p回车,在打开的分区号命中中使用默认的分区号并回车(此处是3)在显示的起始扇区first sector直接回车,在last sector直接回车输入p回车,查看当前分区的信息:可以看到多了一个/dev/sda3的新分区输入w回车,写入磁盘信息并保存
创建完成后,输入vgdisplay,查看磁盘卷组名,如图为centos# 查看卷组名vgdisplay# 创建物理卷pvcreate /dev/sda3# 将新分区加入卷组(centos 为卷组名)vgextend centos /dev/sda3# 查看卷组剩余空间vgdisplay
# 扩展逻辑卷(将剩余空间全部使用)lvextend -l +100%FREE /dev/mapper/centos-root# 或指定大小(如增加 19G)lvextend -L +19G /dev/mapper/centos-root
查看文件系统类型:
cat /etc/fstab | grep centos-root
根据类型执行:
# XFS 文件系统xfs_growfs /dev/mapper/centos-root# ext4 文件系统resize2fs /dev/mapper/centos-root
五、大容量磁盘分区(超过 2TB)
超过 2TB 的磁盘必须需要使用 GPT 分区表,fdisk 无法处理,改用 parted:
# 进入 partedparted /dev/sdb # 建立 GPT 分区表(parted) mklabel gpt # 创建主分区(parted) mkpartPartition name? []? primaryFile system type? [ext2]? ext4Start? 0%End? 100%# 查看分区信息(parted) p# 退出(parted) q
格式化并挂载:
mkfs.ext4 /dev/sdb1mount /dev/sdb1 /data
六、注意事项
1. 扩容前检查
- 确认文件系统类型ext4用resize2fs,XFS用xfs_growfs
七、总结
LVM 磁盘扩容核心流程:
- 扩展文件系统:
resize2fs 或 xfs_growfs
博主多年实践积累经验,整理出来希望帮到有同样问题的朋友!整理不易。顺手点个赞,关注一下不迷路~
声明:本文仅供技术交流学习使用,操作前请备份重要数据。