集群拓撲向用戶展示集群內所有節點的拓撲結構,方便用戶查看節點名稱、節點狀態、節點組成等信息。用戶可以自己構造集群拓撲文件,在初始化的時候進行導入。拓撲文件為符合UTF-8編碼格式的JSON文檔。
說明
父節點是root,子節點可以是room、rack或者server。
父節點是room,子節點可以是rack或者server。
父節點是rack,子節點只能是server。
父節點是server,子節點只能是path。
拓撲文件的參數說明如下:
參數 描述 是否必須 name 根節點名稱。 類型:字符串
取值:字符串形式,長度范圍1~63,只能由字母、數字、句點(.)、下劃線(_)和短橫線(-)組成,字母區分大小寫,且僅支持以字母或數字開頭。默認為default。
否 type 根節點的類型。
類型:字符串
取值:root:根節點。
默認為root。
否 childNodes 子節點信息集合,根據子節點類型不同,需要的參數不同。
類型:數組
是 子節點類型為room name 子節點名稱。
類型:字符串
取值:字符串形式,長度范圍1~63,只能由字母、數字、句點(.)、下劃線(_)和短橫線(-)組成,字母區分大小寫,且僅支持以字母或數字開頭。
是 type
子節點類型。
類型:字符串
取值:room:機房類型
是 description 子節點描述信息。
類型:字符串
取值:1~50位字符串。
否 childNodes 子節點信息集合,根據子節點類型不同,需要的參數不同,子節點可以為rack或者server。
類型:數組
否 子節點類型為rack name
子節點名稱。
類型:字符串
取值:字符串形式,長度范圍1~63,只能由字母、數字、句點(.)、下劃線(_)和短橫線(-)組成,字母區分大小寫,且僅支持以字母或數字開頭。
是 type 子節點類型。
類型:字符串
取值:rack:機架類型。
是 description 子節點描述信息。
類型:字符串
取值:1~50位字符串。
否 childNodes 子節點信息集合,子節點只能為server。
類型:數組
否 子節點類型為server name 子節點名稱。
類型:字符串
取值:字符串形式,長度范圍1~63,只能由字母、數字、句點(.)、下劃線(_)和短橫線(-)組成,字母區分大小寫,且僅支持以字母或數字開頭。默認為服務器ID。
否 type 子節點類型。
類型:字符串
取值:server:服務器類型。
是 description 子節點描述信息。
類型:字符串
取值:1~50位字符串。
否 ip HBlock的服務器IP。
取值:IPv4或[IPv6]地址。
是 apiPort 管理API端口。
類型:整型
取值:[1, 65535],默認值為1443。需要和該服務器安裝HBlock時設置的API端口號保持一致。
否 childNodes 字節點信息集合。子節點的類型為path。 是 子節點類型為path name 子節點名稱。 類型:字符串
取值:數據目錄具體路徑。
是 type 子節點類型。
類型:字符串
取值:path:數據目錄類型。
是 capacityQuota 指定數據目錄的容量配額,即針對此數據目錄,HBlock可寫入的數據總量。當HBlock的使用空間一旦達到配額,就立刻阻止數據寫入,不允許再使用超出配額的空間。
類型:長整型
取值:小于數據目錄所在磁盤的總容量,單位是字節。負整數表示無限制寫入,0表示禁止寫入。默認不限制寫入。
注意如果相同的數據目錄出現多次,以第一次出現的數據目錄的容量配額為準。
否
拓撲文件示例:
{
"name": "default",
"childNodes": [
{
"name": "room1",
"type": "room",
"childNodes": [
{
"type": "server",
"name": "server1",
"ip": "192.168.0.1",
"apiPort": 1443,
"childNodes": [
{
"name": "/mnt/storage01",
"type": "path",
"capacityQuota": 96636764160
},
{
"name": "/mnt/storage02",
"type": "path"
}
]
},
{
"type": "server",
"name": "server2",
"ip": "192.168.0.2",
"apiPort": 1443,
"childNodes": [
{
"name": "/mnt/storage01",
"type": "path",
"capacityQuota": 96636764160
}
]
},
{
"type": "server",
"name": "server3",
"ip": "192.168.0.3",
"apiPort": 1443,
"childNodes": [
{
"name": "/mnt/storage01",
"type": "path"
},
{
"name": "/mnt/storage02",
"type": "path"
}
]
}
]
}
]
}