Бывает такая ситуация, когда в VMware vSphere Client виртуальная машина на ESXi не подчиняется командам Shut Down / Power Off и остается "зависшей", чтобы вы с ней не делали. Ниже описаны те же три способа "убить" непокорную виртуальную машину, но только уже на VMware ESXi.

1. Поскольку сервисной консоли в VMware ESXi формально нет, мы можем использовать специальное средство удаленного управления VMware vSphere CLI, которое позволяет получить доступ к интерфейсам ESXi из командной строки. Его можно установить как фреймворк для Windows и Linux и управлять ESXi через сценарии, а можно использовать уже готовую виртуальную машину с этим интерфейсом, которая называется vSphere vMA. Раньше этот продукт назывался VIMA.

После того как поставите vMA, наберите следующую команду для вывода списка виртуальных машин на хосте VMware ESXi с путями к файлам конфигурации:

vmware-cmd.pl -H <ESXi host name> -l

Затем наберите следующую команду в консоли vMA для вывода состояния виртуальной машины с указанным путем к vmx-файлу на хосте ESXi:

vmware-cmd.pl -H <ESXi host name> <VM config file path & name> getstate

Далее наберите следующую команду, чтобы остановить виртуальную машину:

vmware-cmd.pl -H <ESXi host name> <VM config file path & name> stop hard

Проверяем статус виртуальной машины предыдущей командой, и, если не помогло, переходим к следующему способу.

2. На самом деле, как многие знают, подобие сервисной консоли на BusyBox в VMware ESXi все-таки есть. Поэтому входим в нее вот таким способом:

  • В консоли хоста VMware ESXi нажмите ALT-F1
  • Напечатайте unsupported (текста видно не будет), вы войдете в режим Tech Support Mode и появится запрос пароля. Введите пароль пользователя root
  • Появится приглашение ко вводу ~#.

Теперь выполняем следующую команду:

vm-support -x

для получения списка виртуальных машин и их идентификаторов (VMID). После чего выключаем виртуальную машину с заданным идентификатором следующей командой (будет создан дамп с отладочной информацией в своп-разделе ESXi, с помощью параметра -w <vmfs volume path> можно задать VMFS-том и папку, куда будет положен дамп):

vm-support -X <VMID>

Затем снова проверяем состояние виртуальной машины командой: vm-support -x

Для выхода из режима обслуживания напечатайте "exit" и нажмите Alt-F2.

3. Если и это не помогло, тогда надо напрямую пытаться убить процесс, который реализует виртуальную машину на ESXi. Для этого снова заходим в "сервисную консоль" как в предыдущем пункте и вводим команду:

ps -g | grep <virtualmachinename>

далее ищем идентификатор группы процесса (process group ID, PGID), который находится в четвертой колонке результатов вывода. Далее убиваем процессы с виртуальной машиной командой:

kill -9 <PGID>

опять-таки, проверяем состояние ВМ, которая должна быть уже выключена, командой vm-support -X.

   
© 2023 systemadmins.ru All Rights Reserved