Отказоустойчивость кластера — отличительная черта VMmanager версии Cloud. Облачные функции можно включить при наличии как минимум трёх узлов кластера. Однако отказоустойчивость достигается только при четырех и более узлах кластера. Она достигается за счёт компонентов:
- кворум узлов кластера;
- сетевое хранилище виртуальных дисков;
- система диагностики доступности узлов кластера;
- система отказоустойчивости панели управления.
Кворум узлов кластера
Кворум — количество узлов, минимально необходимое для работы кластера VMmanager Cloud. Кворум рассчитывается следующим образом:
кворум = общее количество узлов/2 + 1
Узел считается работоспособным, если он находится в кворуме. Кластер считается работоспособным, если работоспособно хотя бы минимально необходимое для кворума количество узлов. Если узел теряет связь с другими узлами или имеет связь только с частью кластера, находящейся в меньшинстве, он (и вся меньшая часть кластера) отмечаются как находящиеся не в кворуме, а все облачные сервисы на них приостанавливают работу. Например, в кластере 8 серверов, при этом значение кворума равно 5. Это значит, что сервер находится в кворуме, если он помимо себя имеет связь еще с 4-мя или более серверами. Если сервер имеет связь с менее, чем 3 серверами, то считается, что узел кластера не в кворуме. Анализ кворума производит сервис corolistener.
Сетевое хранилище виртуальных дисков
При отказе узла кластера виртуальные машины, работающие на этом узле, восстанавливаются на другом работоспособном узле кластера. Для этого необходимо, чтобы виртуальные диски виртуальных машин были расположены в сетевых хранилищах.
Система диагностики доступности узлов кластера
Система диагностики проверяет доступность узлов кластера и при отказе восстанавливает виртуальные машины на доступных узлах кластера. Подробнее о системе диагностики см. в статье Система диагностики доступности узлов кластера. Узел кластера считается отказавшим и отсоединяется от кластера, если он не отвечает более 1 секунды.
Система отказоустойчивости панели управления
При выходе из строя узла кластера, на котором установлен VMmanager Cloud, панель управления будет автоматически запущена на одном из работоспособных узлов.
Отказоустойчивость VMmanager Cloud достигается за счёт репликации базы данных VMmanager и необходимых файлов. За репликацию файлов VMmanager отвечает задание в cron:
*/5 * * * * /usr/local/mgr5/sbin/cron-vmmgr sbin/nodereplication -c mgrfiles >/dev/null 2>&1
Для синхронизации файлов используется утилита rsync. Файлы синхронизируются на всех узлах кластера.
Для репликации базы данных используется стандартная репликация mysql. Репликация базы данных выполняется на узлы кластера, для которых отмечена роль Репликация mysql в Узлы кластера → Роли.