此操作用来向集群中添加新的服务器。
请先在待添加的服务器上执行下列步骤:
拷贝安装包至安装路径。
解压安装包。
执行 ./stor install命令安装。
然后在集群中的任意一台服务器上,执行添加服务器的操作。
注意
- 请确保Linux用户具有所需要端口的权限。Linux系统默认小于1024的端口不对没有root权限的Linux普通用户开放。
- 设置端口范围(portRange)时,请避免和Linux系统的本地临时端口(ip_local_port_range)范围重合,否则可能会导致HBlock服务所用的端口被占用。使用命令行cat /proc/sys/net/ipv4/ip_local_port_range可以查看本地临时端口范围。
请求语法
POST /rest/v1/system/server HTTP/1.1
Date: date
Content-Type: application/json; charset=utf-8
Content-Length: length
Host: ip:port
Authorization: authorization
{
"nodeName": nodeName,
"parentName": nodeName,
"description": description,
"ip": ip,
"apiPort": apiPort,
"iSCSIPort": iSCSIPort,
"portRange": port1-port2,
"diskPaths": [
{
"path":path,
"capacityQuota": capacityvalue
},
{
"path":path,
"capacityQuota": capacityvalue
},
……
],
"ports": {
"dataPort1": dataPort1,
"managementPort1": managementPort1,
"managementPort2": managementPort2,
"managementPort3": managementPort3,
"managementPort4": managementPort4,
"managementPort5": managementPort5,
"managementPort6": managementPort6
}
}
请求参数
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
nodeName | String | 节点名称。 取值:字符串形式,长度范围1~63,只能由字母、数字、句点(.)、下划线(_)和短横线(-)组成,字母区分大小写,且仅支持以字母或数字开头。 默认使用服务器ID作为节点名称。 | 否 |
parentName | String | 父节点名称。 默认映射给根节点。 | 否 |
description | String | 服务器的描述信息。 取值:1~50位字符串。 | 否 |
ip | String | 要添加的服务器IP。 | 是 |
apiPort | Integer | 管理API端口。 取值:[1, 65535],默认值为1443。 | 否 |
iSCSIPort | Integer | iSCSI端口。 取值:[1, 65535],默认值为3260。 | 否 |
portRange | String | 指定端口范围。存储服务以及未指定端口的服务将从此范围中自动取值。 取值:[1, 65535],port1为端口范围最小值,port2为端口范围最大值,且port1 < port2。 port1默认取值为20000,port2默认取值为20500。 说明 建议指定的端口范围至少包含500个端口。 | 否 |
diskPaths | Array of diskPath | 数据目录属性集合。包括path、capacityQuota,详见“表1 请求参数diskPath说明”。 | 否 |
ports.dataPort1 | Integer | 数据端口1。 取值:[1, 65535]。 | 否 |
ports.managementPort1 | Integer | 管理服务端口1。 取值:[1, 65535]。 | 否 |
ports.managementPort2 | Integer | 管理服务端口2。 取值:[1, 65535]。 | 否 |
ports.managementPort3 | Integer | 管理服务端口3。 取值:[1, 65535]。 | 否 |
ports.managementPort4 | Integer | 管理服务端口4。 取值:[1, 65535]。 | 否 |
ports.managementPort5 | Integer | 管理服务端口5。 取值:[1, 65535]。 | 否 |
ports.managementPort6 | Integer | 管理服务端口6。 取值:[1, 65535]。 | 否 |
表1 请求参数diskPath说明
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
path | Sring | 指定数据目录。数据目录用于存储数据,建议不要与操作系统共用磁盘或文件系统。 注意 数据目录中不能有逗号(,)。 | 否 |
capacityQuota | Long | 指定数据目录的容量配额,即针对加入到服务器中的每个数据目录,HBlock可写入的数据总量。当HBlock的使用空间一旦达到配额,就立刻阻止数据写入,不允许再使用超出配额的空间。 取值:小于数据目录所在磁盘的总容量,单位是字节。负整数表示无限制写入,0表示禁止写入。 默认不限制写入。 注意 如果相同的数据目录出现多次,以第一次出现的数据目录的容量配额为准。 | 否 |
请求示例
添加IP为192.168.0.202的服务器至集群,数据目录为/mnt/storage01和/mnt/storage02。
POST /rest/v1/system/server HTTP/1.1
Date: Mon, 7 Apr 2025 10:07:39 GMT
Content-Type: application/json; charset=utf-8
Authorization: HBlock userName:signature
Content-Length: 180
Host: 192.168.0.110:1443
{
"ip": "192.168.0.202",
"diskPaths": [
{
"path": "/mnt/storage01"
},
{
"path": "/mnt/storage02"
}
]
}
响应示例
HTTP/1.1 200 OK
x-hblock-request-id: 169b96ef760644759afb69470f903fc0
Connection: keep-alive
Date: Mon, 7 Apr 2025 10:07:39 GMT
Content-Length: 11
Content-Type: application/json;charset=utf-8
Server: HBlock
{
"data": {}
}