openEuler服务器磁盘空间预警?别慌!用LVM动态扩容根目录的实战记录

张开发
2026/4/12 2:11:22 15 分钟阅读

分享文章

openEuler服务器磁盘空间预警?别慌!用LVM动态扩容根目录的实战记录
openEuler服务器磁盘空间告警LVM动态扩容根目录实战指南凌晨三点监控系统突然弹出一条告警——生产环境中的openEuler服务器根目录使用率突破90%。作为运维工程师这种场景再熟悉不过服务不能停数据不能丢扩容必须在线完成。本文将分享如何在不重启服务的情况下通过LVM动态扩展根目录空间的全过程实录。1. 问题诊断与应急评估首先通过df -h确认磁盘使用情况[rootserver ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 8.7M 3.9G 1% /run /dev/mapper/openeuler-root 50G 45G 2.1G 96% / tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 1014M 179M 836M 18% /boot tmpfs 783M 0 783M 0% /run/user/0关键发现根目录(/)使用率已达96%当前LVM逻辑卷大小为50G接着用vgs和lvs检查LVM配置现状[rootserver ~]# vgs VG #PV #LV #SN Attr VSize VFree openeuler 1 2 0 wz--n- 50.00g 0 [rootserver ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root openeuler -wi-ao---- 45.00g swap openeuler -wi-ao---- 4.00g此时需要评估两个关键点是否有未分配的物理卷空间可用VFree为0表示需要新增磁盘文件系统类型通过blkid确认是ext4/xfs2. 动态添加新物理磁盘假设我们在虚拟化平台新增了一块100G的磁盘(/dev/sdc)首先验证磁盘是否被系统识别[rootserver ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─openeuler-root 253:0 0 45G 0 lvm / └─openeuler-swap 253:1 0 4G 0 lvm [SWAP] sdb 8:16 0 100G 0 disk sr0 11:0 1 1024M 0 rom2.1 创建物理卷(PV)对新磁盘进行分区可选然后创建物理卷[rootserver ~]# pvcreate /dev/sdb Physical volume /dev/sdb successfully created.验证PV创建结果[rootserver ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 openeuler lvm2 a-- 49.00g 0 /dev/sdb lvm2 --- 100.00g 100.00g2.2 扩展卷组(VG)将新PV加入现有卷组[rootserver ~]# vgextend openeuler /dev/sdb Volume group openeuler successfully extended检查卷组空间[rootserver ~]# vgs VG #PV #LV #SN Attr VSize VFree openeuler 2 2 0 wz--n- 149.99g 100.00g3. 在线扩展逻辑卷与文件系统3.1 扩展逻辑卷(LV)将新增的100G空间全部分配给根目录逻辑卷[rootserver ~]# lvextend -L 100G /dev/mapper/openeuler-root Size of logical volume openeuler/root changed from 45.00 GiB (11519 extents) to 145.00 GiB (37119 extents). Logical volume openeuler/root successfully resized.3.2 扩展文件系统根据文件系统类型选择对应命令对于ext4文件系统[rootserver ~]# resize2fs /dev/mapper/openeuler-root resize2fs 1.45.6 (20-Mar-2020) Filesystem at /dev/mapper/openeuler-root is mounted on /; on-line resizing required old_desc_blocks 6, new_desc_blocks 19 The filesystem on /dev/mapper/openeuler-root is now 38009856 (4k) blocks long.对于xfs文件系统[rootserver ~]# xfs_growfs /4. 验证与监控最终确认扩容结果[rootserver ~]# df -h / Filesystem Size Used Avail Use% Mounted on /dev/mapper/openeuler-root 145G 45G 93G 33% / [rootserver ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root openeuler -wi-ao---- 145.00g swap openeuler -wi-ao---- 4.00g关键监控指标对比指标扩容前扩容后根目录总空间50G145G可用空间2.1G93G使用率96%33%5. 高级技巧与避坑指南动态扩容的三大黄金法则始终在操作前执行vgdisplay -v确认卷组状态对于关键业务系统建议先通过touch /root/testfile创建测试文件并验证可访问性扩展文件系统前务必用lsblk -f确认文件系统类型常见问题排查表现象可能原因解决方案vgextend报错Volume group not foundVG名称拼写错误使用vgs确认正确VG名称resize2fs报错Filesystem is mounted未使用在线调整参数确保直接对挂载点操作新增空间未生效未执行文件系统扩展步骤补做resize2fs或xfs_growfs性能优化建议对于频繁写入的场景可以在扩展后执行echo 3 /proc/sys/vm/drop_caches清空缓存使用iostat -x 1监控磁盘IO变化确保扩容过程不影响业务性能建议在扩容后执行tune2fs -l /dev/mapper/openeuler-root(ext4)检查文件系统健康状态在最近一次金融级系统的扩容中我们通过提前创建临时快照、分批次扩展每次20G的方式实现了零停机的TB级存储扩容。这种渐进式方法特别适合对稳定性要求极高的生产环境。

更多文章