还原根卷 - Amazon Elastic Compute Cloud

还原根卷

Amazon EC2 使您可以将正在运行的实例的 Amazon EBS 根卷还原到其启动状态,或还原到一个特定的快照。这让您可以修复问题,如根卷损坏或客户操作系统网络配置错误,同时保留以下内容:

  • 存储在实例存储卷上的数据 — 还原根卷后,实例存储卷仍附加到实例。

  • 网络配置 — 所有网络接口均仍附加到实例,并保留其 IP 地址、标识符和附件 ID。当实例变为可用时,将刷新所有待处理的网络流量。此外,实例保留在同一个物理主机上,因此它会保留其公有和私有 IP 地址以及 DNS 名称。

  • IAM 策略 — 将保留和强制实施与实例相关联的 IAM 配置文件和策略(例如基于标签的策略)。

还原实例的根卷时,新卷将还原到原始卷的启动状态,或使用特定快照。原始卷与实例分离,新(还原的)卷将在其位置附加到实例。不会自动删除原始卷。如果您不再需要它,可以在过程完成后手动将其删除。

注意事项

  • 该实例必须处于 running 状态。

  • 在此过程中,实例将自动重新启动。在重启过程中,将清空内存 (RAM) 的内容。

  • 如果根卷是实例存储卷,则无法还原它。

  • 您不能还原裸机实例的根卷。

  • 您只能使用与实例当前根卷属同谱系的快照。您不能使用从根卷拍摄的快照创建的快照副本。此外,成功还原根卷后,从原始根卷拍摄的快照无法用于还原新(还原的)根卷。

还原根卷

还原实例的根卷时,您可以选择将卷还原到其初始启动状态,也可以选择将卷还原到特定快照。如果选择将卷还原到特定快照,则必须选择为该根卷拍摄的快照。如果选择将根卷还原到其初始启动状态,则会从用于在实例启动期间创建卷的快照中还原根卷。

当您还原实例的根卷时,将创建根卷替换任务。您可以使用根卷更换任务来监控恢复过程的进度和结果。有关更多信息,请参阅查看根卷替换任务

您可以使用以下方法之一还原实例的根卷。

注意

如果使用 Amazon EC2 控制台,此功能仅在新控制台中可用。

New console

要还原根卷

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择要还原其根卷的实例,然后选择 Actions(操作)、Monitor and troubleshoot(监控和故障排除)、Replace root volume(替换根卷)。

    注意

    如果选定的实例不在 running 状态,替换根卷操作将被禁用。

  4. Replace root volume(替换根卷)屏幕中,执行以下操作之一:

    • 要将实例的根卷还原到其初始启动状态,请在不选择快照的情况下选择 Create replacement task(创建替换任务)

    • 要将实例的根卷还原到特定快照,对于 Snapshot(快照),请选择要使用的快照,然后选择 Create replacement task(创建替换任务)

AWS CLI

将根卷还原到初始启动状态

使用 create-replace-root-volume-task 命令。指定要还原其根卷的实例的 ID,然后忽略 --snapshot-id 参数。

$ aws ec2 create-replace-root-volume-task --instance-id instance_id

例如:

$ aws ec2 create-replace-root-volume-task --instance-id i-1234567890abcdef0

将根卷还原到特定快照

使用 create-replace-root-volume-task 命令。指定要还原其根卷的实例的 ID 以及要使用的快照的 ID。

$ aws ec2 create-replace-root-volume-task --instance-id instance_id --snapshot-id snapshot_id

例如:

$ aws ec2 create-replace-root-volume-task --instance-id i-1234567890abcdef0 --snapshot-id snap-9876543210abcdef0

查看根卷替换任务

当您还原实例的根卷时,将创建根卷替换任务。在此过程中,根卷更换任务将转换为以下状态:

  • pending — 正在创建替换卷。

  • in-progress — 正在分离原始卷,正在附加替换卷。

  • succeeded — 已将替换卷成功附加到实例并且实例可用。

  • failing — 替换任务即将失败。

  • failed — 替换任务已失败,但原始根卷仍然处于附加状态。

  • failing-detached — 替换任务即将失败。实例可能没有附加的根卷。

  • failed-detached — 替换任务已失败,实例没有附加的根卷。

您可以使用以下方法之一查看实例的根卷替换任务。

注意

如果使用 Amazon EC2 控制台,此功能仅在新控制台中可用。

New console

查看根卷替换任务

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择要查看其根卷替换任务的实例,然后选择 Storage(存储)选项卡。

  4. Storage(存储)选项卡中,展开 Recent root volume replacement tasks(最近的根卷替换任务)

AWS CLI

查看根卷替换任务的状态

使用 describe-replace-root-volume-tasks 命令并指定要查看的根卷替换任务的 ID。

$ aws ec2 describe-replace-root-volume-tasks --replace-root-volume-task-ids task_id_1 task_id_2

例如:

$ aws ec2 describe-replace-root-volume-tasks --replace-root-volume-task-ids replacevol-1234567890abcdef0
{ "ReplaceRootVolumeTasks": [ { "ReplaceRootVolumeTaskId": "replacevol-1234567890abcdef0", "InstanceId": "i-1234567890abcdef0", "TaskState": "succeeded", "StartTime": "2020-11-06 13:09:54.0", "CompleteTime": "2020-11-06 13:10:14.0" }] }

或者,请指定 instance-id 筛选条件以按实例筛选结果。

$ aws ec2 describe-replace-root-volume-tasks --filters Name=instance-id,Values=instance_id

例如:

$ aws ec2 describe-replace-root-volume-tasks --filters Name=instance-id,Values=i-1234567890abcdef0