Как перезагрузить vmware esxi

Обновлено: 02.07.2024

Справочный список полезных консольных команд VMWare ESXi (в том числе ESXCLI), которые часто используется при траблшутинге и тонкой настройке гипервизора. По мере необходимости список команд будет расширяться и обновляется.

Доступные команды консоли ESXi можно посмотреть в каталоге /usr/sbin.

Совет . Обратите внимание, что все команды esxi регистрозависимы.

Полный список команд esxcli можно вывести с помощью команды:

esxcli esxcli command list

Для начала команды ESXi, которые вы можете выполнять через ssh доступ.

  • reboot — перезагрузить хост
  • poweroff — выключить хост
  • esxcli system version get — узнать версию (номер) инсталлированной версии VMware ESXi
  • uname -a — так же узнать версию VMware ESXi
  • vmware –vl – и еще один способ узнать версию и релиз VMware ESXi
  • esxcli hardware pci list | more — полная информация об установленных PCI устройствах
  • lspci — краткая информация обо всех установленных PCI устройствах
  • esxtop — диспетчер процессов top для vmware esxi (быстрые клавиши для переключения дисплея: c:cpu, i:interrupt, m:memory, n:network, d:disk adapter, u:disk device, v:disk VM,p:power mgmt)
  • vmkerrcode -l — расшифровка кодов ошибок
  • esxcfg-nics -l — информация о сетевых картах
  • esxcfg-vswitch -l — информация о виртуальных коммутаторах
  • find . -name libstorelib.so — найти файл libstorelib.so

Команды для работы с виртуальными машинами:

  • vim-cmd vmsvc/getallvms — вывод информации обо всех VM
  • vim-cmd vmsvc/power.getstate 1 — включена/выключена VM с Vmid 1
  • vim-cmd vmsvc/power.on 1 — включить VM с Vmid 1
  • vim-cmd vmsvc/power.off 1 — выключить (по питанию) VM с Vmid 1
  • vim-cmd vmsvc/power.reset 1 — перезагрузка (аналогично нажатию клавиши RESET на реальном сервере) VM с Vmid 1
  • vim-cmd vmsvc/power.shutdown 1 — корректное выключение VM с Vmid 1. Действует только, если установлены VMware Tools!
  • vim-cmd vmsvc/power.reboot 1 — перезагрузка VM с Vmid 1. Действует только, если установлены VMware Tools!
  • vim-cmd vmsvc/get.summary 1 — получение полной информации о VM с Vmid 1.
  • vim-cmd vmsvc/get.summary 1 | egrep ‘(name|power|ip)’ — получение отфильтрованной информации о VM с Vmid 1. Выводится имя, состояние питания, IP-адрес

Набрав эту команду, вы увидите все возможные варианты ее использования. Ниже список команд, которые мне показались полезными:

date

09.10.2019

directory

VMWare

comments

комментариев 7

Иногда сталкиваюсь с тем, что определенная виртуальная машина на хосте 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 родительского процесса ВМ:

kill -9 24288474

esxi kill vm process

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

Методы как перезагрузить ESXI хост

Так же как и в статье, о методах перезагрузки Windows, я хочу начать прежде всего с общими концепциями:

  • Самый простой метод перезагрузки гипервизора ESXI, это из веб-интерфейса
  • Второй метод, использование ssh консоли
  • Третий метод, это PowerCli
  • Четвертый метод, топорная перезагрузка через консольное меню.

Перезапуск ESXI через веб-интерфейс

Показывать я все буду на своем тестовом ESXI 6.5. Это пожалуй, самый простой вариант, так как он является кросплатформенным и не требующим ничего кроме браузера, а уж он есть почти в любой операционной системе. Все, что вам нужно, это авторизоваться в любом браузере по адресу:

Далее вы щелкаете правым кликом по пункту "Host" и из контекстного меню выбираете пункт "Reboot".

перезагрузка esxi через web-интерфейс

Выскочит предупреждение, что если вы перед этим не перевели сервер в режим обслуживания "Maintenance mode", то виртуальные машины будут выключены принудительно.

Предупреждение о перезагрузке ESXI хоста

Вас разлогинит из web-интерфейса и вы увидите статус "The host is rebooting"

esxi the host is rebooting

Перезагрузка ESXI через ssh

Данный метод, так же является очень простым, в виде одной команды, но он подойдет не всем, так как ssh на ESXI хосте по умолчанию выключен из соображений безопасности. Активируем Secure Sell на вашем хосте. Далее подключаемся из любого удобного для вас клиента, я использую mRemoteNG, это такой аналог RDCM (remote desktop connection manager), но для SSH.

Далее вы просто вводите команду:

в течении 15-20 секунд ваш хост ESXI будет отправлен в перезагрузку, ssh подключение будет разорвано.

перезагрузка esxi через ssh

Перезагрузка ESXI через PowerCli

PowerCLi это дополнительные модули PowerShell, для автоматизации различных сценариев в инфраструктуре ESXI. Первое, что вы должны сделать, это подключиться, к вашему серверу или vCenter. Для этого есть команда:

У вас откроется форма аутентификации, вводите свои данные.

Подключение к ESXI через PowerCli

Если все хорошо, то вы увидите, что произошло подключение по 443 порту.

успешное подключение к серверу ESXI через PowerCli

