在 Amazon EBS 上进行故障测试 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Amazon EBS 上进行故障测试

使用 Amazon Fault Injection Simulator 和“暂停 I/O”操作暂时停止 Amazon EBS 卷与其附加实例之间的 I/O,以测试工作负载如何处理 I/O 中断。借助 Amazon FIS,您可以使用受控实验来测试架构和监控,例如 Amazon CloudWatch 告警和操作系统超时配置,并提高应对存储故障的弹性。

有关 Amazon FIS 的更多信息,请参阅 Amazon Fault Injection Simulator 用户指南

注意事项

暂停卷 I/O 时请注意以下事项:

  • 可以为附加到在 Nitro System 上构建的实例的所有 Amazon EBS 卷类型暂停 I/O。

  • 可以为根卷暂停 I/O。

  • 可以为启用多重挂载的卷暂停 I/O。如果为已启用多重挂载的卷暂停 I/O,则该卷及其所有附加实例之间将暂停 I/O。

  • 要测试操作系统超时配置,请将实验持续时间设置为等于或大于为 nvme_core.io_timeout 指定的值。有关更多信息,请参阅I/O 操作超时

  • 如果提升对已暂停 I/O 卷的 I/O,会发生以下情况:

    • 卷的状态将在 120 秒内转换为 impaired。有关更多信息,请参阅监控您的卷状态

    • 队列长度 (VolumeQueueLength) 的 CloudWatch 指标将为非零。任何告警或监控都应监控非零队列深度。有关更多信息,请参阅挂载到所有实例类型的卷的卷指标

    • VolumeReadOpsVolumeWriteOps 的 CloudWatch 指标将为 0,这表明该卷不再处理 I/O。

限制

暂停卷 I/O 时请注意以下限制:

  • 不支持实例存储卷。

  • 不支持基于 Xen 的实例类型。

  • 您无法为 Amazon Outposts、Amazon Wavelength 区域或 Local Zone 中 Outpost 上创建的卷暂停 I/O。

  • “暂停 I/O”操作在 Amazon GovCloud (US) Regions 中不可用。

您可以从 Amazon EC2 控制台执行基础实验,也可以使用 Amazon FIS 控制台执行更高级的实验。有关使用 Amazon FIS 控制台执行高级实验的更多信息,请参阅《Amazon Fault Injection Simulator 用户指南》中的 Amazon 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. 服务访问权限部分中,选择 Amazon FIS 执行实验所担任的 IAM 服务角色。您可以使用默认角色,也可以使用您创建的现有角色。有关更多信息,请参阅为 Amazon FIS 创建 IAM 角色

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

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