ITPub博客

首页 > 数据库 > 国内数据库 > KunlunBase集群管理接口

KunlunBase集群管理接口

原创 国内数据库 作者:KunlunDB 时间:2022-04-07 11:20:04 0 删除 编辑
KunlunBase在0.9版本之后,增加了运维监控平台(Xpanel), 通过集群管理(Cluster_mgr)的HTTP命令接口,可以实现对整个集群环境进行管理和监控。


以下是详细的命令接口介绍:

获取cluster工作状态,POST接口:
    curl -d "{\"job_type\":\"get_status\",\"job_id\":\"uuid999\"}"


    由于创建集群,和恢复一个新集群,会生成新的集群名称,通过get_status这个命令获取状态时,如果返回result为succeed,那info就是新集群的名称。


    命令接收: 

      {"result":"accept"}


      成功返回:

        {"result":"done","info":"something done"}


        正在工作:

          {"result":"ongoing","info":"something ongoing"}


          失败返回:

            {"result":"failed","info":"something error"}


            1. 创建机器, 异步,需要查询,不阻塞其他操作。


            • 返回result=done/failed, info:create machine succeed(或者错误信息)。

            • 操作表记录:info:create machine succeed(或者错误信息)。

            • 路径为根路径,必须存在,total_mem单位是Mbyte。

              {"ver":"0.1","job_id":"uuid999","job_type":"create_machine","hostaddr":"127.0.0.1","rack_id":"1","datadir":"/home/kunlun;/nvme2","logdir":"/home/kunlun;/nvme3","wal_log_dir":"/home/kunlun","comp_datadir":"/nvme2","total_mem":"1024","total_cpu_cores":"8","user_name":"zhangsan"}


              2. 更新机器, 异步,需要查询,不阻塞其他操作。


              • 返回result=done/failed时, info:update machine succeed(或者错误信息)。

              • 操作表记录:info:update machine succeed(或者错误信息)。

              • 路径为根路径,必须存在,total_mem单位是Mbyte。

                {"ver":"0.1","job_id":"uuid999","job_type":"update_machine","hostaddr":"127.0.0.1","rack_id":"1","datadir":"/home/kunlun;/nvme2","logdir":"/home/kunlun;/nvme3","wal_log_dir":"/home/kunlun","comp_datadir":"/nvme2","total_mem":"4096","total_cpu_cores":"8","user_name":"zhangsan"}


                3. 删除机器, 异步,需要查询,不阻塞其他操作。


                • 返回result=done/failed时, info:delete machine succeed(或者错误信息)。

                • 操作表记录:info:delete machine succeed(或者错误信息)。

                  {"ver":"0.1","job_id":"uuid999","job_type":"delete_machine","hostaddr":"127.0.0.1","user_name":"zhangsan"}


                  4. 创建集群, 异步,需要查询。


                  • 返回result=done时, info:集群名称。

                  • 操作表记录:info:create cluster succeed(或者错误信息)。

                  • max_storage_size单位是G, innodb_size单位是G。

                  • innodb_size按要求先默认1G吧,范围1-16G。

                  • user_name为网页端使用,保存到操作记录里面。

                  • machine为指定安装机器,以machine0开始。

                    {"ver":"0.1","job_id":"uuid999","job_type":"create_cluster","ha_mode":"mgr","shards":"2","nodes":"1","comps":"1","max_storage_size":"20","max_connections":"6","cpu_cores":"8","innodb_size":"1","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}


                    5. 删除集群, 异步,需要查询。


                    • 返回result=done时, info:集群名称。

                    • 操作表记录:info:delete cluster succeed(或者错误信息)。

                      {"ver":"0.1","job_id":"uuid999","job_type":"delete_cluster","cluster_name":"cluster001","user_name":"zhangsan"}


                      6. 在现有集群上,新增分片,可以增加多个。


                      • 返回result=done时, info:shard2;shard3。

                      • 操作表记录:info:add shards succeed(或者错误信息)。

                      • 分片名称排列,分隔符改为分号,因为之前创建机器的路径也是分号,统一了比较好。

                        {"ver":"0.1","job_id":"uuid999","job_type":"add_shards","cluster_name":"cluster001","shards":"2","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}


                        7. 在现有集群上,删除分片,只能一个一个删


                        • 返回result=done时, info:删除分片名。

                        • 操作表记录:info:delete shard succeed(或者错误信息)。

                          {"ver":"0.1","job_id":"uuid999","job_type":"delete_shard","cluster_name":"cluster001","shard_name":"shard1","user_name":"zhangsan"}


                          8. 在现有集群上,新增计算节点,可以增加多个。


                          • 返回result=done时, info:comp2;comp3。

                          • 操作表记录:info:add comps succeed(或者错误信息)。

                            {"ver":"0.1","job_id":"uuid999","job_type":"add_comps","cluster_name":"cluster001","comps":"2","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}


                            9. 在现有集群上,删除计算节点,只能一个一个删。


                            • 返回result=done时, info:删除计算节点名。

                            • 操作表记录:info:delete shard succeed(或者错误信息)。

                              {"ver":"0.1","job_id":"uuid999","job_type":"delete_comp","cluster_name":"cluster001","comp_name":"comp1","user_name":"zhangsan"}


                              10. 为集群所有分片增加node, 异步,需要查询。


                              • 带有shard_name字段,只增加该分片,否则所有分片都增加。

                              • 返回result=done时, info:ip:port;ip:port,分隔符分号。

                              • 操作表记录:info:add nodes succeed(或者错误信息)。

                              • 该操作只能是MGR模式,先备份分片,创建出新NODE, 把备份恢复到新NODE, 将新NODE加入分片。

                                {"ver":"0.1","job_id":"uuid999","job_type":"add_nodes","cluster_name":"cluster001","shard_name":"shard1","nodes":"2","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}


                                11. 某个分片删除node, 异步,需要查询。


                                • 返回result=done时, info:ip:port,分隔符分号。

                                • 操作表记录:info:delete node succeed(或者错误信息)。

                                • 该操作只能是MGR模式,先备份分片,创建出新NODE, 把备份恢复到新NODE, 将新NODE加入分片。

                                  {"ver":"0.1","job_id":"uuid999","job_type":"delete_node","cluster_name":"cluster001","shard_name":"shard1","ip":"127.0.0.1","port":"57338","user_name":"zhangsan"}


                                  12. 备份集群, 异步,需要查询。


                                  • 返回result=done时, info:备份的时间。

                                  • 操作表记录:info:backup cluster succeed(或者错误信息)。

                                    {"ver":"0.1","job_id":"uuid999","job_type":"backup_cluster","backup_cluster_name":"cluster001","user_name":"zhangsan"}


                                    13. 恢复集群, 异步,需要查询,该命令关闭,不给客户执行。


                                    • 返回result=done时, info:恢复集群名称。

                                    • 操作表记录:info:restore cluster succeed(或者错误信息)。

                                      {"ver":"0.1","job_id":"uuid999","job_type":"restore_cluster","timestamp":"2021-12-20 19:22:20","backup_cluster_name":"cluster003","restore_cluster_name":"cluster004","user_name":"zhangsan"}


                                      14. 恢复出新集群, 异步,需要查询


                                      • 返回result=done时, info:新集群名称。

                                      • 操作表记录:info:restore new cluster succeed(或者错误信息)。

                                        {"ver":"0.1","job_id":"uuid999","job_type":"restore_new_cluster","timestamp":"2021-12-20 19:22:20","backup_cluster_name":"cluster003","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}


                                        15. 获取元数据MGR模式,同步返回。

                                          {"ver":"0.1","job_id":"uuid999","job_type":"get_meta_mode"}


                                          16. 获取元数据节点列表,同步返回。

                                            {"ver":"0.1","job_id":"uuid999","job_type":"get_meta"}

                                            17. 获取所有集群列表,同步返回。
                                              {"ver":"0.1","job_id":"uuid999","job_type":"get_cluster"}


                                              18. 获取集群存储节点列表,同步返回。

                                                {"ver":"0.1","job_id":"uuid999","job_type":"get_storage","cluster_name":"cluster003"}


                                                19. 获取集群计算节点列表,同步返回。

                                                  {"ver":"0.1","job_id":"uuid999","job_type":"get_computer","cluster_name":"cluster003"}


                                                  20. 获取实例变量,同步返回。

                                                    {"ver":"0.1","job_id":"uuid999","job_type":"get_variable","variable":"innodb_buffer_pool_size","ip":"127.0.0.1","port":"57338"}


                                                    21. 设置实例变量,同步返回。

                                                      优先整型value_int, 找不到再找字符串value_str{"ver":"0.1","job_id":"uuid999","job_type":"set_variable","variable":"innodb_buffer_pool_size","value_int":"134217728","value_str":"134217728","ip":"127.0.0.1","port":"57338"}


                                                      22. 控制实例,异步,需要查询。


                                                      • 包括停止(stop)/启动(start)/重启(restart)三个操作。

                                                        {"ver":"0.1","job_id":"uuid999","job_type":"control_instance","control":"stop","ip":"127.0.0.1","port":"57338","user_name":"zhangsan"}


                                                        23. 更新prometheus数据,异步,需要查询。


                                                        • 机器IP,从元数据表读取,PORT从配置文件读取。

                                                          {"ver":"0.1","job_id":"uuid999","job_type":"update_prometheus","user_name":"zhangsan"}


                                                          24.  prometheus连接到 PostgreSQL。

                                                            {"ver":"0.1","job_id":"uuid999","job_type":"postgres_exporter","ip":"127.0.0.1","port":"57030","user_name":"zhangsan"}


                                                            25. prometheus连接到MySQL。

                                                              {"ver":"0.1","job_id":"uuid999","job_type":"mysqld_exporter","ip":"127.0.0.1","port":"57330","user_name":"zhangsan"}

                                                              点击阅读原文

                                                              推荐阅读

                                                              KunlunBase架构介绍
                                                              KunlunBase技术优势介绍
                                                              KunlunBase技术特点介绍
                                                              PostgreSQL vs MySQL TPC-H 测试
                                                              Kunlun-Storage vs PostgreSQL OLTP 测试


                                                              END


                                                              来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70011764/viewspace-2885953/ ,如需转载,请注明出处,否则将追究法律责任。

                                                              请登录后发表评论 登录
                                                              全部评论

                                                              注册时间:2021-12-27

                                                              • 博文量
                                                                103
                                                              • 访问量
                                                                31395