创建迁移任务
功能介绍
根据源端服务器创建一个迁移任务。
调用方法
请参见如何调用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 |
鉴权失败 |
错误码
请参见错误码。