Hyper v сбросить виртуальную машину
Restart-VM
Restarts a virtual machine.
Syntax
Description
The Restart-VM cmdlet restarts a virtual machine. Running this cmdlet results in a «hard» restart, like powering the machine down, then back up again. This can result in data loss in the virtual machine.
Examples
Example 1
Performs a hard restart of virtual machine Win7. This is equivalent to turning off the power to the virtual machine and then restarting it.
Parameters
Specifies that the cmdlet is to be run as a background job.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Type: | String [ ] |
Position: | Named |
Default value: | . |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies that no prompt for confirmation is to appear before the virtual machine is restarted.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the name of the virtual machine to be restarted.
Type: | String [ ] |
Aliases: | VMName |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies that an object is to be passed through to the pipeline representing the virtual machine to be restarted.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the virtual machine to be restarted.
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.
Виртуальная машина 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… у проблемной ВМ исчезнет.
Управление Hyper-V VPS
При создании виртуальной машины ее состояние всегда устанавливается как «Выполняется». Однако если виртуальная машина находится в состоянии «Остановлена» или «Приостановлена», ее можно запустить. Выберите нужную виртуальную машину для запуска. На панели команд нажмите кнопку «Старт».
С помощью команды завершения можно выполнить правильное завершение работы виртуальной машины.
ПОДКЛЮЧЕНИЕ К RDP КОНСОЛИ
При подключении к виртуальной машине с помощью рабочего стола создается соединение по протоколу RDP.
Для набора комбинации клавиш Ctrl+Alt+Del используйте соответствующие клавиши на клавиатуре.
ПОДКЛЮЧЕНИЕ ЧЕРЕЗ ТЕРМИНАЛ
Для подключения через терминал в Личном кабинете необходимо перейти на вкладку терминал в разделе «Доступ».
Войдите в Личный кабинет. Если логин cXXXX и пароль доступа к Личному кабинету утеряны, то для восстановления реквизитов доступа Вы можете воспользоваться ссылкой «Напомнить».
Перейдите в раздел: Заявки и распоряжения → VPS → Создать VPS → Перейдите на вкладку Hyper-V
Войдите в Личный кабинет. Если логин cXXXX и пароль доступа к Личному кабинету утеряны, то для восстановления реквизитов доступа Вы можете воспользоваться ссылкой «Напомнить».
Перейдите в раздел: VPS хостинг → Виртуальная машина vmXXXX → Нажмите на знак меню → Удалить VM
Внимание! Пересоздание сервера приведет к удалению всех данных на сервере. Дополнительные IP-адреса, если они добавлялись, также будут удалены из конфигурации операционной системы. Сервер будет пересоздан с базовым размером раздела на диске. Если добавлялась дополнительная квота, то потребуется повторное увеличение раздела на диске.
Войдите в Личный кабинет. Если логин cXXXX и пароль доступа к Личному кабинету утеряны, то для восстановления реквизитов доступа Вы можете воспользоваться ссылкой «Напомнить».
Перейдите в раздел: VPS хостинг → Виртуальная машина vmXXXX → Нажмите на знак меню → Пересоздать
Внимание! При изменении лимитов CPU, RAM, HDD сервер будет автоматически перезагружен!
Войдите в Личный кабинет. Если логин cXXXX и пароль доступа к Личному кабинету утеряны, то для восстановления реквизитов доступа Вы можете воспользоваться ссылкой «Напомнить».
Перейдите в раздел: VPS хостинг → Виртуальная машина vmXXXX → Актуальные лимиты → Изменить
В этом блоке Вам доступен интерфейс для управления квотами ресурсов сервера. Используйте стрелки для увеличения или уменьшения значения соответствующего ресурса.
Обратите внимание, что увеличение дисковой квоты HDD не изменяет размер разделов на Вашем виртуальном сервере.Администратору сервера потребуется изменить размер логического диска самостоятельно или воспользоваться нашей инструкцией.
Адрес сервера: cXXXX.dsk.masterhost.ru, где cXXXX – Ваш клиентский номер. Посмотреть эти данные можно в разделе «Список ISO-образов», нажав на «загрузка ISO – образа».
Если пароль панели управления виртуальным сервером утерян, Вы можете изменить его в Личном кабинете: VPS хостинг → Виртуальная машина vmXXXX → Сменить пароль
Часто задаваемые вопросы по Hyper-V
Внимание! Для сброса пароля требуется перезагрузка виртуальной машины.
Войдите в Личный кабинет в раздел «VPS Хостинг» – далее выберите необходимую виртуальную машину из списка.
Следующим шагом необходимо подключиться к терминалу VM. Выберите удобный способ в разделе «Доступ», например, «ТЕРМИНАЛ» или через «Файл RDP».
Вернитесь на вкладку с Панелью управления в Личном кабинете для перезагрузки виртуальной машины и сразу откройте вкладку с терминалом.
Нажмите на любую клавишу, как только увидите меню GRUB (программа загрузчика операционной системы), и выберите пункт меню ‘ *Advanced options for Ubuntu‘.
На новой странице меню, не нажимая клавишу Enter, переместите курсор на пункт (recovery mode) и нажмите клавишу ‘ e‘ для редактирования сценария загрузчика.
В открывшемся редакторе, с помощью стрелок на клавиатуре переместите указатель в конец строки, начинающейся с
и удалите подстроку
ro recovery nomodeset
Вместо, только что удаленного текста, добавьте
Нажмите комбинацию клавиш CTRL+x для продолжения загрузки. Если все предыдущие шаги были выполнены правильно, через некоторое время Вы увидите приглашение командной строки Bash.
Последним шагом, с помощью команды
введите два раза новый пароль пользователя root и перезагрузите виртуальную машину командой `reboot`, или через Панель управления в Личном кабинете
Внимание! Для сброса пароля требуется перезагрузка виртуальной машины.
Войдите в Личный кабинет в раздел «VPS Хостинг» – далее выберите необходимую виртуальную машину из списка.
Следующим шагом необходимо подключиться к терминалу VM. Выберите удобный способ в разделе «Доступ», например, «ТЕРМИНАЛ» или через «Файл RDP».
Вернитесь на вкладку с Панелью управления в Личном кабинете для перезагрузки виртуальной машины и сразу откройте вкладку с терминалом.
Нажмите клавишу ‘ e‘ для редактирования сценария загрузчика. В открывшемся редакторе, с помощью стрелок на клавиатуре переместите указатель в конец строки отмеченной на скриншоте.
Добавьте следующие параметры в конец строки
Должна получиться строка, как показано на скриншоте.
Нажмите комбинацию клавиш CTRL+x или F10 для продолжения загрузки. Если все предыдущие шаги были выполнены правильно, через некоторое время Вы увидите приглашение командной строки Bash.
Последним шагом, с помощью команды
введите два раза новый пароль пользователя root и перезагрузите виртуальную машину командой `reboot`, или через Панель управления в Личном кабинете
Внимание! Для сброса пароля требуется перезагрузка виртуальной машины.
Войдите в Личный кабинет в раздел «VPS Хостинг» – далее выберите необходимую виртуальную машину из списка.
Следующим шагом необходимо подключиться к терминалу VM. Выберите удобный способ в разделе «Доступ», например, «ТЕРМИНАЛ» или через «Файл RDP».
Вернитесь на вкладку с Панелью управления в Личном кабинете для перезагрузки виртуальной машины и сразу откройте вкладку с терминалом.
Нажмите клавишу ‘ e‘ и выберите пункт меню
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_root-lv_
Нажмите еще раз клавишу ‘ e‘
Нажмите комбинацию клавишу ‘ Enter‘ и ‘ b‘ для продолжения загрузки. Если все предыдущие шаги были выполнены правильно, через некоторое время Вы увидите приглашение командной строки Bash.
Последним шагом, с помощью команды
введите два раза новый пароль пользователя root и перезагрузите виртуальную машину командой `reboot`, или через Панель управления в Личном кабинете
Внимание! Для сброса пароля требуется перезагрузка виртуальной машины.
Войдите в Личный кабинет в раздел «VPS Хостинг» – далее выберите необходимую виртуальную машину из списка.
Следующим шагом необходимо подключиться к терминалу VM. Выберите удобный способ в разделе «Доступ», например, «ТЕРМИНАЛ» или через «Файл RDP».
Вернитесь на вкладку с Панелью управления в Личном кабинете для перезагрузки виртуальной машины и сразу откройте вкладку с терминалом.
Нажмите клавишу ‘ e‘ и в открывшемся редакторе с помощью стрелок на клавиатуре переместите указатель на строку, начинающуюся с
Найдите в строке слово ‘ ro‘
Удалите слово ‘ ro‘ и вместо него напишите
Нажмите комбинацию клавиш ‘ Ctrl‘ + ‘ x‘ для продолжения загрузки. Если все предыдущие шаги были выполнены правильно, через некоторое время Вы увидите приглашение командной строки Bash.
Затем введите команды
введите два раза новый пароль пользователя root и в случае успешной смены пароля Вы увидите сообщение
все данные аутентификации успешно обновлены
Теперь запустите следующую команду, чтобы автоматически переразметить файловую систему для SELinux.
Затем запустите команду exit, чтобы выйти из оболочки командной строки, и запустите команду reboot, чтобы перезагрузить систему.
или перезагрузите виртуальную машину через Панель управления в Личном кабинете
Если при подключении к удаленному рабочему столу формируются следующие ошибки:
Для подключения к виртуальному серверу также можно воспользоваться Личным кабинетом.
В некоторых случаях, при создании или изменении конфигурации пула управления сервером (Bitrix Pool Configuration manager) могут сбиться сетевые настройки в файле /etc/sysconfig/network. В результате чего после первой перезагрузки сервер будет недоступен по сети.
Для восстановления доступа:
Подключитесь к терминалу сервера, используя RDP-Консоль, как написано в нашей инструкции.
Воспользуйтесь любимым текстовым редактором (vim, nano) и откройте файл
Укажите следующие параметры для восстановления настроек gateway и сохраните файл.
IP-адрес шлюза совпадает с IP-адресом Вашего сервера, но в последнем октете нужно заменить цифры на 1.
Например, если IP-адрес сервера 90.156.143. 78, то адрес шлюза должен быть 90.156.143. 1
Маска подсети (netmask): 255.255.255.0
DNS-серверы: 217.16.16.12, 217.16.20.12, 217.16.22.12
Перезагрузите сеть командой
или перезагрузите виртуальную машину
В появившемся окне выберите «Нет»
Для подключения автоматического обновления пакетов безопасности ОС требуется выполнить следующие команды:
В появившемся окне выберите «Да
Обратите внимание, что после включения автоматически будет выполняться перезапуск сервисов, библиотеки которых были затронуты при обновлении.
Как исправить зависание виртуальной машины Hyper-V в состоянии остановки
Использование виртуальных машин в последнее время резко возросло. Это естественно, если принять во внимание их преимущества. Hyper-V — это собственное программное обеспечение для виртуализации Windows, которое позволяет создавать виртуальные машины в вашей системе Windows. Хотя он не предоставляет столько функций по сравнению с VMware или VirtualBox, он по-прежнему используется довольно часто. Как и у любого другого программного обеспечения, у него есть свои проблемы. Одна из проблем, с которой часто сталкиваются различные пользователи, — это застревание виртуальной машины в состоянии остановки.
Когда это происходит, виртуальная машина отказывается останавливаться, и, следовательно, ее нельзя запустить, чего вы не хотите. Это может произойти по ряду причин, которые мы упомянем ниже. Однако прежде чем мы начнем, важно упомянуть, что иногда проблема просто вызвана устаревшим хост-компьютером Windows. Поэтому, прежде чем начать работу с этой статьей, убедитесь, что вы установили все доступные обновления Windows. С учетом сказанного, давайте начнем.
Теперь, когда мы закончили с возможными причинами проблемы, давайте начнем с методов, с помощью которых вы можете снова восстановить свою виртуальную машину.
Убивая, мы не имеем в виду полностью избавиться от виртуальной машины. Скорее, это означает завершение процесса зависшей виртуальной машины, чтобы вы могли снова запустить ее в обычном режиме. Это довольно простой процесс, если у вас есть одна виртуальная машина, работающая на хост-машине. Если вы это сделаете, вы можете пропустить некоторые из шагов, которые мы собираемся перечислить ниже, которые помогают найти GUID проблемной виртуальной машины.
Для этого следуйте инструкциям ниже:
Метод 2: изменить параметры питания
Как оказалось, параметры питания вашей хост-машины с Windows также могут влиять на состояние ваших виртуальных машин Hyper-V. Один из столкнувшихся с той же проблемой сказал, что изменение дисплея, чтобы никогда не выключаться, решило проблему для них. Таким образом, выстрел стоит того. Вот как это сделать:
Метод 3: отключить RRAS
Неправильно настроенная служба удаленного доступа также может стать причиной проблемы. Как мы уже упоминали ранее, ваш сетевой интерфейс может нарушать работу службы, что приводит к зависанию виртуальной машины. Таким образом, простой способ исправить это — отключить службу маршрутизации и удаленного доступа. Вот как это сделать:
Метод 4: перезагрузите хост-машину
В большинстве случаев проблему как таковую можно легко решить, просто повторно разместив хост-машину. После перезагрузки хост-машины виртуальная машина очистится и запустится нормально. Кроме того, убедитесь, что ваша система обновлена, поскольку проблема также может быть вызвана ошибкой Windows, которая часто исправляется в последующих обновлениях.
Как остановить зависшую виртуальную машину на 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 застревают в сохраненном состоянии. Это происходит в различных сценариях, например, когда вы выключаете виртуальные машины; одна из виртуальных машин может оставаться в сохраненном состоянии, если у вас несколько запущенных. Кроме того, при перезагрузке хост-сервера некоторые виртуальные машины переходят в сохраненное состояние. Теперь, как правило, это не проблема, если виртуальные машины снова включаются в обычном режиме, когда им приказывают сделать это. Однако этого не происходит, и вы остаетесь с виртуальной машиной, которая застряла в сохраненном состоянии.
Hyper-V часто использует сохраненное состояние как метод резервного копирования по умолчанию. Возможно, виртуальная машина застряла при выполнении резервного копирования. Причин, из-за которых это вызвано, не так много, но мы составили список возможных причин, в зависимости от вашего сценария, которые могут вызвать это. Это следующие.
С учетом вышесказанного, теперь мы можем перейти к возможным решениям, которые помогут решить вашу проблему. Итак, приступим.
Метод 1: удалить сохраненное состояние
Первое, что вам нужно сделать в случае зависания сохраненных состояний, — это удалить сохраненное состояние и затем запустить виртуальную машину. Удаление сохраненных состояний не приведет к потере данных, так что вам не о чем беспокоиться. На самом деле он ведет себя так, как будто вы внезапно потеряли питание, и вы сможете сразу загрузиться. Удаление сохраненного состояния настолько просто, насколько это возможно. Следуйте инструкциям ниже, чтобы удалить сохраненное состояние:
Метод 2: проверьте физические диски
Если описанный выше метод не работает за вас, проблема может быть связана с отказом физических дисков. Если вы недавно установили USB-устройство или изменили физические диски виртуальных машин, было бы полезно проверить, не подключены ли физические диски неправильно. Более простой способ убедиться, что все диски работают и перечислены только те диски, которые в данный момент подключены, — это перейти в окно настроек виртуальной машины. Для этого следуйте приведенным ниже инструкциям:
Метод 3: изменить права доступа к папке
Оказывается, иногда проблему можно решить, изменив права доступа к папке на виртуальной машине. Об этом сообщил пользователь, который однажды сам столкнулся с этой проблемой. Если описанные выше методы не решают проблему, вы можете перейти в папку, в которой находится ваша виртуальная машина. Оттуда вам нужно будет изменить разрешение на Все.
Для этого следуйте инструкциям ниже:
Метод 4: удалить виртуальную машину
Если ни одно из вышеперечисленных решений не сработало для вас, единственный оставшийся у вас вариант — удалить виртуальную машину, а затем создать новую. Тем не менее, мы позаботимся о том, чтобы вы не потеряли никаких данных, поэтому это не будет просто избавление от виртуальной машины с данными. Для этого вам нужно сначала скопировать VHD-файл виртуальной машины и где-нибудь сохранить. Давайте рассмотрим всю процедуру поэтапно, чтобы ее было легче выполнить.
Как остановить зависшую виртуальную машину на 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 виртуальные машины, восстановленные в новой Hyper-V хост-машине, не будут запускаться.
Применяется к: Windows Server 2012 R2
Исходный номер КБ: 2502233
Симптомы
Если приложение резервного копирования, используемая для восстановления Hyper-V виртуальной машины, восстанавливает виртуальную машину на новую Hyper-V хост-машину, то виртуальная машина может не запуститься.
Причина
Отказ запуска виртуальной машины после успешного восстановления может быть вызван следующими сбоями:
Имя сетевого адаптера не соответствует новому хосту
Существует конфликт в сохраненных данных состояния из исходного хоста и нового хоста относительно конфигурации машины (например, состояния видео).
Решение
Откройте консоль Hyper-V управления.
Откройте виртуальный сетевой менеджер, который можно найти в правой области.
Переименуй сетевой адаптер в то же имя, что и имя, используемую в новом хосте.
Попытка запуска виртуальной машины. Если оно не начнется, удалите сохраненные файлы состояния для этой виртуальной машины правой кнопкой мыши на виртуальной машине и выберите элемент меню Delete Saved State.
Теперь виртуальная машина должна начать работу.
Дополнительная информация
Это поведение ожидается и по дизайну. Шаг 4 в разделе Разрешение позволит устранить вторую причину, указанную в разделе Причина, удалив сохраненные данные состояния, которые позволяют машине сбросить состояние видео.
Hyper-V в Windows 8.1 (часть 4)
Итак, представляю вашему вниманию четвертую, завершающую часть статьи о Hyper-V в Windows 8.1. Сегодня мы рассмотрим основные действия, которые можно производить с виртуальными машинами — включение, остановка, сохранение, перенос и прочие издевательства. При написании статьи ни одна виртуальная машина не пострадала 🙂
Управление ВМ
Первое, что нам надо сделать — это включить виртуальную машину, для чего выделяем ее и затем в поле «Действия» жмем «Пуск».
Текущее состояние виртуальных машин отображается в основном окне диспетчера, в столбце «Состояние». Для управления состоянием ВМ воспользуемся соответствующими пунктами в поле «Действия». С их помощью мы можем производить следующие действия с ВМ:
• Выключить (Turn off) — означает выключение виртуальной машины, аналогичное выключению питания у компьютера;
• Завершение работы (Shut down) — штатное завершение работы операционной системы и выключение виртуальной машины. Для завершения работы необходимы сервисы интеграции, установленные в гостевой ОС;
• Сохранить (Save) — полностью сохраняет состояние виртуальной машины. Содержимое памяти ВМ выгружается на жесткий диск, после чего машина переходит в сохраненное состояние. При выходе из сохраненного состояния машина начинает работать ровно с того места, на котором была остановлена. По сути сохранение является аналогом гибернации в физическом компьютере;
• Приостановить (Pause) — все операции виртуальной машины приостанавливаются. В отличии от сохранения, содержимое памяти ВМ не выгружается на диск, а остается в оперативной памяти, что позволяет моментально возобновить работу в случае необходимости;
• Сбросить (Reset) — сбрасывает текущее состояние и возвращает ВМ на этап загрузки. Этот пункт предназначен на случай аварии и может потребоваться в том случае, если машина была некорректно выключена\сохранена и не может выйти из этого состояния.
Примечание. Здесь стоит упомянуть, что одним из немногих отличий клиентского Hyper-V от серверного является возможность использовать режим сна\гибернации внутри виртуальной машины.
Не забываем о PowerShell. Посмотреть состояние виртуальных машин можно командлетом Get-VM. Запущенный без параметров, он выведет состояние и основные параметры всех ВМ на хосте. Вывести состояние конкретной ВМ в более менее удобочитаемом виде можно такой командой:
А для вывода всех имеющихся характеристик ВМ можно сделать так:
Выключение виртуальной машины осуществляется командлетом Stop-VM с различными ключами. Например, для завершения работы операционной системы ВМ WKS81 воспользуемся командой:
С помощью ключа Force мы принудительно завершим работу ВМ, не смотря на незавершенные процессы:
Для выключения питания используем ключ TurnOff, и ключ Save для сохранение состояния ВМ:
Ну а для включения или восстановления состояния используется командлет Start-VM:
Контрольные точки
Контрольные точки (Checkpoint) позволяют сделать моментальный снимок виртуальной машины, сохранив ее состояние на определенный момент времени. Работа чекпойнтов основана на разностных виртуальных дисках, принцип такой: при создании чекпойнта создается новый разностный диск и все последующие изменения пишутся уже в него, а родительский диск остается неизменным. При создании следующего чекпойнта создается еще один разностный диск, а текущий диск становится по отношению к нему родительским. Таким образом можно создавать неограниченное количество контрольных точек, а получившаяся конструкция называется деревом чекпойнтов.
Для создания чекпойнта достаточно выбрать виртуальную машину и в поле «Действия» нажать пункт «Контрольная точка». Все имеющиеся у машины контрольные точки отображаются в одноименном поле в виде дерева.
Выбрав чекпойнт, мы можем произвести с ним следующие операции:
• Применить — возврат состояния ВМ на заданную точку, при этом все изменения, произведенные с момента ее создания, будут потеряны;
• Удалить контрольную точку — удаление чекпойнта. При этом происходит объединение разностного диска с родительским, после чего разностный диск удаляется и откатить изменения становится невозможно;
• Удалить поддерево контрольных точек — в этом случае удаляются все чекпойнты, для которых выбранный чекпойнт является родительским;
• Экспорт — возможность экспортировать виртуальную машину по состоянию на время создания чекпойнта. Это новая фича, появившаяся только в Windows Server 2012 R2\Windows 8.1.
Важно. Каждый чекпойнт представляет из себя отдельный виртуальный диск в формате AVHDX, тип и размер которого зависят от родительского диска. К примеру, имея родительский диск фиксированного объема 127Гб, при создании чекпойнта мы получим еще один диск того же размера. Кроме того, при удалении чекпойнта потребуется дополнительное место для маневра, т.к. изменения сначала применяются к родительскому диску, увеличивая его размер, а лишь потом происходит удаление разностного диска. Поэтому при использовании чекпойнтов надо обеспечить для них соответствующее дисковое пространство.
Также для управления чекпойнтами можно воспользоваться командами PowerShell. Для примера создадим для ВМ WKS81 чекпойнт с именем Test:
Просмотрим все имеющиеся у машины чекпойнты:
Применим созданный чекпойнт
Перемещение ВМ
По сравнению с серверным Hyper-V из клиентского убрана технология живой миграции (Live Migration), однако оставлена возможность переноса хранилища виртуальной машины. Это позволяет переносить с места на место файлы работающей виртуальной машины. Для осуществления переноса надо выделить нужную ВМ и в поле «Действия» выбрать пункт «Переместить».
Запускается мастер перемещения.
Выбираем тип перемещения
И указываем параметры перемещения хранилища. Мы можем переместить всю машину целиком, по частям, либо перенести только виртуальные диски.
В том случае, если выбрано перемещение по частям, надо будет указать какие именно части надо переместить, и для каждой части указать расположение. Можно отдельно переместить виртуальные диски, файлы конфигурации, контрольные точки и файл смарт-пейджинга.
Для перемещения машины целиком достаточно указать одно расположение, куда и переедет вся виртуальная машина.
После выбора места остается проверить правильность выбора, нажать «Готово» и продолжать работу. Напомню, что при переносе хранилища машина может быть включена и продолжать работу в штатном режиме.
Также переместить хранилище ВМ можно из консоли PowerShell, например для переноса всех файлов машины WKS81 в одно расположение выполним команду:
Экспорт и импорт ВМ
Экспорт позволяет сделать копию виртуальной машины, которую можно перенести на другой Hyper-V хост, или использовать в качестве шаблона при развертывании ВМ. Для того, чтобы экспортировать машину, нужно выбрать ее, в поле «Действия» нажать «Экспорт» и указать папку, в которую вы хотите сохранить файлы виртуальной машины.
Примечание. По сути операция экспорта — это простое копирование, поэтому для экспорта достаточно просто скопировать все файлы ВМ в одну папку.
Операция импорта немного сложнее. Для импорта ВМ в поле «Действия» выбираем пункт «Импорт виртуальной машины».
Запускается мастер импорта виртуальной машины.
Указываем папку, в которой находятся файлы виртуальной машины.
Затем выбираем машину, которую будем импортировать.
Выбираем тип импорта:
• Регистрировать ВМ по месту — машина просто подключается к Hyper-V, оставаясь в том же месте и с тем же идентификатором;
• Восстановить ВМ — машина копируется в другое место с тем же идентификатором;
• Копировать ВМ — машина копируется в другое место с новым идентификатором.
Здесь надо уточнить, что каждая виртуальная машина при создании получает уникальный идентификатор, который сохраняется при экспорте. Поскольку подключить две машины с одинаковым идентификатором на одном хосте Hyper-V невозможно, то для импорта на том же хосте можно использовать только копирование.
При копировании и восстановлении ВМ все файлы будут скопированы в расположение по умолчанию. На следующей странице можно указать сохранение в другом месте и выбрать это место, причем для каждого компонента отдельно.
Отдельным пунктом указываем расположение виртуальных дисков.
Дальше проверяем выбранные параметры импорта и жмем «Готово».
И то же самое с помощью PowerShell. Экспорт виртуальной машины:
И импорт (копирование и генерация нового ID). Для импорта указываем XML-файл конфигурации виртуальной машины, находящийся в папке Virtual Machines:
Подключение к ВМ
Подключение к виртуальной машине обеспечивает утилита VMConnect, которая устанавливается вместе с другими средствами управления при развертывании компонента Hyper-V. Назначение VMConnect — предоставление доступа к виртуальной машине с хоста Hyper-V, что по сути является аналогом локального входа в систему для физического компьютера.
Для подключения с помощью VMConnect достаточно дважды кликнуть на выбранной машине в окне диспетчера Hyper-V. Как вариант, в папке C:\Windows\system32 лежит файл VMConnect.exe, вы можете запустить его (обязательно с правами администратора) и выбрать нужную ВМ.
Вот так выглядит стандартное окно подключения к ВМ. Сверху расположена панель инструментов, с помощью которой можно управлять машиной — включать, выключать, сохранять, делать снимки и т.п. Еще мы можем воспользоваться буфером обмена для копирования текста из основной в гостевую систему или подключить к машине ISO-образ диска. Также обратите внимание на выделенный значок — он отвечает за переключение в расширенный режим подключения, о котором пойдет речь дальше.
А теперь о грустном 🙂
Принцип работы VMConnect заключается в том, что она выдает на экран растровое изображение рабочего стола виртуальной машины, генерируемое видеокартой этой машины. Изображение обновляется в режиме реального времени, что позволяет видеть все изменения в гостевой системе. Также VMConnect обеспечивает эмуляцию клавиатуры и мыши в виртуальной машине, давая нам возможность управлять гостевой системой.
Использование растрового изображения накладывает некоторые ограничения на взаимодействие между основной и гостевой системами. К примеру, мы можем скопировать текст в буфер обмена в основной системе и извлечь его в гостевой, но не можем подобным образом скопировать\вставить файл или изображение. Кроме того, при использовании VMConnect нет возможности пробрасывать в виртуальную машину локальные жесткие диски и съемные USB-устройства, что крайне неудобно.
Частично положение спасает режим расширенного сеанса, появившийся в Windows Server 2012 R2\Windows 8.1. Однако для подключения в расширенном режиме необходима поддержка этого режима гостевой операционной системой, которая на данный момент есть только в Windows Server 2012 R2 и Windows 8.1 Pro\Enterprise. Описание расширенного режима можно найти здесь.
Для всех остальных остается только подключение к удаленному рабочему столу виртуальной машины c помощью RDP-клиента. В этом случае мы получим нормальный буфер обмена, проброс локальных ресурсов внутрь гостевой системы и прочие прелести. Однако для этого необходимо обеспечить виртуальной машине подключение к внешней сети, что не всегда возможно.
Сервисы интеграции
Сервисы интеграции (Integration Services) играют очень важную роль в работе виртуальных машин, поэтому о них стоит упомянуть отдельно. Сервисы интеграции выполняют две основные задачи: во первых они являются драйверами для виртуальных устройств, а во вторых обеспечивают работу гостевых служб внутри ВМ. Запущенные в гостевой операционной системе, эти службы обеспечивают связь между основной и гостевой системами и дают возможность управления виртуальной машиной извне. Так например, завершение работы виртуальной машины из консоли Hyper-V Manager возможно только в том случае, если в гостевой системе запущена соответствующая служба.
Для того чтобы увидеть работу этих служб, запустим оснастку «Службы» внутри ВМ и посмотрим их описание.
Наличие и поддержка служб интеграции зависит от гостевой операционной системы. Так в операционных системах Microsoft, по моему начиная с Windows Vista\Server 2008 интеграционные сервисы входят в состав ОС и не требуют установки. Для более ранних ОС Windows сервисы интеграции необходимо установить вручную, для чего надо в меню «Действие» выбрать пункт «Вставьте установочный диск служб интеграции»
И запустить установку.
Отдельно стоит упомянуть об операционных системах Linux. Официально установка на Hyper-V поддерживается для RHEL, CentOS и SLES. Для них необходимо отдельно загрузить образ диска с сервисами интеграции, подключить его к виртуальной машине и установить. На данный момент наиболее свежая версия служб интеграции 3.5 для Linux находится здесь. Также для наиболее свежих версий дистрибутивов, например CentOS\RHEL начиная с версии 6.4, сервисы интеграции уже входят в состав ядра и не требуют отдельной установки.
Заключение
Как я уже говорил, Hyper-V по сути является серверным гипервизором. Основное преимущество клиентского Hyper-V в том, что он работает с аппаратными ресурсами компьютера напрямую, а не через основную систему. Это позволяет достичь гораздо большей производительности и гибкости в управлении, а также дает возможность распределять аппаратные мощности между виртуальными машинами динамически, в зависимости от их загрузки. Также большим плюсом является возможность управления Hyper-V с помощью PowerShell. Ну и конечно же не забываем, что Hyper-V является частью операционной системы не требует загрузки дополнительного ПО.
Однако серверные корни являются причиной и всех недостатков клиентского Hyper-V. Одним из основных минусов является отсутствие встроенного NAT. Для предоставления доступа в Интернет необходимо каждой виртуальной машине выделить внешний IP-адрес и подключить к внешней сети, либо выделять отдельную ВМ под шлюз и поднимать NAT на ней. Для клиентского гипервизора это крайне удобно, поэтому во всех конкурирующих решениях предусмотрена возможность встроенного NAT. Ну и второй минус — это крайне ограниченные возможности при локальном подключении к ВМ в обычном (не расширенном) режиме. Возможно в будущем поддержка расширенного режима подключения появится у большинства ОC, ну а пока для того, чтобы просто передать в ВМ файлы необходимо выставить ее во внешнюю сеть и использовать подключение по RDP. Сравним с тем же VrtualBox, где для обмена данными с ВМ (независимо от гостевой ОС) мы можем подключать к машине любую папку, диск или съемное USB-устройство на компьютере, а также пользоваться двусторонним буфером обмена.
Использовать ли Hyper-V в Windows 8 для виртуализации, или выбрать один из конкурирующих продуктов, решать конечно же вам. За себя же могу сказать, что для меня Hyper-V стал решающим фактором для перехода на восьмерку, и переходом я весьма доволен. На этом закончу долгое и, надеюсь, не очень скучное повествование о Hyper-V в Windows 8.1.