Kako ustaviti zamrznjen virtualni stroj na Hyper-V?

Če se vaš virtualni stroj, ki deluje na gostitelju Hyper-V, iz nekega razloga ustavi, se neha odzivati ​​in se ne odziva na gumbe za napajanje, izklop in ponastavitev na konzoli Hyper-V, je edini hiter način za zaustavitev tega stroja prekiniti postopek tega VM v gostiteljska OS. Pokazali bomo, kako izsiliti ponovni zagon VM-jev v Hyper-V na Windows Server 2016/2019, ne da bi znova zagnali celoten strežnik in zagnali VM (če nimate skupin HA Hyper-V in Live-Migration).

Vsebina:

  • Navidezni stroj Hyper-V zamrzne v stanju Zaustavitve, zagonu
  • Napaka Hyper-V: Povezava s storitvijo upravljanja virtualnega stroja
  • Dokončanje obešenega VM procesa z upraviteljem opravil
  • Ponastavite obešeni VM na Hyper-V VM s pomočjo PowerShell-a
  • Hyper-V: Ni bilo mogoče spremeniti stanja virtualne naprave

Navidezni stroj Hyper-V zamrzne v stanju Zaustavitve, zagonu

Recimo, da je eden od VM-jev na Hyper-V zamrznjen Ustavitev (Ključne za zaustavitev) / Začetek (Začetek 10%).

Gost OS se je prenehal odzivati ​​in gumbi „Izklopi“, „Izklopi“ in „Ponastavi“ na konzoli Hyper-V Manager niso postali na voljo ali so ob pritisku vrnili napako:

Predpostavimo, da eden od VM-jev na Hyper-V visi, gost OS se preneha odzivati ​​in gumbi „Izklopi“, „Izklopi“ in „Ponastavi“ na konzoli Hyper-V Manager postanejo nedosegljivi ali ob pritisku vrnejo napako:

Ni mogoče spremeniti stanja Operacije ni mogoče izvesti, ko je objekt v trenutnem stanju 

Napaka Hyper-V: Povezava s storitvijo upravljanja virtualnega stroja

Če vaš Hyper-V ne prikaže navideznih strojev v konzoli Hyper-V Manager, vrne "Povezava s storitvijo upravljanja virtualnega stroja", Postopek morate znova zagnati vmms.exe (storitev upravljanja navideznih strojev Hyper-V). To je varno delovanje in ne bo prekinilo delujočih virtualnih strojev. Najlažji način ponovnega zagona vmms.exe je storitev vmms in skozi konzolo storitve.msc ali ukaz:

Get-Service vmms | Ponovno zaženite storitev

Dokončanje obešenega VM procesa z upraviteljem opravil

Edini način za izklop / ponovni zagon tako zamrznjenega virtualnega stroja brez ponovnega zagona celotnega gostiteljskega strežnika Hyper-V je, da konča svoj delovni potek v gostujoči OS. Vsi VM-ji na Hyper-V gostitelju se začnejo uporabljati postopek. vmwp.exe (Navidezno Stroj Delavka Proces). Če želite iskati postopek, morate poiskati GUID navideznega stroja.

GUID VM lahko določite s konzolo za upravljanje Hyper v Manager. Odprite nastavitve strežnika (Hyper v Nastavitve) Razdelek Server prikazuje imenik, v katerem so shranjene konfiguracijske datoteke VM (v našem primeru D: \ VMStore).

Odprite ta imenik v File Explorerju in poiščite imenik z imenom zamrznjenega virtualnega stroja. Kopirajte GUID, ki je določen v imenu konfiguracijske datoteke VM s pripono * .vmcx.

Zdaj morate zagnati upravitelja opravil (Naloga Manager) in pojdite na zavihek Podrobnosti. Vsi virtualni stroji delujejo kot del lastnega primerka procesa. vmwp.exe. Da bi ugotovili, kateri postopek je odgovoren za kateri VM, potrebujemo predhodno pridobljeni GUID visečega VM-ja. Poiščite postopek vmwp.exe s stolpcem Uporabnik ime Določen je GUID vašega VM-ja. Dokončajte ta postopek (Končna naloga).

Navidezni stroj se bo prisiljen ustaviti. Zdaj lahko storite karkoli z njo.

Ponastavite obešeni VM na Hyper-V VM s pomočjo PowerShell-a

Mnogo lažje je najti in dokončati postopek obešenega navideznega stroja s pomočjo PowerShell-a. Zaženite konzolo PowerShell s skrbniškimi pravicami (račun mora biti v lokalni skupini skrbnikov Hyper-V).

V tem primeru vgrajeni cmdlet Stop-VM ne bo omogočil, da izklopite VM. Če poskusite zagnati ukaz Stop-VM-Force, tudi zamrzne. Očitno čaka na odgovor VM.

V tem primeru morate tudi dokončati postopek VM po njegovem ID-ju. VID GUID lahko dobite s svojim imenom. Na primer, za VM z imenom SVM-GUARDEDHOST1 zaženite ukaz:

$ VMGUID = (Get-VM "SVM-GUARDEDHOST1") ID

Če ne želite vnesti polnega imena VM, lahko navedete vse VM-ove, registrirane na tem gostitelju Hyper-V:

Get-VM | Izberite Name, Id

Kopirajte GUID želenega VM-ja s seznama.

Zdaj morate poiskati identifikator procesa (PID) „vmwp.exe“ za svoj VMGUID:

$ VMWMProc = (Get-WmiObject Win32_Process |? $ _. Ime-match 'VMWP' -and $ _. CommandLine -match $ VMGUID)

Nato z ukazom Stop-Process morate prisiliti prekiniti ta postopek:

Stop-Process ($ VMWMProc.ProcessId) -Force

Tako je preprosto prisilno prekiniti delovni postopek suspendiranega navideznega stroja Hyper-V.

Namig. Opisujemo tudi podoben postopek za dokončanje postopka visečega VM-ja na VMWare ESXi gostitelju..

Hyper-V: Ni bilo mogoče spremeniti stanja virtualne naprave

Včasih se zgodi, da tudi potem, ko se postopek odlaganja ne konča, ne morete vklopiti VM-ja in v stanju Zagon zamrzne z napako:

Povezave z virtualnim strojem ni bilo mogoče spremeniti. Ni bilo mogoče spremeniti države.

V tem primeru preverite naslednje možnosti:

  • Preverite, ali je na disku, na katerem so shranjene datoteke VM, dovolj prostega prostora;
  • Če je v nastavitvah VM povezana slika ISO, preverite njeno razpoložljivost;
  • Preverite omrežne nastavitve VM. Navidezni omrežni adapterji morajo biti povezani z obstoječim virtualnim stikalom Hyper-V (stanje omrežja ne sme biti - Napaka v konfiguraciji);
  • Preverite, ali storitev za navidezno upravljanje Hyper-V deluje (VMMS) in ni zamrznjena v stanju Zaustavitve;
  • Prepričajte se, da vaš antivirus ne blokira dostopa do datotek VM. Pot do imenika VM dodajte protivirusnim izjemam (glejte, kako dodati izjeme v vgrajeni protivirusni sistem Windows Server 2016 - Windows Defender);
  • Preverite napake v dnevniku dogodkov Pregledovalnik dogodkov -> Dnevniki aplikacij in storitev -> Microsoft -> Windows -> Hyper-V-Worker.