背景介绍
磁盘硬件故障、文件系统损坏、驱动异常或内核I/O调度器卡死,都可能导致磁盘完全无响应,所有读写(I/O)操作被无限期阻塞。这种情况对业务的破坏性极强,通常会导致应用假死、数据不一致甚至服务雪崩。本演练模拟这种极端场景,帮助您检验应用在存储完全不可用时的行为、测试高可用切换机制的有效性,并验证您的灾难应急预案。
基本原理
预先在探针管理处将内部自研Agent安装至云主机上,使用管控通道下发动作执行命令。
原理是通过fsfreeze命令模拟磁盘夯死表现。
注意
设置磁盘夯死故障注入后,可能会导致应用无法读写文件产出异常,请谨慎使用。
故障注入
1、纳管实例资源
导航至 故障演练 > 目标应用 > 应用资源 页面。
在资源类型页签中选择云主机,然后单击添加资源。
在弹出的对话框中,勾选目标云主机实例,单击确定。
2、编排演练任务
导航至 故障演练 > 目标应用 > 演练管理页面,单击新建演练。
在基本信息页面,按提示填写演练名称和描述,然后单击下一步。
在演练对象配置页面:
配置动作组:为动作组命名,资源类型选择云主机。
添加实例:单击添加实例,勾选上一步中添加的云主机实例。
添加故障动作:单击立即添加,在列表中选择磁盘IO Hang动作。
在弹出的参数配置框中,配置所需参数,然后单击确定。
持续时间:故障动作持续时间。由于此故障的特性,自动恢复无法得到保证。
前置等待时间(秒):执行故障前的等待时间。
磁盘被填充的目录路径:故障将注入到该目录所在的文件系统(挂载点)上。
3、配置全局策略
在全局配置页面,按需添加保护策略和监控指标。
配置完成后,单击完成按钮,创建演练任务。
4、发起故障注入
发起演练:在演练管理列表找到对应演练任务,单击操作列的执行演练,在新页面中点击发起新演练。
进入实验:系统将自动跳转到本次演练的运行详情页,或在演练执行记录列表点击对应执行实例的详情进入。
注入故障:在动作组中,找到磁盘夯死动作卡片,单击执行。
查看日志:单击动作卡片本身,在右侧弹出的侧边栏中查看执行详情。
注意
此演练具有高度破坏性,请务必在充分了解其风险后,在非生产环境中谨慎操作。
通信中断:磁盘夯死后,探针自身也无法写入心跳或状态日志,将导致其与故障演练平台失联。因此,在控制台上,该演练任务的状态可能显示为执行失败,但这恰恰是故障注入成功的表现。
无法自动恢复:持续时间到达后,自动恢复机制可能失效,因为恢复命令同样需要I/O操作。
恢复方式:建议恢复方法是通过云主机控制台,对目标实例执行强制重启操作。
效果验证
在故障注入期间,您可以通过以下方式验证演练效果:
1、观测实例指标:
登录弹性云主机控制台,进入目标实例的监控指标页,各项指标无上报数据,出现断点。
2、业务应用验证:
任何需要读写目标磁盘的功能(如写入日志、读取配置文件、访问数据库文件等)都会被阻塞,导致相关请求长时间无响应或最终超时。