集群管理

获取集群信息

调用资源管理节点提供的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"}