# 批量迁移节点 - BatchMigratePoolNodes
#### 功能介绍
批量迁移节点接口用于在资源池之间批量迁移节点，将节点从一个资源池迁移到另一个资源池。该接口适用于以下场景：当资源池的节点分布不均衡、需要进行集群维护或业务扩展时，用户可通过此接口将指定节点从一个资源池迁移到另一个资源池。使用该接口的前提条件是资源池中至少包含两个节点，且目标资源池具备足够的资源容量（如IP地址等）以接收迁移节点。若资源池只有一个节点、目标集群资源不足、节点状态不支持迁移或用户无权限操作，接口将返回相应的错误信息。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ModelArts/doc?api=BatchMigratePoolNodes)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-modelarts/modelarts_03_0138.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
POST /v2/{project_id}/pools/{pool_name}/nodes/batch-migrate
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释** ：用户项目ID。获取方法请参见[获取项目ID和名称](https://support.huaweicloud.com/api-modelarts/modelarts_03_0147.html)。 **约束限制**：1 - 64字符，字母、数字和中划线。 **取值范围**：不涉及。 **默认取值**：不涉及。 |
| pool_name  | 是    | String | **参数解释**：资源池名称。该字段取自资源池metadata.name字段的值。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。                                                                                 |
   
#### 请求参数
表2请求Body参数 
| 参数               | 是否必选 | 参数类型                                                                                                                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| migrateNodeNames | 是    | Array of strings                                                                                                      | **参数解释**：待迁移的节点名称列表。 **约束限制**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| fromClusterName  | 是    | String                                                                                                                | **参数解释**：迁移起始集群名称。 专属算力资源时该字段与源资源池名称相同，取自源资源池metadata.name字段的值； 轻量算力集群时该字段取自迁移节点metadata.labels\[os.modelarts.node/cluster\]字段的值。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。      |
| toClusterName    | 是    | String                                                                                                                | **参数解释**：迁移目标集群名称。 专属算力资源时该字段与源资源池名称相同，取自目标资源池metadata.name字段的值； 轻量算力集群时该字段取自目标资源池内节点metadata.labels\[os.modelarts.node/cluster\]字段的值。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。 |
| toPoolName       | 否    | String                                                                                                                | **参数解释**：迁移目标资源池名称。该字段取自目标资源池metadata.name字段的值。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。                                                                                                                                                                                                                                                  |
| resourceSpec     | 否    | [MigrateResourceSpec] object | **参数解释**：迁移节点在目标资源池中配置信息。节点跨资源池迁移时参数必填。 **约束限制**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
 表3MigrateResourceSpec 
| 参数                 | 是否必选 | 参数类型                                                                                                                        | 描述                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| flavor             | 是    | String                                                                                                                      | **参数解释**：资源规格名称，跨资源池迁移时该参数必传。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。 |
| creatingStep       | 否    | [CreatingStep] object                     | **参数解释**：资源的单实例节点规模（台）。整柜或超节点迁移时，需要传递单实例节点规模信息。 **约束限制**：不涉及。                                                                                                                                                                     |
| nodePool           | 否    | String                                                                                                                      | **参数解释**：资源迁移的目标节点池名称。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。        |
| rootVolume         | 否    | [RootVolume] object                         | **参数解释**：目标节点池的系统盘信息，新建节点池时有效。 **约束限制**：不涉及。                                                                                                                                                                                      |
| dataVolumes        | 否    | Array of [DataVolumeItem] objects       | **参数解释**：目标节点池的数据盘盘信息，新建节点池时有效。 **约束限制**：不涉及。                                                                                                                                                                                     |
| volumeGroupConfigs | 否    | Array of [VolumeGroupConfig] objects | **参数解释**：磁盘高级配置。存在自定义数据盘时必须指定对应的高级配置，新建节点池时有效。 **约束限制**：不涉及。                                                                                                                                                                      |
| labels             | 否    | Map\<String,String\>                                                                                                        | **参数解释**：k8s标签，格式为key/value键值对，非特权池不能指定。新建节点池时有效。 **约束限制**：不涉及。                                                                                                                                                                   |
| taints             | 否    | Array of [Taints] objects                       | **参数解释**：支持给创建出来的节点加taints来设置反亲和性，非特权池不能指定。新建节点池时有效。 **约束限制**：不涉及。                                                                                                                                                                |
| tags               | 否    | Array of [UserTags] objects                   | **参数解释**：资源标签。新建节点池时有效。 **约束限制**：不涉及。                                                                                                                                                                                             |
| network            | 否    | [NodeNetwork] object                       | **参数解释**：网络配置，非特权池不能指定。新建节点池时有效。 **约束限制**：不涉及。                                                                                                                                                                                    |
| extendParams       | 否    | [ResourceExtendParams] object     | **参数解释**：自定义配置，比如设置节点dockerSize。新建节点池时有效。 **约束限制**：不涉及。                                                                                                                                                                           |
   
 表4CreatingStep 
| 参数   | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| step | 否    | Integer | **参数解释**：超节点的步长。仅支持资源规格详情中包含的步长。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| type | 否    | String  | **参数解释**：批量创建类型。 **取值范围**：可选值如下： - hyperinstance：超节点。    |
   
 表5RootVolume 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| volumeType | 是    | String | **参数解释**：磁盘类型，具体内容可参考磁盘类型及性能介绍。 **取值范围**：可选值如下： - SSD：超高IO硬盘   - GPSSD：通用型SSD   - SAS：高IO硬盘    |
| size       | 是    | String | **参数解释**：磁盘大小，单位为GiB。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表6DataVolumeItem 
| 参数           | 是否必选 | 参数类型                                                                                                                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| volumeType   | 是    | String                                                                                                              | **参数解释**：磁盘类型，具体内容可参考磁盘类型及性能介绍。 **取值范围**：可选值如下： - SSD：超高IO硬盘   - GPSSD：通用型SSD   - SAS：高IO硬盘    |
| size         | 是    | String                                                                                                              | **参数解释**：磁盘大小，单位为GiB。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| count        | 否    | Integer                                                                                                             | **参数解释**：磁盘个数。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| extendParams | 是    | [VolumeExtendParams] object | **参数解释**：磁盘自定义配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
 表7VolumeExtendParams 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| volumeGroup | 是    | String | **参数解释**：磁盘分组名称，用于各个存储空间的划分。 **取值范围**：可选项如下： - vgpaas：容器盘。   - default：普通数据盘，以默认方式挂载。   - vguser：普通数据盘，指定挂载路径，不同路径的分组名称不同，如vguser1，vguser2。   - vg-everest-localvolume-persistent：普通数据盘，作为持久存储卷   - vg-everest-localvolume-ephemeral：普通数据盘，作为临时存储卷    |
   
 表8VolumeGroupConfig 
| 参数             | 是否必选 | 参数类型                                                                                              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| volumeGroup    | 是    | String                                                                                            | **参数解释**：磁盘分组名称。作为dataVolumes中volumeGroup的索引。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| dockerThinPool | 否    | Integer                                                                                           | **参数解释**：资源池节点容器盘占数据盘的百分比。仅磁盘分组名称为vgpaas时，即容器盘，才可指定此参数。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| lvmConfig      | 否    | [LvmConfig] object | **参数解释**：LVM配置管理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| types          | 否    | Array of strings                                                                                  | **参数解释**：存储类型。可选项如下： - volume：云硬盘。当指定dataVolumes时，该值为缺省值。   - local：本地盘。使用本地盘必须指定该字段。    |
   
 表9LvmConfig 
| 参数     | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| lvType | 是    | String | **参数解释**：LVM写入模式。 **取值范围**：可选项如下： - linear：线性模式。   - striped：条带模式，使用多块磁盘组成条带模式，能够提升磁盘性能。    |
| path   | 否    | String | **参数解释**：磁盘挂载路径。仅在用户配置中生效。支持包含：数字、大小写字母、点、中划线、下划线的绝对路径。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表10Taints 
| 参数     | 是否必选 | 参数类型   | 描述                                                                                                        |
|:---|:---|:---|:---|
| key    | 是    | String | **参数解释**：键。 **取值范围**：不涉及。    |
| value  | 否    | String | **参数解释**：值。 **取值范围**：不涉及。    |
| effect | 是    | String | **参数解释**：作用效果。 **取值范围**：不涉及。 |
   
 表11UserTags 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                     |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释**：键。不得以"CCE-"或"__type_baremetal"开头"。 **取值范围**：不涉及。 |
| value | 是    | String | **参数解释**：值。 **取值范围**：不涉及。                                 |
   
 表12NodeNetwork 
| 参数             | 是否必选 | 参数类型             | 描述                                                                                                          |
|:---|:---|:---|:---|
| vpc            | 否    | String           | **参数解释**：vpc id。 **取值范围**：不涉及。 |
| subnet         | 否    | String           | **参数解释**：子网id。 **取值范围**：不涉及。   |
| securityGroups | 否    | Array of strings | **参数解释**：安全组id集合。                                                                                           |
   
 表13ResourceExtendParams 
| 参数                         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| dockerBaseSize             | 否    | String | **参数解释**：节点的容器镜像空间大小。 **取值范围**：可选值如下： - 指定大小：dockerBaseSize的大小范围默认为50-500，但实际上限受到节点的容器数据盘大小约束。   - 不限制：dockerBaseSize="0"，表示不限制容器镜像空间大小。          |
| postInstall                | 否    | String | **参数解释**：安装后执行脚本，输入的值需要经过Base64编码。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| runtime                    | 否    | String | **参数解释**：容器运行时。 **取值范围**：可选值如下： - docker：容器运行时，是目前最常用的容器化引擎，基于容器镜像创建和管理容器实例。   - containerd：工业级的容器运行时，专注于容器的生命周期管理，是 Docker 底层核心组件之一，也可独立部署使用。    |
| labelPolicyOnExistingNodes | 否    | String | **参数解释**：存量节点k8s标签更新策略，值为空时默认更新存量节点。 **取值范围**：可选值如下： - refresh：更新。   - ignore：不更新。                                                                |
| taintPolicyOnExistingNodes | 否    | String | **参数解释**：存量节点k8s污点更新策略，值为空时默认更新存量节点。 **取值范围**：可选值如下： - refresh：更新。   - ignore：不更新。                                                                |
| tagPolicyOnExistingNodes   | 否    | String | **参数解释**：存量节点资源标签更新策略，值为空时默认更新存量节点。 **取值范围**：可选值如下： - refresh：更新。   - ignore：不更新。                                                                 |
| XParameterPlaneSubnet      | 否    | String | **参数解释**：跨物理集群之间进行参数面数据传输使用的子网id。不可与节点子网和容器子网重复。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| nodePoolName               | 否    | String | **参数解释**：用户指定的节点池名称。最小长度为2，最大长度为50的小写字母、中划线-、数字组成，由小写字母开头，不能以-，-default结尾。 **取值范围**：不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
#### 响应参数
**状态码：200**
表14响应Body参数 
| 参数     | 参数类型   | 描述                                                                                                           |
|:---|:---|:---|
| job_id | String | **参数解释**：异步任务的ID。 **取值范围**：不涉及。 |
   
**状态码：404**
表15响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                |
|:---|:---|:---|
| error_code | String | **参数解释**：ModelArts错误码。 **取值范围**：不涉及。 |
| error_msg  | String | **参数解释**：具体错误信息。 **取值范围**：不涉及。       |
   
#### 请求示例
```
POST /v2/{project_id}/pools/{pool_name}/nodes/batch-migrate
{
  "migrateNodeNames" : [ "os-node-created-zrxm7" ],
  "fromClusterName" : "lite-cluster-1dc682c4-e04d-11ee-bda6-0255ac1001ba",
  "toClusterName" : "lite-cluster-d3a65087-38e4-11ef-a12c-0255ac100b03",
  "toPoolName" : "pool-9d3f-6f5da086876d4cd084d36f8bd3346036",
  "resourceSpec" : {
    "flavor" : "modelarts.vm.2u4g"
  }
}
```
#### 响应示例
**状态码：200**
OK。
```
{
  "job_id" : "66798666-6778-443f-9f8a-56c9ea6d719c"
}
```
**状态码：404**
Not Found。
```
{
  "error_code" : "ModelArts.50015001",
  "error_msg" : "pool not found"
}
```
#### 状态码
| 状态码 | 描述         |
|:---|:---|
| 200 | OK。        |
| 404 | Not Found。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-modelarts/modelarts_03_0095.html)。
