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

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

使用 VM Import/Export 将实例作为 VM 导出

当您要在您的虚拟化环境中部署 Amazon EC2 实例的副本时,则导出为 VM 会很有用。您可以将大部分 EC2 实例导出到 Citrix Xen、Microsoft Hyper-V 或 VMware vSphere。

当您导出实例时,会针对您存储所导出 VM 所用的存储桶按照标准 Amazon S3 费率向您收费。此外,对 Amazon EBS 快照的临时使用也会产生少量费用。有关 Simple Storage Service(Amazon S3)定价的更多信息,请参阅 Amazon Simple Storage Service 定价

先决条件

重要

您无法把虚拟机导出到一个已为 S3 对象所有权应用强制桶拥有者设置的 S3 存储桶,因为 ACL 已被禁用。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》配置 ACL

要从 Amazon EC2 导出 VM,首先必须满足以下先决条件。

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

    提示

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

  • 创建 Amazon S3 存储桶用于存储导出的实例或者选择现有的存储桶。存储桶必须位于您想要导出 VM 的区域。此外,存储桶必须属于您在其中执行导出操作的 Amazon Web Services 账户。有关更多信息,请参阅 Amazon Simple Storage Service 用户指南

  • 附加一个包含以下授权的访问控制列表 (ACL),准备您的 Amazon S3 存储桶。更多信息,请参阅 Amazon Simple Storage Service 用户指南中的使用 ACL 管理访问权限

    • 对于 Grantee,请提供相应的特定区域规范账户 ID:

      非洲(开普敦)

      3f7744aeebaf91dd60ab135eb1cf908700c8d2bc9133e61261e6c582be6e33ee

      亚太地区(香港)

      97ee7ab57cc9b5034f31e107741a968e595c0d7a19ec23330eae8d045a46edfb

      亚太地区(海得拉巴)

      77ab5ec9eac9ade710b7defed37fe0640f93c5eb76ea65a64da49930965f18ca

      亚太地区(雅加达)

      de34aaa6b2875fa3d5086459cb4e03147cf1a9f7d03d82f02bedb991ff3d1df5

      亚太地区(墨尔本)

      8b8ea36ab97c280aa8558c57a380353ac7712f01f82c21598afbb17e188b9ad5

      亚太地区(大阪)

      40f22ffd22d6db3b71544ed6cd00c8952d8b0a63a87d58d5b074ec60397db8c9

      加拿大西部(卡尔加里)

      78e12f8d798f89502177975c4ccdac686c583765cea2bf06e9b34224e2953c83

      欧洲地区(米兰)

      04636d9a349e458b0c1cbf1421858b9788b4ec28b066148d4907bb15c52b5b9c

      欧洲(西班牙)

      6e81c4c52a37a7f59e103625162ed97bcd0e646593adb107d21310d093151518

      欧洲(苏黎世)

      5d9fcea77b2fb3df05fc15c893f212ae1d02adb4b24c13e18586db728a48da67

      以色列(特拉维夫)

      328a78de7561501444823ebeb59152eca7cb58fee2fe2e4223c2cdd9f93ae931

      中东(巴林)

      aa763f2cf70006650562c62a09433f04353db3cba6ba6aeb3550fdc8065d3d9f

      中东(阿联酋)

      7d3018832562b7b6c126f5832211fae90bd3eee3ed3afde192d990690267e475

      中国(北京)和中国(宁夏)

      834bafd86b15b6ca71074df0fd1f93d234b9d5e848a2cb31f880c149003ce36f

      Amazon GovCloud (US)

      af913ca13efe7a94b88392711f6cfc8aa07c9d1454d4f190a624b126733a5602

      所有其他区域

      c4d8eabf8db69dbe46bfe0e517100c554f01200b104d59cd408e777ba442a322

    • 为每个 Grantee 提供以下权限:

      • READ_ACP(在 Amazon S3 控制台中,存储桶 ACL 应具有读取权限)

      • WRITE(在 Amazon S3 控制台中,对象应具有写入权限)

实例导出的注意事项

导出实例和卷受下列限制:

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

    • 启动虚拟装置 (OVA),该格式可与 VMware vSphere 版本 4、5 和 6 相兼容。

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

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

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

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

  • 您不能导出在块储存设备映射中包含实例存储卷的实例。

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

  • 如果删除了 AMI 或者 AMI 的 EBS 快照,则无法导出从导入的映像启动的实例。要变通解决该问题,请从实例创建一个 AMI 并导出该 AMI。

  • 您不能导出具有多个虚拟磁盘的实例。

  • 您不能导出具有多个网络接口的实例。

  • 如果您从另一 Amazon 账户共享实例,则不能从 Amazon EC2 导出它。

  • 默认在每个区域中,您最多可以同时进行 5 个转换任务。此限制最多可调至 20。

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

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

  • VM Import/Export 仅支持在将其导出的同一 Amazon Web Services 账户 将 VM 导出到 Amazon S3 存储桶。

  • 导出操作不支持混合配置。必须为 BIOS 或 UEFI 启用 GRUB2,但不能同时为两者都启用。

启动实例导出任务

重要

在导出过程中,您的实例可能会重启。确保在可以接受的停机时间时执行此操作。

要导出您的实例,请使用create-instance-export-task命令。导出的文件将使用以下 S3 密钥写入指定的 S3 存储桶:前缀 export-i-xxxxxxxxxxxxxxxxx 格式(例如 /vms my-export-bucket /export-i-1234567890abcdef0.ova)。

aws ec2 create-instance-export-task --instance-id instance-id --target-environment vmware --export-to-s3-task file://C:\file.json

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

{ "ContainerFormat": "ova", "DiskImageFormat": "VMDK", "S3Bucket": "my-export-bucket", "S3Prefix": "vms/" }

以下为响应示例。所示状态为 active,表明导出任务正在进行。当状态为 completed 时,实例导出即告完成。

{ "ExportTask": { "ExportTaskId": "export-i-021345abcdef6789", "ExportToS3Task": { "ContainerFormat": "ova", "DiskImageFormat": "vmdk", "S3Bucket": "my-export-bucket", "S3Key": "vms/export-i-021345abcdef6789.ova" }, "InstanceExportDetails": { "InstanceId": "i-021345abcdef6789", "TargetEnvironment": "vmware" }, "State": "active" } }

监控实例导出任务

要监控您的实例的导出,请使用以下describe-export-tasks命令:

aws ec2 describe-export-tasks --export-task-ids export-i-1234567890abcdef0

取消实例导出任务

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

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

此命令会删除所有的导出项目,包括任何未完全创建的 Amazon S3 对象。如果导出任务完成或正在传输最后一个磁盘映像,则该命令将失败且会返回错误。