产品更新
我们建议将Amazon应用程序迁移服务
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用复制 VMAmazon CLI的 命令Amazon SMS
您可以使用Amazon Command Line Interface(Amazon CLI)来清点您的本地服务器并将其迁移到 Amazon EC2。
先决条件
-
如中所述安装服务器迁移连接器安装服务器迁移连接器.
-
您必须使用以下创建服务关联角色命令创建所需的服务相关角色。
aws iam create-service-linked-role --aws-service-name sms.amazonaws.com
有关更多信息,请参阅 的服务相关角色Amazon SMS。
注意事项
-
将本地服务器复制到 Amazon 最多可以持续 90 天(每个服务器)。使用时间从开始复制服务器时开始,到终止复制作业时结束。90 天之后,系统会自动终止您的复制作业。您可以从 Amazon Web Services Support 请求一个扩展名。
-
如果您启用了Amazon SMS和Amazon Migration Hub,您的 SMS 服务器目录也可以在 Migration Hub 上看到。有关更多信息,请参阅 从 Migration Hub 导入应用程序。
-
在复制过程中,Amazon SMS为您在区域中创建一个启用了服务器端加密的存储 Amazon S3 和一个存储桶策略,该策略用于在 7 天后删除存储桶中的所有项目。Amazon SMS将服务器卷从您的环境复制到此存储桶,然后从这些卷创建 EBS 快照。如果您不删除此存储桶,则 Amazon SMS 会将它用于此区域中的所有复制作业。
-
在 AMI 创建过程中,Amazon SMS设置
DeleteOnTermination
属性的根卷为 false,覆盖默认值。您可以在终止实例后手动删除根卷,也可以将属性设置为 true,以便 Amazon EC2 在实例终止时删除根卷。有关更多信息,请参阅 。实例终止时保留 Amazon EBS 卷中的Amazon EC2 用户指南.
使用 CLI 复制服务器
-
使用 get-connectors 命令获取注册给您的连接器的列表。
aws sms get-connectors
-
安装并注册连接器后,使用导入服务器目录命令来创建服务器的清单。这个过程最多需要一分钟。
aws sms import-server-catalog
-
使用获取服务器命令显示可用于导入到 Amazon EC2 的服务器的列表。
aws sms get-servers
该输出值应该类似于以下内容:
{ "serverList": [ { "serverId": "s-12345678", "serverType": "VIRTUAL_MACHINE", "vmServer": { "vmManagerName": "vcenter.yourcompany.com", "vmServerAddress": { "vmManagerId": "your-vcenter-instance-uuid", "vmId": "vm-123" }, "vmName": "your-linux-vm", "vmPath": "/Datacenters/DC1/vm/VM Folder Path/your-linux-vm", "vmManagerType": "vSphere" } }, { "replicationJobTerminated": false, "serverId": "s-23456789", "serverType": "VIRTUAL_MACHINE", "replicationJobId": "sms-job-12345678", "vmServer": { "vmManagerName": "vcenter.yourcompany.com", "vmServerAddress": { "vmManagerId": "your-vcenter-instance-uuid", "vmId": "vm-234" }, "vmName": "Your Windows VM", "vmPath": "/Datacenters/DC1/vm/VM Folder Path/Your Windows VM", "vmManagerType": "vSphere" } } ] }
如果尚未导入服务器目录,您会看到类似以下内容的输出:
{ "lastModifiedOn": 1477006131.856, "serverCatalogStatus": "NOT IMPORTED", "serverList": [] }
DELETED 或 EXPIRED 目录状态也表示该目录不包含任何服务器。
-
选择要复制的服务器,记下服务器 ID,并在 create-replication-job 命令中指定 ID。
aws sms create-replication-job --server-id
s-12345678
\ --frequency12
\ --seed-replication-time2016-10-24T15:30:00-07:00
\ --role-name AWSServiceRoleForSMS复制作业设置完成后,它会在使用
--seed-replication-time
参数指定的时间 (以 Unix 纪元的秒为单位,或按照 ISO 8601 规范指定) 自动开始复制。有关更多信息,请参阅为 Amazon Command Line Interface 指定参数值。此后,复制以--frequency
参数指定的间隔 (以小时为单位) 重复。 -
您可以使用 get-replication-jobs 命令查看所有正在运行的所有复制作业的详细信息。如果您未指定任何参数,该命令将列出所有复制作业。
该命令会返回类似以下内容的输出:
{ "replicationJobList": [ { "vmServer": { "vmManagerName": "vcenter.yourcompany.com", "vmServerAddress": { "vmManagerId": "your-vcenter-instance-uuid", "vmId": "vm-1234" }, "vmName": "VM name in vCenter", "vmPath": "/Datacenters/DC1/vm/VM Folder Path/VM name in vCenter" }, "replicationRunList": [ { "scheduledStartTime": 1487007010.0, "state": "Deleted", "type": "Automatic", "statusMessage": "Uploading", "replicationRunId": "sms-run-12345678" } ], "replicationJobId": "sms-job-98765432", "state": "Deleted", "frequency": 12, "seedReplicationTime": 1477007049.0, "roleName": "sms" }, { "vmServer": { "vmManagerName": "vcenter.yourcompany.com", "vmServerAddress": { "vmManagerId": "your-vcenter-instance-uuid", "vmId": "vm-2345" }, "vmName": "win2k12", "vmPath": "/Datacenters/DC1/vm/VM Folder Path/win2k12" }, "replicationRunList": [ { "scheduledStartTime": 1477008789.0, "state": "Active", "type": "Automatic", "statusMessage": "Converting", "replicationRunId": "sms-run-12345679" } ], "replicationJobId": "sms-job-23456789", "state": "Active", "frequency": 24, "seedReplicationTime": 1477008789.0, "roleName": "sms" } ] }
-
您还可以使用 get-replication-runs 命令检索有关特定复制作业的所有复制运行的信息。要执行此操作,请指定复制作业 ID,如下所示:
aws sms get-replication-runs --replication-job-id
sms-job-12345678
该命令返回指定复制作业的所有复制运行的列表以及该复制作业的详细信息,类似以下内容:
{ "replicationRunList": [ { "scheduledStartTime": 1477310423.0, "state": "Active", "type": "Automatic", "statusMessage": "Converting", "replicationRunId": "sms-run-23456789" }, { "amiId": "ami-abcdefab", "state": "Completed", "completedTime": 1477227683.652, "scheduledStartTime": 1477224023.0, "replicationRunId": "sms-run-34567890", "type": "Automatic", "statusMessage": "Completed" }, { "amiId": "ami-efababcd", "state": "Completed", "completedTime": 1477144823.486, "scheduledStartTime": 1477137623.0, "replicationRunId": "sms-run-45678903", "type": "Automatic", "statusMessage": "Completed" } ] }
-
要在创建复制作业后更改其任意参数,请使用 update-replication-job 命令,并提供复制作业 ID 和要更改的任何参数。
aws sms update-replication-job --replication-job-id
sms-job-12345678
--frequency24
--next-replication-run-start-time2016-10-24T15:30:00-07:00
-
除了计划的复制运行外,您还可以每 24 小时启动至多两次按需复制运行。要执行该操作,请使用 start-on-demand-replication-run 命令(它将立即启动复制运行)。如果另一个复制运行当前处于活动状态,则无法启动按需复制运行。
aws sms start-on-demand-replication-run --replication-job-id
sms-job-12345678
如果预计计划的复制运行会在正在进行的按需复制运行期间启动,则计划的运行会被跳过并重新安排到下一个间隔。
-
复制完服务器后,可以使用 delete-replication-job 命令停止复制作业。这会停止复制作业并清除该服务创建的任何项目 (例如,作业的 S3 存储桶)。这不会删除由已停止的作业运行创建的任何 AMI。
aws sms delete-replication-job --replication-job-id
sms-job-12345678
-
当您不再需要维护服务器目录时,可以使用 delete-server-catalog 命令清除该服务维护的服务器目录。
aws sms delete-server-catalog
-
如果不再需要使用连接器,可以使用 disassociate-connector 命令从 Amazon SMS 取消注册连接器。请只在使用该连接器的所有复制都完成后才调用该命令。
aws sms disassociate-connector --connector-id
c-12345678901234567