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