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

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

使用 VM 导入/导出将 VM 作为映像导入

提示

要导入具有基于控制台的体验的虚拟机 (VM),您可以使用 Migration Hub Orchestrator 控制台中的 “将虚拟机映像导入到AWS模板”。有关更多信息,请参阅 AWS Migration Hub Orchestrator 用户指南

您可以使用 VM Import/Export,将虚拟机(VM)镜像从虚拟化环境导入 Amazon EC2,可用于将虚拟机(VM)镜像从虚拟化环境导入 Amazon EC2,可用于启动实例。随后,您也可以将 VM 映像从实例导回到虚拟化环境中。这使您能够利用在虚拟机上的投资,将这些虚拟机引入 Amazon EC2,从而满足您的 IT 安全、配置管理和合规性要求。

重要

AWSVM 导入/导出强烈建议在创建新的 VM Import 任务时为--license-type--usage-operation参数指定一个值。这样可以确保您的操作系统获得适当的许可,并优化您的账单。有关更多信息,请参阅许可选项

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

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

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

  • VMware — 在 VMwar e Docs 网站上搜索 “导出 OVF 模板”。按照创建 OVA 的说明操作。

  • Citrix — 在 Citrix 网站上导入和导出虚拟机

  • 微软 Hyper-V — 在微软网站上导出和导入虚拟机的概述

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

将您的 VM 作为映像导入

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

先决条件

将映像上传AAmazon S3

使用您选择的上传工具将虚拟机映像文件上传VM 镜像文件上传您的 Amazon S3 2 有关通过 Amazon S3 控制台上传对象的信息,请参阅上传对象

导入 VM

将虚拟机映像文件上传到 Amazon S3 后,您可以使用导AWS CLI入映像。这些工具要么接受 Amazon S3 存储桶和文件路径,要么接受 Amazon S3 公共 Amazon S3 文件的 URL。私有 Amazon S3 文件需要预签名 URL。您还可以使用 Migrati on Hub Orchestrator 控制台中的 “将虚拟机映像导入到AWS模板” 将本地虚拟机映像导入到AWS。有关更多信息,请参阅Example 4

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

示例 1:导入带有单个磁盘的映像

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

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

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

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

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

[ { "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 EC2 用户指南》中的 Amazon EBS 加密

示例 4:使用 Migration Hub Orchestrator 中的 “将虚拟机映像导入到AWS模板” 导入映像

  1. 打开迁移中心 Orchestrator 控制台

  2. 在导航窗格中,选择 Create

  3. 选择工作流模板页面上,选择将虚拟图像导入到AWS模板。

  4. 配置并提交工作流程以开始导入 VM。有关更多信息,请参阅 AWS Migration Hub Orchestrator 用户指南

监控导入映像任务

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

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

包括的状态值如下:

  • active正在执行情化任务正在执行port 任务正在执行port。

  • 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。