集群拓扑向用户展示集群内所有节点的拓扑结构,方便用户查看节点名称、节点状态、节点组成等信息。用户可以自己构造集群拓扑文件,在初始化的时候进行导入。拓扑文件为符合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的使用空间一旦达到配额,就立刻阻止数据写入,不允许再使用超出配额的空间。 类型:长整型 取值:小于数据目录所在磁盘的总容量,单位是bytes。负整数表示无限制写入,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"
}
]
}
]
}
]
}