此操作用来添加节点到存储池。
说明初始化时添加的数据目录节点都属于基础存储池节点。后续如果需要将基础存储池中的节点添加到其他存储池,需要先从基础储存池移除。
注意
待添加的节点必须属于集群拓扑节点,且每个集群拓扑节点只能添加到一个存储池中。
添加path级别的节点时,该path不能属于其他存储池,不能处在移除状态,path所属的服务器也不能处在移除状态。
当添加的节点类型低于存储池故障域级别,该节点的祖先节点中需要存在和该存储池故障域级别相同的映射节点,否则报错。如存储池故障域为rack,针对节点 root:room1:server1,将server1加入到该存储池时报错。
当添加的节点类型高于存储池故障域级别,该节点的子孙节点中需要存在和该存储池故障域级别相同的映射节点,否则报错。例如存储池故障域为rack,存在拓扑节点root:room1:server1:path1,将room1加入到该存储池时报错。
请求语法
PUT /rest/v1/system/storagepool/poolName/node HTTP/1.1
Date: date
Content-Type: application/json; charset=utf-8
Content-Length: length
Host: ip:port
Authorization: authorization
{
"nodes": [
node1,
node2,
...
]
}
请求参数
参数 描述 是否必须 poolName 存储池名称。
类型:字符串
取值:长度范围是1~16,只能由字母、数字和短横线(-)、下划线(_)组成,字母区分大小写,且仅支持以字母和数字开头。
是 nodes.node 指定加入存储池的节点,该节点必须属于集群拓扑节点。
说明
如果待添加的节点下含有子节点,则尚未被分配到任何存储池的子节点,将会被统一添加到该存储池中。
节点名称可以使用在集群拓扑中的全路径,格式为:name:name:name,从根节点开始逐级指定;也可以使用部分路径,但该路径需在集群拓扑中唯一。例如default:room4:hblock_4、room4:hblock_4、hblock_4在集群拓扑中均指向同一节点,且节点名在集群拓扑中唯一,则任选其一即可。
类型:字符串
是
请求示例
为存储池pool4添加存储节点。
PUT /rest/v1/system/storagepool/pool4/node HTTP/1.1
Date: Tue, 18 Jun 2024 10: 06: 09 GMT
Content-Type: application/json; charset=utf-8
Authorization: HBlock userName:signature
Content-Length: 104
Host: 192.168.0.110: 1443
{
"nodes": [
"hblock_1:/mnt/storage01",
"rack1:hblock_2:/mnt/storage01"
]
}
响应示例
HTTP/1.1 204 No Content
x-hblock-request-id: bcdb355abb8d481fb17bd2c40affb5bc
Connection: keep-alive
Date: Tue, 18 Jun 2024 08: 41: 36 GMT
Server: HBlock