Amazon Elastic Compute Cloud
Linux 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

监控卷修改的进度

被修改的 EBS 卷将经历一系列状态。当您从控制台、CLI、API 或软件开发工具包发出 ModifyVolume 指令后,卷首先进入 Modifying 状态,然后是 Optimizing 状态,最后是 Complete 状态。此时,卷已准备好做进一步的修改。在极少数情况下,暂时的 AWS 故障可能会导致 Failed 状态。如果发生这种情况,请重试修改。

大小更改通常需要几秒钟才能完成,并在卷处于 Optimizing 状态后生效。

性能 (IOPS) 更改可能需要几分钟到几小时才能完成,具体视所做的配置更改而定。

新配置生效最长需要 24 个小时,在某些情况下可能会更长,例如在未完全初始化卷的情况下。通常,完全使用的 1 TiB 卷需要约 6 个小时才能迁移到新的性能配置。

当卷处于 optimizing 状态时,卷性能介于源配置规范和目标配置规范之间。过渡卷的性能将不会低于源卷的性能。如果您降级 IOPS,则过渡卷的性能不会低于目标卷的性能。

您可以通过检查 AWS 管理控制台、使用 Amazon EC2 API/CLI 查询卷的状态或访问发送到 Amazon CloudWatch Events 的指标来监控修改进度。以下过程说明了这些方法。

从控制台监控修改进度

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择 Volumes,然后选择要检查的卷。卷的状态显示在 State 列中。在下面的示例中,修改状态为 completed。此状态信息也显示在详细信息窗格的 State 字段中。

  3. 打开 State 字段旁边的信息图标可显示有关最近一次修改操作完成前后的信息,如下所示。

例 从命令行监控修改进度

使用 describe-volumes-modifications 查看修改进度。本例调用了上面的卷 vol-11111111111111111 和另一个卷 vol-22222222222222222

aws ec2 describe-volumes-modifications --region us-east-1 --volume-id vol-11111111111111111 vol-22222222222222222

命令返回一个或多个 VolumesModification 对象。下面是示例输出。第一个对象与上面显示的原始 modify-volume 命令的输出几乎相同。但是,它没有应用额外的修改。

{ "VolumesModifications": [ { "TargetSize": 200, "TargetVolumeType": "io1", "ModificationState": "modifying", "VolumeId": "vol-11111111111111111", "TargetIops": 10000, "StartTime": "2017-01-19T22:21:02.959Z", "Progress": 0, "OriginalVolumeType": "gp2", "OriginalIops": 300, "OriginalSize": 100 }, { "TargetSize": 2000, "TargetVolumeType": "sc1", "ModificationState": "modifying", "VolumeId": "vol-22222222222222222", "StartTime": "2017-01-19T22:23:22.158Z", "Progress": 0, "OriginalVolumeType": "gp2", "OriginalIops": 300, "OriginalSize": 1000 } ] }

下一个示例查询区域中修改状态为 optimizingcompleted 的所有卷,然后筛选和格式化结果以只显示于 2017 年 2 月 1 日及之后做出的修改。

aws ec2 describe-volumes-modifications --filters Name=modification-state,Values="optimizing","completed" --region us-east-1 --query "VolumesModifications[?StartTime>='2017-02-01'].{ID:VolumeId,STATE:ModificationState}"

在本例中,查询返回有关两个卷的信息:

[ { "STATE": "optimizing", "ID": "vol-06397e7a0eEXAMPLE" }, { "STATE": "completed", "ID": "vol-bEXAMPLE" } ]

使用 CloudWatch Events 监控修改进度

借助 CloudWatch Events,您可以为卷修改事件创建通知规则,以发送文本消息或执行 Lambda 函数。

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 依次选择 EventsCreate rule

  3. 对于 Build event pattern to match events by service,选择 Custom event pattern

  4. 对于 Build custom event pattern,将内容替换为以下代码:

    { "source": [ "aws.ec2" ], "detail-type": [ "EBS Volume Notification" ], "detail": { "event": [ "modifyVolume" ] } }

    选择 Save

    典型的事件输出应与以下内容类似:

    Body: { "version": "0", "id": "1ea2ace2-7790-46ed-99ab-d07a8bd68685", "detail-type": "EBS Volume Notification", "source": "aws.ec2", "account": "065441870323", "time": "2017-01-12T21:09:07Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:065441870323:volume/vol-03a55cf56513fa1b6" ], "detail": { "result": "optimizing", "cause": "", "event": "modifyVolume", "request-id": "auto-58c08bad-d90b-11e6-a309-b51ed35473f8" } }

您可以使用规则生成有关 Amazon SNS 的通知消息,或调用 Lambda 函数来响应匹配事件。