Včasih naletim na dejstvo, da določen virtualni stroj v gostitelju VMWare ESXi zamrzne in ga ni mogoče nikakor izključiti ali znova zagnati s spletnega vmesnika vSphere odjemalec. Ponovni zagon celotnega strežnika ESXi zaradi enega samega virtualnega stroja ni povsem priporočljiv (še posebej, če imate samo enega gostitelja ESXi ali preostali strežniki v skupini DRS ne potegnejo dodatne obremenitve v obliki virtualnih strojev s ponovnega zagonskega strežnika). Razmislimo o glavnih načinih za zaustavitev zamrznjenega virtualnega stroja v VMWare ESXi.
Če postopek navideznega računalnika na strežniku ESXi zamrzne, se preneha odzivati na ukaze Ponastavitev / izklop in daje eno od napak pri katerem koli dejanju:
Poskusne operacije ni mogoče izvesti v trenutnem stanju
;Druga naloga je že v teku
;Navidezni stroj morda izvaja sočasne operacije. Ukrepi: Dokončajte sočasno operacijo in poskusite izklopiti. Navidezni stroj je v neveljavnem stanju
.
V takih primerih lahko ročno zaustavite proces navideznega računalnika na gostitelju ESXi iz ukazne vrstice ESXi Shell ali PowerCLI.
Najprej določite, na katerem ESXi gostuje obešeni virtualni stroj. Če želite to narediti, poiščite VM v vSphere Client vmesniku. Ime gostitelja, na katerem se izvaja, je navedeno na zavihku Povzetek v razdelku Sorodni objekt -> Gostitelj.
Kliknite ime gostitelja ESXi. Dostop do njega morate omogočiti prek SSH. Pojdi na Konfigurirajte -> Storitve -> Ssh -> Začni.
Zdaj se lahko povežete s tem gostiteljem ESXi prek SSH s pomočjo odjemalca kiti.
Seznam VM-jev, ki delujejo na gostitelju ESXi:
esxcli vm seznam procesov
Kopirajte ID želenega virtualnega stroja (World ID).
Za zaključek postopka obešenega virtualnega stroja na ESXi gostitelju uporabite naslednji ukaz:
esxcli vm process kill --type = [mehka, trda, sila] --world-id = WorldNumber
Kot lahko vidite, obstajajo tri vrste zaključka VM procesa:
- Mehko - najvarnejši način prenehanja procesa VMX (podobno ubiti -SIGTERM);
- Težko - takojšnja prekinitev procesa VM (ubiti -9);
- Sila - najstrožji način zaključka postopka je treba uporabiti zadnji, če nič drugega ne pomaga.
Poskusimo nežno ustaviti VM z navedenim ID-jem:
esxcli vm proces kill --type = soft -w = 25089429
VM naj se izklopi.
Zamrznjeno virtualno napravo lahko ustavite s programom PowerCLI (to je priročno, ker pri povezovanju z vCenter ni treba iskati gostitelja, na katerem deluje VM in omogočiti SSH dostopa). Preverite, ali VM deluje:
get-vm "web2" | izberite ime, PowerStates
Prisilno zaustavite postopek VM z ukazom:
stop-vm -kill "web2" -confirm: $ false
Z uporabo pripomočka lahko ustavite tudi zamrznjen virtualni stroj ESXTOP.
V seji SSH vnesite ukaz esxtop, nato kliknite »c"Za prikaz virov CPU in premik + V, da prikaže samo procese v virusnih strojih
Nato kliknite »f"(Izberite prikazana polja),"c"(Prikažite polje LWID-Leader World Id) in kliknite Vnesite.
V stolpcu Ime poiščite navidezni stroj, ki ga želite ustaviti, in določite njegov LWID v ustreznem stolpcu.
Nato ostane pritisniti gumb "k"(ubij) in pokliči identifikator LWID navideznega stroja, ki ga želite izklopiti.
Zadnji način za trdi izklop virtualnega stroja je uporaba pripomočka ubiti. Ta metoda ustavi ne samo VM, ampak tudi vse otroške procese.
Pridobite ID nadrejenega procesa vM:
ps | grep "web2"
Dokončajte postopek:
ubiti -9 24288474
Po takšni "trdi ponastavitvi" se bo nameščeni OS zagnal v obnovitvenem načinu. V primeru gostujočega Windows bo zaslon izgledal tako.