替换 Amazon EBS 卷 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

替换 Amazon EBS 卷

由于速度、便利性和成本,Amazon EBS 快照是 Amazon EC2 上的首选备份工具。从快照中创建卷时,您重新创建它在过去特定时间点的状态,并且所有数据完整无缺。通过将从快照中创建的卷附加到实例,您可以在不同的区域之间复制数据,创建测试环境,完全替换受损或损坏的生产卷,或检索特定文件和目录并将其传输到另一个附加的卷。有关更多信息,请参阅Amazon EBS 快照

根据卷是根卷还是数据卷,替换卷的过程会有所不同。

替换根卷

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

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

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

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

替换实例的根卷时,新卷将还原到原始卷的启动状态,或使用特定快照。原始卷与实例分离,新卷将在其位置附加到实例。不会自动删除原始卷。如果不再需要它,可以在根卷替换任务完成后手动将其删除。有关根卷替换任务状态的更多信息,请参阅 查看根卷替换任务

Considerations

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

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

  • 您不能替换裸机实例的根卷。

  • 您只能使用与实例当前根卷属同谱系的快照。您不能使用从根卷拍摄的快照创建的快照副本。此外,成功完成根卷替换任务后,之前的根卷拍摄的快照无法用于为新卷创建根卷替换任务。

替换根卷

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

您可以使用以下方法之一替换实例的根卷。如果使用 Amazon EC2 控制台,请注意,替换根卷仅在新控制台中可用。

Amazon EC2 console

替换根卷

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

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

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

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

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

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

Amazon 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 console

查看根卷替换任务

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

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

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

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

Amazon CLI

查看根卷替换任务的状态

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

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

例如:

$ aws ec2 describe-replace-root-volume-task --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-task --filters Name=instance-id,Values=instance_id

例如:

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

替换数据卷

您可以使用以下过程将(非根)数据卷替换为从该卷的早期快照创建的另一个卷。您必须分离当前卷,然后附加新的卷。

请注意,EBS 卷只能附加到位于相同可用区中的 EC2 实例。

使用以下方法。

Console

替换数据卷

  1. 从快照中创建一个卷,并记下新卷的 ID。有关更多信息,请参阅从快照创建卷

  2. 在卷页面上,选中要替换的卷的复选框。在 Description(描述)选项卡上,找到 Attachment information(附加信息),并记下卷的设备名称(例如,/dev/sda1)以及实例的 ID。

  3. 在仍选择卷的情况下,选择 Actions (操作),然后选择 Detach Volume (分离卷)。当系统提示进行确认时,选择 Yes, Delete (是,分离)。清除该卷的复选框。

  4. 选中您在步骤 1 中创建的新卷的复选框。选择 ActionsAttach Volume。输入您在步骤 2 中记下的实例 ID 和设备名称,然后选择 Attach (附加)

  5. 连接到您的实例并安装卷。有关更多信息,请参阅使 Amazon EBS 卷可在 Windows 上使用