使用复制 VMAmazon CLI的 命令Amazon SMS - Amazon Server Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用复制 VMAmazon CLI的 命令Amazon SMS

您可以将Amazon Command Line Interface(Amazon CLI)来清点您的本地服务器并将其迁移到 Amazon EC2。对于使用Amazon SMS控制台,请参阅使用复制 VMAmazon SMS控制台

Prerequisites

Considerations

  • 将本地服务器复制到 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 复制服务器

  1. 使用 get-connectors 命令获取注册给您的连接器的列表。

    aws sms get-connectors
  2. 通过控制台安装并注册连接器后,使用 import-server-catalog 命令创建服务器清单。这个过程最多需要一分钟。

    aws sms import-server-catalog
  3. 使用获取服务器命令显示可用于导入到 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 目录状态也表示该目录不包含任何服务器。

  4. 选择要复制的服务器,记下服务器 ID,并在 create-replication-job 命令中指定 ID。

    aws sms create-replication-job --server-id s-12345678 \ --frequency 12 \ --seed-replication-time 2016-10-24T15:30:00-07:00 \ --role-name AWSServiceRoleForSMS

    复制作业设置完成后,它会在使用 --seed-replication-time 参数指定的时间 (以 Unix 纪元的秒为单位,或按照 ISO 8601 规范指定) 自动开始复制。有关更多信息,请参阅为 Amazon Command Line Interface 指定参数值。此后,复制以 --frequency 参数指定的间隔 (以小时为单位) 重复。

  5. 您可以使用 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" } ] }
  6. 您还可以使用 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" } ] }
  7. 要在创建复制作业后更改其任意参数,请使用 update-replication-job 命令,并提供复制作业 ID 和要更改的任何参数。

    aws sms update-replication-job --replication-job-id sms-job-12345678 --frequency 24 --next-replication-run-start-time 2016-10-24T15:30:00-07:00
  8. 除了计划的复制运行外,您还可以每 24 小时启动至多两次按需复制运行。要执行该操作,请使用 start-on-demand-replication-run 命令(它将立即启动复制运行)。如果另一个复制运行当前处于活动状态,则无法启动按需复制运行。

    aws sms start-on-demand-replication-run --replication-job-id sms-job-12345678

    如果预计计划的复制运行会在正在进行的按需复制运行期间启动,则计划的运行会被跳过并重新安排到下一个间隔。

  9. 复制完服务器后,可以使用 delete-replication-job 命令停止复制作业。这会停止复制作业并清除该服务创建的任何项目 (例如,作业的 S3 存储桶)。这不会删除由已停止的作业运行创建的任何 AMI。

    aws sms delete-replication-job --replication-job-id sms-job-12345678
  10. 当您不再需要维护服务器目录时,可以使用 delete-server-catalog 命令清除该服务维护的服务器目录。

    aws sms delete-server-catalog
  11. 如果不再需要使用连接器,可以使用 disassociate-connector 命令从 Amazon SMS 取消注册连接器。请只在使用该连接器的所有复制都完成后才调用该命令。

    aws sms disassociate-connector --connector-id c-12345678901234567