7.4.5 Диагностика ресурсов кластера

Отказоустойчивый кластер, поддерживается в работоспособном состоянии благодаря настройкам менеджера ресурсов. Менеджер контролирует отказы и переводит потоки запросов обслуживания на один из резервных контроллеров.

См.также

Краткое описание отказоустойчивого кластера изложено в документе Руководство архитектора ОП TIONIX.

Сервисы, запускаемые на всех управляющих узлах и используемые одновременно для балансировки и отказоустойчивости:

  • HAProxy;
  • memcached;
  • службы OpenStack и TIONIX.

7.4.5.1 Проверка состояния технологических сервисов

Общее состояние технологических сервисов кластера, управляемого с помощью Pacemaker, проверяется выполнением команды:

pcs status

Команда может быть выполнена на любом из контроллеров (УУ).

Для типовой референсной архитектуры, предусматривающей использование трех контроллеров OpenStack (control*), будет выведена следующая информация:

Cluster name:   <название_кластера>
Stack:          corosync
Current DC:     control3 (version ...) - partition with quorum
Last updated:   <дата_и_время_последнего_обновления>
Last change:    <дата_и_время_последнего_изменения>

3 nodes configured
<NN> resources configured

Online: [ control1 control2 control3 ]

...

Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled

Строка Online: показывает список контроллеров, находящихся в активном статусе.

Проверка кворума осуществляется при помощи утилиты corosync-quorumtool или с помощью команды:

pcs quorum status

Типичный вывод содержит три секции с подробной информацией:

Quorum information
...

Votequorum information
...

Membership information
...

7.4.5.2 Проверка работоспособности Galera

Pacemaker поддерживает работу кластеров Galera и Redis [1].

Примечание.

Системная служба Pacemaker следит за состоянием сервисов, и назначает виртуальные IP-адреса из сетей для публичного доступа, управления и внутреннего обмена соответствующим интерфейсам мастеру кластера.

Приведенные в данном разделе SQL-запросы выполняются с помощью клиента – утилиты mariadb [2]. Данная утилита поставляется в составе одного из пакетов, содержащих ПО СУБД (MariaDb). Подключитесь к УУ и выполните команду:

mariadb --user=<имя_пользователя> --password=<пароль>
или
mariadb -p

Для получения доступа к вводу SQL-команд потребуется ввести имя и пароль (выполнить аутентификацию), указываемых с помощью аргументов --user и password. Для упрощённой аутентификации достаточно указать ключ -p (требование ввода пароля).

Если требуется использовать вход строго с правами суперпользователя, то необходимо сначала уточнить реквизиты, просмотрев файл конфигурации СУБД, затем подключиться, используя ключ -u:

cat /root/.my.cnf

mariadb -u root

Проверка состояния кластера Galera производится выполнением из контроллера OpenStack (любого УУ) SQL-запроса к БД:

SHOW STATUS WHERE Variable_name='wsrep_incoming_addresses';

Ответ должен содержать адреса всех участников кластера.

Рекомендуется выполнить запрос на выборку всех переменных Galera:

SHOW STATUS LIKE 'wsrep_%';

Среди общей выборки переменных следует обратить внимание на значения трёх из них [3]:

Также, возможно выполнение мониторинга дополнительных параметров состояния кластера, с помощью регулярного выполнения следующего SQL-запроса:

SHOW STATUS WHERE Variable_name in ('wsrep_ready', 'wsrep_cluster_status', 'wsrep_connected');

Примечания.

За получением более подробной информации обратитесь к официальной документации OpenStack [4].

Информация о восстановлении работоспособности кластера приведена в разделе Раздел 7.5.2.1.

Проверка текущего статуса кластера может быть также выполнена с помощью скрипта clustercheck.

7.4.5.3 Проверка работоспособности RabbitMQ

Решение общих вопросов касательно ресурсов очереди обмена сообщениями подробно рассмотрено в официальной документации OpenStack [5].

Выполните команду:

# rabbitmqctl cluster_status

Пример вывода команды:

Cluster status of node rabbit@control1 ...
Basics

Cluster name: <название_кластера>

...

Running Nodes

rabbit@control1
rabbit@control2
rabbit@control3

и т.д.

Feature flags

Flag: drop_unroutable_metric, state: disabled
Flag: empty_basic_get_metric, state: disabled
Flag: implicit_default_bindings, state: enabled
Flag: quorum_queue, state: enabled
Flag: virtual_host_metadata, state: enabled

Дополнительно, могут быть использованы команды:

rabbitmqctl list_users

rabbitmqctl list_user_permissions tionix

rabbitmqctl list_user_permissions openstack

rabbitmqctl list_policies

Равно как использовать команду rabbitmqctl, для наблюдения событий (в очередях сообщений) можно подключиться к веб-интерфейсу (Web UI), из среды веб-браузера. Введите в адресной ссылке адрес точки входа в следующем формате:

http://<name control node>:15672

Потребуется ввести реквизиты доступа (логин/пароль).

Примечания.

Дополнительная информация – о восстановлении работоспособности кластера – приведена в разделе Раздел 7.5.2.3.

Сноски

[1]https://galeracluster.com/library/training/tutorials/galera-monitoring.html
[2]https://mariadb.com/kb/en/mysql-command-line-client/
[3]https://galeracluster.com/library/training/tutorials/testing-cluster.html
[4]https://docs.openstack.org/openstack-ansible/queens/admin/maintenance-tasks/galera.html
[5]https://docs.openstack.org/operations-guide/ops-maintenance-rabbitmq.html