直接从 Amazon 系统映像 (AMI) 中导出虚拟机 (AMI) - VM Import/Export

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

直接从 Amazon 系统映像 (AMI) 中导出虚拟机 (AMI)

若您希望在现场虚拟化环境中部署新的标准化实例,基于 Amazon 系统映像(AMI)导出 VM 文件将非常有用。您可以将大部分 AMI 导出到 Citrix Xen、Microsoft Hyper-V 或 VMware vSphere。

导出映像时,将按存储导出虚拟机的存储桶的标准 Amazon S3 费率向您收费。此外,临时使用 Amazon EBS 快照可能会收取少量费用。有关 Amazon S3)定价的更多信息,请参阅 Amazon S3)定价

先决条件

要从 Amazon EC2 导出虚拟机,首先要满足以下先决条件。

  • 安装 AWS CLI。有关更多信息,请参阅 AWS Command Line Interface 用户指南

    提示

    在 suppAWS 区域 orted(支持的)中,您还可以使用,以AWS CloudShell获得基于浏览器的预先验证 shell,并直接从中启动AWS Management Console。

  • 创建 Amazon S3 存储桶以存储导出的映像,或选择现有存储桶。存储桶必须位于您想要导出 VM 的区域。有关 S3 存储桶的更多信息,请参阅 Amazon Service 用户指南

  • 创建命名为 vmimport 的 IAM 角色。有关更多信息,请参阅 必需的服务角色

导出映像的注意事项

导出映像和卷存在以下限制:

  • 您必须将映像导出为您的虚拟化环境支持的以下映像格式之一:

    • 虚拟硬盘 (VHD),该格式可与 Citrix Xen 和 Microsoft Hyper-V 虚拟化产品兼容。

    • 流优化型 ESX 虚拟机磁盘 (VMDK),该格式可与 VMware ESX 和 VMware vSphere 版本 4、5 和 6 相兼容。

    • RAW 格式。

  • 您不能导出包含 AWS 提供的第三方软件的映像。例如,VM Export 无法导出 Windows 或 SQL Server 映像或通过 AWS Marketplace 中的映像创建的任何映像。

  • 您不能导出在块储存设备映射中包含加密 EBS 快照的映像。

  • 您只能导出在块储存设备映射中指定的 EBS 数据卷,而不能导出在实例启动后附加的 EBS 卷。

  • 如果您从其他AWS账户共享了图像,则无法从 Amazon EC2 导出该图像。

  • 您不能同时为同一 AMI 执行多个导出映像任务。

  • 默认情况下,每个区域同时进行的转换任务不能超过 5 个。此限制最多可调至 20。

  • 不支持卷大小超过 1 TiB 的 VM。

  • 您可以将卷导出到未加密的 Amazon S3 存储桶或使用 SSE-S3 加密加密的存储桶。您无法导出到使用 SSE-KMS 加密加密的 S3 存储桶。

启动导出图像任务

若要导出映像,请使用 export-image 命令。导出的文件使用以下 S3 密钥写入指定的 S3 存储桶:前缀 exp ort-am i-id格式(例如, my-export-bucket/exports/export-ami-1234567890abcdef0.vmdk)。

aws ec2 export-image --image-id ami-id --disk-image-format VMDK --s3-export-location S3Bucket=my-export-bucket,S3Prefix=exports/

监视导出图像任务

要监控图像的导出,请使用以下describe-export-image-tasks命令:

aws ec2 describe-export-image-tasks --export-image-task-ids export-ami-1234567890abcdef0

以下为响应示例。所示状态为 active,表明导出任务正在进行。当状态为 completed 时,表示映像可供使用。

{ "ExportImageTasks": [ { "ExportImageTaskId": "export-ami-1234567890abcdef0" "Progress": "21", "S3ExportLocation": { "S3Bucket": "my-export-bucket", "S3Prefix": "exports/" }, "Status": "active", "StatusMessage": "updating" } ] }

取消导出映像任务

如果需要,可以使用以下cancel-export-task命令取消正在导出的图像。

aws ec2 cancel-export-task --export-task-id export-ami-1234567890abcdef0

如果导出任务完成或正在传输最后一个磁盘映像,则该命令将失败且会返回错误。