Как отключить виртуальную машину vmware

Обновлено: 07.07.2024

Постановка задачи

В моей инфраструктуре есть система управления виртуализацией VMware vSphere 7 и кластер построенный на базе ESXI 6.5. Недавно я создавал новую отказоустойчивую терминальную ферму HA RDS на базе Windows Server 2016, состоящую из 50 виртуальных машин. RDS ферма работает без проблем и нареканий, поэтому старые виртуальные сервера от фермы на базе Windows Server 2012 R2 я могу смело удалять, но я хочу их удалить разными методами, чтобы напомнить что-то себе и научить чему-то вас.

Удаление виртуальной машины через vSphare или ESXI интерфейс

Данный метод по удалению виртуальной машины со всеми файлами является самым простым. Его суть заключается в том, что вы будите использовать веб-интерфейс вашего гипервизора. В vCenter переходите в раздел "Hosts and Clusters" и среди списка серверов находите нужный в моем примере, это будет виртуальная машина term82. Щелкаем по нему правым кликом мыши и из контекстного меню выберите пункт "Delete from disk"

Давайте я вам опишу чем отличается пункт "Delete from disk" и "Remove from Inventory":

  • Delete from disk - Полностью удаляет всю виртуальную машину со всеми файлами с ваших датасторов, без возможности ее восстановления штатными средствами
  • Remove from Inventory - Удаляет виртуальную машину из видимости "Hosts and Clusters", но сами файлы виртуальной машины будут все еще лежать на вашем датасторе, это используют например при переносе виртуальных машин между серверами vCenter, где файлы сервера просто добавляются в Inventory.

Как удалить виртуальную машину через vSphere

Пункт "Remove from Inventory" вы можете использовать еще при глюке, когда виртуальная машина в списке доступных имеет статус Invalid (Unknown)

Вас еще раз предупредят, что файлы виртуального сервера будут уничтожены, вам нужно подтвердить действие.

Подтверждение удаления виртуальной машины ESXI

То же самое вы можете выполнить и на самом веб-интерфейсе отдельного ESXI хоста. Находите нужную виртуальную машину и так же через контекстное меню вы выбираете пункт "Delete", это более понятная формулировка, чем в vSphere.

Удаление виртуальной машины через ESXI

Тут так же нужно подтвердить свое действие по удалению.

Удаление VM в ESXI

Как удалить виртуальную машину через PowerCLI

Чем плохи графические методы, это отсутствием автоматизации и невозможностью массового удаления виртуальных машин. Предположим, что вам нужно бахнуть 50 серверов, сколько времени вы потратите на это и графики, а если вообще нужно выполнить удаленно. Поэтому вы должны использовать оболочку PowerCLI. Он устанавливается в систему отдельно, как это сделать я рассказывал вот тут.

Подключаемся к нашему vCenter серверу или ESXI хосту. Для этого введите в оболочке команду:

Как подключиться к vCenter через PowerCLI

Далее есть такой командлет Get-VM, который может вам показать наличие нужных виртуальных машин. Мои виртуальные машины все называются term70-80. Зная это я могу вывести полный список.

Получаем список виртуальных машин для удаления

Далее для удаления виртуальной машины есть командлет Remove-VM со своими ключами:

  • VM - Задает виртуальные машины, которые вы хотите удалить.
  • Confirm - Если значение равно $true, это означает, что командлет запрашивает подтверждение перед запуском. Если значение равно $false, командлет запускается без запроса подтверждения пользователя.
  • DeletePermanently - Указывает, что вы хотите удалить виртуальные машины не только из инвентаря, но и из хранилища данных.
    RunAsync - Указывает, что команда немедленно возвращается, не дожидаясь завершения задачи. В этом режиме выходом командлета является объект Task. Для получения дополнительных сведений о параметре RunAsync запустите «help About_RunAsync» в консоли VMware PowerCLI.
  • Server - Указывает сервер vCenter Server, на котором вы хотите запустить командлет. Если этому параметру не задано значение, команда выполняется на серверах по умолчанию.
  • WhatIf - Указывает, что командлет запускается только для отображения изменений, которые будут внесены, и на самом деле никакие объекты не изменяются.

Давайте теперь для примера удалим виртуальную машину term79, для этого введите:

У вас появится подтверждение на удаление, говорим "Y".

Использование Remove-VM

Отмена регистрации виртуальной машины

Файлы сервера все также продолжают лежать на датасторе.

Список файлов виртуальной машины

Давайте теперь используем ключ -DeletePermanently, это позволит полностью с датасторов удалить виртуальный сервер.

Remove-VM -VM term79 -DeletePermanently

У вас выскочит подтверждение ваших действия, если нажмете "Y", то файлы VM будут полностью удалены.

Полное удаление файлов виртуальной машины с гипервизора ESXI

Если не хотите видеть подтверждения, то воспользуемся ключом -Confirm:$false

Remove-VM -VM term79 -DeletePermanently -Confirm:$false

Убираем подтверждение на удаление в PowerCLI

В веб интерфейсе вы увидите задание по удалению сервера.

Delete virtual machine ESXI

Как массово удалить виртуальную машину через PowerCLI

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

Удостоверимся, что в нее попадают наши два виртуальных сервера и произведем удаление $VMs.

Как видим при удалении переменной $VMs, у нас идет запрос на удаление двух виртуальных серверов, term72 и term73.

