此操作用來向集群中添加新的服務器。
請先在待添加的服務器上執行下列步驟:
拷貝安裝包至安裝路徑。
解壓安裝包。
執行 ./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": {}
}