VM Import/Export
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 VM Import/Export 将 VM 作为映像导入

您可以使用 VM Import/Export 将虚拟机 (VM) 映像作为 Amazon 系统映像 (AMI) 从虚拟化环境导入到 Amazon EC2 中,并用于启动实例。随后,您也可以将 VM 映像从实例导回到虚拟化环境中。这让您能够将 VM 导入到 Amazon EC2 中使用,从而充分利用已在 VM 方面所做的投资,以满足您的 IT 安全、配置管理和合规性需求。

注意

对于大多数 VM 导入需求,我们建议您使用 AWS Server Migration Service。AWS SMS 自动完成导入过程 (减少迁移大型 VM 基础设施的工作量),支持不断变化的 VM 的增量更新,并将导入的 VM 转换为现成可用的 Amazon 系统映像 (AMI)。要开始使用 AWS SMS,请参阅 AWS Server Migration Service

将您的 VM 从其虚拟化环境导出

完成 VM 导出的准备工作后,您可以从您的虚拟化环境将其导出。将 VM 作为映像导入时,您可以导入以下格式的磁盘:开放虚拟化存档 (OVA)、虚拟机磁盘 (VMDK)、虚拟硬盘 (VHD/VHDX) 和原始格式。对于某些虚拟化环境,您可以将其导出为开放虚拟化格式 (OVF) – 通常包含一个或多个 VMDK、VHD 或 VHDX 文件,然后将文件打包到 OVA 文件中。

有关更多信息,请参阅您的虚拟化环境的文档。例如:

  • VMware — 在 VMware 文档 站点上搜索“导出 OVF 模板”。按照创建 OVA 的说明操作。

  • Citrix — Citrix 网站上的关于 VM 导入和导出

  • Microsoft Hyper-V — Microsoft 网站上的导出和导入虚拟机概览

  • Microsoft Azure — Microsoft 网站上的从 Azure 下载 Windows VHD从 Azure 下载 Linux VHD在 Azure 门户中,选择要迁移的 VM,然背后选择 Disks (磁盘)。选择每个磁盘(操作系统或数据),然后选择 Create Snapshot (创建快照)。在已完成的快照资源上,选择 Export (导出)。这将创建一个可用于下载虚拟映像的 URL。

将 VM 作为映像导入

从您的虚拟化环境导出您的 VM 后,您可以将其导入 Amazon EC2。无论 VM 来自哪里,导入过程都相同。

先决条件

将映像上传到 Amazon S3

使用所选的上传工具将 VM 映像文件上传到 Amazon S3 存储桶。有关通过 S3 控制台上传文件的信息,请参阅将对象上传至 Amazon S3。有关增强版上传工具 Java 小程序的信息,请参阅使用增强版上传工具

导入 VM

将您的 VM 映像文件上传到 Amazon S3 后,可以使用 AWS CLI 导入该映像。这些工具接受 Amazon S3 存储桶和文件路径,或者公有 Amazon S3 文件的 URL。私有 Amazon S3 文件需要已签名的 GET URL

以下示例使用 AWS CLI 命令 import-image 创建导入任务。

示例 1:导入 OVA

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

下面是一个 containers.json 示例文件。

[ { "Description": "My Server OVA", "Format": "ova", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "vms/my-server-vm.ova" } }]

示例 2:导入多个磁盘

$ C:\> aws ec2 import-image --description "My server disks" --disk-containers "file://C:\import\containers.json"

下面是一个 containers.json 示例文件。

[ { "Description": "First disk", "Format": "vmdk", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "disks/my-server-vm-disk1.vmdk" } }, { "Description": "Second disk", "Format": "vmdk", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "disks/my-server-vm-disk2.vmdk" } } ]

示例 3:在启用了加密选项的情况下导入磁盘

aws ec2 import-image --description "My server disks" --encrypted --kms-key-id 0ea3fef3-80a7-4778-9d8c-1c0c6EXAMPLE --disk-containers "file://C:\import\containers.json"

在整个导入过程中,不得禁用为加密提供的 CMK。有关详细信息,请参阅 Amazon EC2 用户指南中的 Amazon EBS 加密

监控导入映像任务

使用 describe-import-image-tasks 命令返回导入任务的状态。

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

包括的状态值如下:

  • active — 正在运行导入任务。

  • deleting — 正在取消导入任务。

  • deleted — 导入任务已取消。

  • updating — 导入状态正在更新。

  • validating — 正在验证导入的映像。

  • validated — 已验证导入的映像。

  • converting — 正在将导入的映像转换成 AMI。

  • completed — 导入任务已完成,并且 AMI 已准备就绪,随时可以使用。

取消导入映像任务

若您需要取消处于活跃状态的导入任务,请使用 cancel-import-task 命令。

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

后续步骤

对于某些操作系统,用于增强联网的设备驱动程序和基于 Nitro 的实例所需的 NVMe 块存储设备的设备驱动程序不会在导入过程中自动安装。要手动安装这些驱动程序,请按照以下文档中的说明操作。接下来,从自定义实例创建一个新的 AMI。

当您有了具备所需驱动程序的 AMI 后,您就可以启动它,或者将它复制到另一个区域。有关更多信息,请参阅以下文档。