集群管理
获取集群信息
调用资源管理节点提供的API进行集群管理。curl命令中的IP和端口地址分别为资源管理节点配置文件中的ip和listen选项。
curl -v "http://192.168.2.160:15010/admin/getCluster" | python -m json.tool
展示集群基本信息,比如集群包含哪些数据节点和元数据节点,卷等。
响应示例
{
"code":0,
"data":{
"Applied":886268,
"BadMetaPartitionIDs":[
],
"BadPartitionIDs":[
],
"DataNodeStatInfo":{
},
"DataNodes":[
],
"DisableAutoAlloc":false,
"LeaderAddr":"127.0.0.1:15010",
"MaxDataPartitionID":735,
"MaxMetaNodeID":57,
"MaxMetaPartitionID":59,
"MetaNodeStatInfo":{
},
"MetaNodeThreshold":0.75,
"MetaNodes":[
],
"Name":"cluster",
"VolStatInfo":[
]
},
"msg":"success"
}
冻结集群
命令行:
./udbto-cli cluster freeze true 冻结集群
Freeze cluster successful!
./udbto-cli cluster info 查看集群
[Cluster]
Cluster name : udbto01
Master leader : 192.168.0.121:15010
Auto allocate : Disabled 冻结状态
MetaNode count : 4
MetaNode used : 1 GB
MetaNode total : 11 GB
DataNode count : 4
DataNode used : 39 GB
DataNode total : 3849 GB
Volume count : 11
EbsAddr :
LoadFactor : 0
BatchCount : 0
MarkDeleteRate : 0
DeleteWorkerSleepMs: 0
AutoRepairRate : 0
MaxDpCntLimit : 0
./udbto-cli cluster freeze false 解除冻结
Unfreeze cluster successful!
Restful API:
curl -v "http://192.168.2.160:15010/cluster/freeze?enable=true"
enable 如果设置为true,则集群被冻结,false 表示解冻。
响应示例
{"code":0,"msg":"success","data":"set DisableAutoAllocate to true successfully"}
如果启用了冻结集群功能,卷就不再自动地创建数据分片,也不能手动创建分片。
获取集群空间信息
命令行:
./udbto-cli cluster stat
[Cluster Status]
DataNode Status:
TOTAL/GB USED/GB INCREASED/GB USED RATIO
469 130 0 0.278
MetaNode Status:
TOTAL/GB USED/GB INCREASED/GB USED RATIO
10 0 0 0.056
Zone List:
ZONE NAME ROLE TOTAL/GB USED/GB AVAILABLE/GB USED RATIO TOTAL NODES WRITEBLE NODES
default DATANODE 469.86 130.47 339.39 0.28 3 3
METANODE 10.28 0.57 9.71 0.06 3 3
Restful API:
按区域展示集群的空间信息。
curl -v "http://192.168.2.160:15010/cluster/stat" | python -m json.tool
响应示例
{
"DataNodeStatInfo": {
"TotalGB": 1,
"UsedGB": 0,
"IncreasedGB": -2,
"UsedRatio": "0.0"
},
"MetaNodeStatInfo": {
"TotalGB": 1,
"UsedGB": 0,
"IncreasedGB": -8,
"UsedRatio": "0.0"
},
"ZoneStatInfo": {
"zone1": {
"DataNodeStat": {
"TotalGB": 1,
"UsedGB": 0,
"AvailGB": 0,
"UsedRatio": 0,
"TotalNodes": 0,
"WritableNodes": 0
},
"MetaNodeStat": {
"TotalGB": 1,
"UsedGB": 0,
"AvailGB": 0,
"UsedRatio": 0,
"TotalNodes": 0,
"WritableNodes": 0
}
}
}
}
获取集群的拓扑信息
Restful API:
curl -v "http://192.168.2.160:15010/topo/get" | python -m json.tool
响应示例
[
{
"Name": "zone1",
"Status": "available",
"NodeSet": {
"700": {
"DataNodeLen": 0,
"MetaNodeLen": 0,
"MetaNodes": [],
"DataNodes": []
}
}
},
{
"Name": "zone2",
"Status": "available",
"NodeSet": {
"800": {
"DataNodeLen": 0,
"MetaNodeLen": 0,
"MetaNodes": [],
"DataNodes": []
}
}
}
]
更新可用区状态
更新可用区的状态为可用或不可用。
设置为不可用
curl -v "http://192.168.2.160:15010/zone/update?name=default&enable=false"
enable true表示可用,false为不可用
响应示例
{"code":0,"msg":"success","data":"update zone status to [false] successfully"}
用命令行查看状态,已经变成不可用
./udbto-cli zone info default
Zone Name: default
Status: unavailable(不可用)
DataMediaType: SSD
Nodeset Selector:
Data:RoundRobin
Meta:RoundRobin
NodeSet-1:
DataNodes[3]:
ID ADDRESS WRITABLE ACTIVE MEDIA ForbidWriteOpOfProtoVer0
2 192.168.2.160:15310(localhost.localdomain:15310) Yes Active SSD notForbid
4 192.168.2.185:15310 Yes Active SSD notForbid
3 192.168.2.161:15310(udb64:15310) Yes Active SSD notForbid
MetaNodes[4]:
ID ADDRESS WRITABLE ACTIVE MEDIA ForbidWriteOpOfProtoVer0
13 192.168.2.162:15210 No Inactive N/A notForbid
7 192.168.2.185:15210 Yes Active N/A notForbid
6 192.168.2.161:15210(udb64:15210) Yes Active N/A notForbid
5 192.168.2.160:15210(localhost.localdomain:15210) Yes Active N/A notForbid
设置为可用状态
curl -v "http://192.168.2.160:15010/zone/update?name=default&enable=true"
获取所有可用区信息
命令行:
./udbto-cli zone list
ZONE STATUS
default available
Restful API:
curl -v "http://192.168.2.160:15010/zone/list" | python -m json.tool
响应示例
[
{
"Name": "zone1",
"Status": "available",
"NodeSet": {}
},
{
"Name": "zone2",
"Status": "available",
"NodeSet": {}
}
]
获取集群信息
Restful API:
curl -v "http://192.168.2.160:15010/admin/getNodeInfo" | python -m json.tool
响应示例
{
"code": 0,
"data": {
"autoRepairRate": "0",
"batchCount": "0",
"deleteWorkerSleepMs": "0",
"loadFactor": "0",
"maxDpCntLimit":"0",
"markDeleteRate": "0"
},
"msg": "success"
}
设置集群信息
curl -v "http://192.168.2.160:15010/admin/setNodeInfo?batchCount=100&markDeleteRate=100"
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| batchCount | uint64 | metanode 删除批量大小 |
| markDeleteRate | uint64 | datanode批量删除限速设置. 0代表未做限速设置 |
| autoRepairRate | uint64 | datanode上同时修复的extent个数 |
| deleteWorkerSleepMs | uint64 | 删除间隔时间 |
| loadFactor | uint64 | 集群超卖比,默认0,不限制 |
| maxDpCntLimit | uint64 | 每个节点上dp最大数量,默认3000,0代表默认值 |
响应示例
{"code":0,"msg":"success","data":"set nodeinfo params map[batchCount:100 markDeleteRate:100] successfully"}