ECS 磁盘满了怎么办:云硬盘扩容与清理的实践笔记
上周一台跑了几个月的 ECS 突然告警,应用写日志写不进去,登录上去一看,根分区只剩不到 200MB。这篇把当时排查和处理的顺序记下来,下次再遇到磁盘满,先按这个顺序走,十分钟就能定位。
第一步先看是哪块盘满了。df -h 看各挂载点使用率,重点看根分区和数据盘;再用 du -sh /* 逐层往下找,定位到具体目录。我的情况是 /var/log 占了大头,其次是 /tmp 里几个月没清的临时文件。注意不要一上来就删东西,先确认目录归属:日志文件、应用缓存、备份文件,删错了比磁盘满更麻烦。
第二步清理能安全清理的部分。日志先看能不能轮转:logrotate 的配置在 /etc/logrotate.d,确认保留周期,超期的旧日志可以压缩或删除。/tmp 下按修改时间清理,保留当天的文件。应用自身的缓存目录要按官方文档清,不要直接 rm -rf 整个目录。清理完再 df -h 确认释放了多少空间。这一步只是应急,先把服务恢复起来,治本在后面。
第三步判断是临时满还是真的容量不够。如果清理后一周内又满,说明容量规划跟不上业务增长,就要扩容。华为云上扩容云硬盘分两步:先在控制台给云硬盘扩容,容量变大后,还要在系统里让文件系统认到新空间。Linux 上先确认分区表和文件系统类型,ext4 用 resize2fs,xfs 用 xfs_growfs,操作前先做快照或备份,扩容本身不丢数据,但有备份才敢动手。扩完再 df -h 核对,容量应该已经变大。
第四步把监控和清理变成常规动作。云监控里给磁盘使用率设两档告警,80% 提醒、90% 告警,告警发到手机,别等写不进去才发现。日志轮转按周检查一次保留策略,应用日志级别生产环境不要开 debug。数据盘和系统盘分开挂载,这样日志爆了也不会把系统盘拖满,扩容时也只扩数据盘,影响面更小。
这次的教训是两点:一是磁盘告警阈值要提前设,80% 就处理,不要等到 100%;二是扩容前先做快照,操作本身很快,但没有回退方案的操作都不值得做。按这个顺序走,磁盘满就从一次故障变成一次常规运维。
- 点赞
- 收藏
- 关注作者
评论(0)