在 Amazon EBS 上进行故障测试
使用 AWS Fault Injection Service 和“暂停 I/O”操作暂时停止 Amazon EBS 卷与其附加实例之间的 I/O,以测试工作负载如何处理 I/O 中断。借助 AWS FIS,您可以使用受控实验来测试架构和监控,例如 Amazon CloudWatch 告警和操作系统超时配置,并提高应对存储故障的弹性。
有关 AWS FIS 的更多信息,请参阅《AWS Fault Injection Service 用户指南》。https://docs.aws.amazon.com/fis/latest/userguide/what-is.html
注意事项
暂停卷 I/O 时请注意以下事项:
-
可以为挂载到基于 Nitro 系统构建的实例的所有 Amazon EBS 卷类型暂停 I/O。
-
可以为根卷暂停 I/O。
-
可以为启用多重挂载的卷暂停 I/O。如果为已启用多重挂载的卷暂停 I/O,则该卷及其所有附加实例之间将暂停 I/O。
-
要测试操作系统超时配置,请将实验持续时间设置为等于或大于为
nvme_core.io_timeout
指定的值。有关更多信息,请参阅 Amazon EBS 卷的 NVMe I/O 操作超时。 -
如果提升对已暂停 I/O 卷的 I/O,会发生以下情况:
-
卷的状态将在 120 秒内转换为
impaired
。有关更多信息,请参阅 Amazon EBS 卷状态检查。 -
队列长度(
VolumeQueueLength
)的 CloudWatch 指标将为非零。任何告警或监控都应监控非零队列深度。有关更多信息,请参阅Amazon EBS 卷的指标。 -
VolumeReadOps
或VolumeWriteOps
的 CloudWatch 指标将为0
,这表明该卷不再处理 I/O。
-
限制
暂停卷 I/O 时请注意以下限制:
-
不支持实例存储卷。
-
不支持基于 Xen 的实例类型。
-
您无法为 AWS Outposts、AWS Wavelength 区域或 Local Zone 中 Outpost 上创建的卷暂停 I/O。
您可以从 Amazon EC2 控制台执行基础实验,也可以使用 AWS FIS 控制台执行更高级的实验。有关使用 AWS FIS 控制台执行高级实验的更多信息,请参阅《AWS Fault Injection Service 用户指南》中的 AWS FIS 教程。
使用 Amazon EC2 控制台执行基础实验
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Volumes。
-
选择要为其暂停 I/O 的卷,然后选择操作、错误注入、暂停卷 I/O。
-
对于持续时间,输入要在卷和实例之间暂停 I/O 的持续时间。“持续时间”下拉列表旁边的字段将以 ISO 8601 格式显示持续时间。
-
在服务访问权限部分中,选择 AWS FIS 执行实验所担任的 IAM 服务角色。您可以使用默认角色,也可以使用您创建的现有角色。有关更多信息,请参阅为 AWS FIS 创建 IAM 角色。
-
选择暂停卷 I/O。系统提示时,在确认字段中输入
start
并选择开始实验。 -
监控实验的进度和影响。有关更多信息,请参阅《AWS FIS 用户指南》中的监控 AWS FIS。