Как остановить зависшую виртуальную машину на 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 с ошибкой:
В этом случае проверьте следующие варианты:
Server 2016 под управлением Hyper-V Застрял в «Завершение работы службы: управление виртуальной машиной Hyper-V»
Когда машина возвращалась, она висела на символе Windows со счетчиком. Я перезапустил снова и столкнулся с несколькими проблемами (такими как ОС, не загружающаяся вообще). Я удалил диск, который (программный) отражал загрузочный диск, из моего массива RAID, и теперь машина показывает некоторые признаки жизни. Он загрузился и выполнил некоторые действия «Работа над обновлениями», но теперь он снова застрял на «Завершение работы службы: управление виртуальной машиной Hyper-V».
Какой мой лучший курс действий здесь? Это просто чтобы оставить его или принудительно перезагрузить?
Оставьте это, и это обычно в конечном счете красиво выключается (могли быть часы).
Я обнаружил, что вижу эту проблему на новых или совершенно новых сборках сервера. Что-то происходит с некоторыми обновлениями Windows, которые выходят из строя, пока система еще не запущена, и возникает такая ситуация. Я видел это на Server 2008, 2012 и теперь 2016 (было бы неплохо иметь «исправление» Microsoft или, по крайней мере, лучшее сообщение «Завершение управления виртуальной машиной, пожалуйста, не выключайте компьютер, это может занять длительное время»). количество времени’.
Я видел, как многие пользователи (включая меня) сталкивались с этой проблемой, если файл подкачки находится на томе, отличном от загрузочного тома виртуальной машины с Windows Server 2016 в качестве операционной системы, работающей на виртуальной машине. Я не уверен, что это согласуется с вашей ситуацией, но если это так, это может быть причиной вашей проблемы.
Для меня исправлением (заполненным собственными проблемами) было перемещение файла подкачки на диск C на виртуальной машине. До этого VM НИКОГДА не мог полностью выключиться. После этого он каждый раз корректно выключался.
Я читал, что для многих людей он мог правильно завершить работу с файлом подкачки на другом томе в первые 1-3 раза, а затем перестал работать. Это, вероятно, верно и в моем случае, но я не помню эту часть с уверенностью.
Исправить зависание виртуальной машины Hyper-V в состоянии остановки
Обновление: Перестаньте получать сообщения об ошибках и замедляйте работу своей системы с помощью нашего инструмента оптимизации. Получите это сейчас на эту ссылку
Например, предположим, что одна из ваших виртуальных машин Hyper-V либо выключена (критическое завершение работы), либо находится в состоянии запуска (запуск x%).
Гостевая операционная система не отвечает, а кнопки «Выключить», «Завершение работы» и «Сброс» в Hyper-V недоступны или при нажатии возвращает следующую ошибку:
Убить виртуальную машину
С помощью kill мы не хотим полностью избавляться от виртуальной машины. Скорее, это означает завершение зависимого процесса виртуальной машины и ее обычный перезапуск. Это довольно простой процесс, когда на главном компьютере работает одна виртуальная машина. Если вы это сделаете, вы можете пропустить некоторые шаги, которые мы перечислим ниже, чтобы найти GUID проблемной виртуальной машины.
Если у вас небольшое количество виртуальных машин:
Если вы используете более одной виртуальной машины.
Теперь мы знаем, какой GUID относится к виртуальной машине, которую мы хотим выключить. Вернитесь в диспетчер задач, щелкните правой кнопкой мыши нужный процесс и остановите процесс.
Ноябрьское обновление 2021:
Эта команда получает список имен виртуальных машин и идентификаторов GUID и сравнивает его со списком идентификаторов GUID в командной строке запущенных процессов. Он возвращает имена виртуальных машин с соответствующим идентификатором процесса (не GUID виртуальной машины).
Загрузите Process Explorer из Microsoft Sysinternals
Экран обозревателя процессов состоит из двух панелей. В верхнем окне всегда отображается список активных в данный момент процессов, включая имена их собственных учетных записей, а информация, отображаемая в нижнем окне, зависит от режима, в котором находится Process Explorer: если он находится в режиме Handle, это означает, что открыт процесс, выбранный в верхнем окне; когда Process Explorer находится в режиме DLL, он отображает библиотеки DLL и файлы карты памяти, загруженные процессом. В Process Explorer также есть мощная функция поиска, которая быстро показывает, какие процессы имеют определенные открытые дескрипторы или загруженные библиотеки DLL.
Уникальные функции Process Explorer делают его полезным для отслеживания проблем с версиями DLL или устранения неполадок, а также для получения обзора Windows и приложений.
Изменить настройки питания
Фактически, настройки питания вашего хост-компьютера Windows также могут влиять на состояние ваших виртуальных машин Hyper-V. Один респондент, столкнувшийся с той же проблемой, сказал, что изменение дисплея таким образом, чтобы он никогда не выключался, решило проблему для них. Так что попробовать стоит. Вот как это делается:
CCNA, веб-разработчик, ПК для устранения неполадок
Я компьютерный энтузиаст и практикующий ИТ-специалист. У меня за плечами многолетний опыт работы в области компьютерного программирования, устранения неисправностей и ремонта оборудования. Я специализируюсь на веб-разработке и дизайне баз данных. У меня также есть сертификат CCNA для проектирования сетей и устранения неполадок.
Виртуальные машины ломаются или слишком долго для завершения процесса завершения работы на компьютере под управлением Windows Server 2012
Симптомы
Рассмотрим следующий сценарий:
Установлена роль сервера Hyper-V на компьютере под управлением Windows Server 2012.
Установка роли узла виртуализации удаленных рабочих столов (узел виртуализации удаленных рабочих Столов) на компьютере.
Создайте один или несколько виртуальных машин на компьютере.
Виртуальные машины настроены на завершение работы при запуске процесса завершения работы компьютера.
Использовать функцию Microsoft RemoteFX для улучшения интерфейса пользователя для виртуальных машин.
При попытке завершить работу компьютера.
В этом случае виртуальные машины сбоя или слишком долго для завершения процесса завершения работы при завершении работы компьютера.
Причина
Эта проблема возникает из-за условия конкуренции при выключении компьютера. Условие состязания возникает между следующих ситуаций:
Когда служба управления виртуальной машины Hyper-V получает уведомление, чтобы остановить службу и начинает завершение работы виртуальных машин.
RemoteFX диспетчер рабочего стола виртуальной графики (Rdvgm.exe) для виртуальной машины заканчивается, когда работник сеанс завершается.
Решение
Это исправление доступно также в
Сведения об исправлении
Существует исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте данное исправление только в тех системах, которые имеют данную проблему.
Если исправление доступно для скачивания, имеется раздел «Пакет исправлений доступен для скачивания» в верхней части этой статьи базы знаний. Если этого раздела нет, отправьте запрос в службу технической поддержки для получения исправления.
Примечание. Если наблюдаются другие проблемы или необходимо устранить неполадки, вам может понадобиться создать отдельный запрос на обслуживание. Стандартная оплата за поддержку будет взиматься только за дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос на обслуживание посетите следующий веб-узел корпорации Майкрософт:
Примечание. В форме «Пакет исправлений доступен для скачивания» отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.
Предварительные условия
Для установки этого исправления необходимо наличие Windows Server 2012.
Сведения о реестре
Для использования исправления из этого пакета нет необходимости вносить изменения в реестр.
Необходимость перезагрузки
После установки исправления компьютер необходимо перезагрузить.
Сведения о замене исправлений
Это исправление не заменяет ранее выпущенные исправления.
Глобальная версия этого исправления устанавливает файлы с атрибутами, указанными в приведенных ниже таблицах. Дата и время для файлов указаны в формате UTC. Дата и время для файлов на локальном компьютере отображаются в местном времени с вашим текущим смещением летнего времени (DST). Кроме того, при выполнении определенных операций с файлами, даты и время могут изменяться.
Примечания к сведениям о файле Windows Server 2012Важно. Исправления для Windows Server 2012 и Windows 8 исправления включены в те же пакеты. Однако только «Windows 8» отображается на странице запрос исправления. Для получения пакета исправлений, который применяется к одной или обеих операционных систем, установите исправления, перечисленные в разделе «Windows 8» на странице. Всегда смотрите раздел «Информация в данной статье относится к следующим продуктам» статьи для определения фактических операционных систем, к которым применяется каждое исправление.
Файлы, относящиеся к определенному продукту, этапу разработки (RTM, SP n) и направлению поддержки (LDR, GDR) можно определить по номерам версий, как показано в следующей таблице.
Файлы МАНИФЕСТА (.manifest) и MUM (.mum), устанавливаемые для каждой среды, указаны отдельно в разделе «Дополнительные сведения о файлах» для системы Windows Server 2012»». Файлы MUM и MANIFEST, а также связанные файлы каталога безопасности (CAT) чрезвычайно важны для поддержания состояния обновленных компонентов. Файлы каталога безопасности, для которых не перечислены атрибуты, подписаны цифровой подписью корпорации Майкрософт.
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе «Относится к».
Дополнительные сведения
Для получения дополнительных сведений о терминологии обновлений программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:
Описание Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт
Сведения о дополнительных файлах для Windows Server 2012
Дополнительные файлы для всех поддерживаемых версий Windows Server 2012 на базе x64
Виртуальная машина Hyper-V зависает со статусом Backing Up
Столкнулся с ситуацией, когда одна из виртуальных машин на сервере Hyper-V зависла со статусом в консоли Hyper-V Manager — Backing up… (как показано на скриншоте). Ни включить, не отключить такую ВМ из консоли Hyper-V Manager при этом невозможно. Самый простой способ победить такую ВМ – перезагрузить хостовую ОС, что не всегда возможно. Я нашел более простой способ.
В том случае, если ВМ зависла в состоянии «backing up…», скорее всего имеется проблема со службой Microsoft Hyper-V VSS Writer на хосте. Откройте командную строку с правами администратора и выполните команду:
vssadmin list writers
Результат должен быть примерно такой, т.е. ошибки VSS должны отсутствовать.
Служба Microsoft Hyper-V VSS Writer работает внутри службы Hyper-V Virtual Machine Management, поэтому для перезапуска устройства VSS и устранения ошибки нам понадобится полностью перезапустить службу Hyper-V Virtual Machine Management. Проще всего это сделать из консоли управления службами services.msc.
Однако в том случае, если служба Hyper-V VSS Writer зависла или не отвечает, придется руками завершить ее процесс (vmms.exe ) из диспетчера задач.
После этого виртуальные машины пропадут из консоли Hyper-V Manager, но появятся снова после запуска службы Hyper-V Virtual Machine Management, а статус backing up… у проблемной ВМ исчезнет.