VMware ESXi can seem intimidating at first. All those terms, the web interface, the command line. But once you understand the basics, it's actually pretty straightforward. Here's what I wish someone had explained to me when I started.

What is ESXi, Exactly?

ESXi is a bare-metal hypervisor. That means it installs directly on your server hardware (no Windows or Linux underneath) and lets you run multiple virtual machines on that single physical machine.

Think of it like this:

  • Physical server = One big house
  • ESXi = The apartment building manager
  • Virtual machines = Individual apartments

Each VM thinks it has its own hardware, but ESXi is actually sharing the physical resources among them.

ESXi vs vSphere vs vCenter — What's the Difference?

These terms confused me for months. Here's the simple breakdown:

  • ESXi — The hypervisor that runs on each physical server. This is the actual software that creates and runs VMs.
  • vCenter Server — A management server for controlling multiple ESXi hosts from a single interface. Adds features like vMotion, HA, and DRS.
  • vSphere — The overall product suite that includes ESXi + vCenter + the vSphere Client interface. It's the "brand name" for the whole ecosystem.

When do you use each?

  • One server? → You just need ESXi. Access it directly via the ESXi Host Client (web interface at https://your-esxi-ip).
  • Multiple servers? → Add vCenter to manage them all from one place. You can see all hosts, migrate VMs between them, set up clusters, etc.
  • Using vSphere Client? → This is the interface you use to connect to vCenter (or a single ESXi host). When people say "log into vSphere," they usually mean opening the vSphere Client and connecting to vCenter.

In an enterprise environment, you'll typically hear people say "we're running vSphere" — meaning they have multiple ESXi hosts managed by vCenter, accessed through the vSphere Client.

Key Concepts to Understand

vCenter Inventory Hierarchy

When you use vCenter to manage multiple hosts, everything is organized in a hierarchy. Understanding this structure helps you navigate the interface and plan your setup:

vCenter Server
└── Datacenter
    ├── Cluster
    │   ├── ESXi Host 1
    │   │   ├── VM 1
    │   │   ├── VM 2
    │   │   └── VM 3
    │   ├── ESXi Host 2
    │   │   ├── VM 4
    │   │   └── VM 5
    │   └── ESXi Host 3
    │       └── VM 6
    │
    └── Standalone Host (not in a cluster)
        └── VM 7

Here's what each level means:

  • vCenter Server — The top level. One vCenter can manage hundreds of hosts.
  • Datacenter — A logical container for organizing hosts. Could represent a physical location, department, or environment (prod/dev). You need at least one datacenter.
  • Cluster — A group of ESXi hosts that share resources. Enables advanced features like:
    • vMotion — Live migrate VMs between hosts with no downtime
    • HA (High Availability) — Automatically restart VMs if a host fails
    • DRS (Distributed Resource Scheduler) — Automatically balance VM workloads across hosts
  • ESXi Host — The physical server running ESXi.
  • Virtual Machines — Your actual VMs running on the hosts.

Tip: You can have standalone hosts outside of clusters, but they won't get HA/DRS features. For production workloads, clusters are recommended.

Datastores

A datastore is where your VMs live—it's storage that ESXi can see. It can be:

  • A local disk in the server
  • A SAN/NAS volume connected over the network (iSCSI, Fibre Channel)
  • An NFS share
  • vSAN (VMware's software-defined storage)

Name your datastores clearly (e.g., SSD-Local-500GB or NFS-Prod-Storage) so you know what you're working with.

Virtual Switches (vSwitches)

Virtual switches connect your VMs to the network. By default, ESXi creates one called vSwitch0 connected to your physical NIC.

You can create multiple vSwitches to:

  • Separate different types of traffic (management, VM, vMotion, storage)
  • Create isolated networks for testing
  • Connect to different physical NICs for redundancy

In larger environments with vCenter, you'll often use Distributed vSwitches (dvSwitch) - these are managed centrally and apply consistent networking across all hosts in a datacenter.

Port Groups

Port groups are labels you assign to vSwitch connections. When creating a VM, you select which port group it connects to. Think of them as VLAN labels or network segments.

Common Tasks

Creating a VM

Via ESXi Host Client (single host):

  1. Log in to https://your-esxi-ip
  2. Go to Virtual Machines
  3. Click Create / Register VM
  4. Choose "Create a new virtual machine"
  5. Name it and select the guest OS type
  6. Choose your datastore
  7. Configure CPU, RAM, disk, network
  8. Finish and power on

Via vSphere Client (vCenter):

  1. Log in to your vCenter via vSphere Client
  2. Right-click on a host, cluster, or folder
  3. Select New Virtual Machine
  4. Follow the wizard (similar steps as above)
  5. You can choose which host/cluster to place the VM on

Uploading an ISO

To install an OS, you need to upload the ISO to a datastore:

  1. Go to Storage → select your datastore
  2. Click Datastore browser (or Files in vSphere Client)
  3. Create a folder called ISOs
  4. Click Upload and select your ISO file

Then when creating or editing a VM, you can mount this ISO to the virtual CD/DVD drive.

Taking Snapshots

Snapshots save the state of a VM at a point in time. Super useful before making risky changes like OS updates or configuration changes.

Via vSphere Client (vCenter) — Recommended:

  1. Right-click on the VM
  2. Select SnapshotsTake Snapshot
  3. Enter a name (e.g., "Before Windows Update")
  4. Optionally add a description
  5. Choose options:
    • Snapshot the virtual machine's memory — Captures running state (takes longer but allows instant restore)
    • Quiesce guest file system — Ensures data consistency (requires VMware Tools)
  6. Click OK

To revert or delete snapshots:

  1. Right-click on the VM
  2. Select SnapshotsManage Snapshots
  3. You'll see a snapshot tree
  4. Select a snapshot and choose:
    • Revert to — Go back to that point in time
    • Delete — Remove the snapshot (consolidates changes)
    • Delete All — Remove all snapshots

Via ESXi Host Client:

  1. Select the VM
  2. Click ActionsSnapshotsTake snapshot
  3. Same options as above

Via SSH (command line):

# List all VMs and their IDs
vim-cmd vmsvc/getallvms

# Take a snapshot
vim-cmd vmsvc/snapshot.create [vmid] "Snapshot Name" "Description"

# List snapshots for a VM
vim-cmd vmsvc/snapshot.get [vmid]

# Revert to a snapshot
vim-cmd vmsvc/snapshot.revert [vmid] [snapshotid]

# Remove a snapshot
vim-cmd vmsvc/snapshot.remove [vmid] [snapshotid]

Warning: Don't leave snapshots running long-term! They grow over time as changes accumulate, consuming disk space and hurting performance. Use them for temporary protection (hours or days), then delete once you've verified your changes work.

Useful CLI Commands

SSH into your ESXi host (enable SSH in HostActionsServicesEnable SSH) and try these:

# System info
esxcli system version get
esxcli hardware cpu global get
esxcli hardware memory get

# Network
esxcli network nic list
esxcli network ip interface ipv4 get
esxcli network vswitch standard list

# Storage
esxcli storage filesystem list
esxcli storage core path list

# VM operations
vim-cmd vmsvc/getallvms          # List all VMs with IDs
vim-cmd vmsvc/power.on [vmid]    # Power on
vim-cmd vmsvc/power.off [vmid]   # Power off (hard - like pulling the plug)
vim-cmd vmsvc/power.shutdown [vmid]   # Graceful shutdown (requires VMware Tools)
vim-cmd vmsvc/power.reboot [vmid]     # Reboot

# Host operations
esxcli system maintenanceMode set --enable true   # Enter maintenance mode
esxcli system maintenanceMode set --enable false  # Exit maintenance mode
esxcli system shutdown reboot -r "Reason"         # Reboot host

Common Gotchas

Things that tripped me up:

  • VMware Tools — Always install VMware Tools in your VMs. It enables graceful shutdowns, better performance, time sync, and features like quiesced snapshots.
  • Thick vs Thin provisioning — Thin provisioning saves disk space by only using what's needed, but can lead to overcommitment. Thick provisioning reserves the full disk space upfront. Use thin for flexibility, thick for guaranteed space.
  • SSH is disabled by default — Enable it in host services if you need command-line access. Remember to disable it when not needed for security.
  • Snapshot ≠ Backup — Snapshots are not backups! They're stored with the VM and if the datastore fails, you lose both. Use proper backup software.
  • Resource overcommitment — You can assign more vCPUs and RAM than physically available, but performance suffers. Monitor your resource usage.
  • Hardware compatibility — Check the VMware Hardware Compatibility List (HCL) before buying hardware. Not everything works, especially NICs and storage controllers.

Next Steps

Once you're comfortable with the basics:

  • Set up automated backups (Veeam, Nakivo, or ghettoVCB for free)
  • Learn about resource pools and reservations
  • Explore templates and cloning for faster VM deployment
  • Set up vCenter if managing multiple hosts
  • Look into vSAN if you need shared storage without a SAN

Wrapping Up

ESXi and vSphere are powerful once you get past the initial learning curve. Start small - one host, a few VMs - and expand as you get comfortable. The skills transfer directly to enterprise environments, so it's worth learning properly.

Questions or stuck on something? Reach out—I'm happy to help where I can.