VMWare ESXi: Перезапуск зависшей виртуальной машины

Иногда сталкиваюсь с тем, что определенная виртуальная машина на хосте VMWare ESXi зависает и ее нельзя никаким средствами выключить или перезагрузить из веб-интерфейса клиента vSphere. Перезагружать целиком ESXi сервер из-за одной виртуальной машины – не совсем целесообразно (особенно, если у вас всего один ESXi хост, или оставшиеся сервера в DRS кластере не потянут дополнительной нагрузки в виде виртуальных машин с перезагружаемого сервера). Рассмотрим основные способы принудительной остановки зависшей виртуальной машины в VMWare ESXi.

Если процесс виртуальной машины на сервере ESXi завис, она перестает реагировать на команды Reset / Power Off, и на любое действие выдает одну из ошибок:

  • The attempted operation cannot be performed in the current state;
  • Another task is already in progress;
  • The virtual machine might be performing concurrent operations. Actions: Complete the concurrent operation and retry the power-off operation. The virtual machine is in an invalid state.

В таких случаях вы можете вручную остановить процесс виртуальной машины на хосте ESXi из командной строки ESXi Shell или PowerCLI.

Сначала определите на каком ESXi хосте запушена зависшая виртуальная машина. Для этого в интерфейсе vSphere Client найдите ВМ. Имя хоста, на котором она запущена, указано на вкладке Summary в секции Related Object -> Host.

vsphere client найти хост, на котором запущена ВМ

Щёлкните по имени хоста ESXi. Вам нужно разрешить доступ к нему по протоколу SSH. Перейдите в Configure -> Services -> SSH -> Start.

ssh запустить на esxi хосте

Теперь вы можете подключиться к этому ESXi хосту через SSH с помощью клиента putty.

Выведем список ВМ, запушенных на хосте ESXi:

esxcli vm process list

esxcli vm process list - список виртуальных машин

Скопируйте идентификатор нужной виртуальной машины (World ID).

Чтобы завершить процесс зависшей виртуальной машинына хосте ESXi используется следующая команда:

esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber

Как вы видите, есть три типа завершения процесса ВМ:

  • Soft – самый безопасный способ завершить VMX процесс (похож на kill -SIGTERM);
  • Hard – немедленное завершение процесса ВМ (kill -9);
  • Force – самый жесткий режим завершения процесса, должен использоваться в последнюю очередь, если ничего другое не помогает.
Убедитесь, что для ВМ нет активных заданий по созданию снапшотов, бэкапов, и подобных операций, а у ВМ нет статуса Virtual Machine disks consolidation is needed. Иначе вы можете сломать свою ВМ и ее придется восставливать из бэкапа.

Попробуем мягко остановить ВМ с указанным ID:

esxcli vm process kill --type=soft -w=25089429

esxcli vm process kill

ВМ должна выключиться.

Вы можете остановить зависшую виртуальную машину с помощью PowerCLI (это удобно, т.к. при подключении к vCenter вам не нужно искать хост, на котором запушена ВМ и включать SSH доступ). Проверим, что ВМ запушена:

get-vm “web2" | select name,PowerStates

PowerCLI get-vm

Принудительно остановите процесс ВМ командой:

stop-vm -kill "web2" -confirm:$false

powercli stop-vm kill перезапуск виртуальной машины

Также вы можете остановить зависшую виртуальную машину с помощью утилиты ESXTOP.

В SSH сесиии введите команду esxtop, затем нажмите “c” для отображения ресурсов CPU и shift + V, чтобы отображать только процессы вириальных машин

esxtop список процессов

Затем нажмите “f” (выбрать отображаемы поля), “c” (отобразить поле LWID- Leader World Id) и нажмите Enter.

esxtop список виртуальных машин

В столбце Name найдите виртуальную машину, которую нужно остановить, и определите номер ее LWID по соответствующему столбцу.

Затем осталось нажать кнопку «k» (kill) и набрать LWID идентфикатор той виртуальной машины, которую нужно принудительно выключить.

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

Получим ID родительского процесса ВМ:

ps | grep "web2"

Завершите процесс:

kill -9 24288474

esxi kill vm process

После такого “hard reset”, установленная ОС запустится в режиме восстановления. В случае гостевой Windows, скрин будет выглядеть так.

Windows Error Recovery


Предыдущая статья Следующая статья


Комментариев: 7 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)