При отказе одного из узлов кластера с подключённым сетевым хранилищем вы можете возобновить работу его виртуальных машин (ВМ) на другом узле с помощью функции аварийного восстановления.

Возможность аварийного восстановления не зависит от настроек отказоустойчивости в кластере.

Обратите внимание!

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

Как восстановить все ВМ на узле


Чтобы выполнить перенос всех ВМ с отказавшего узла, перейдите в Узлы → выберите узел → Аварийное восстановление VMВосстановить. Все ВМ с этого узла будут перенесены на другие узлы кластера. Подробнее о логике выбора узлов см. Выбор узла кластера для ВМ.

Интерфейс аварийного восстановления

Обратите внимание!

После восстановления отказавшего узла очистите его жёсткие диски и заново подготовьте к подключению. Подробнее см. Требования к серверу для кластера. Подключение узла со старой конфигурацией может повредить работе ВМ.

Как восстановить отдельные ВМ


Вы можете перенести отдельные ВМ с отказавшего узла через API-запрос. Для этого:

  1. Если на сервере не установлена утилита curl, установите её: 
    dnf install curl || apt install curl
    BASH
  2. Получите токен авторизации: 

    curl -k -X POST -H "accept: application/json" -H "Content-Type: application/json" 'https://domain.com/api/auth/v4/public/token' -d '{"email": "admin_email", "password": "admin_pass"}'
    CODE

    domain.com — доменное имя или IP-адрес сервера с платформой

    admin_email — email администратора платформы

    admin_pass — пароль администратора платформы

    В ответ придёт сообщение вида:

    Пример ответа в JSON

    {
      "confirmed": true,
      "expires_at": null,
      "id": "6",
      "token": "4-e9726dd9-61d9-2940-add3-914851d2cb8a"
    }
    CODE

    Сохраните полученное значение параметра token — токен авторизации.

  3. Перенесите нужные ВМ, используя полученный id сессии:

    curl --insecure -X POST 'https://domain.com/vm/v3/host/<vm_id>/relocate' -H 'x-xsrf-token: <token>' -d '{"node": <node_id>}'
    CODE

    domain.com — доменное имя сервера с VMmanager

    <vm_id> — id виртуальной машины

    <token> — токен авторизации

    <node_id> — id узла кластера, на который будут перенесены ВМ