Capita di trovare VmWare ESXi bloccato alcune VM funzionano altre no, non si riesce ad entrare attraverso il web ne sulla consolle di management. Cerchiamo nei log e non troviamo nulla di particolare.
Ho sbattuto su questo problema per diversi mesi con l’unica soluzione di riavviare VmWare brutalmente con tutte le conseguenze del caso. Alla fine ho trovato il problema. La Mia configurazione prevede due storage ISCSi e due server ESXi 6.5. Stranamente ogni tanto in maniera del tutto casuale uno dei due QNap fa un loop di connessione e questo blocca praticamente tutto il sistema.
La verifica dei sintomi oltre quelli già descritti si può effettuare lanzciando in SSH il comando df -h se si blocca il comando ma non ssh siete nel posto giusto.
Aprite un’altra sessione di SSH senza chiudere le precedente
lanciate il comando
esxcfg-vmknic -l
Verrà visualizzata la seguente schermata dove dovrete individuare la scheda di rete che gestisce l’ISCSi
Interface Port Group/DVPort/Opaque Network IP Family IP Address Netmask
vmk0 133 IPv4 192.168.25.161 255.255.255.0
vmk1 ISCSI IPv4 192.168.28.161 255.255.255.0
Disabilitare la scheda di rete delle connessioni ISCSI
esxcfg-vmknic -D ISCSI
Attendere un minuto e Riabilitare
esxcfg-vmknic -e ISCSI
Se l’operazione è andata a buon fine nella finestra ssh bloccata si dovrebbe visualizzare il risultato di df -h
Controllare attraverso il comando vdf -h che tutti i dischi abbiamo spazio sufficiente
Ramdisk Size Used Available Use% Mounted on
root 32M 2M 29M 8% —
etc 28M 328K 27M 1% —
opt 32M 344K 31M 1% —
var 48M 3M 44M 7% —
tmp 256M 256M 0B 100% —
iofilters 32M 0B 32M 0% —
shm 1024M 0B 1024M 0% —
hostdstats 1303M 22M 1280M 1% —
se esce la directory TMP piena controllare attraverso il comando /tmp/ls -lah quale file riempie il disco dovrebbe essere il file ams-bbUsg.txt se cosi fosse lanciare il comando
cd /tmp
echo > ams-bbUsg.txt
Eseguire
cd /var/run/vmware
ls -l vmware-hostd.PID watchdog-hostd.PID
cat vmware-hostd.PID
kill -9 (PID TROVATO)
rm vmware-hostd.PID watchdog-hostd.PID
/etc/init.d/hostd start
A questo punto dovrebbe funzionare di nuovo tutto