故障演练之磁盘inode满

磁盘inode满故障演练方案

演练目标

模拟磁盘inode耗尽场景,验证系统监控、告警机制及故障处理流程的有效性,提升团队对inode相关故障的应对能力。

背景知识

  • inode:Unix/Linux系统中文件索引节点,存储文件元数据(权限、所有者、时间戳等)
  • inode耗尽:当磁盘所有inode被用完时,即使有剩余存储空间也无法创建新文件
  • 常见原因
    • 大量小文件堆积(如日志切割不当)
    • 临时文件未清理
    • 应用程序异常生成文件

演练场景设计

场景1:主动耗尽inode(测试环境)

  1. 准备阶段

    • 选择测试环境(建议使用专用测试服务器或容器)
    • 确认当前inode使用情况:df -i
    • 创建测试目录:mkdir /test_inode
  2. 耗尽inode

    # 方法1:使用dd创建大量小文件(适用于ext4/xfs)
    for i in {1..500000}; do touch /test_inode/file$i; done
    
    # 方法2:使用fallocate快速创建(更高效)
    for i in {1..500000}; do fallocate -l 1K /test_inode/file$i; done
  3. 验证耗尽

    df -i /test_inode  # 观察Inodes Used达到100%
    touch /test_inode/newfile  # 应报错:No space left on device

场景2:监控告警触发(模拟生产环境)

  1. 配置监控系统(如Prometheus+Alertmanager)设置inode使用率阈值告警(建议85%)
  2. 通过脚本或手动方式逐步创建文件触发告警
  3. 验证告警通知渠道(邮件/短信/IM等)

故障现象观察

  1. 系统表现:
    • 无法创建新文件/目录
    • 部分应用程序报错(如日志无法写入)
    • 现有文件可正常读写(与磁盘空间满不同)
  2. 关键命令输出:
    # 查看inode使用情况
    df -i
    
    # 查找大目录(按文件数量)
    find /path -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
    
    # 查找inode最多的目录
    for i in /*; do echo $i; find $i | wc -l; done | sort -k2 -n

恢复流程

临时恢复(紧急处理)

  1. 定位问题目录:

    # 查找文件数量最多的目录
    find / -xdev -type d -print0 | while read -d $'\0' dir; do 
      echo "$(find "$dir" -maxdepth 1 -type f | wc -l) $dir"; 
    done | sort -n | tail
  2. 清理无用文件:

    # 示例:清理/var/log下30天前的日志
    find /var/log -type f -mtime +30 -delete
    
    # 清理特定模式文件(如.core
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值