在 Amazon EBS 上进行故障测试 - Amazon EBS

在 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 卷的指标

    • VolumeReadOpsVolumeWriteOps 的 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 控制台执行基础实验
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Volumes

  3. 选择要为其暂停 I/O 的卷,然后选择操作错误注入暂停卷 I/O

  4. 对于持续时间,输入要在卷和实例之间暂停 I/O 的持续时间。“持续时间”下拉列表旁边的字段将以 ISO 8601 格式显示持续时间。

  5. 服务访问权限部分中,选择 AWS FIS 执行实验所担任的 IAM 服务角色。您可以使用默认角色,也可以使用您创建的现有角色。有关更多信息,请参阅为 AWS FIS 创建 IAM 角色

  6. 选择暂停卷 I/O。系统提示时,在确认字段中输入 start 并选择开始实验

  7. 监控实验的进度和影响。有关更多信息,请参阅《AWS FIS 用户指南》中的监控 AWS FIS