更新时间:2025-02-13 GMT+08:00

创建迁移任务

功能介绍

根据源端服务器创建一个迁移任务。

调用方法

请参见如何调用API

URI

POST /v3/tasks

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

最小长度:1

最大长度:16384

表2 请求Body参数

参数

是否必选

参数类型

描述

name

String

任务名称

最小长度:0

最大长度:255

type

String

任务类型

MIGRATE_FILE:文件级迁移

MIGRATE_BLOCK:块级迁移

枚举值:

  • 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

是否进行一致性校验

表3 SourceServerByTask

参数

是否必选

参数类型

描述

id

String

源端服务器ID

最小长度:0

最大长度:255

表4 TargetServerByTask

参数

是否必选

参数类型

描述

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

表5 BtrfsFileSystem

参数

是否必选

参数类型

描述

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

表6 BtrfsSubvolumn

参数

是否必选

参数类型

描述

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

表7 TargetDisks

参数

是否必选

参数类型

描述

device_use

String

磁盘类型,普通磁盘,OS所在磁盘,BOOT所在磁盘

BOOT:BOOT设备

OS:系统设备

NORMAL:平常

缺省值:NORMAL

枚举值:

  • NORMAL

  • OS

  • BOOT

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

表8 PhysicalVolumes

参数

是否必选

参数类型

描述

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

表9 VolumeGroups

参数

是否必选

参数类型

描述

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

表10 LogicalVolumes

参数

是否必选

参数类型

描述

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

表11 响应Body参数

参数

参数类型

描述

id

String

创建成功返回的任务ID

最小长度:0

最大长度:255

状态码:403

表12 响应Body参数

参数

参数类型

描述

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

表13 details

参数

参数类型

描述

error_code

String

SMS错误代码

最小长度:0

最大长度:65535

error_msg

String

SMS错误信息

最小长度:0

最大长度:65535

请求示例

创建一个迁移任务,迁移任务名称是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

鉴权失败

错误码

请参见错误码