本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 VM Import/Export 将磁盘作为快照导入
VM Import/Export 让您能够将磁盘作为 Amazon EBS 快照导入。创建快照后,您可以从快照创建 EBS 卷,然后将其挂载到某个 EC2 实例。
导入的快照具有任意卷 ID,该 ID 不应用于任何目的。
先决条件
-
支持以下磁盘格式:虚拟硬盘 (VHD/VHDX)、ESX 虚拟机磁盘 (VMDK)、原始格式。
-
首先,您必须将磁盘上传到 Amazon S3。
-
如果您尚未安装Amazon CLI在计算机上运行 import 命令时,请参阅Amazon Command Line Interface用户指南.
提示 In支持的Amazon Web Services 区域,您还可以使用Amazon CloudShell以获得基于浏览器的预先认证的外壳,并直接从启动Amazon Web Services Management Console.
启动导入快照任务
使用下面的 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 实例
-
使用describe-import-snapshot-tasks命令确定导入任务所创建的快照的 ID。
-
使用下面的 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" }
-
使用下面的 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" }
-
安装附加的卷。有关更多信息,请参阅您的实例的操作系统文档。