温馨提示×

centos系统如何防止磁盘空间不足

小樊
35
2025-11-17 23:26:42
栏目: 云计算

CentOS 防止磁盘空间不足的实用方案

一 持续监控与预警

  • 建立每日巡检:使用cron定时执行脚本,调用df -h获取各分区使用率,超过阈值(如80%/90%)即触发告警。示例命令:
    • 查看整体使用:df -hT
    • 阈值判断与告警(可结合邮件/企业微信/钉钉 webhook)
  • 可视化与增强工具:安装并使用pydf彩色展示,便于一眼识别高占用分区:
    • 安装:yum -y install python-pip && pip install --upgrade pip && pip install pydf
    • 使用:pydf -h
  • 建议做法:为关键目录(如**/var/log、/var/lib、/home**)单独配置更严格的阈值与告警,避免单一阈值掩盖局部风险。

二 用户与项目配额限制

  • 作用与范围:对指定文件系统内的用户/组限制磁盘容量(Block)文件数量(Inode);超出软限制会告警并在宽限期内允许超限,超过硬限制将被禁止继续写入。
  • XFS 文件系统(CentOS 7 常用)
    • 安装工具:yum install -y xfsprogs
    • 启用配额(首次挂载时启用,XFS 不支持 remount 开启):
      • 临时:mount -o usrquota,grpquota /dev/vgname/lvname /opt
      • 永久:/etc/fstab 中添加 defaults,usrquota,grpquota
    • 设置配额(示例为用户 alice 设置容量与文件数):
      • xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M isoft=8000 ihard=10000 alice’ /opt
    • 查看与验证:
      • xfs_quota -x -c ‘report -aibh’
      • 生成大文件验证:dd if=/dev/zero of=/opt/testfile bs=10M count=11
  • EXT3/4 文件系统
    • 安装工具:yum install -y quota
    • 启用配额:
      • /etc/fstab 挂载选项添加 usrquota,grpquota(或 usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv1)
      • 重新挂载:mount -o remount /mountpoint
      • 初始化数据库:quotacheck -cum /mountpoint
      • 开启配额:quotaon /mountpoint
    • 设置与查看:
      • edquota -u alice(设置 blocks/inodes 的 soft/hard)
      • repquota -a
  • 注意:配额只对配置了的具体文件系统生效,未配置的文件系统不受影响。

三 容量规划与在线扩容

  • 使用 LVM 预留增长空间:当卷组(VG)有空闲空间时,先扩展逻辑卷(LV),再扩展文件系统。
    • 扩展 LV:lvextend -L +10G /dev/vgname/lvname
    • 扩展文件系统:
      • XFS:xfs_growfs /mountpoint
      • EXT4:resize2fs /dev/vgname/lvname
  • 无可用空间时的扩容思路:新增磁盘/磁盘柜 → 创建 PV → vgextend 扩容 VG → 按上步扩展 LV 与文件系统。
  • 建议做法:对易增长目录(如**/var/log、/var/lib/docker、/home**)单独置于独立 LV,便于独立扩容与风险隔离。

四 日志与临时文件的治理

  • 日志轮转与保留策略:配置logrotate按大小/时间切割,限制历史保留份数,避免**/var/log**无限增长。
  • 清理策略:定期清理已轮转的旧日志、临时目录(如**/tmp、/var/tmp**)、包管理器缓存(yum/dnf)、容器镜像与构建产物。
  • 大文件定位与处置:
    • 按目录汇总:du -h --max-depth=1 /var | sort -hr | head
    • 按大小查找:find /var -type f -size +100M -exec ls -lh {} ;
  • 预防日志风暴:对高并发服务设置合理的日志级别与采样,避免异常循环打印导致瞬时占满。

五 应急与自动化建议

  • 设置保留空间:为关键分区保留**5%–10%**空闲,避免系统在高水位时失去弹性(如无法写入日志、更新失败)。
  • 预留救援手段:准备救援模式/单用户模式LiveCD的应急通道;在自动化扩容前,先确保有可回滚的快照/备份。
  • 告警闭环:将“阈值告警 → 自动工单/IM通知 → 责任人处理 → 复核归档”形成闭环,避免告警疲劳与重复发生。

0