此操作用来向集群中添加新的服务器。
请先在待添加的服务器上执行下列步骤:
- 拷贝安装包至安装路径。
- 解压安装包。
- 执行 ./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 节点名称。
类型:字符串
取值:字符串形式,长度范围1~63,只能由字母、数字、句点(.)、下划线(_)和短横线(-)组成,字母区分大小写,且仅支持以字母或数字开头。
默认使用服务器ID作为节点名称。
否 parentName 父节点名称。
类型:字符串
默认映射给根节点。
否 description 服务器的描述信息。
类型:字符串
取值:1~50位字符串。
否 ip 要添加的服务器IP。 是 apiPort 管理API端口。
类型:整型
取值:[1, 65535],默认值为1443。
否 iSCSIPort iSCSI端口。
类型:整型
取值:[1, 65535],默认值为3260。
否 portRange 指定端口范围。存储服务以及未指定端口的服务将从此范围中自动取值。
类型:整型
取值:[1, 65535],port1为端口范围最小值,port2为端口范围最大值,且port1 < port2。
port1默认取值为20000,port2默认取值为20500。
说明建议指定的端口范围至少包含500个端口。
否 diskPaths 数据目录属性集合。包括path、capacityQuota。
类型:数组
否 path 指定数据目录。数据目录用于存储数据,建议不要与操作系统共用磁盘或文件系统。
注意数据目录中不能有逗号(,)。
类型:字符串列表
否 capacityQuota 指定数据目录的容量配额,即针对加入到服务器中的每个数据目录,HBlock可写入的数据总量。当HBlock的使用空间一旦达到配额,就立刻阻止数据写入,不允许再使用超出配额的空间。
类型:长整型
取值:小于数据目录所在磁盘的总容量,单位是字节。负整数表示无限制写入,0表示禁止写入。
默认不限制写入。
注意如果相同的数据目录出现多次,以第一次出现的数据目录的容量配额为准。
否 ports.dataPort1 数据端口1。
类型:整型
取值:[1, 65535]。
否 ports.managementPort1 管理服务端口1。
类型:整型
取值:[1, 65535]。
否 ports.managementPort2 管理服务端口2。
类型:整型
取值:[1, 65535]。
否 ports.managementPort3 管理服务端口3。
类型:整型
取值:[1, 65535]。
否 ports.managementPort4 管理服务端口4。
类型:整型
取值:[1, 65535]。
否 ports.managementPort5 管理服务端口5。
类型:整型
取值:[1, 65535]。
否 ports.managementPort6 管理服务端口6。
类型:整型
取值:[1, 65535]。
否
请求示例
添加IP为192.168.0.202的服务器至集群,数据目录为/mnt/storage01和/mnt/storage02。
POST /rest/v1/system/server HTTP/1.1
Date: Tue, 23 Jan 2024 08:16:17 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: 2707c6619d4c4eb9897ec7d826d8c901
Connection: keep-alive
Date: Tue, 23 Jan 2024 08:16:17 GMT
Content-Length: 0
Server: HBlock