使用 VM Import/Export 将磁盘作为快照导入 - VM Import/Export
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 VM Import/Export 将磁盘作为快照导入

VM Import/Export 让您能够将磁盘作为 Amazon EBS 快照导入。创建快照后,您可以从快照创建 EBS 卷,然后将其挂载到某个 EC2 实例。

导入的快照具有任意卷 ID,该 ID 不应用于任何目的。

先决条件

  • 支持以下磁盘格式:虚拟硬盘 (VHD/VHDX)、ESX 虚拟机磁盘 (VMDK)、原始格式。

  • 首先,您必须将磁盘上传到 Amazon S3。

  • 如果您尚未在计算机上安装用于运行导入命令的 Amazon CLI,请参阅Amazon Command Line Interface用户指南

    提示

    支持的 Amazon Web Services 区域中,您还可以使用Amazon CloudShell,以实现可从 Amazon Web Services Management Console 直接启动并且已经预先通过身份验证的浏览器式 shell。

启动导入快照任务

使用下面的 import-snapshot 命令导入磁盘。您可以指定 S3 存储桶的 URL,或提供 S3 存储桶名称和密钥。

aws ec2 import-snapshot --description "My server VM" --disk-container "file://C:\import\containers.json"

文件 containers.json 是一个包含所需信息的 JSON 文档。

{ "Description": "My server VMDK", "Format": "VMDK", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "vms/my-server-vm.vmdk" } }

以下为响应示例:

{ "Description": "My server VM", "ImportTaskId": "import-snap-1234567890abcdef0", "SnapshotTaskDetail": { "Description": "My server VMDK", "DiskImageSize": "0.0", "Format": "VMDK", "Progress": "3", "Status": "active", "StatusMessage": "pending", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "vms/my-server-vm.vmdk" } } }

监控导入快照任务

使用describe-import-snapshot-tasks命令检查导入快照任务的状态。

aws ec2 describe-import-snapshot-tasks --import-task-ids import-snap-1234567890abcdef0

以下为响应示例。所示状态为 active,表明正在导入。当状态为 completed 时,表示快照可供使用。

{ "ImportSnapshotTasks": [ { "Description": "My server VM", "ImportTaskId": "import-snap-1234567890abcdef0", "SnapshotTaskDetail": { "Description": "My server VMDK", "DiskImageSize": "3.115815424E9", "Format": "VMDK", "Progress": "22", "Status": "active", "StatusMessage": "downloading/converting", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "vms/my-server-vm.vmdk" }, } } ] }

取消导入快照任务

如果需要,您可以使用cancel-import-task命令取消正在进行的导入任务。

aws ec2 cancel-import-task --import-task-id import-snap-1234567890abcdef0

后续步骤

您可以从 EBS 快照创建一个或多个 EBS 卷。您可以将每个 EBS 卷附加到单个 EC2 实例。

以下过程展示了如何使用 Amazon CLI 创建一个卷并将其附加到某个实例。或者,您也可以使用 Amazon Web Services Management Console。

创建一个卷并将其附加到某个 EC2 实例
  1. 使用describe-import-snapshot-tasks命令确定导入任务创建的快照的 ID。

  2. 使用下面的 create-volume 命令从快照创建卷。您必须选择要将卷挂载到的实例的可用区。

    aws ec2 create-volume --availability-zone us-east-1a --snapshot-id snap-1234567890abcdef0

    下面是示例输出:

    { "AvailabilityZone": "us-east-1a", "VolumeId": "vol-1234567890abcdef0", "State": "creating", "SnapshotId": "snap-1234567890abcdef0" }
  3. 使用下面的 attach-volume 命令将上一步中创建的 EBS 卷挂载到某个现有实例。

    aws ec2 attach-volume --volume-id vol-1234567890abcdef0 --instance-id i-1234567890abcdef0 --device /dev/sdf

    下面是示例输出:

    { "AttachTime": "YYYY-MM-DDTHH:MM:SS.000Z", "InstanceId": "i-1234567890abcdef0", "VolumeId": "vol-1234567890abcdef0", "State": "attaching", "Device": "/dev/sdf" }
  4. 安装附加的卷。有关更多信息,请参阅您的实例的操作系统文档。