Как массово удалить виртуальную машину через PowerCLI

То же самое можно сделать имя файл со списком серверов, который так же помещается в переменную. Вам нужно заранее подготовить обычный txt файл, где каждый сервер будет находится на новой строке. Далее есть такой командлет Get-Content. Пишем:

Проверяем, что в переменную $VMs попали сервера из файла.

Далее выполняем команду по удалению виртуалок.

После выполнения команды, если вывести запрос по поиску всех серверов с именем term*, то мы ничего не обнаруживаем.

Удаление списка виртуальных машин через powercli

Если в этот момент посмотреть vCenter, то тут вы увидите массовые задания по удалению.

Список заданий по удалению в vcenter

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

$VMs = (Get-Content servers.txt)
$vmObj = Get-vm $vms

foreach($delete in $vmObj) Remove-VM -VM $delete -DeleteFromDisk -Confirm:$false -RunAsync | Out-Null>


Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type. ADobrynin
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Добрый день. Существует 100% виртуальная инфраструктура, постоенная на vCenter 5.1. Есть порядка 16 ВМ в продакшене, включая контроллеры домена. Вопрос заключается в том как правильно погасить всю инфраструктуру и соответственно после проведения профилактических работ всё запустить? Подскажите каков порядок.

VMadmin4eg
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Выключается приблизительно так:

служебные серверы (резервного копирования, мониторинга и т.п.)

апликейшен серверы (1с, терминальные, VDI и т.п.)

серверы баз данных

серверы печати и файловые серверы

виртуальные хосты - ESXi (при этом выключается сам vCenter)

сетевое оборудование (ethernet, FC и т.п.)

Sladky
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

В целом подпишусь

ADobrynin
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

А не будет ли каких-либо проблем с авторизацией при настроенной SSO? Ведь контроллеры выключаются раньше, чем vCenter? Опять же выключениие (включение) vCenter надо настроить на како-либо хосте в автоматическом режиме, правильно? Может и контроллеры настроить на автоматическое отключение (включениие)?

Sladky
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Кстати, тут вопрос тот еще

Я бы контроллеры домена выключал самыми последними.

1. Может отвалиться авторизация. Она кэшируется и проблем быть не должно, но всё же.

2. На 100% отвалтся DNS , а по имени vCenter знает хосты. Которые точно отвалятся (этого не будет, если они зацеплены по IP, либо если записи прописаны в файлик hosts на вЦентре).

Как бы сделал я:

2. мигрировать машинки таким образом, чтобы на одном хосте оказался как минимум один контроллер домена (со службой DNS), вЦентр

3. настроить правильное выключение и включение вЦентра и контроллера домена. Сначала выключаем вЦентр, потом контроллер домена. Включаем сначала контроллер домена, потом вЦентр (учитываем. что контроллер долго стартует).

Если требуется отключить доступ насовсем (и удалить GUI службы VMware Web Access), то: 2.1 Выполните Start > Programs > Administrative Tools > Services, затем остановите службу VMware VirtualCenter Management Webservices service.

Как выйти из виртуальной машины VMware?

Чтобы выйти из полноэкранного режима, нажмите одновременно клавиши [Ctrl]-[Alt].

Как правильно выключить виртуальную машину?

Чтобы закрыть виртуальную машину, в окне виртуальной машины нажмите кнопку X, расположенную в верхнем правом углу, либо выберите команду Закрыть в меню Действие.

Как выключить виртуальную машину Hyper V?

Единственный способ принудительно выключить/ перезапустить такую зависшую виртуальную машину без перезагрузки всего хостового сервера Hyper-V – завершить ее рабочий процесс на гостевой ОС. Все ВМ на хосте Hyper-V запускаются с помощью процесса vmwp.exe (Virtual Machine Worker Process).

Как переключаться между виртуальной машиной?

Как выйти из полноэкранного режима в виртуальной машине?

Самый простой способ переключиться из полноэкранного режима в оконный — при запущенной игре воспользоваться сочетанием клавиш Alt + Enter. В качестве альтернативы могут быть использованы комбинации Ctrl + F для ОС Windows или Command + M для MacOS.

Как выйти из виртуальной машины VirtualBox?

Поэтому, находясь в масштабном или полноэкранном режиме внутри VirtualBox, установленного в Windows, необходимо Право Ctrl + C комбинация клавиш для выхода из режима масштабирования. Это просто активирует ваши вкладки VirtualBox вверху, откуда вы можете изменить настройки в соответствии с вашими требованиями.

Как вернуть мышь в виртуальной машине?

Когда ввод с клавиатуры и мыши сфокусирован в окне виртуальной машины, вы не можете перемещать курсор за его пределы, и все нажатия клавиш обрабатываются только в пределах виртуальной машины. Чтобы освободить ввод с клавиатуры и мыши, нажмите Ctrl+Alt. Ввод с клавиатуры и мыши будет немедленно освобожден.

Как выключить виртуальную машину Parallels Desktop?

Как запустить службу Hyper V?

Как перезапустить виртуальную машину?

Чтобы перезапустить одну виртуальную машину, выберите машину → нажмите значок → выберите пункт Перезапустить. Чтобы выполнить это действие с несколькими виртуальными машинами, выделите нужные в списке → нажмите кнопку Перезапустить в нижней части экрана.

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, скрин будет выглядеть так.

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