Niekedy narazím na skutočnosť, že určitý virtuálny stroj na hostiteľovi VMWare ESXi zamrzne a nedá sa žiadnym spôsobom vypnúť alebo reštartovať z webového rozhrania klienta vSphere. Reštartovanie celého servera ESXi kvôli jednému virtuálnemu stroju nie je úplne vhodné (najmä ak máte iba jedného hostiteľa ESXi alebo zvyšné servery v klastri DRS nevytiahnu ďalšie zaťaženie vo forme virtuálnych počítačov z reštartovaného servera). Pozrime sa na hlavné spôsoby, ako vynútiť zastavenie zmrazeného virtuálneho počítača vo VMWare ESXi.
Ak proces virtuálneho počítača na serveri ESXi zamrzne, prestane reagovať na príkazy Reset / Power Off a pri každej akcii poskytne jednu z chýb:
Pokus o vykonanie operácie nie je možné vykonať v aktuálnom stave
;Ďalšia úloha už prebieha
;Virtuálny stroj môže vykonávať súbežné operácie. Akcie: Dokončite súbežnú operáciu a skúste znova vypnutie. Virtuálny stroj je v neplatnom stave
.
V takýchto prípadoch môžete manuálne zastaviť proces virtuálneho počítača na hostiteľovi ESXi z príkazového riadka ESXi Shell alebo PowerCLI..
Najprv zistite, na ktorom hostiteľovi ESXi je spustený virtuálny počítač. Ak to chcete urobiť, nájdite VM v klientskom rozhraní vSphere. Názov hostiteľa, na ktorom beží, je uvedený na karte Zhrnutie v sekcii Súvisiaci objekt -> hostiteľ.
Kliknite na názov hostiteľa ESXi. Musíte k nemu povoliť prístup prostredníctvom SSH. Choďte na Konfigurácia -> služby -> SSH -> štart.
Teraz sa môžete k tomuto hostiteľovi ESXi pripojiť pomocou SSH pomocou putty klienta.
Zoznam virtuálnych počítačov bežiacich na hostiteľovi ESXi:
Zoznam procesov esxcli vm
Skopírujte ID požadovaného virtuálneho počítača (World ID).
Na ukončenie procesu zaveseného virtuálneho počítača na hostiteľovi ESXi použite nasledujúci príkaz:
esxcli vm process kill --type = [soft, hard, force] --world-id = WorldNumber
Ako vidíte, existujú tri typy ukončenia procesov VM:
- mäkký - najbezpečnejší spôsob ukončenia procesu VMX (podobne ako kill -SIGTERM);
- usilovne - okamžité ukončenie procesu VM (kill -9);
- sila - najťažší režim ukončenia procesu by sa mal použiť ako posledný, ak nič iné nepomôže.
Skúsme jemne zastaviť VM so zadaným ID:
esxcli vm proces kill --type = soft -w = 25089429
VM by sa mal vypnúť.
Zmrazený virtuálny počítač môžete zastaviť pomocou PowerCLI (je to výhodné, pretože pri pripájaní k vCenter nemusíte hľadať hostiteľa, na ktorom je spustený VM a povoliť prístup SSH). Skontrolujte, či je spustený VM:
get-vm “web2” | vyberte meno, PowerStates
Vynútiť zastavenie procesu VM príkazom:
stop-vm - zabitie „web2“ - potvrdenie: $ false
Pomocou tohto nástroja môžete zastaviť aj zmrazený virtuálny počítač ESXTOP.
V relácii SSH zadajte príkaz esxtop, potom kliknite na „C“Na zobrazenie zdrojov CPU a shift + V, na zobrazenie iba procesov vírusových strojov
Potom kliknite na „F“(Vyberte zobrazené polia),„C“(Zobrazte pole LWID-Leader World Id) a kliknite na tlačidlo vstúpiť.
V stĺpci Názov nájdite virtuálny počítač, ktorý chcete zastaviť, a určte jeho LWID podľa príslušného stĺpca.
Potom zostáva stlačiť tlačidlo "k"(kill) a vytočte identifikátor LWID virtuálneho počítača, ktorý chcete vynútiť vypnutie.
Posledným spôsobom, ako vypnúť pevný disk, je použitie pomôcky kill. Táto metóda zastaví nielen VM, ale aj všetky podradené procesy.
Získajte ID rodičovského procesu VM:
ps | grep "web2"
Dokončite proces:
zabiť -9 24288474
Po takomto „tvrdom resete“ sa nainštalovaný OS spustí v režime obnovenia. V prípade hosťujúcich Windows bude obrazovka vyzerať takto.