Далее нас интересует командлет Restart-VMHost, именно он отвечает за перезагрузку сервера ESXI. Вводим:

Подтверждаем свои действия. Хочу отметить, что если ваш хост не находится в режиме обслуживания, то вы получите ошибку:

Restart-VMHost : 09.05.2020 0:10:18 Restart-VMHost You cannot perform this operation in the current state. Use Force parameter to force reboot operation.

Если все же нужно перезагрузить хост, который не находится в режиме обслуживания, то добавьте ключ -Force.

Перезагрузка ESXI через PowerCli

Так же вы можете указать конкретный хост для перезагрузки, или несколько через запятую

Restart-VMHost примеры команд

Дополнительные ключи командлета Restart-VMHost:

  • Evacuate - Указывает, что vCenter Server автоматически перерегистрирует виртуальные машины, совместимые для перерегистрации на других хостах кластера. Если они не совместимы, они остаются на перезагруженном хосте. Если есть включенные виртуальные машины, которые нельзя перерегистрировать, операция ожидает, пока они не будут отключены вручную. Параметр Evacuate действителен, только если командлет запущен в системе vCenter Server, а хост находится в кластере с поддержкой DRS.
  • RunAsync - Указывает, что команда возвращается немедленно, и не дожидается завершения задачи. В этом режиме вывод командлета является объектом задачи.
  • Server - Задает vCenter Server, в котором вы хотите запустить командлет. Если значение этого параметра не задано, команда выполняется на серверах по умолчанию.

Перезагрузка ESXI через System Customization

System Customization - 'это BIOS подобное меню, через которое можно выполнить много задач, одна из таких, это отправление сервера в перезагрузку.

Важно отметить, что данное меню доступно, только при локальном подключении к серверу или через порты управления, например IMM, ILO, IDRAC

При подключении нажимаем F12, для попадания в меню управления сервером.

Как перезагрузить ESXI хост

Далее отправляем хост ESXI в перезагрузку, через клавишу F11.

Отправка ESXI в перезагрузку

Начинается процесс перезагрузки.

Перезагрузка ESXI через System Customization

Перезагрузка хоста через vCenter

Если у вас есть vCenter сервер, то перезапустить хост ESXI можно и через него, для этого выберите нужный хост, откройте его контекстное меню и выберите пункт "Power - Reboot".

При работе с виртуальными машинами VMWare vSphere иногда случается так, что виртуальная машина зависает и ее нельзя никаким средствами перезагрузить с помощью интерфейса клиента vSphere. В этих случаях единственный способ отключения и перезагрузки виртуальной машины – перезагрузка всего сервера ESXi, что не всегда возможно, особенно если ESXi один, или оставшиеся машины DRS кластера не потянут дополнительной нагрузки в виде виртуальных машин с перезагружаемого сервера. В таких случаях можно вручную остановить зависшую виртуальную машины с помощью CLI. Эту операцию можно выполнить несколькими способами (vCLI, PowerCLI и т.д), я покажу как это сделать через консоль SSH.

Вначале на сервере ESXi 5 нужно активировать протокол SSH. Это можно сделать из графического интерфейса клиента vSphere, для чего выберите нужный хост (сервер ESXi) -> Configuration-> Security profile -> Properties -> SSH->Start, после чего нужно подключиться к серверу ESXi 5 по SSH.

Активируем SSH в ESXi5

В данной методике останавливать зависшую виртуалку будем с помощью команды esxtop.

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

Команда esxtop в esxi

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

esxi5 поле LWID

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

Затем осталось нажать кнопку «k» (kill) и набрать LWID номер той машины, которую нужно аварийно отключить. После такого “hard reset”, установленная ОС система запустится в режиме аварийной перезагрузки. В случае гостевой Windows, скрин будет выглядеть так.

понедельник, 18 сентября 2017 г.

Перезапуск Management agents в ESXi и терпение

Бывает такое, что ESXi отключается от vCenter, но виртуальные машины, запущенные на нем, продолжают работать, это означает, что проблема в сервисах гипервизора, отвечающих за коммуникацию с vCenter'ом (Troubleshooting an ESXi/ESX host in non responding state).



При этом по умолчанию SSH на ESXi хостах выключен. И соответственно остается только DCUI - радуемся, что у нас есть iDRAC, iLO, etc. или бежим к серверу.

Ну и здесь все не без проблем. Нажав F2 в DCUI и введя пароль нас ожидает новая проблема, ничего дальше не происходит, окошко логина висит, а в меню мы попасть не можем. Тут нам поможет только терпение, в таком состоянии логин может идти несколько минут, а бывает, что и 15-20 минут. Ждем.
Дождавшись входа на нужно найти пункт меню Troubleshooting Options и выбрать Restart Management Agents:


К сожалению, это не всегда помогает, иногда нужно подключится по SSH, почитать логи и выполнить какие-нибудь команды. Проще простого.
Для это нам нужно включить SSH через DCUI, выбираем пункт меню Troubleshooting Options и Enable SSH. Вот здесь нас снова ожидает большой сюрприз, DCUI перестает реагировать на клавиатуру. Это может продолжаться полчаса, а может и несколько часов. Терпение, ждем и SSH включен. Дело за малым, подключиться по SSH и выполнить команды:

Читайте также: