今天有同事接手一个将实体应用迁移上云的业务,一切准备就绪,却突然卡壳,登录云服务器一看,管理部门分配的磁盘明明有剩余空间,可根目录不到20G,根本满足不了业务部署和数据迁移的需求,仔细排查才发现,是根目录分区未扩容,还有80G空闲空间没利用起来!
本文以虚拟机为例,讲解如何进行根目录的在线扩容(特指lvm类型),全程无需重启服务器,不影响数据迁移。
# 查看磁盘整体情况
lsblk

# 查看根目录当前容量和文件系统
df -Th /
温馨提示:以下所有扩容命令均在虚拟机中测试通过,操作生产服务器前,请务必先对即将迁移的业务数据进行备份,再参照虚拟机演示步骤执行!
# 查看磁
整个扩容流程分3步:扩展分区 → 扩容物理卷 → 扩容逻辑卷,全程无需重启服务器,不影响后续数据迁移进度!
用 parted 工具(交互式命令)直接扩展分区,不用删数据,最大程度保障业务数据安全,按顺序执行以下交互式命令:
# 1. 进入parted操作界面,指定操作磁盘(虚拟机填sda,云服务器填vda)parted /dev/sda # 虚拟机专用,云服务器替换为 /dev/vda# 2. 查看分区表,确认分区号(虚拟机sda2、云服务器vda2,通常是2)和起始扇区(parted) print# 3. 扩展分区,把14G剩余空间全部分给对应分区(虚拟机sda2、云服务器vda2,分区号默认2)(parted) resizepart 2# 4. 提示End? [5.0GB]? 时,直接输入20GB回车(覆盖原结束位置,对应5G+14G)# 5. 退出parted工具(parted) quit

小提示:输入 resizepart 2 后,若提示“警告”,直接按回车确认即可,不影响数据,也不影响后续业务数据迁移。
分区扩展后,LVM(逻辑卷管理)还没感知到新增的空间,需要手动刷新物理卷(PV),2条命令搞定,确保扩容后空间可正常被业务使用:
# 1. 扩容物理卷,指定对应分区(虚拟机/dev/sda2,云服务器/dev/vda2)pvresize /dev/sda2 # 虚拟机专用,云服务器替换为 /dev/vda2# 2. 检查卷组(VG)空闲空间,确认生效(重点看Free列,确保14G空间可分配)vgs

生效标志:执行vgs 后,centos(默认卷组名)这一行的 Free 列,数值会增加相关添加的容量,说明第二步成功,空间已可用于根目录扩容,为业务数据迁移做好准备。
最后一步,把卷组里的空闲空间全部分给根目录逻辑卷,同时扩容文件系统,让系统能真正使用新增空间。两种方法任选其一。
# 一键扩容根目录,自动分配全部空闲空间,无需手动计算lvextend -l +100%FREE /dev/centos/root && xfs_growfs /

# 1. 先扩容逻辑卷,分配全部空闲空间lvextend -l +100%FREE /dev/centos/root# 2. 再刷新文件系统,让系统识别新增容量xfs_growfs /
df -h

扩容后建议再次检查数据完整性,确保无异常后,即可正常开展业务数据迁移和业务部署,彻底解决根目录容量不足的问题。
标红警告1:操作前一定要区分磁盘标识!虚拟机默认sda,云服务器为vda,输错磁盘名会导致数据丢失,影响业务迁移进度!
标红警告2:本次扩容基于LVM分区,若云服务器不是LVM架构需换用 resize2fs 命令(ext4格式),切勿直接照搬命令,避免影响业务数据!
全程无需重启服务器,扩容后直接可用,不影响业务数据迁移进度。
收藏本文,转给有需求的朋友,帮大家避开扩容坑!觉得有用的话,点赞+在看,运维路上少踩坑~