CreateReplicationJob - 创建一个迁移任务

调用CreateReplicationJob为迁移源创建一个迁移任务。

接口说明

接口说明

  • 您只能为在线(Available)状态的迁移源创建迁移任务。

  • 每个迁移源仅能关联一个未完成状态的迁移任务。未完成状态包括 Ready(未开始)、Running(运行中)、Stopped(已暂停)、Waiting(等待中)、InError(出错)和 Expired(已过期)。

  • 每个阿里云账号可创建 1000 个迁移任务。

  • 迁移目标类型为镜像时,需指定 ImageName、SystemDiskSize、DataDisk 参数。

  • 使用 VPC 内网迁移时,VSwitchId 参数为必填,VpcId 参数为可选。

  • 支持迁移源的迁移目标为 Docker 容器镜像,实现低成本容器化应用迁移。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

smc:CreateReplicationJob

create

*ReplicationJob

acs:smc:{#regionId}:{#accountId}:replicationjob/*

*SourceServer

acs:smc:{#regionId}:{#accountId}:sourceserver/{#SourceServerId}

请求参数

名称

类型

必填

描述

示例值

RegionId

string

迁移源要迁入的目标阿里云地域 ID。

例如,您需要迁移源服务器至杭州,则相应的阿里云地域 ID 为cn-hangzhou。您可以调用 DescribeRegions 查看最新的阿里云地域列表。

cn-hangzhou

ClientToken

string

保证请求幂等性。您可以从客户端生成一个不超过 64 个 ASCII 字符的参数值,并将值赋予 ClientToken,保证重试请求的幂等性。更多详情,请参见如何保证幂等性

123e4567-e89b-12d3-a456-426655440000

Name

string

迁移任务名。迁移任务的名称需满足以下要求:

  • 任务名称必须唯一。

  • 长度为 2~128 个英文或中文字符,必须以大小字母或中文开头,不能以http://https://开头,可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。

testMigrationTaskName

Description

string

迁移任务描述。

长度应为 2~128 个英文或中文字符,必须以大小字母或中文开头,不能以http://https://开头,可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。

This_is_a_migration_task

SourceId

string

迁移源 ID。

s-bp1e2fsl57knvuug****

TargetType

string

迁移任务交付的目标类型。取值范围:

  • Image:迁移成功后,SMC 为您的迁移源生成阿里云镜像。

  • ContainerImage:迁移成功后,SMC 为您的迁移源生成 Docker 容器镜像。

  • TargetInstance:迁移成功后,SMC 将您的迁移源直接迁移至目标实例。当您设置该参数值时,您需要同时指定InstanceId参数。

Image

ScheduledStartTime

string

迁移任务的执行时间。该参数值的设置需满足以下要求:

  • 遵循 ISO8601 标准,并需要使用 UTC+0 时间,格式为 YYYY-MM-DDThh:mm:ssZ。例如,2018-01-01T12:00:00Z,表示北京时间 2018 年 01 月 01 日 20 点 00 分 00 秒。

  • 该参数值必须晚于当前时间,并且需要设置在 30 天以内。

说明

如果该参数值为空,则 SMC 不会启动迁移任务,需要您调用 StartReplicationJob 启动任务。

2019-06-04T13:35:00Z

ValidTime

string

迁移任务的过期时间。取值范围:迁移任务创建时间+7 天~迁移任务创建时间+90 天。

  • 过期时间须遵循 ISO8601 标准,并需要使用 UTC+0 时间,格式为 YYYY-MM-DDThh:mm:ssZ。例如,2018-01-01T12:00:00Z,表示北京时间 2018 年 01 月 01 日 20 点 00 分 00 秒。

  • 过期时间设置为空,表示任务无限期有效。

  • 任务到期后会被标记为过期状态,保存 7 天,7 天后系统会自动清理。

默认值:迁移任务创建时间+30 天(表示迁移任务的默认有效期为创建后 30 天)。

2019-06-04T13:35:00Z

ImageName

string

迁移任务交付的目标阿里云镜像名称。目标镜像的名称需满足以下要求:

  • 同一阿里云地域下,镜像名称必须唯一。

  • 长度为 2~128 个英文或中文字符,必须以大小字母或中文开头,不能以http://https://开头,可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。

说明

迁移任务运行过程中,若当前地域已经存在相同名称的镜像,则系统默认给镜像名称添加迁移任务 ID(JobId)作为后缀,如:ImageName_j-2zexxxxxxxxxxxxx。

testAliCloudImageName

InstanceId

string

目标实例 ID。

i-bp1f1dvfto1sigz5****

SystemDiskSize

integer

目标阿里云服务器 ECS 的系统盘大小,单位为 GiB。取值范围:20~2048。

说明

该参数取值需要大于迁移源系统盘实际占用大小,例如,源系统盘大小为 500 GiB,实际占用 100 GiB,则该参数取值需大于 100 GiB。

80

VpcId

string

已配置高速通道服务或者 VPN 网关的 VPC ID。

vpc-bp1vwnn14rqpyiczj****

VSwitchId

string

指定 VPC 下的虚拟交换机 ID。

使用 VPC 内网迁移时,该参数为必填参数。

vsw-bp1ddbrxdlrcbim46****

ReplicationParameters

string

复制驱动器的参数信息。参数信息为 JSON 格式键值对,键值固定。最大长度:2048 个字符。

复制驱动器是指,复制源服务器数据到中转实例时所使用的工具。不同复制驱动器支持参数可能不同。复制驱动器 SMT 目前支持以下参数:

  • bandwidth_limit:传输速度带宽限制。

  • compress_level:传输压缩率。

  • checksum:是否开启 checksum 校验。

复制驱动器的取值,请参见 DescribeSourceServers 的返回参数SourceServers.ReplicationDriver

{"bandwidth_limit":0,"compress_level":1,"checksum":true}

NetMode

integer

数据传输网络模式。取值范围:

  • 0:表示公网传输模式。此时要求您的源服务器能够访问公网,迁云数据从公网传输。

  • 2:表示内网传输模式,选用此模式必须设置 VSwitchId 参数(VpcId 参数可以不设置,服务内部可以通过接口反查出来)。

默认值:0。

0

RunOnce

boolean

创建一次性迁移任务还是增量迁移任务。取值范围:

  • true(默认值):一次性迁移任务。任务创建后,仅执行一次。

  • false:增量迁移任务。任务创建后,按照您设置的Frequency参数值周期性自动执行。使用增量迁移任务,可在业务不暂停的情况下,同步源服务器的增量数据至阿里云,并为源服务器生成任务运行时刻的全量数据镜像。

说明

该参数值只能在创建迁移任务时指定。参数值一经指定,则无法更改。

true

Frequency

integer

增量迁移任务运行的时间间隔,单位:小时。取值范围:1~168。

RunOnce参数值为 false 时,该参数为必填参数。

默认值:无。

12

MaxNumberOfImageToKeep

integer

增量迁移任务默认保留的最大镜像数。取值范围:1~10。

RunOnce参数值为 false 时,该参数为必填参数。

默认值:无。

10

InstanceType

string

中转实例的实例规格。

调用 DescribeInstanceTypes 可查询云服务器 ECS 提供的实例规格。

  • 指定该参数后,系统会选择该实例规格创建中转实例。若该实例规格库存不足,则迁移任务创建失败。

  • 不指定该参数时,系统默认会按照一定顺序选择实例规格来创建中转实例,详情请参见SMC FAQ 中转实例规格有哪些

ecs.c6.large

LaunchTemplateId

string

实例启动模板 ID。

lt-bp16jovvln1cgaaq****

LaunchTemplateVersion

string

实例启动模板的版本。

1

InstanceRamRole

string

实例 RAM 角色名称。

SMCAdmin

ContainerNamespace

string

Docker 的命名空间。关于 Docker 容器镜像详情请参见容器镜像服务

testNamespace

ContainerRepository

string

Docker 的镜像仓库。关于 Docker 容器镜像详情请参见容器镜像服务

testRepository

ContainerTag

string

Docker 的镜像标签。关于 Docker 容器镜像详情请参见容器镜像服务

CentOS:v1

LicenseType

string

许可证类型。取值范围:

  • 空值:无许可证。

  • BYOL:自带许可。

更多信息,请参见SMC FAQ

BYOL

DataDisk

array<object>

数据盘信息列表。

array<object>

数据盘信息列表。

Index

integer

目标阿里云服务器 ECS 的数据盘顺序。初始值为 1。取值范围:1~16

说明

您只能为迁移源中存在的数据盘创建目标数据盘。

1

Part

array

分区列表。

object

分区列表。

SizeBytes

integer

目标数据盘 N 分区 N 的大小。单位:Byte。默认为源数据盘分区大小。

说明
  • 分区空间大小不能超过数据盘空间大小,并且在同一数据盘下所有分区空间大小之和不能超过数据盘空间大小。

  • DataDisk.N.Part.N.Device不为空时,该参数也不能为空。

254803968

Block

boolean

数据盘 N 分区 N 是否开启块复制。取值范围:

  • true。

  • false。

默认值:true。

true

Device

string

目标数据盘 N 分区 N 对应的分区设备标识。N 的实际取值请参考迁移源的分区设备标识。

说明

DataDisk.N.Part.N.SizeBytes不为空时,该参数也不能为空。

0_1

Size

integer

目标阿里云服务器 ECS 的数据盘大小,单位为 GiB。取值范围:20~32768。

说明

该参数取值需要大于迁移源数据盘实际占用大小。例如,源数据盘大小为 500 GiB,实际占用 100 GiB,则该参数取值需大于 100 GiB。

100

Tag

array<object>

标签列表。

object

标签列表。

Key

string

迁移任务的标签键。N 的取值范围:1~20

一旦传入该值,则不允许为空字符串。最多支持 128 个字符,不能以aliyunacs:http://或者https://开头。

TestKey

Value

string

迁移任务的标签值。N 的取值范围:1~20。

一旦传入该值,可以为空字符串。最多支持 128 个字符,不能以aliyunacs:http://或者https://开头。

TestValue

SystemDiskPart

array<object>

系统盘分区信息。

object

系统盘分区列表。

SizeBytes

integer

系统盘分区 N 大小。单位:Byte。默认为源系统盘分区大小。

说明
  • 分区空间大小不能超过系统盘空间大小,并且在系统盘下所有分区空间大小之和不能超过系统盘空间大小。

  • SystemDiskPart.N.Device不为空时,该参数也不能为空。

254803968

Block

boolean

系统盘分区 N 是否开启块复制。取值范围:

  • true。

  • false。

默认值:true。

true

Device

string

目标系统盘分区 N 设备标识。N 的实际取值请参考迁移源的分区设备标识。

说明

SystemDiskPart.N.SizeBytes不为空时,该参数也不能为空。

0_1

JobType

integer

迁移任务的类型。取值范围:

  • 0:服务器迁移。

  • 1:操作系统迁移。

  • 2:跨可用区迁移。

  • 3:VMware 无代理迁移。

0

ResourceGroupId

string

资源组 ID。

rg-acfmw3ty5y7****

Disks

object

磁盘信息。

System

object

系统盘信息。

Size

integer

迁移源系统盘的大小,单位:GiB。取值范围为 20~32768。

说明

参数取值需要大于源服务器数据盘实际占用大小。例如,源数据盘大小为 500 GiB,实际占用 100 GiB,则该参数取值需大于 100 GiB。

100

LVM

boolean

是否使用 LVM。取值:

  • true:使用 LVM。

  • false:不使用 LVM。

不支持开启 LVM:

  • 迁移源为 Windows 系统时,不支持开启 LVM。

  • 系统盘无启动分区,不支持开启 LVM。

开启 LVM 后,以下场景该功能不生效:

  • 迁移源不支持 lvm2、未安装 lvm2 软件包。

  • 迁移源为内核版本在 3.x 及以下的 Debian 系统,且挂载了 XFS 文件系统的磁盘。

true

Part

array

系统盘分区信息。

object

系统盘分区信息。

SizeBytes

integer

系统盘分区大小。单位:Byte。

254803968

Block

boolean

系统盘分区是否开启块复制。

true

Path

string

系统盘分区路径。

/boot

Data

array

数据盘分区信息。

array<object>

数据盘分区信息。

Size

integer

迁移源的数据磁盘大小。单位:GiB。

80

LVM

boolean

数据盘是否使用 LVM。取值:

  • true:使用 LVM。

  • false:不使用 LVM。

DiskId

string

数据盘 ID。

d-2ze8hyowhdgd6ou2m5z6

Part

array

数据盘分区信息。

object

数据盘分区信息。

SizeBytes

integer

数据盘分区大小。单位:Byte。

21474836480

Block

boolean

数据盘分区是否开启块复制。取值:

  • true:数据盘分区开启块复制。

  • false:数据盘分区不开启块复制。

true

Path

string

数据盘分区路径。

/home/date

返回参数

名称

类型

描述

示例值

object

返回参数信息。

RequestId

string

请求 ID。

C8B26B44-0189-443E-9816-D951F59623A9

JobId

string

迁移任务 ID。

j-bp17bclvg344jlyt****

示例

正常返回示例

JSON格式

{
  "RequestId": "C8B26B44-0189-443E-9816-D951F59623A9",
  "JobId": "j-bp17bclvg344jlyt****"
}

错误码

HTTP status code

错误码

错误信息

描述

400 ReplicationJobDataDiskIndex.Invalid The specified replication job contains data disk index not found in source server. 迁移任务包含的数据盘索引在迁移源中不存在。
400 VSwitchIdVpcId.Mismatch The specified VSwitchId and VpcId does not match. 指定的VSwitchIdVpcId不匹配。
400 InvalidSecurityGroupId.IncorrectNetworkType The network type of the specified security group does not support this action. 安全组网络类型不支持该操作,请检查安全组网络类型。
400 InvalidSecurityGroupId.VPCMismatch The specified security group and the specified virtual switch are not in the same VPC. 指定的安全组和交换机不在一个专有网络。
400 QuotaExceeded.ReplicationJob The maximum number of replication jobs is exceeded. Please submit a ticket to raise the quota. 迁移任务的数量已超过最大允许值,请提交工单。
400 ReplicationJobName.Duplicate The specified replication job name already exists. 迁移任务名称已存在,请修改迁移任务名称。
400 SourceServerState.Invalid The specified source server status: %s is invalid. This operation can only be performed in the following status: %s. 迁移源的状态:%s 是无效的。该操作只能在以下状态进行:%s。
400 ImageName.UsedByReplicationJob The specified imageName: "%s" was used by another replication job in the current region. 镜像名称“%s”被当前地域的另一个迁移任务使用。
400 InvalidOsMigrationType.NotMatched The SourceOsType: %s and TargetOsType: %s are not matched. The supported TargetOsType list is: %s. 源操作系统类型:%s 和目标操作系统类型:%s 不匹配。支持的目标操作系统类型列表是:%s。
500 InternalError An error occurred while processing your request. Please try again. If the problem still exists, please submit a ticket. 内部错误,请重试。如果多次尝试失败,请提交工单。
403 EntityNotExist.Role The account is unauthorized. Please assign the role AliyunServiceRoleForSMC to your account. 账号不具备操作权限,请赋予账户AliyunServiceRoleForSMC角色。
403 RealNameAuthenticationError You must perform real-name verification for your account. 账户未实名认证,请先进行实名认证

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情