Как перезагрузить 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-адрес
Набрав эту команду, вы увидите все возможные варианты ее использования. Ниже список команд, которые мне показались полезными:
Иногда сталкиваюсь с тем, что определенная виртуальная машина на хосте 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.
Щёлкните по имени хоста ESXi. Вам нужно разрешить доступ к нему по протоколу SSH. Перейдите в Configure -> Services -> SSH -> Start.
Теперь вы можете подключиться к этому ESXi хосту через SSH с помощью клиента putty.
Выведем список ВМ, запушенных на хосте ESXi:
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 – самый жесткий режим завершения процесса, должен использоваться в последнюю очередь, если ничего другое не помогает.
Попробуем мягко остановить ВМ с указанным ID:
esxcli vm process kill --type=soft -w=25089429
ВМ должна выключиться.
Вы можете остановить зависшую виртуальную машину с помощью PowerCLI (это удобно, т.к. при подключении к vCenter вам не нужно искать хост, на котором запушена ВМ и включать SSH доступ). Проверим, что ВМ запушена:
get-vm “web2" | select name,PowerStates
Принудительно остановите процесс ВМ командой:
stop-vm -kill "web2" -confirm:$false
Также вы можете остановить зависшую виртуальную машину с помощью утилиты ESXTOP.
В SSH сесиии введите команду esxtop, затем нажмите “c” для отображения ресурсов CPU и shift + V, чтобы отображать только процессы вириальных машин
Затем нажмите “f” (выбрать отображаемы поля), “c” (отобразить поле LWID- Leader World Id) и нажмите Enter.
В столбце Name найдите виртуальную машину, которую нужно остановить, и определите номер ее LWID по соответствующему столбцу.
Затем осталось нажать кнопку «k» (kill) и набрать LWID идентфикатор той виртуальной машины, которую нужно принудительно выключить.
Последний способ жёсткого выключения виртуальной машины – воспользоваться утилитой kill. Такой способ позволит остановить не только ВМ, но и все дочерние процессы.
Получим ID родительского процесса ВМ:
kill -9 24288474
После такого “hard reset”, установленная ОС запустится в режиме восстановления. В случае гостевой Windows, скрин будет выглядеть так.
Методы как перезагрузить ESXI хост
Так же как и в статье, о методах перезагрузки Windows, я хочу начать прежде всего с общими концепциями:
- Самый простой метод перезагрузки гипервизора ESXI, это из веб-интерфейса
- Второй метод, использование ssh консоли
- Третий метод, это PowerCli
- Четвертый метод, топорная перезагрузка через консольное меню.
Перезапуск ESXI через веб-интерфейс
Показывать я все буду на своем тестовом ESXI 6.5. Это пожалуй, самый простой вариант, так как он является кросплатформенным и не требующим ничего кроме браузера, а уж он есть почти в любой операционной системе. Все, что вам нужно, это авторизоваться в любом браузере по адресу:
Далее вы щелкаете правым кликом по пункту "Host" и из контекстного меню выбираете пункт "Reboot".
Выскочит предупреждение, что если вы перед этим не перевели сервер в режим обслуживания "Maintenance mode", то виртуальные машины будут выключены принудительно.
Вас разлогинит из web-интерфейса и вы увидите статус "The host is rebooting"
Перезагрузка ESXI через ssh
Данный метод, так же является очень простым, в виде одной команды, но он подойдет не всем, так как ssh на ESXI хосте по умолчанию выключен из соображений безопасности. Активируем Secure Sell на вашем хосте. Далее подключаемся из любого удобного для вас клиента, я использую mRemoteNG, это такой аналог RDCM (remote desktop connection manager), но для SSH.
Далее вы просто вводите команду:
в течении 15-20 секунд ваш хост ESXI будет отправлен в перезагрузку, ssh подключение будет разорвано.
Перезагрузка ESXI через PowerCli
PowerCLi это дополнительные модули PowerShell, для автоматизации различных сценариев в инфраструктуре ESXI. Первое, что вы должны сделать, это подключиться, к вашему серверу или vCenter. Для этого есть команда:
У вас откроется форма аутентификации, вводите свои данные.
Если все хорошо, то вы увидите, что произошло подключение по 443 порту.
Далее нас интересует командлет 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.
Так же вы можете указать конкретный хост для перезагрузки, или несколько через запятую
Дополнительные ключи командлета Restart-VMHost:
- Evacuate - Указывает, что vCenter Server автоматически перерегистрирует виртуальные машины, совместимые для перерегистрации на других хостах кластера. Если они не совместимы, они остаются на перезагруженном хосте. Если есть включенные виртуальные машины, которые нельзя перерегистрировать, операция ожидает, пока они не будут отключены вручную. Параметр Evacuate действителен, только если командлет запущен в системе vCenter Server, а хост находится в кластере с поддержкой DRS.
- RunAsync - Указывает, что команда возвращается немедленно, и не дожидается завершения задачи. В этом режиме вывод командлета является объектом задачи.
- Server - Задает vCenter Server, в котором вы хотите запустить командлет. Если значение этого параметра не задано, команда выполняется на серверах по умолчанию.
Перезагрузка ESXI через System Customization
System Customization - 'это BIOS подобное меню, через которое можно выполнить много задач, одна из таких, это отправление сервера в перезагрузку.
Важно отметить, что данное меню доступно, только при локальном подключении к серверу или через порты управления, например IMM, ILO, IDRACПри подключении нажимаем F12, для попадания в меню управления сервером.
Далее отправляем хост ESXI в перезагрузку, через клавишу F11.
Начинается процесс перезагрузки.
Перезагрузка хоста через 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.
В данной методике останавливать зависшую виртуалку будем с помощью команды esxtop.
В CLI введите команду esxtop, затем нажмите “c” для отображения ресурсов CPU и shift + V , чтобы отображать только процессы вириальных машин
Затем нажмите “f” (выбрать отображаемы поля) и “c” (отобразить поле LWID- Leader World Id) и нажмите Enter.
В столбце 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 и выполнить команды:
Читайте также: