Управление общим состоянием KeyStack¶
Состав платформы¶
В состав платформы входят следующие подсистемы:
Подсистема вычислительных ресурсов — обеспечивает виртуализацию вычислительных ресурсов и управление ими;
Подсистема хранения данных — обеспечивает управление ресурсами хранения;
Подсистема передачи данных — обеспечивает реализацию и управление виртуальной сетевой инфраструктурой;
Подсистема мониторинга — обеспечивает сбор метрик с ресурсов платформы, мониторинг платформы и её сервисов;
Подсистема оркестрации — обеспечивает возможность автоматизированного управления ресурсами виртуальной инфраструктуры платформы.
Подготовка к работе¶
Подключение ко всем интерфейсам управления KeyStack описано в разделе Подключение к интерфейсам управления KeyStack.
Системный администратор использует в работе следующие интерфейсы платформы:
Основным рабочим веб-интерфейсом является Портал администратора.
Помимо веб-интерфейса, в работе используется OpenStack CLI.
Запуск платформы¶
Почти все сервисы платформы — stateless, или имеют внутренние механизмы failover, прихода к консенсусу в кластере. Но есть сервис, на который надо обратить особое внимание — Galera Cluster. Поэтому в пункте Выключение всех компонентов платформы важно делать паузы перед выключением следующего узла — это минимизирует до определенной степени шанс получить с «несобранным» кластером Galera Cluster с MariaDB после включения.
Порядок включения серверов платформы в общем случае выглядит так:
Включите по очереди управляющие узлы с паузами в 5-10 минут после загрузки Linux. При этом крайне желательно после загрузки сервера (в данном примере controller1) выполнить проверку статуса MariaDB.
Пример:
# ssh controller1 # mysql -uroot -pPassW0rd -s -s --execute="SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';" # wsrep_local_state_comment Synced
Если в течение 5 минут статус не перейдет в Synced, все равно продолжайте с запуском остальных управляющих узлов. Когда узлы будут запущены, и позже будут запущены контейнеры consul-server, произойдет автоматический ребутстрап кластера MariaDB.
Включите вычислительные узлы.
Выполните проверку всех узлов с помощью инструкций, приведенных в разделе failover-service-check-order.
Оповестите владельцев вычислительных нагрузок о возможности запуска их нагрузок в облаке — либо самостоятельно включите инстансы в зависимости от технического регламента.
Выключение всех компонентов платформы¶
Для отключения платформы и её компонентов с сохранением данных выполните следующие шаги:
Оповестите владельцев виртуальных машин о предстоящем отключении.
Выключите сервис DRS, деактивировав задание в панели администратора.
Выключите сервис HA, последовательно подключившись к каждому контроллеру и введя команду
systemctl stop kolla-consul-container.service.Зайдите на LCM-узел по SSH.
Зафиксируйте состояние виртуальных машин на момент выключения региона, введя команду:
$ openstack server list --all-projects > VMs.$(date "+%Y-%m-%d-%H-%M-%S").txt
Выключите виртуальные машины средствами OpenStack, введя команду:
$ openstack server list --all-projects -c ID -f value | \ $ xargs -n1 openstack server stop
Проверьте выключение всех виртуальных машин командой:
$ openstack server list --all-projects -c ID -c Status -f value | \ $ grep -v Active
Примечание
Если проверка покажет наличие виртуальных машин в статусе
ACTIVE, то повторите выключение каждой такой виртуальной машины индивидуально, введя командуopenstack server stop <VM ID>, подставив в качествеVM IDзначение из столбца ID предыдущего вывода.Выключите узлы-гипервизоры средствами операционной системы:
# for HOST in $(openstack hypervisor list -c "Hypervisor Hostname" -f value);\ do \ ssh -x ${HOST} "shutdown -h now";\ done
Выключите узлы слоя управления Control-узлы средствами операционной системы, с паузами достаточными для полного выключения сервера (время зависит от используемого аппаратного комплекса), проверяя процесс выключения и состояние серверов через IPMI:
ssh -x ctl3 ‘shutdown -h now’ # пауза до полного выключения ssh -x ctl2 ‘shutdown -h now’ # пауза до полного выключения ssh -x ctl1 ‘shutdown -h now’ # пауза до полного выключения
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий региона project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
В открывшемся окне добавьте параметр
KOLLA_ANSIBLE_DEPLOY_ACTION–mariadb_recovery.Запустите пайплайн, нажав кнопку New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
После выполнения этих шагов регион платформы будет полностью выключен.