База знаний VMmanager
Ваш фидбек — возможность улучшений!
Примите участие в опросе и внесите свой вклад в развитие экосистемы ISPsystem
Пройти опрос

Как отключить отказоустойчивость

Статья содержит инструкцию по ручному отключению отказоустойчивости (HA). Это может потребоваться, например, при повреждении хранилища кластера, когда отключение отказоустойчивости стандартным способом через веб-интерфейс не работает.

Вмешательство в базу данных предполагает потенциальный риск. Мы не рекомендуем вносить ручные правки в базу, поскольку это может нарушить корректную работу платформы.

Перед внесением изменений в БД создайте резервную копию платформы. 

Чтобы отключить отказоустойчивость:

  1. Подключитесь к серверу с платформой по SSH.
  2. Подключитесь к БД:

    В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:

    • VMmanager Hosting — MySQL;
    • VMmanager Infrastructure:
      • для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
      • в остальных случаях — MySQL.

    Чтобы определить тип СУБД, выполните на сервере с платформой команду: 

    docker ps --filter name=pgsql
    Пример ответа
    CONTAINER ID   IMAGE         COMMAND                  CREATED      STATUS      PORTS      NAMES
    3213c5dc94d0   postgres:12   "docker-entrypoint.s…"   5 days ago   Up 4 days   5432/tcp   pgsql

    Если вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.

     
    MySQL
    docker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
    PostgreSQL
    docker exec -it pgsql bash -c "psql -d isp"
  3. Получите ID узлов кластера:

    select n.id as node_id,n.name as node_name from vm_node n left join vm_cluster v on n.cluster=v.id where v.ha_enabled=1 and v.id=<ID кластера>;
  4. Отключите признак активности HA:

    update vm_cluster set ha_enabled=false where id=<ID кластера>;
  5. Отключитесь от БД:

    \quit
  6. Подключитесь к контейнеру vm_box:

    docker exec -it vm_box bash
  7. Отключите службы HA-agent и corosync на узлах. Поочерёдно выполните указанные команды для каждого узла:

    vssh <ID узла> 'systemctl stop ha-agent && systemctl disable ha-agent'
    
    vssh <ID узла> 'systemctl stop corosync && systemctl disable corosync'
    Пояснения
  8. Проверьте статусы ВМ на узлах с помощью утилиты virsh. Убедитесь, что одна и та же ВМ не запущена одновременно на двух узлах:

    virsh list --all
Дата последнего обновления статьи: 04.02.2025. Статья подготовлена техническими писателями ISPsystem.