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

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

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

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

先决条件

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

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

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

启动导入快照任务

使用下面的 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 实例。

以下过程展示了如何使用 AWS CLI 创建一个卷并将其附加到某个实例。或者,您也可以使用 AWS 管理控制台。

创建一个卷并将其附加到某个 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. 安装附加的卷。有关更多信息,请参阅您的实例的操作系统文档。