故障演练是实现系统稳定性保障的关键手段,它通过向系统注入可控的特定故障,以验证和促进系统的高可用性建设,以及训练相关人员应急能力、验证故障处理机制,从而减少真实故障发生时的故障恢复时间(MTTR,Mean Time To Repair)。阿里云提供了ECS故障注入的云助手插件ecs-fault-{scenename}
或ACS-ECS-{scenename}
进行故障注入,可以更精确、便捷地进行演练,提升演练的效果和效率。
故障演练使用官网链接:https://help.aliyun.com/zh/ecs/use-cases/fault-drill/?spm=a2c4g.11186623.0.0.60f72088O5OdA5
故障演练优势
- 免费开源:所有执行过的插件会自动保存在云助手目录下,其中包含故障注入源码和可执行文件。
- 遵循最小化原则:每个插件都仅代表一个特定的演练场景,按需下载使用。
- 操作便捷高效:所有安装云助手的ECS实例均可执行,只需一行命令即可完成插件的安装和运行。
故障演练支持的场景
演练场景 |
说明 |
服务器宕机是一种常见的故障现象,其根源来自于软件和硬件上发生的异常,且几乎无法避免。通过模拟内核故障造成的ECS宕机,可以测试业务系统在宕机时的反应、检测系统恢复能力、验证监控和告警机制的有效性等,并基于演练结果制定应对策略,确保生产环境发生宕机时系统能够迅速恢复正常运行,降低业务中断风险。 |
|
CPU利用率是衡量业务系统是否健康的一个重要指标,为使业务达到足够的稳定性,CPU利用率需保持在合理的范围内。过高的CPU利用率会导致业务延迟甚至中断。通过注入高CPU故障,可以测试业务系统在特定CPU负载时的反应、检测系统恢复能力、验证监控和告警机制的有效性等,并基于演练结果制定应对策略,确保生产环境高CPU利用率时系统能够迅速恢复正常运行,降低业务中断风险。 |
|
通过注入进程不断消耗内存,模拟云服务器ECS发生OOM(即内存溢出)情况,测试业务进程是否会被终止、检测系统恢复能力、验证监控和告警机制的有效性等,并基于演练结果制定应对策略,确保生产环境发生OOM时系统能够迅速恢复正常运行,降低业务中断风险。 |
|
|
|
|
使用方法
本最佳实践依赖云助手及云助手插件,使用格式如下。
- 故障注入
sudo acs-plugin-manager --exec --plugin {plugin-name} --params inject,paramA=a,paramB=b
- 故障恢复
sudo acs-plugin-manager --exec --plugin {plugin-name} --params recover
说明
{plugin-name}
为对应云助手插件的插件名。- 插件一般分为注入(inject)和恢复(recover)两个动作。
- 故障注入会拼接注入参数,参数键值对内用等号连接,参数对之间用逗号连接。