磁盘inode满故障演练方案
演练目标
模拟磁盘inode耗尽场景,验证系统监控、告警机制及故障处理流程的有效性,提升团队对inode相关故障的应对能力。
背景知识
- inode:Unix/Linux系统中文件索引节点,存储文件元数据(权限、所有者、时间戳等)
- inode耗尽:当磁盘所有inode被用完时,即使有剩余存储空间也无法创建新文件
- 常见原因:
- 大量小文件堆积(如日志切割不当)
- 临时文件未清理
- 应用程序异常生成文件
演练场景设计
场景1:主动耗尽inode(测试环境)
-
准备阶段:
- 选择测试环境(建议使用专用测试服务器或容器)
- 确认当前inode使用情况:
df -i - 创建测试目录:
mkdir /test_inode
-
耗尽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 -
验证耗尽:
df -i /test_inode # 观察Inodes Used达到100% touch /test_inode/newfile # 应报错:No space left on device
场景2:监控告警触发(模拟生产环境)
- 配置监控系统(如Prometheus+Alertmanager)设置inode使用率阈值告警(建议85%)
- 通过脚本或手动方式逐步创建文件触发告警
- 验证告警通知渠道(邮件/短信/IM等)
故障现象观察
- 系统表现:
- 无法创建新文件/目录
- 部分应用程序报错(如日志无法写入)
- 现有文件可正常读写(与磁盘空间满不同)
- 关键命令输出:
# 查看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
恢复流程
临时恢复(紧急处理)
-
定位问题目录:
# 查找文件数量最多的目录 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 -
清理无用文件:
# 示例:清理/var/log下30天前的日志 find /var/log -type f -mtime +30 -delete # 清理特定模式文件(如.core

179

被折叠的 条评论
为什么被折叠?



