Skip to content

8.2 Кластер

Методы

8.2.1 cluster-overview()

Данный метод используется для получения обзора кластера: состояния его компонентов (узлов, сервисов) и утилизации ресурсов (RAM, CPU, пулов).

Запрос:

{
    "jsonrpc":  "2.0",
    "method":   "cluster-overview",
    "id":       "e4b01804-7cd5-45d3-b440-0f6005b9b8c5"
}

Ответ:

{
   "id" : "e4b01804-7cd5-45d3-b440-0f6005b9b8c5",
   "jsonrpc" : "2.0",
   "result" : {
      "code" : 1,
      "data" : {
         "1" : {
            "cores" : 15,
            "node_cpu_cores" : 40,
            "node_name" : "q9u001.z.vstack.com",
            "node_ram" : 51539607552,
            "pools" : [
               {
                  "capacity_pct" : 1,
                  "guid" : "4182847010042355858",
                  "name" : "z05",
                  "provisioned_pct" : 3
               }
            ],
            "ram" : 13,
            "utilization_cores_pct" : "0.00",
            "utilization_ram_pct" : "4.07"
         },
         "2" : {
            "cores" : 45,
            "node_cpu_cores" : 20,
            "node_name" : "q9u002.z.vstack.com",
            "node_ram" : 51539607552,
            "pools" : [
               {
                  "capacity_pct" : 2,
                  "guid" : "9286176334769597033",
                  "name" : "z04",
                  "provisioned_pct" : 5
               }
            ],
            "ram" : 19,
            "utilization_cores_pct" : "0.00",
            "utilization_ram_pct" : "6.14"
         },
         "3" : {
            "cores" : 40,
            "node_cpu_cores" : 20,
            "node_name" : "q9u003.z.vstack.com",
            "node_ram" : 51539607552,
            "pools" : [
               {
                  "capacity_pct" : 2,
                  "guid" : "14523019082101348142",
                  "name" : "z03",
                  "provisioned_pct" : 8
               }
            ],
            "ram" : 75,
            "utilization_cores_pct" : "0.00",
            "utilization_ram_pct" : "9.66"
         },
         "4" : {
            "cores" : 0,
            "node_name" : "q9u004.z.vstack.com",
            "ram" : 0,
            "utilization_cores_pct" : "0.0",
            "utilization_ram_pct" : "0.0"
         },
         "5" : {
            "cores" : 70,
            "node_cpu_cores" : 20,
            "node_name" : "q9u005.z.vstack.com",
            "node_ram" : 51539607552,
            "pools" : [
               {
                  "capacity_pct" : 3,
                  "guid" : "5210166094835362280",
                  "name" : "z01",
                  "provisioned_pct" : 4
               },
               {
                  "capacity_pct" : 1,
                  "guid" : "16231361151942834019",
                  "name" : "z02",
                  "provisioned_pct" : 3
               }
            ],
            "ram" : 29,
            "utilization_cores_pct" : "0.30",
            "utilization_ram_pct" : "21.93"
         }
      }
   }
}

8.2.2 cluster-totals()

С помощью этого метода можно получить суммарные значения имеющихся и потребляемых ресурсов (RAM, CPU, пространства хранения).

Запрос:

{
        "jsonrpc":      "2.0",
        "id":           "349b4b08-724e-11ed-bfe5-7ca8afb91e77",
        "method":       "cluster-totals"
}

Ответ:

{
    "id":       "349b4b08-724e-11ed-bfe5-7ca8afb91e77",
    "jsonrpc":  "2.0",
    "result": {
        "code": 1,
        "data": {
            "cpu_cores_total":      120,
            "cpu_cores_provisioned":    120,
            "cpu_used":         3,
            "ram_total":            177167400960,
            "ram_provisioned":      103079215104,
            "ram_used":         1452266882,
            "space_total":          21990232555520,
            "space_provisioned":        4925812092433,
            "space_used":           72233946792
        }
    }
}

По каждому из типов ресурсов предоставлены 3 поля с соответствующими суффиксами в именах:

  • total: количество имеющихся в наличии ресурсов;
  • provisioned: количество ресурсов, которые предоставлены к потреблению;
  • used: количество реально потребляемых ресурсов.

Единицы измерения для ресурсов CPU — ядра, для ресурсов RAM и space — байты.

8.2.3 cluster-node-action()

Данный метод позволяет проводить действия с узлом кластера. В этом методе глагол определяется параметром action, у каждого глагола есть собственный ответ.

Параметр node_ID используется дли идентификаторов глаголов 2, 3, 4.

Таблица со словарем глаголов представлена ниже.

Таблица 1. Словарь глаголов
0list
1status
2enable
3disable
4exit

Запрос:

{
        "jsonrpc":      "2.0",
        "id":           "9bacee04-1237-11ed-aef9-9ea6afb91e77",
        "method":       "cluster-node-action",
        "params":       {
                "action":               1,
        "node_ID":      2
        }
}

Ответ:

{
   "id" : "9bacee04-1237-11ed-aef9-9ea6afb91e77",
   "jsonrpc" : "2.0",
   "result" : {
      "code" : 1,
      "data" : [
         {
            "enabled" : true,
            "id" : 1,
            "nodename" : "q9u001.z.vstack.com",
            "state" : "ONLINE"
         },
         {
            "enabled" : true,
            "id" : 2,
            "nodename" : "q9u002.z.vstack.com",
            "state" : "ONLINE"
         },
         {
            "enabled" : true,
            "id" : 3,
            "nodename" : "q9u003.z.vstack.com",
            "state" : "ONLINE"
         },
         {
            "enabled" : true,
            "id" : 4,
            "nodename" : "q9u004.z.vstack.com",
            "state" : "ONLINE"
         },
         {
            "enabled" : true,
            "id" : 5,
            "nodename" : "q9u005.z.vstack.com",
            "state" : "ONLINE"
         }
      ]
   }
}

8.2.4 cluster-service-stop()

С помощью cluster-service-stop() можно остановить сервис кластера. Крайне рекомендуется использовать асинхронный режим вызова данного метода.

Запрос:

{
    "jsonrpc":  "2.0",
    "id":       "a6ca3996-1303-11ed-970a-1689afb91e77",
    "method":   "cluster-service-stop",
    "params":   {
        "service_name":     "zpool_z03"
    }
}

Ответ:

{
   "id" : "a6ca3996-1303-11ed-970a-1689afb91e77",
   "jsonrpc" : "2.0",
   "result" : {
      "code" : 1,
      "data" : null
   }
}

8.2.5 cluster-service-start()

Этот метод позволяет запускать сервис кластера. Крайне рекомендуется использовать асинхронный режим вызова данного метода.

Запрос:

{
    "jsonrpc":  "2.0",
    "id":       "05f0e294-1304-11ed-ad4c-03a9afb91e77",
    "method":   "cluster-service-start",
    "params":   {
        "service_name":     "zpool_z03",
        "node_ID":      4
    }
}
Ответ:

{
   "id" : "05f0e294-1304-11ed-ad4c-03a9afb91e77",
   "jsonrpc" : "2.0",
   "result" : {
      "code" : 1,
      "data" : null
   }
}