本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 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-environmentvmware
--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 对象。如果导出任务完成或正在传输最后一个磁盘映像,则该命令将失败且会返回错误。