Перейти к основному содержимому

Кластер, узлы и сервисы

Что такое кластер​

Кластер — это группа серверов, которой vStack Center управляет как одним ресурсом. Каждый сервер в составе кластера называется узлом: он несёт гипервизор, локальные диски и пулы хранения. Виртуальные машины и виртуальные ЦОД (ВЦОД) живут поверх этой группы, а не поверх конкретного сервера.

У кластера есть собственная витрина параметров — опции. Там лежат имя и идентификатор кластера, площадка и локация, предельные значения для новых объектов (vcpu_max, max_disk_size, max_ram_size, mtu_max), порог заполнения пула (pool_capacity_treshold) и набор признаков включённых возможностей. Опции показываются вместе с составом узлов: это одна витрина состояния кластера.

Кто чем управляет​

vStack Center не трогает узлы напрямую. Команды состава кластера — включить узел, отключить узел, запустить или остановить сервис — уходят в Cluster Manager, компонент vStack OS. Диспетчер кластера обменивается с ним сообщениями по ZeroMQ, а Cluster Manager уже доводит команду до узлов по AMQP. Поэтому недоступность Cluster Manager видна в API отдельным классом ошибок: сам vStack Center жив, а команду доставить некому.

примечание

Cluster Manager и Cluster master — разные вещи. Cluster Manager — это компонент, который управляет узлами. Cluster master — роль доступа №1 с полными правами на кластер. Первое отвечает на вопрос «кто исполняет», второе — «кому разрешено просить».

Часть данных vStack Center собирает не через Cluster Manager. Аппаратный инвентарь, версии пакетов и конфигурационные параметры узлов приезжают от агента узла и хранятся в базе. Фактическое потребление CPU и памяти приходит из InfluxDB. Разные источники ведут себя по-разному, и это заметно на экранах.

Что смотритеОткуда берётсяЧто бывает при сбое источника
Состав узлов, статусы узлов и сервисовCluster Manager по ZeroMQСостояние не показывается вовсе, экран сообщает об ошибке получения статуса
Аппаратный инвентарь, версии ПО, конфигурацияБаза данных, наполняется агентом узлаЗначения показываются, но устаревшие — смотрите колонку Last_seen
Фактическое потребление CPU и RAMInfluxDBПотребление нулевое, ёмкость узла не показывается
Провизионирование (сколько выдано ВМ)База данных vStack CenterСчитается всегда, от метрик не зависит

Практический вывод: «нулевая утилизация» и «нет данных» — разные состояния. Провизионированные значения остаются достоверными даже тогда, когда метрики не собираются.

Два статуса у каждого объекта​

Узел и сервис описываются парой статусов, а не одним. Административный статус — это то, что администратор разрешил. Операционный — то, что происходит на самом деле. Расхождение между ними и есть сигнал: узел выведен из работы намеренно либо отвалился сам.

ПолеОбъектЗначенияСмысл
admin_statusузелONLINE, OFFLINEРазрешён ли узел к работе администратором
oper_statusузелсостояние узлаЧто узел сообщает о себе фактически
enabledузел, сервисtrue, falseКороткая форма административного разрешения
admin_statusсервисSTARTED, STOPPEDЦелевое состояние сервиса
oper_statusсервиссостояние сервисаФактическое состояние сервиса
nodeIdсервисидентификатор узлаУзел, на котором сервис работает

Сервис кластера — это единица, которую Cluster Manager запускает на конкретном узле. К сервисам относятся пулы хранения (имена вида zpool_tank0) и системные службы кластера. У сервиса поэтому две независимые оси: разрешён он или запрещён и запущен он или остановлен. Разрешение не запускает сервис, а запуск не переживёт запрета.

Что видно разным пользователям​

Карта состояния кластера у всех одна, но видно из неё разное — состав зависит от привилегий. Администратор кластера получает полную карту, наблюдатель — ту же карту в режиме «только дашборд», а обычный пользователь — лишь список своих ВЦОД.

ПривилегияЧто видно
View Cluster Status Map (full) (6003)Полная карта: узлы, сервисы, опции кластера
View Cluster Status Map (6000) без 6003Список ВЦОД пользователя и опции; состава кластера нет
View Cluster Status Map (dashboard) (6004) без 6003 и без 6000Тот же состав данных, но помеченный как дашборд — только для просмотра сводки

Привилегии разбираются в таком порядке: 6003, затем 6000, затем 6004. Поэтому у пользователя, совмещающего роли vDC Admin (role_id=2) и Resource Viewer (role_id=5), привилегия 6000 перевешивает 6004. Такой пользователь получает список ВЦОД. Режим дашборда достаётся тому, у кого есть 6004 и нет ни 6003, ни 6000.

Рядом с узлами и сервисами vStack Center показывает состояние управляющей машины: её файловые системы, загрузку процессора и память. Это не узел кластера, а сам control plane — не путайте одно с другим.

Возможности за признаками​

Часть возможностей открыта не всегда. Опции кластера содержат признаки вида feature.*, и возможность, закрытая признаком, при выключенном признаке недоступна — даже роли Cluster master. Сверьтесь с признаком заранее: это дешевле, чем разбирать отказ.

ПризнакЧто открывает
feature.hardware_inventoryАппаратный инвентарь узлов и утилизация ядер по узлам
feature.node_config_managementКонфигурация узлов: просмотр параметров, их изменение, сбор версий ПО
feature.physical_disc_managementРабота с физическими дисками узлов
feature.network_ports_managementПортовые группы узлов

Признак принимает три значения: включён, выключен и не задан. Не заданный признак считайте выключенным.

Где смотреть состояние​

Идите сверху вниз. Экран Overview в разделе Provider Data Center отвечает на вопрос «сколько ёмкости в кластере и сколько занято», а его таб Resources разворачивает ту же картину по узлам. Раздел Server Nodes показывает состав узлов и состояние каждого. Раздел Storage Resources — пулы хранения и узлы, которые их сейчас несут. Ниже всего лежит карточка узла: блоки Software, Hardware, Disks и Perfdata дают версии пакетов, инвентарь, диски и метрики одного узла.

См. также​

Методы API​

Операции этой страницы в API: get-statusmap, cluster-totals, cluster-overview — см. Справочник API.