База знаний 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. Отключитесь от БД:

    \q
  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