此操作用来迁移iSCSI Target,修改iSCSI Target对应的服务器。
说明
一次只允许迁移iSCSI Target对应的一个服务器。
注意
- 执行迁移iSCSI Target之前,需要保证集群处于working状态,同时目的服务器需要处于正常已连接状态。
- 目前仅支持强制迁移iSCSI Target,强制迁移iSCSI Target可能会造成数据丢失。
- 如果被迁移的iSCSI Target已被卷连接,且该卷已经被客户端挂载,迁移iSCSI Target前,需要客户端与原iSCSI Target IQN断开;迁移后,确保原iSCSI Target IQN不能被发现,客户端重新连接迁移后的iSCSI Target IQN。
请求语法
PUT /rest/v1/block/target/targetName/migrate?force=force HTTP/1.1
Date: date
Content-Type: application/json; charset=utf-8
Content-Length: length
Host: ip:port
Authorization: authorization
{
"server": [
{
"source": source_server_ID,
"dest": dest_server_ID
}
]
}
请求参数
参数 | 类型 | 描述 | 是否必填 |
---|---|---|---|
targetName | String | iSCSI Target名称。 取值:长度范围是1~16,可以由小写字母、数字、句点(.)和短横线(-)组成,且仅支持以字母或数字开头。 | 是 |
force | Boolean | 是否强制迁移iSCSI Target。 注意 目前仅支持强制迁移iSCSI Target,强制迁移iSCSI Target可能会造成数据丢失。 取值:true:强制迁移iSCSI Target。 | 是 |
server | Array of server | 迁移的源和目的服务器集合,详见“表1 请求参数server说明”。 | 是 |
表1 请求参数server说明
参数 | 类型 | 描述 | 是否必填 |
---|---|---|---|
source | String | iSCSI Target的源服务器ID。 | 是 |
dest | String | iSCSI Target的目标服务器ID。 | 是 |
响应结果
名称 | 类型 | 描述 |
---|---|---|
luns | Array of lun | 卷的属性集合,详见“表2响应参数lun说明”。 |
表2 响应参数lun说明
名称 | 类型 | 描述 |
---|---|---|
lunName | String | 关联卷的名称。 |
iSCSITargets | Array of iSCSITarget | iSCSI Target属性集合,详见“表3 响应参数iSCSITarget说明”。 |
表3 响应参数iSCSITarget说明
名称 | 类型 | 描述 |
---|---|---|
iqn | String | iSCSI Target IQN。 |
status | String | 卷对应的iSCSI Target的状态:
|
ips | Array of ip | iSCSI Target的IP属性集合,详见“表4 响应参数ip说明”。 |
targetPortalIP | Object | iSCSI目标门户,详见“表5 响应参数targetPortalIP说明”。 |
表4 响应参数ip说明
名称 | 类型 | 描述 |
---|---|---|
ip | String | iSCSI Target的IP。 |
port | Integer | iSCSI Target的端口号。 |
表5 响应参数targetPortalIP说明
名称 | 类型 | 描述 |
---|---|---|
ips | Array of ip | iSCSI目标门户的IP属性集合,详见“表6 响应参数targetPortalIP.ip说明”。 |
status | String | iSCSI目标门户的状态:
|
表6 响应参数targetPortalIP.ip说明
名称 | 类型 | 描述 |
---|---|---|
ip | String | iSCSI目标门户的IP地址。 |
port | Integer | iSCSI目标门户的端口号。 |
请求示例
迁移target01。
PUT /rest/v1/block/target/target01/migrate?force=true HTTP/1.1
Date: Thu, 4 Jul 2024 03: 23: 39 GMT
Content-Type: application/json; charset=utf-8
Authorization: HBlock userName:signature
Content-Length: 95
Host: 192.168.0.192: 1443
{
"server": [
{
"source": "hblock_1",
"dest": "hblock_2"
}
]
}
响应示例
HTTP/1.1 200 OK
x-hblock-request-id: 4e88a225b1114c4ca3f2611e336ac431
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Content-Length: 282
Date: Thu, 4 Jul 2024 03: 23: 39 GMT
Server: HBlock
{
"data": {
"luns": [
{
"lunName": "lun01a",
"iSCSITargets": [
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:target01.1",
"status": "Active",
"ips": [
{
"ip": "192.168.0.102",
"port": 3260
}
]
},
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:target01.2",
"status": "Unavailable",
"ips": [
{
"ip": "192.168.0.192",
"port": 3260
}
]
}
]
}
]
}
说明
卷关联的iSCSI Target处于Unavailable状态,表示iSCSI Target正在从一个服务器迁移到集群其他服务器上,迁移过程,该iSCSI Target处于Unavailable状态。迁移完成后,iSCSI Target将变为Active或者Standby状态。