集群拓扑向用户展示集群内所有节点的拓扑结构,方便用户查看节点名称、节点状态、节点组成等信息。用户可以自己构造集群拓扑文件,在初始化的时候进行导入。拓扑文件为符合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"
}
]
}
]
}
]
}