1. ESXi Host Suddenly Becomes Unresponsive. How Do You Troubleshoot?
Scenario:
Your ESXi host is unresponsive, and you are unable to connect to it via vSphere Client or SSH.
Solution:
- Check Network Connectivity
- Ping the ESXi host IP from another machine.
- Check if the management network is reachable.
- Check Host Console (DCUI – Direct Console User Interface)
- Access the ESXi host physically or via remote console (iLO/iDRAC).
- Verify if the system is running and review error messages.
- Restart Management Agents
- Access the host via DCUI.
- Go to Troubleshooting Options → Restart Management Agents.
- Check Storage and Resource Utilization
- Verify if storage is full, as it can cause ESXi to freeze.
- Use
Alt + F12
to check logs on the console.
- Try SSH Access
- If SSH is enabled, connect via SSH and run: bashCopyEdit
services.sh restart
- Check logs: bashCopyEdit
tail -f /var/log/vmkernel.log
- If SSH is enabled, connect via SSH and run: bashCopyEdit
- Check for PSOD (Purple Screen of Death)
- If the host crashed, check for error codes.
- Reboot the Host (If No Other Option)
- If all else fails, reboot the ESXi host and check logs after it comes up.
2. VM Is Running Slow. How Do You Troubleshoot?
Scenario:
A VM running on ESXi is experiencing performance issues.
Solution:
- Check Resource Utilization
- Open vSphere Client → Monitor CPU, Memory, Disk & Network.
- Check CPU Ready Time
- If
CPU Ready
is high, it means the VM is waiting for CPU cycles. - Reduce vCPU allocation if oversubscribed.
- If
- Check Storage Performance
- Verify datastore latency (should be < 10ms ideally).
- Check
esxtop
(pressd
for disk stats).
- Check Ballooning & Swapping
- High memory ballooning/swapping means ESXi is running low on RAM.
- Increase VM memory or allocate more host RAM.
- Check for CPU Contention
- Use
esxtop
(pressc
for CPU stats). - Look for high %RDY time (above 10% is bad).
- Use
- Check Network Issues
- Verify VM NIC is connected to the right port group.
- Check for packet drops in
esxtop
.
3. ESXi Host Is Not Detecting Shared Storage. What Do You Do?
Scenario:
Your ESXi host is not detecting the iSCSI/FC storage.
Solution:
- Check Storage Adapters
- Go to vSphere Client → Configure → Storage Adapters.
- Rescan storage.
- Verify Connectivity
- Ping the storage from ESXi CLI: bashCopyEdit
vmkping <Storage_IP>
- Check iSCSI/FC initiators in the storage system.
- Ping the storage from ESXi CLI: bashCopyEdit
- Restart Storage Services bashCopyEdit
/etc/init.d/lwiod restart /etc/init.d/hostd restart /etc/init.d/vpxa restart
- Check Logs for Errors bashCopyEdit
cat /var/log/vmkernel.log | grep -i "iscsi"
- Verify Zoning and LUN Mapping (For FC Storage)
- Ensure LUNs are properly mapped to the ESXi host.
- Reboot ESXi (If No Other Option)
- If all fails, try a host reboot.
4. vCenter Shows “Host Not Responding.” How Do You Fix It?
Scenario:
vCenter shows an ESXi host as “Not Responding,” but VMs are still running.
Solution:
- Check if the Host is Reachable
- Ping the ESXi host from vCenter.
- SSH into the ESXi host.
- Restart Management Agents on ESXi bashCopyEdit
services.sh restart
- Check vCenter Connection bashCopyEdit
/etc/init.d/vpxa restart /etc/init.d/hostd restart
- Manually Remove and Reconnect the Host in vCenter
- Remove the ESXi host from vCenter inventory.
- Re-add it using the correct credentials.
- Check for Network Issues
- Verify vCenter and ESXi communication over port 443.
5. How Do You Upgrade ESXi Without Downtime?
Scenario:
You need to upgrade an ESXi host without affecting running VMs.
Solution:
- Use vMotion (If vCenter is Available)
- Migrate VMs to another ESXi host using vMotion.
- Put ESXi into maintenance mode.
- Upgrade Using CLI (If No vCenter) bashCopyEdit
esxcli software profile update -d /vmfs/volumes/datastore/ESXi.iso reboot
- Use vSphere Lifecycle Manager (If vCenter is Available)
- Attach an upgrade baseline and remediate.
- Ensure Backup Before Upgrade
- Take a backup of ESXi configurations using: bashCopyEdit
vim-cmd hostsvc/firmware/backup_config
- Take a backup of ESXi configurations using: bashCopyEdit