创建迁移任务
功能介绍
根据源端服务器创建一个迁移任务。
调用方法
请参见如何调用API。
URI
POST /v3/tasks
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
X-Auth-Token | 是 | String | 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 最小长度:1 最大长度:16384 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 是 | String | 任务名称 最小长度:0 最大长度:255 |
type | 是 | String | 任务类型 MIGRATE_FILE:文件级迁移 MIGRATE_BLOCK:块级迁移 枚举值:
|
start_target_server | 否 | Boolean | 迁移后是否启动目的端虚拟机 缺省值:true |
auto_start | 否 | Boolean | 是否自动启动 |
os_type | 是 | String | 操作系统类型 最小长度:0 最大长度:255 |
source_server | 是 | SourceServerByTask object | 源端服务器信息 |
target_server | 是 | TargetServerByTask object | 目的端虚拟机信息 |
migration_ip | 否 | String | 迁移IP,如果是自动创建虚拟机,不需要此参数 最小长度:0 最大长度:255 |
region_name | 是 | String | region的名称 最小长度:0 最大长度:255 |
region_id | 是 | String | region ID 最小长度:0 最大长度:255 |
project_name | 是 | String | 项目名称 最小长度:0 最大长度:255 |
project_id | 是 | String | 项目ID 最小长度:0 最大长度:255 |
priority | 否 | Integer | 优先级。默认为1 最小值:0 最大值:65535 |
vm_template_id | 否 | String | 自动创建虚拟机使用模板 最小长度:0 最大长度:255 |
use_public_ip | 否 | Boolean | 是否使用公网ip 缺省值:true |
use_ipv6 | 否 | Boolean | 是否使用ipv6 |
syncing | 否 | Boolean | 复制或者同步后是否会继续持续同步,不添加则默认是false 缺省值:false |
exist_server | 否 | Boolean | 是否存在服务,如果存在,则创建任务 |
start_network_check | 否 | Boolean | 是否开启网络检测 |
speed_limit | 否 | Integer | 迁移速率限制值 最小值:0 最大值:10000 |
over_speed_threshold | 否 | Double | 停止迁移的超速阈值。 是一个迁移速率的保护机制,超出该阈值会停止任务。它主要用于控制迁移过程中资源(特别是网络带宽)的消耗,确保系统的整体性能不受单一迁移任务影响 单位是百分比 最小值:0 最大值:100 |
is_need_consistency_check | 否 | Boolean | 是否进行一致性校验 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
btrfs_list | 否 | Array of BtrfsFileSystem objects | btrfs信息,数据从源端获取 数组长度:0 - 65535 |
disks | 是 | Array of TargetDisks objects | 磁盘信息 数组长度:0 - 65535 |
name | 是 | String | 名称 最小长度:0 最大长度:255 |
vm_id | 是 | String | 虚拟机ID 最小长度:0 最大长度:255 |
volume_groups | 否 | Array of VolumeGroups objects | 卷组,数据从源端获取 数组长度:0 - 65535 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 是 | String | 文件系统名称 最小长度:0 最大长度:255 |
label | 是 | String | 文件系统标签,若无标签为空字符串 最小长度:0 最大长度:255 |
uuid | 是 | String | 文件系统的uuid 最小长度:0 最大长度:255 |
device | 是 | String | btrfs包含的设备名称 最小长度:0 最大长度:255 |
size | 是 | Long | 文件系统数据占用大小 最小值:0 最大值:9223372036854775807 |
nodesize | 是 | Long | btrfs节点大小 最小值:0 最大值:9223372036854775807 |
sectorsize | 是 | Integer | 扇区大小 最小值:0 最大值:2147483647 |
data_profile | 是 | String | 数据配置(RAD) 最小长度:0 最大长度:255 |
system_profile | 是 | String | 文件系统配置(RAD) 最小长度:0 最大长度:255 |
metadata_profile | 是 | String | 元数据配置(RAD) 最小长度:0 最大长度:255 |
global_reserve1 | 是 | String | Btrfs文件系统信息 最小长度:0 最大长度:255 |
g_vol_used_size | 是 | Long | Btrfs卷已使用空间大小 最小值:0 最大值:9223372036854775807 |
default_subvolid | 是 | String | 默认子卷ID 最小长度:0 最大长度:255 |
default_subvol_name | 是 | String | 默认子卷名称 最小长度:0 最大长度:255 |
default_subvol_mountpath | 是 | String | 默认子卷挂载路径/BTRFS文件系统的挂载路径 最小长度:0 最大长度:255 |
subvolumn | 是 | Array of BtrfsSubvolumn objects | 子卷信息 数组长度:0 - 65535 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
uuid | 是 | String | 父卷的uuid 最小长度:0 最大长度:255 |
is_snapshot | 是 | String | 子卷是否为快照 最小长度:0 最大长度:255 |
subvol_id | 是 | String | 子卷的ID 最小长度:0 最大长度:255 |
parent_id | 是 | String | 父卷ID 最小长度:0 最大长度:255 |
subvol_name | 是 | String | 子卷的名称 最小长度:0 最大长度:255 |
subvol_mount_path | 是 | String | 子卷的挂载路径 最小长度:0 最大长度:255 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
device_use | 否 | String | 磁盘类型,普通磁盘,OS所在磁盘,BOOT所在磁盘 BOOT:BOOT设备 OS:系统设备 NORMAL:平常 缺省值:NORMAL 枚举值:
|
disk_id | 否 | String | 磁盘ID,自动创建虚拟机不用设置 最小长度:0 最大长度:255 |
name | 是 | String | 名称,根据磁盘顺序设置为disk X 最小长度:0 最大长度:255 |
physical_volumes | 是 | Array of PhysicalVolumes objects | 物理卷信息 数组长度:0 - 65535 |
size | 是 | Long | 大小 最小值:0 最大值:9223372036854775807 |
used_size | 是 | Long | 使用大小 最小值:0 最大值:9223372036854775807 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
device_use | 否 | String | 分区类型,普通分区,启动分区,系统分区 最小长度:0 最大长度:255 |
file_system | 否 | String | 文件系统类型 最小长度:0 最大长度:255 |
index | 否 | Integer | 顺序 最小值:0 最大值:2147483647 |
mount_point | 否 | String | 挂载点 最小长度:0 最大长度:255 |
name | 否 | String | 名称,windows表示盘符,Linux表示设备号 最小长度:0 最大长度:255 |
size | 否 | Long | 大小 最小值:0 最大值:9223372036854775807 |
inode_size | 否 | Long | inode数量 最小值:0 最大值:9223372036854775807 |
used_size | 否 | Long | 使用大小 最小值:0 最大值:9223372036854775807 |
uuid | 否 | String | GUID,可从源端查询 最小长度:0 最大长度:255 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
components | 否 | String | Pv信息 最小长度:0 最大长度:255 |
free_size | 否 | Long | 剩余空间 最小值:0 最大值:9223372036854775807 |
logical_volumes | 否 | Array of LogicalVolumes objects | lv信息 数组长度:0 - 255 |
name | 否 | String | 名称 最小长度:0 最大长度:255 |
size | 否 | Long | 大小 最小值:0 最大值:9223372036854775807 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
block_count | 否 | Integer | 块数量 最小值:0 最大值:2147483647 缺省值:0 |
block_size | 否 | Long | 块大小 最小值:0 最大值:1048576 缺省值:0 |
file_system | 是 | String | 文件系统 最小长度:0 最大长度:255 |
inode_size | 是 | Integer | inode数量 最小值:0 最大值:2147483647 |
inode_nums | 否 | Long | inode节点数量 最小值:0 最大值:9223372036854775807 |
device_use | 否 | String | 分区类型,普通分区,启动分区,系统分区 最小长度:0 最大长度:255 |
mount_point | 是 | String | 挂载点 最小长度:0 最大长度:256 |
name | 是 | String | 名称 最小长度:0 最大长度:1024 |
size | 是 | Long | 大小 最小值:0 最大值:9223372036854775807 |
used_size | 是 | Long | 使用大小 最小值:0 最大值:9223372036854775807 |
free_size | 是 | Long | 剩余空间 最小值:0 最大值:9223372036854775807 |
响应参数
状态码:200
参数 | 参数类型 | 描述 |
|---|---|---|
id | String | 创建成功返回的任务ID 最小长度:0 最大长度:255 |
状态码:403
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误代码 最小长度:0 最大长度:255 |
error_msg | String | 错误信息 最小长度:0 最大长度:255 |
encoded_authorization_message | String | 加密授权信息 最小长度:0 最大长度:65535 |
error_param | Array of strings | 错误参数 最小长度:0 最大长度:65535 数组长度:1 - 20 |
details | Array of details objects | 详细错误信息 数组长度:1 - 20 |
请求示例
创建一个迁移任务,迁移任务名称是MigrationTask,迁移类型是MIGRATE_FILE文件级迁移,源端操作系统类型是LINUX,使用公网迁移是true,迁移region名称是region_name,迁移region的ID是region_id。
POST https://{endpoint}/v3/tasks
{
"name" : "MigrationTask",
"type" : "MIGRATE_FILE",
"os_type" : "LINUX",
"start_target_server" : true,
"use_public_ip" : true,
"migration_ip" : "192.168.0.1",
"region_name" : "region_name",
"region_id" : "region_id",
"project_name" : "project_name",
"project_id" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
"source_server" : {
"id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
},
"target_server" : {
"vm_id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
"name" : "Auto-tar-name",
"disks" : [ {
"name" : "/dev/vda",
"disk_id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
"size" : 42949672960,
"used_size" : 429496,
"device_use" : "BOOT",
"physical_volumes" : [ {
"uuid" : null,
"index" : 0,
"name" : "/dev/vda1",
"device_use" : "OS",
"file_system" : "ext4",
"mount_point" : "/",
"size" : 42947575808,
"used_size" : 5346484224
} ]
} ],
"volume_groups" : [ ]
},
"is_need_consistency_result" : true
} 响应示例
状态码:200
创建迁移任务成功
{
"id" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001"
} 状态码:403
鉴权失败
{
"error_code" : "SMS.9004",
"error_msg" : "The current account does not have the permission to execute policy You do not have permission to perform action XXX on resource XXX.",
"encoded_authorization_message" : "XXXXXX",
"error_param" : [ "You do not have permission to perform action XXX on resource XXX." ],
"details" : [ {
"error_code" : "SMS.9004",
"error_msg" : "You do not have permission to perform action XXX on resource XXX."
} ]
} 状态码
状态码 | 描述 |
|---|---|
200 | 创建迁移任务成功 |
403 | 鉴权失败 |
错误码
请参见错误码。

