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

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

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

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

从虚拟化环境中导出虚拟机

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

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

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

  • Citrix Citrix关于 VM Import 和导出Citrix 网站上

  • Microsoft Hyper-V虚拟机导出和导入概览在微软网站上

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

将 VM 作为映像导入

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

Prerequisites

将映像上传到 Amazon S3

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

导入 VM

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

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

示例 1:使用单个磁盘导入映像

使用以下命令可导入具有一个磁盘的映像。

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

以下是示例:containers.json使用 S3 存储桶指定映像的文件。

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

以下是示例:containers.json文件,该文件使用 Amazon S3 中的 URL 指定图像。

[ { "Description": "My Server OVA", "Format": "ova", "Url": "s3://my-import-bucket/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 EBS 加密的中的Amazon EC2 用户指南.

监控导入映像任务

使用 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 已准备就绪,随时可以使用。

导入映像任务完成后,输出内容包括 AMI 的 ID。以下是示例输出,其中包括:ImageId.

{ "ImportImageTasks": [ { "ImportTaskId": "import-ami-01234567890abcdef", "ImageId": "ami-1234567890EXAMPLE", "SnapshotDetails": [ { "DiskImageSize": 705638400.0, "Format": "ova", "SnapshotId": "snap-111222333444aaabb" "Status": "completed", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "vms/my-server-vm.ova" } } ], "Status": "completed" } ] }

取消导入映像任务

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

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

后续步骤

导入映像任务完成后,您可以使用生成的 AMI 启动实例,或者将 AMI 复制到其他区域。

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