Управление виртуальными машинами hyper v остановка
Как остановить зависшую виртуальную машину на Hyper-V?
Если ваша виртуальная машина, запущенная на хосте Hyper-V зависла по каким-то причинам, перестала отвечать, и не реагирует на кнопки включения, выключения, перезагрузки в консоли Hyper-V, единственный быстрый способ принудительно остановить такую машину — завершить процесс этой ВМ в хостовой ОС. Покажем, как принудительно перезагрузить ВМ в Hyper-V на Windows Server 2016/2019 без перезагрузки всего сервера и запущенных ВМ (если у вас нет HA кластера Hyper-V и Live-Migration).
Виртуальная машина Hyper-V зависла в статусе Stopping, Starting
Итак, предположим, что одна из ВМ на Hyper-V зависла в состоянии Stopping (Stopping-Critical)/ Starting (Starting 10%).
Гостевая ОС перестала отвечать, а кнопки “Turn Off”,” Shut Down” и” Reset” в консоли Hyper-V Manager стали недоступны либо при нажатии возвращают ошибку:
Итак, предположим, что одна из ВМ на Hyper-V зависла, гостевая ОС перестала отвечать, а кнопки «Turn Off», «Shut Down» и «Reset» в консоли Hyper-V Manager стали недоступны либо при нажатии возвращают ошибку:
Ошибка Hyper-V: Connecting to Virtual Machine Management service
Если ваш Hyper-V не отображает виртуальные машины в консоли Hyper-V Manager, возвращая ошибку «Connecting to Virtual Machine Management service«, вам нужно перезапустить процесс vmms.exe (Hyper-V Virtual Machine Management service). Это безопасная операция и не прервет работу запушенных виртуальных машин. Проще всего перезапустить процесс vmms.exe через службу vmms и через консоль services.msc или командой:
Завершение процесса зависшей ВМ с помощью Task Manager
Единственный способ принудительно выключить/ перезапустить такую зависшую виртуальную машину без перезагрузки всего хостового сервера Hyper-V – завершить ее рабочий процесс на гостевой ОС. Все ВМ на хосте Hyper-V запускаются с помощью процесса vmwp.exe (Virtual Machine Worker Process). Для поиска процесса нужно узнать GUID виртуальной машины.
Определить GUID ВМ можно через консоль управления Hyper—V Manager. Откройте настройки сервера (Hyper—V Settings). В разделе Server указано каталог, в котором хранятся конфигурационные файлов ВМ (в нашем примере D:\VMStore).
Откройте этот каталог в File Explorer и найдите каталог с именем зависшей виртуальной машины. Скопируйте GUID, который указан в имени конфигурационного файла ВМ с расширением *.vmcx.
Теперь нужно запустить диспетчер задач (Task Manager) и перейти на вкладку Details. Все виртуальные машины запускаются в рамках собственного экземпляра процесса vmwp.exe. Чтобы определить какой процесс за какую ВМ отвечает, нам нужен полученный ранее GUID зависшей ВМ. Найдите процесс vmwp.exe, у которого в столбце User name указан GUID вашей ВМ. Завершите данный процесс (End Task).
Виртуальная машина будет принудительно остановлена. Теперь вы сможете делать с ней все что угодно.
Сбросить зависшую ВМ на Hyper-V VM с помощью PowerShell
Гораздо проще найти и завершить процесс зависшей виртуальной машины с помощью PowerShell. Запустите консоль PowerShell с правами администратора (учетная запись должна состоять в локальной группе Hyper-V administrators).
В этом случае также нужно завершить процесс ВМ по ее ID. Можно получить GUID ВМ с по ее имени. Например, для ВМ с именем SVM-GUARDEDHOST1, выполните команду:
$VMGUID = (Get-VM «SVM-GUARDEDHOST1»).ID
Если вы не хотите набирать полное имя ВМ, можете вывести список всех ВМ, зарегистрированных на данном хосте Hyper-V:
Get-VM | Select Name, Id
Скопируйте GUID нужной ВМ из полученного списка.
Теперь нужно найди идентификатор процесса (PID) ‘vmwp.exe’ для вашего VMGUID:
Затем с помощью команды Stop-Process нужно принудительно завершить этот процесс:
Stop-Process ($VMWMProc.ProcessId) –Force
Вот так несложно можно принудительно завершить рабочий процесс подвисшей виртуальной машины Hyper-V.
Hyper-V: Не удалось изменить состояние виртуальной машины
Иногда бывает, что даже после завершения зависшего процесса вы не можете включить ВМ и она зависает в статусе Starting с ошибкой:
В этом случае проверьте следующие варианты:
Как исправить зависание виртуальной машины Hyper-V в состоянии остановки
Использование виртуальных машин в последнее время резко возросло. Это естественно, если принять во внимание их преимущества. Hyper-V — это собственное программное обеспечение для виртуализации Windows, которое позволяет создавать виртуальные машины в вашей системе Windows. Хотя он не предоставляет столько функций по сравнению с VMware или VirtualBox, он по-прежнему используется довольно часто. Как и у любого другого программного обеспечения, у него есть свои проблемы. Одна из проблем, с которой часто сталкиваются различные пользователи, — это застревание виртуальной машины в состоянии остановки.
Когда это происходит, виртуальная машина отказывается останавливаться, и, следовательно, ее нельзя запустить, чего вы не хотите. Это может произойти по ряду причин, которые мы упомянем ниже. Однако прежде чем мы начнем, важно упомянуть, что иногда проблема просто вызвана устаревшим хост-компьютером Windows. Поэтому, прежде чем начать работу с этой статьей, убедитесь, что вы установили все доступные обновления Windows. С учетом сказанного, давайте начнем.
Теперь, когда мы закончили с возможными причинами проблемы, давайте начнем с методов, с помощью которых вы можете снова восстановить свою виртуальную машину.
Убивая, мы не имеем в виду полностью избавиться от виртуальной машины. Скорее, это означает завершение процесса зависшей виртуальной машины, чтобы вы могли снова запустить ее в обычном режиме. Это довольно простой процесс, если у вас есть одна виртуальная машина, работающая на хост-машине. Если вы это сделаете, вы можете пропустить некоторые из шагов, которые мы собираемся перечислить ниже, которые помогают найти GUID проблемной виртуальной машины.
Для этого следуйте инструкциям ниже:
Метод 2: изменить параметры питания
Как оказалось, параметры питания вашей хост-машины с Windows также могут влиять на состояние ваших виртуальных машин Hyper-V. Один из столкнувшихся с той же проблемой сказал, что изменение дисплея, чтобы никогда не выключаться, решило проблему для них. Таким образом, выстрел стоит того. Вот как это сделать:
Метод 3: отключить RRAS
Неправильно настроенная служба удаленного доступа также может стать причиной проблемы. Как мы уже упоминали ранее, ваш сетевой интерфейс может нарушать работу службы, что приводит к зависанию виртуальной машины. Таким образом, простой способ исправить это — отключить службу маршрутизации и удаленного доступа. Вот как это сделать:
Метод 4: перезагрузите хост-машину
В большинстве случаев проблему как таковую можно легко решить, просто повторно разместив хост-машину. После перезагрузки хост-машины виртуальная машина очистится и запустится нормально. Кроме того, убедитесь, что ваша система обновлена, поскольку проблема также может быть вызвана ошибкой Windows, которая часто исправляется в последующих обновлениях.
Как выключить виртуализацию Hyper-V Windows 10
В диспетчере Hyper-V предоставлены средства и сведения, которые можно использовать для управления сервером виртуализации. Технология виртуализации позволяет на одном физическом компьютере создавать несколько виртуальных машин и параллельно работать с ними. Некоторые приложения, помимо самого компонента Hyper-V, также могут использовать технологию виртуализации.
Данная статья расскажет как выключить виртуализацию Hyper-V Windows 10. Так как этот функционал необходим далеко не всем, но он присутствует. Хотя по умолчанию на оригинальной сборке операционной системы Windows 10 компонент Hyper-V отключен. Поэтому ранее мы уже рассматривали как включить Hyper-V в Windows 10.
Как выключить и удалить виртуальную машину Hyper-V
Для управления виртуальными машинами рекомендуется использовать диспетчер виртуальных машин Hyper-V. Диспетчер Hyper-V позволяет создавать и настраивать работу виртуальных машин. Поэтому перед отключением Hyper-V в Windows 10 необходимо сначала остановить работу ранее созданных виртуальных машин.
Первым делом заходим в Диспетчера Hyper-V и в разделе виртуальные машины нажимаем правой кнопкой мышки на запущенную новую виртуальную машину и в контекстном меню выбираем пункт Выключить…
Только после этого можно удалить все отключенные виртуальные машины выбрав соответственный пункт в контекстном меню. В принципе настроенные виртуальные машины можно оставить, но они будут занимать некоторое пространство на Вашем жестком диске. Смотрите также другие способы как очистить диск С от ненужных файлов в Windows 10.
Служба управления виртуальными машинами Hyper-V
Дальше остановим службу управления виртуальными машинами и зависимые от неё службы. Остановив эту службу Вы не сможете управлять средой виртуализации, в том числе и своими виртуальными машинами.
Как отключить Hyper-V в Windows 10
Программы и компоненты
Теперь переходим к процессу отключения Hyper-V в Windows 10 как компонента операционной системы. Помимо отключения виртуализации Hyper-V смотрите также где находятся другие компоненты в Windows 10.
Windows PowerShell
С помощью оболочки Windows PowerShell можно не только включать и отключать компоненты системы, а и удалять стандартные приложения Windows 10.
Командная строка
Отключить Hyper-V в Windows 10 можно используя средства обслуживания образов развертывания и управления ими. Управление средством обслуживания образов развертывания происходит с помощью командной строки. Смотрите также другие способы запуска командной строки в Windows 10.
Выключить виртуализацию Hyper-V в Windows 10 возможность есть, поскольку по умолчанию компонент Hyper-V отключен и виртуализация не используется. А также возможность одновременно использовать несколько виртуальных машин нужна далеко не многим пользователям. Поэтому мы рассмотрели как отключить службу управления виртуальными машинами, потом уже и сам компонент Hyper-V.
Предотвращение приостановки работы виртуальной машины
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016
Свойство | Сведения |
---|---|
Операционная система | Windows Server 2016 |
Продукт или компонент | Hyper-V |
Уровень серьезности | Предупреждение |
Категория | Конфигурация |
В следующих разделах курсив указывает текст пользовательского Интерфейса, который отображается в анализатор соответствия рекомендациям для этой проблемы.
Проблема
Этот сервер имеет одну или несколько виртуальных машин в приостановленном состоянии.
Влияние
В зависимости от объема доступной памяти может оказаться невозможным запуск дополнительных виртуальных машин.
Приостановленные виртуальные машины не освобождают выделенную память. Это означает, что память недоступна для запуска других виртуальных машин.
Решение
Если это сделано намеренно, дальнейшие действия не требуются. В противном случае попробуйте возобновить работу этих виртуальных машин или выключить их.
Возобновление работы виртуальной машины с помощью диспетчера Hyper-V
Откройте диспетчер Hyper-V. (В меню сервис Диспетчер сервера выберите пункт Диспетчер Hyper-V.)
В списке виртуальные машины найдите виртуальные машины с состоянием приостановлено.
Состояние » приостановлено — критическое » возникает, когда на физическом хранилище для этой виртуальной машины остается очень мало свободного места. Прежде чем попытаться возобновить работу виртуальной машины в этом состоянии, освободите место в физическом хранилище.
Щелкните правой кнопкой мыши имя каждой виртуальной машины и выберите пункт возобновить. После этого виртуальная машина возобновит работу. После этого, если вы хотите завершить работу виртуальной машины, щелкните ее правой кнопкой мыши и выберите пункт Завершение работы.
использование Windows PowerShell для возобновления работы виртуальной машины
Это можно сделать в одной команде, используя фильтрацию и конвейер после того, как вы получите все виртуальные машины на узле. Тип:
Stop-VM
Shuts down, turns off, or saves a virtual machine.
Syntax
Description
The Stop-VM cmdlet shuts down, turns off, or saves a virtual machine.
Examples
Example 1
Shuts down virtual machine TestVM through the guest operating system.
Example 2
Shuts down virtual machine TestVM through the guest operating system, regardless of any unsaved application data. Hyper-V gives the guest five minutes to save data, then forces a shutdown. This shutdown can result in loss of unsaved data.
Example 3
Turns off virtual machine TestVM. This operation is equivalent to disconnecting the power from the virtual machine, and can result in loss of unsaved data.
Parameters
Runs the cmdlet as a background job.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.
Type: | CimSession [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies one or more Hyper-V hosts on which a virtual machine is to be shut down. NetBIOS names, IP addresses, and fully qualified domain names are allowable. The default is the local computer. Use localhost or a dot (.) to specify the local computer explicitly.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies one or more user accounts that have permission to perform this action. The default is the current user.
Type: | PSCredential [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies that the shutdown of the virtual machine is to be forced. If the virtual machine has applications with unsaved data, the virtual machine has five minutes to save data and shut down. If the virtual machine is locked, it is shut down immediately.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the name of the virtual machine to be shut down.
Type: | String [ ] |
Aliases: | VMName |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies that a Microsoft.HyperV.PowerShell.VirtualMachine object is to be passed through to the pipeline representing the virtual machine to be shut down.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies that the virtual machine is to be saved.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies that the virtual machine is to be turned off.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the virtual machine to be shut down.
Type: | VirtualMachine [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Outputs
None
Microsoft.HyperV.PowerShell.VirtualMachine
If -PassThru is specified.