Clustermgr管理
服务状态
展示集群状态,包括raft状态、空间状态、卷信息统计等等。
curl "http://127.0.0.1:9998/stat"
响应示例
{
"leader_host": "127.0.0.1:9998",
"raft_status": {
"applied": 291968826,
"commit": 291968826,
"leader": 3,
"nodeId": 2,
"peers": null,
"raftApplied": 291968826,
"raftState": "StateFollower",
"term": 24,
"transferee": 0,
"vote": 3
},
"read_only": false,
"space_stat": {
"disk_stat_infos": [
{
"available": 107,
"broken": 0,
"dropped": 10,
"dropping": 0,
"expired": 0,
"idc": "z0",
"readonly": 22,
"repaired": 17,
"repairing": 0,
"total": 134,
"total_chunk": 55619,
"total_free_chunk": 37979
},
{
"available": 93,
"broken": 0,
"dropped": 10,
"dropping": 0,
"expired": 0,
"idc": "z1",
"readonly": 22,
"repaired": 19,
"repairing": 0,
"total": 122,
"total_chunk": 51523,
"total_free_chunk": 33425
},
{
"available": 96,
"broken": 0,
"dropped": 53,
"dropping": 1,
"expired": 0,
"idc": "z2",
"readonly": 46,
"repaired": 3,
"repairing": 0,
"total": 152,
"total_chunk": 58123,
"total_free_chunk": 40173
}
],
"free_space": 1774492930453504,
"total_blob_node": 17,
"total_disk": 408,
"total_space": 2155017090891776,
"used_space": 380524160438272,
"writable_space": 923847465369600
},
"volume_stat": {
"active_volume": 345,
"can_alloc_volume": 1651,
"idle_volume": 1651,
"lock_volume": 0,
"total_volume": 1996,
"unlocking_volume": 0
}
}
节点管理
节点添加
添加节点,指定节点类型,地址和id。
curl -X POST --header 'Content-Type: application/json' -d '{"peer_id": 1, "host": "127.0.0.1:10110","node_host": "127.0.0.1:9998", "member_type": 2}' "http://127.0.0.1:9998/member/add"
参数列表
参数 | 类型 | 描述 |
---|---|---|
peer_id | uint64 | raft节点id,不可重复 |
host | string | raft地址 |
node_host | string | 服务地址 |
member_type | uint8 | 节点类型,1表示leaner,2表示normal |
节点移除
根据id移除节点。
curl -X POST --header 'Content-Type: application/json' -d '{"peer_id": 1}' "http://127.0.0.1:9998/member/remove"
参数列表
参数 | 类型 | 描述 |
---|---|---|
peer_id | uint64 | raft节点id,不可重复 |
切主
根据id切换主节点。
curl -X POST --header 'Content-Type: application/json' -d '{"peer_id": 1}' "http://127.0.0.1:9998/leadership/transfer"
参数列表
参数 | 类型 | 描述 |
---|---|---|
peer_id | uint64 | raft节点id,不可重复 |
磁盘管理
获取磁盘信息
curl "http://127.0.0.1:9998/disk/info?disk_id=1"
参数列表
参数 | 类型 | 描述 |
---|---|---|
disk_id | uint32 | 磁盘id |
响应示例
{
"cluster_id": 10001,
"create_time": "2022-05-07T15:22:01.627271402+08:00",
"disk_id": 1,
"free": 1910475022336,
"free_chunk_cnt": 106,
"host": "http://127.0.0.1:8889",
"idc": "bjht",
"last_update_time": "2022-05-07T15:22:01.627271402+08:00",
"max_chunk_cnt": 1037,
"path": "/home/service/var/data21",
"rack": "HT02-B11-F4-402-0203",
"readonly": false,
"size": 17828005326848,
"status": 1,
"used": 15917530304512,
"used_chunk_cnt": 931
}
设置磁盘状态
curl -X POST --header 'Content-Type: application/json' -d '{"disk_id":2,"status":2}' "http://127.0.0.1:9998/disk/set"
参数 | 类型 | 描述 |
---|---|---|
disk_id | uint32 | 磁盘id |
status | uint8 | 磁盘状态只能从小到大,数值描述参考下表 |
磁盘状态数值 | 说明 |
---|---|
1 | normal 正常 |
2 | broken 坏盘状态 |
3 | repairing 修复中 |
4 | repaired 修复完成 |
5 | dropped 下线完成 |
设置磁盘读写
设置磁盘只读或者读写
curl -X POST --header 'Content-Type: application/json' -d '{"disk_id":2,"readonly":false}' "http://127.0.0.1:9998/disk/access"
参数列表
参数 | 类型 | 描述 |
---|---|---|
disk_id | uint32 | 磁盘id |
readonly | bool | 是否只读,true表示只读,false表示可写 |
设置磁盘下线
对于机器或者磁盘过保的场景,我们可以设置磁盘下线进行数据迁移,迁移时会优先读取下线磁盘数据,如果读取失败则走修复读流程
curl -X POST --header 'Content-Type: application/json' -d '{"disk_id":2}' "http://127.0.0.1:9998/disk/drop"
卷管理
获取卷信息
获取单个卷信息
curl "http://127.0.0.1:9998/volume/get?vid=1"
参数列表
参数 | 类型 | 描述 |
---|---|---|
vid | uint32 | 卷id |
响应示例
{
"code_mode": 12,
"create_by_node_id": 1,
"free": 1061027840,
"health_score": 0,
"status": 1,
"total": 171798691840,
"units": [
{
"disk_id": 112,
"host": "http://127.0.0.1:8889",
"vuid": 4294967654
},
...
{
"disk_id": 401,
"host": "http://127.0.0.1:8889",
"vuid": 4513071462
}
],
"used": 170737664000,
"vid": 1
}
后台任务
任务类型(type) | 任务名(key) | 开关(value) |
---|---|---|
磁盘修复 | disk_repair | true/false |
数据均衡 | balance | true/false |
磁盘下线 | disk_drop | true/false |
数据删除 | blob_delete | true/false |
数据修补 | shard_repair | true/false |
数据巡检 | vol_inspect | true/false |
查看任务状态
curl http://127.0.0.1:9998/config/get?key=balance
# 或者使用 blobstore-cli
blobstore-cli cm background status balance
开启任务
curl -X POST http://127.0.0.1:9998/config/set -d '{"key":"balance","value":"true"}' --header 'Content-Type: application/json'
# 或者使用 blobstore-cli
blobstore-cli cm background enable balance
关闭任务
curl -X POST http://127.0.0.1:9998/config/set -d '{"key":"balance","value":"false"}' --header 'Content-Type: application/json'
# 或者使用 blobstore-cli
blobstore-cli cm background disable balance
在github上编辑