AWS Server Migration Service
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用 CLI 复制 VM

本主题提供了在 CLI 中使用 AWS SMS 清点和将本地服务器迁移到 Amazon EC2 的工作流程示例。

使用 CLI 复制服务器

  1. 安装 服务器迁移连接器 (见AWS Server Migration Service 入门) 并配置 IAM 服务角色和权限。

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

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

    aws sms import-server-catalog --region us-east-1

    注意

    目前还没有用于安装或注册连接器的 CLI 命令。

  4. 使用 get-servers 命令显示可用于导入到 Amazon EC2 的服务器的列表。

    aws sms get-servers --region us-east-1

    该输出值应该类似于以下内容:

    { "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 目录状态也表示该目录不包含任何服务器。

  5. 选择要复制的服务器,记下服务器 ID,并将其用作 create-replication-job 命令的参数。

    aws sms create-replication-job --region us-east-1 --server-id s-12345678 --frequency 12 --seed-replication-time 2016-10-24T15:30:00-07:00

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

  6. 您可以使用 get-replication-jobs 命令查看所有正在运行的所有复制作业的详细信息。如果使用该命令时不指定任何参数,它将返回所有复制作业的列表。

    例如,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" } ] }

    该命令返回分页响应,每页默认显示 50 个项目。您也可以使用 --max-items 参数指定自定义页面长度,该参数接受一个表示一页返回多少个项目的整数值。

  7. 您还可以使用 get-replication-runs 命令检索特定复制作业的所有复制运行的详细信息。为此,请向该命令传递复制作业 ID,如下所示:

    aws sms get-replication-runs --replication-job-id sms-job-12345678 --region us-east-1

    该命令返回指定复制作业的所有复制运行的列表以及该复制作业的详细信息,类似以下内容:

    { "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" } ] }

    与普通的 get-replication-jobs 调用一样,该调用返回分页结果。

  8. 要在创建复制作业后更改其任意参数,请使用 update-replication-job 命令,并提供复制作业 ID 和要更改的任何参数。

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

    aws sms start-on-demand-replication-run --replication-job-id sms-job-12345678 --region us-east-1

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

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

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

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

    aws sms disassociate-connector --region us-east-1 --connector-id c-12345678901234567