VMware ESXi and vCenter Architecture Explained
Comprehensive guide to VMware ESXi hypervisor and vCenter Server architecture including components, networking, storage, and management.
# VMware ESXi and vCenter Architecture Explained
Introduction
VMware vSphere is the industry-leading server virtualization platform, consisting of ESXi hypervisors and vCenter Server for centralized management. Understanding vSphere architecture is essential for virtualization architects, administrators, and engineers designing enterprise data centers.
This tutorial provides a comprehensive deep dive into VMware ESXi and vCenter architecture, including ESXi components, vCenter services, networking, storage, VM management, clustering, and high availability features.
By the end of this guide, you will understand how ESXi and vCenter work together, how to design vSphere environments, and how to troubleshoot architectural issues.
Technical Background
ESXi Hypervisor Architecture
ESXi is a Type-1 (bare-metal) hypervisor that runs directly on server hardware without an underlying operating system. It consists of:
- **VMkernel**: Core virtualization layer managing CPU, memory, storage, and networking
- **Worlds**: Execution contexts (VM worlds, service worlds, kernel worlds)
- **VMX process**: User-space process managing individual VMs
- **Vmkmod**: Kernel modules for hardware drivers and storage/network adapters
- **Direct Console User Interface (DCUI)**: Local management interface
vCenter Server Architecture
vCenter Server provides centralized management for multiple ESXi hosts. Key components:
- **vCenter Server**: Management server providing UI, API, and services
- **vCenter Database**: Stores configuration, performance data, and historical metrics (PostgreSQL or embedded)
- **Lookup Service**: SSO and service registration
- **vCenter Services**: VMware vpxd, vmdird, vmcad, vmware-stsd, etc.
vSphere Components
| Component | Role | |-----------|------| | ESXi | Type-1 hypervisor running VMs | | vCenter Server | Centralized management for multiple hosts | | vSphere Client | HTML5 management interface | | vSphere Web Services API | Programmatic management | | vMotion | Live VM migration between hosts | | Storage vMotion | Live disk migration between datastores | | HA (High Availability) | Automatic VM restart on host failure | | DRS (Distributed Resource Scheduler) | Automated load balancing | | FT (Fault Tolerance) | Continuous VM replication for zero downtime |
Prerequisites
- VMware ESXi hosts (compatible hardware)
- vCenter Server (Windows or virtual appliance)
- vSphere Client (HTML5)
- Network connectivity between hosts and vCenter
- Shared storage (for vMotion, HA, DRS)
- VMware licenses (ESXi, vCenter)
Architecture
Standalone ESXi Host
┌─────────────────────────────────────────────────────────────┐
│ ESXi Host │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ VM 1 │ │ VM 2 │ │ VM 3 │ │
│ │ (VMX proc) │ │ (VMX proc) │ │ (VMX proc) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ VMkernel │ │
│ │ CPU Scheduler Memory Mgmt Storage Networking │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Hardware (CPU, RAM, Disk, NIC) │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘vSphere Cluster with vCenter
graph TB
subgraph vCenter Server
VC[vCenter Server<br/>6.5/7.0/8.0]
VCDB[(vCenter Database<br/>PostgreSQL)]
LK[Lookup Service<br/>SSO]
end
subgraph Cluster
ESX1[ESXi Host 1<br/>192.168.1.10]
ESX2[ESXi Host 2<br/>192.168.1.11]
ESX3[ESXi Host 3<br/>192.168.1.12]
end
subgraph Shared Storage
DS1[(VMFS Datastore 1)]
DS2[(VMFS Datastore 2)]
end
VC <==> ESX1
VC <==> ESX2
VC <==> ESX3
VC <==> VCDB
ESX1 <==> ESX2
ESX2 <==> ESX3
ESX3 <==> ESX1
ESX1 --> DS1
ESX2 --> DS1
ESX3 --> DS1
ESX1 --> DS2
ESX2 --> DS2
ESX3 --> DS2
Client[vSphere Client] --> VCStep-by-Step Implementation
Step 1: Install ESXi Host
**Purpose**: Install VMware ESXi hypervisor on physical server.
**Procedure**:
1. Download ESXi ISO from VMware (requires account) 2. Create bootable USB with ESXi installer 3. Boot server from USB 4. Select storage device for ESXi installation 5. Configure root password 6. Configure management network (IP, subnet, gateway, DNS) 7. Complete installation and reboot
**Commands**: None (graphical installer)
**Post-installation** (via DCUI):
# Configure management network
# Configure hostname
# Enable SSH (Troubleshooting Options → Enable SSH)
# Test management network connectivity**Expected output**: ESXi host accessible via vSphere Client at management IP.
**Verification**:
# From management workstation
ping 192.168.1.10
# Open https://192.168.1.10 in browserStep 2: Install vCenter Server
**Purpose**: Deploy vCenter Server for centralized management.
**Procedure**:
1. Download vCenter Server ISO (or deploy vCenter Server Appliance - VCSA) 2. Run installer (two-stage: deploy OVA, then configure) 3. Stage 1: Deploy vCenter Server appliance template to ESXi 4. Stage 2: Configure vCenter (SSO domain, database, network, SSO password) 5. Complete configuration and access vSphere Client
**Commands**: None (graphical installer)
**Configuration**:
- SSO domain: `vsphere.local` (default)
- Site name: `ityantra`
- Database: Embedded PostgreSQL (VCSA) or external
- Management IP: Static
**Expected output**: vCenter Server accessible via vSphere Client.
**Verification**:
# Open https://vcenter.ityantra.lab/ui
# Login with administrator@vsphere.localStep 3: Add ESXi Host to vCenter
**Purpose**: Manage ESXi host through vCenter.
**Procedure** (vSphere Client):
1. Navigate to Hosts and Clusters view 2. Right-click datacenter → Add Host 3. Enter ESXi host IP address 4. Enter root credentials 5. Review host summary and accept certificate 6. Select license and lockout mode 7. Complete wizard
**Commands**: None (vSphere Client GUI)
**Expected output**: ESXi host appears in vCenter inventory under datacenter.
**Verification**:
# vSphere Client shows host status: Connected
# Host details show CPU, memory, storage, networkStep 4: Configure Networking (vSwitches and Port Groups)
**Purpose**: Set up virtual networking on ESXi hosts.
**Procedure** (vSphere Client or ESXi shell):
# ESXi shell commands
esxcli network vswitch standard list
esxcli network vswitch standard add --vswitch-name=vSwitch1
esxcli network vswitch standard portgroup add --portgroup-name="VM Network" --vswitch-name=vSwitch1
esxcli network vswitch standard portgroup set --portgroup-name="VM Network" --vlan-id=10**Standard vSwitch components**:
- **vSwitch**: Virtual switch connecting VMs and physical uplinks
- **Port Group**: Network policy container (VLAN, security, traffic shaping)
- **VMkernel Port**: Management, vMotion, storage, vSphere Replication traffic
- **Uplink**: Physical NIC connected to vSwitch
**Expected output**: Virtual switches and port groups configured; VMs can connect to networks.
**Verification**:
# vSphere Client shows networking configuration
# VMs on port group can communicateStep 5: Configure Storage (VMFS Datastores)
**Purpose**: Add shared storage for VMs and cluster features.
**Procedure** (vSphere Client):
1. Navigate to Storage view 2. Add storage → New Datastore 3. Select type: VMFS (local disk, iSCSI, FC, NFS) 4. Select LUN or NFS server 5. Configure datastore name and size 6. Complete wizard
**VMFS**: VMware File System, clustered filesystem for VM storage (VMFS 6 in vSphere 6.5+)
**NFS**: Network File System storage from NAS server
**iSCSI**: Block storage over IP network
**Expected output**: Datastore available for VM creation.
**Verification**:
# vSphere Client shows datastore capacity and free space
# VMs can be created on datastoreStep 6: Create Virtual Machine
**Purpose**: Deploy a VM on ESXi host.
**Procedure** (vSphere Client):
1. Right-click host or cluster → New Virtual Machine 2. Create new VM (typical configuration) 3. Select guest OS (Windows, Linux, etc.) 4. Select storage datastore 5. Configure network (VM Network) 6. Configure disk size and controller 7. Review and finish 8. Power on VM 9. Install guest OS from ISO 10. Install VMware Tools
**Expected output**: VM created and running with VMware Tools installed.
**Verification**:
# vSphere Client shows VM status: Powered on
# VM has IP address and responds to ping
# VMware Tools status: RunningConfiguration Examples
ESXi Host Configuration (`/etc/vmware/esx.conf`)
# ESXi configuration stored in VMkernel boot bank
# Managed via ESXCLI or vSphere Client, not direct editingvSwitch Configuration Example
vSwitch0
Uplinks: vmnic0, vmnic1
Port Groups:
- Management Network (VMkernel)
- VM Network (VM traffic)
- vMotion (VMkernel)
vSwitch1
Uplinks: vmnic2
Port Groups:
- Storage (VMkernel, iSCSI/NFS)VMX Configuration Example (VM .vmx file)
.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "20"
vmci0.present = "TRUE"
hpet0.present = "TRUE"
numvcpus = "4"
cpuid.coresPerSocket = "2"
memsize = "8192"
scsi0.present = "TRUE"
scsi0.virtualDev = "pvscsi"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "ubuntu.vmdk"
ethernet0.present = "TRUE"
ethernet0.networkName = "VM Network"
ethernet0.addressType = "generated"vCenter SSO Configuration
SSO Domain: vsphere.local
SSO Site: ityantra
SSO Administrator: administrator@vsphere.local
Identity Source: Active Directory (optional)Verification
ESXi Host Verification
# ESXi shell
esxcli system version get
esxcli network vm list
esxcli storage filesystem list
esxcli network vswitch standard list
esxcli network ip interface ipv4 getvCenter Verification
# vSphere Client
- Hosts and Clusters: All hosts show "Connected"
- Storage: Datastores show capacity and free space
- VMs: All VMs show "Powered on" with Tools running
- Tasks and Events: No recent errorsExpected Results
- ESXi hosts managed by vCenter (green status)
- Datastores accessible by all cluster hosts
- VMs running with VMware Tools installed
- vMotion, HA, DRS features available (with proper licensing)
Troubleshooting
| Symptom | Possible Cause | Diagnostic Command | Corrective Action | Verification | |---------|---------------|-------------------|-------------------|--------------| | Host not connected to vCenter | Management network or firewall | `esxcli network ip interface ipv4 get` | Fix network; open port 902, 903 | Host shows Connected | | vCenter service not running | Service crashed | `service-control --status` | `service-control --start --all` | Services running | | VM cannot ping gateway | VLAN misconfiguration | `esxcli network vswitch standard portgroup list` | Correct VLAN on port group | VM gets network | | Datastore not visible | Storage adapter or LUN zoning | `esxcli storage core device list` | Check HBA, LUN zoning | Datastore visible | | vMotion fails | vMotion VMkernel not configured | `esxcli network ip interface list` | Enable vMotion on VMkernel | vMotion works | | HA not working | No shared storage or isolation address | vSphere Client HA config | Configure shared storage; set isolation address | HA shows green | | DRS not balancing | DRS disabled or in manual mode | vSphere Client DRS config | Enable DRS; set to fully automated | Recommendations appear | | VMware Tools not running | Tools not installed or outdated | vSphere Client VM summary | Install/upgrade VMware Tools | Tools: Running | | ESXi host purple screen | Hardware failure or driver issue | ESXi logs (`/var/log/vmkernel.log`) | Check hardware; contact VMware support | Host stable | | vCenter database full | Disk space | `df -h` on vCenter | Expand disk; purge old data | Database operational |
Best Practices
1. **Use vCenter Server Appliance (VCSA)**: Pre-configured Linux appliance, easier to deploy and manage. 2. **Use shared storage for clusters**: Required for vMotion, HA, DRS, and FT. 3. **Separate network traffic**: Management, vMotion, vSAN, and VM traffic on different networks/VLANs. 4. **Enable HA and DRS**: Provides automatic failover and load balancing. 5. **Install VMware Tools**: Improves VM performance, enables graceful shutdown, and provides guest info. 6. **Use hardware version matching**: Keep VM hardware version compatible with ESXi version. 7. **Enable SSH only when needed**: Reduce attack surface on ESXi hosts. 8. **Use vSphere Update Manager**: Keep ESXi hosts and VMware Tools updated. 9. **Implement role-based access**: Use vCenter roles and permissions for least privilege. 10. **Monitor vCenter alarms**: Configure email alerts for host and VM issues.
Conclusion
VMware vSphere with ESXi and vCenter provides enterprise-grade virtualization with centralized management, high availability, live migration, and resource scheduling. Understanding ESXi hypervisor architecture, vCenter services, networking, storage, and cluster features is essential for designing and operating production vSphere environments. This guide covered ESXi installation, vCenter deployment, host management, networking, storage, VM creation, and troubleshooting. For production environments, implement HA, DRS, regular patching, and comprehensive monitoring.
References
- VMware vSphere Documentation (https://docs.vmware.com/)
- VMware ESXi Installation and Setup Guide (https://docs.vmware.com/en/VMware-vSphere/)
- VMware vCenter Server Installation Guide (https://docs.vmware.com/en/VMware-vSphere/)
- VMware vSphere Networking Guide (https://docs.vmware.com/)
- VMware vSphere Storage Guide (https://docs.vmware.com/)
- VMware HA and DRS Deep Dive (https://www.vmware.com/)