集群拓扑文件 本节主要介绍集群拓扑文件。 集群拓扑向用户展示集群内所有节点的拓扑结构,方便用户查看节点名称、节点状态、节点组成等信息。用户可以自己构造集群拓扑文件,在初始化的时候进行导入。拓扑文件为符合UTF8编码格式的JSON文档。 说明 父节点是root,子节点可以是room、rack或者server。 父节点是room,子节点可以是rack或者server。 父节点是rack,子节点只能是server。 父节点是server,子节点只能是path。 拓扑文件的参数说明如下: 参数 描述 是否必须 name 根节点名称。 类型:字符串 取值:字符串形式,长度范围1~63,只能由字母、数字、句点(.)、下划线()和短横线()组成,字母区分大小写,且仅支持以字母或数字开头。默认为default。 否 type 根节点的类型。 类型:字符串 取值:root:根节点。 默认为root。 否 childNodes 子节点信息集合,根据子节点类型不同,需要的参数不同。 类型:数组 是 子节点类型为room name 子节点名称。 类型:字符串 取值:字符串形式,长度范围1~63,只能由字母、数字、句点(.)、下划线()和短横线()组成,字母区分大小写,且仅支持以字母或数字开头。 是 子节点类型为room type 子节点类型。 类型:字符串 取值:room:机房类型 是 子节点类型为room description 子节点描述信息。 类型:字符串 取值:1~50位字符串。 否 子节点类型为room childNodes 子节点信息集合,根据子节点类型不同,需要的参数不同,子节点可以为rack或者server。 类型:数组 否 子节点类型为rack name 子节点名称。 类型:字符串 取值:字符串形式,长度范围1~63,只能由字母、数字、句点(.)、下划线()和短横线()组成,字母区分大小写,且仅支持以字母或数字开头。 是 子节点类型为rack type 子节点类型。 类型:字符串 取值:rack:机架类型。 是 子节点类型为rack description 子节点描述信息。 类型:字符串 取值:1~50位字符串。 否 子节点类型为rack childNodes 子节点信息集合,子节点只能为server。 类型:数组 否 子节点类型为server name 子节点名称。 类型:字符串 取值:字符串形式,长度范围1~63,只能由字母、数字、句点(.)、下划线()和短横线()组成,字母区分大小写,且仅支持以字母或数字开头。默认为服务器ID。 否 子节点类型为server type 子节点类型。 类型:字符串 取值:server:服务器类型。 是 子节点类型为server description 子节点描述信息。 类型:字符串 取值:1~50位字符串。 否 子节点类型为server ip HBlock的服务器IP。 取值:IPv4或[IPv6]地址。 是 子节点类型为server apiPort 管理API端口。 类型:整型 取值:[1, 65535],默认值为1443。需要和该服务器安装HBlock时设置的API端口号保持一致。 否 子节点类型为server childNodes 子节点信息集合。子节点的类型为path。 是 子节点类型为path name 子节点名称。 类型:字符串 取值:数据目录具体路径。 是 子节点类型为path type 子节点类型。 类型:字符串 取值:path:数据目录类型。 是 子节点类型为path capacityQuota 指定数据目录的容量配额,即针对此数据目录,HBlock可写入的数据总量。当HBlock的使用空间一旦达到配额,就立刻阻止数据写入,不允许再使用超出配额的空间。 类型:长整型 取值:小于数据目录所在磁盘的总容量,单位是bytes。负整数表示无限制写入,0表示禁止写入。默认不限制写入。 注意 如果相同的数据目录出现多次,以第一次出现的数据目录的容量配额为准。 否 拓扑文件示例: plaintext { "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" } ] } ] } ] }