Периодически могут возникать сбои в работе ВМ, например ВМ может оставаться в промежуточном статусе при загрузке или сохранении из-за сбоя в работе сервера виртуализации или сети. Общее состояние ВМ в случае сбоя будет отображаться как failure (или fail в в выводе команды onevm show) (см. Статусы ВМ). 

Мониторинг состояния ВМ

Чтобы выяснить конкретную причину сбоя, необходимо проверить статус жизненного цикла ВМ (в веб-интерфейсе Текущее состояние ВМ на вкладке Сведения или LCM_STATE в выводе команды onevm show в интерфейсе командной строки)(см. Статусы ВМ). Для расширенного мониторинга состояния ВМ рекомендуется использовать информацию из БД используя графическую утилиту PgAdmin или через интерфейс командной строки:

  1. Войти в БД используя команды PostgreSQL:

    psql -U <имя_пользователя> -h <имя_сервера_виртуализации> -d <обозначение_БД>
    где

    • <имя_пользователя> — имя пользователя БД (имя пользователя и соответствующий ему пароль можно узнать из файла /etc/one/one.d/db.conf);

    • <имя_сервера_виртуализации> — заданное имя сервера виртуализации;

    • <обозначение_БД> – обозначение необходимой БД (по умолчанию используется БД opennebula).

    Для отображения информации о доступных БД без ввода имени пользователя и пароля можно воспользоваться командой:

    sudo -u postgres psql -c "\l"

  2. Вывести содержимое БД командой:

    \dt
    Для возвращения к работе с БД необходимо нажать сочетание клавиш <\+q>.

  3. Вывести информацию о состояниях ВМ командой:

    SELECT oid, state, lcm_state FROM vm_pool;
    где

    • oid —  идентификатор ВМ;

    • state —  статус ВМ;

    • lcm_state — статус жизненного цикла ВМ.

      При создании новых ВМ или образов их идентификатор всегда повышается, но не понижается, для понижения необходимо удалить из БД данные компоненты инфраструктуры.

Пример вывода для БД, в которой ВМ с идентификатором 0 — 6 были удалены, а ВМ с идентификатором 7 запущена и находится в статусе жизненного цикла RUNNING (см. Статусы ВМ):

 oid | state | lcm_state 
-----+-------+-----------
   1 |     6 |         0
   3 |     6 |         0
   0 |     6 |         0
   7 |     3 |         3
   2 |     6 |         0
   4 |     6 |         0
   5 |     6 |         0
   6 |     6 |         0
CODE

Восстановление ВМ

ПК СВ позволяет принудительно выполнить действие по восстановлению ВМ с помощью веб-интерфейса или через интерфейс командной строки с помощью команды onevm recover. Эта команда имеет следующие параметры:

Команда в веб-интерфейсеПараметр onevm recoverОписание
повторить--retryповторяет ранее неудавшееся действие. Команду можно использовать, например, если ВМ находится в статусе boot_failure из-за сбоя в работе на сервере виртуализации. ПК СВ повторит загрузку ВМ после повторного запуска сервера виртуализации.
успешно--success

подтверждает операцию как успешную. Например, ВМ работает должным образом на сервере виртуализации, но драйвер не передал в ПК СВ информацию об успешной загрузке.

не выполнено--failure

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

удалить--delete

удаляет ВМ, когда восстановление ВМ невозможно.

удалить и создать повторно--recreate

удаляет и создает ВМ заново, когда восстановление ВМ невозможно.

удалить базу данных

--delete-db

удаляет ВМ из БД, когда восстановление ВМ невозможно. Команда не запускает никаких дополнительных действий на сервере виртуализации.

При использовании веб-интерфейса для восстановления ВМ необходимо выполнить действия, описанные ниже:

  1. На странице ВМ нажать кнопку управления восстановлением:
  2. В выпадающем списке команд выбрать Восстановить:

  3. Откроется окно Восстановить, в котором можно выбрать необходимую команду для восстановления ВМ: