故障背景:某一个应用无法登录,然后开发测试发现数据库锁死,然后我登录数据库服务器查看发现发现/dev/mapper/centos-root是满的,推测是没空间导致的数据库异常。
fdisk -l 查看发现还么有多余的硬盘,查看发现是虚拟机,然后给虚拟机增加了1块500G硬盘,本来想增加1t的但是宿主机才2T空间,先增加500g吧。然后就是通过lvm进行扩容然后很轻松就增加了系统空间,重启数据库后发现无法访问数据库服务,然后再看发现原来管理员直接防火墙是关闭的不是开放的3306端口。然后通过命令开放端口,重新加载防火墙策略,最后问题解决。

完整扩容步骤(直接复制执行)
- 创建物理卷(PV)
将新硬盘 /dev/sdb 初始化为 LVM 物理卷:
bash
运行初始化新硬盘为LVM物理卷
pvcreate /dev/sdb
验证物理卷创建结果(能看到/dev/sdb)
pvdisplay
- 将物理卷加入卷组(VG)
将 /dev/sdb 加入根目录所在的卷组 centos:
bash
运行扩展卷组,把/dev/sdb加入centos卷组
vgextend centos /dev/sdb
验证卷组空间(能看到Free PE / Size 增加了约500G)
vgdisplay centos
- 扩展逻辑卷(LV)
将根目录对应的逻辑卷扩容(推荐直接使用全部空闲空间):
bash
运行扩展逻辑卷,使用卷组中全部空闲空间
lvextend -l +100%FREE /dev/mapper/centos-root
验证逻辑卷扩容结果(Size 会显示扩容后的大小)
lvdisplay /dev/mapper/centos-root
- 扩容文件系统(关键步骤)
CentOS 系统默认使用 XFS 文件系统,执行以下命令让系统识别扩容后的空间:
bash
运行在线扩容XFS文件系统(无需卸载)
xfs_growfs /dev/mapper/centos-root
如果你确认是 ext4 文件系统(极少数情况),请执行:resize2fs /dev/mapper/centos-root - 验证扩容结果
bash
运行查看根目录空间(已用%会大幅下降)
df -hl /
常见问题处理
如果执行 pvcreate /dev/sdb 提示 Device /dev/sdb already exists in filesystem:
说明硬盘已有分区表,先清除:
bash
运行进入fdisk交互模式
fdisk /dev/sdb
输入d删除所有分区,再输入w保存退出
重新执行pvcreate /dev/sdb
如果卷组名不是 centos:
执行 vgdisplay 查看实际卷组名,替换命令中的 centos 即可。
这两个常见问题都没有遇见,倒是遇见另外一个问题

报错 Couldn't create temporary archive name. 本质是根目录 / 空间 100% 已满,LVM 工具(vgextend)在执行时需要在 /etc/lvm/archive/ 或 /tmp 目录下创建临时归档文件,但根目录无剩余空间,导致创建失败。
✅ 解决方案(按优先级执行)
方案 1:临时清理根目录空间(应急操作)
先释放少量空间让 LVM 工具能正常工作:
bash
运行
1. 清理/tmp目录下的临时文件
rm -rf /tmp/*
2. 清理系统日志(保留最近7天)
find /var/log -type f -mtime +7 -delete
3. 清理yum缓存
yum clean all
4. 验证空间是否释放
df -hl /
清理出至少 100MB 空间后,重新执行 vgextend centos /dev/sdb。
方案 2:修改 LVM 临时目录(绕开根目录)
如果根目录无法清理出空间,可临时修改 LVM 配置,将临时文件指向其他有空间的目录:
创建临时目录(例如 /boot/tmp,从之前截图看 /boot 还有 864M 可用):
bash
运行
mkdir -p /boot/tmp
chmod 777 /boot/tmp
临时修改环境变量,让 LVM 使用新目录:
bash
运行
export TMPDIR=/boot/tmp
再次执行扩容命令:
bash
运行
vgextend centos /dev/sdb
操作完成后恢复环境变量:
bash
运行
unset TMPDIR
方案 3:使用 --force 跳过归档(风险操作)
如果以上方法都无效,可强制跳过归档步骤(仅应急使用):
bash
运行
vgextend --force centos /dev/sdb
我是使用的方案1解决的,感觉这个比较稳妥可控。
点滴生活,生活点滴,都需要你来陪伴,往后余生,请多多指教。男人最幸福的事情是:一个好妻子,一份好工作,一个好身体。