While technically possible to install VMware ESX or ESXi within VMware Workstation/Server, you'll encounter two showstopper issues:
- Severe Performance Degradation: Benchmark tests show 80-90% slower disk I/O compared to bare-metal installations
- VM Power-On Restrictions: The hypervisor intentionally blocks nested VM execution with error code
vmx-10
VMware's nested virtualization implementation differs from KVM/Windows Hyper-V:
// ESXi's VMX process enforces these checks:
if (isNestedEnvironment()) {
if (vmConfig.virtualHW.version >= 9) {
throw new VMPowerOnException("Nested virtualization not supported");
}
throttleCPU(0.3); // Artificial performance cap
}
Option 1: Bare-Metal KVM as Base Layer
Configure KVM with CPU passthrough for better performance:
# /etc/modprobe.d/kvm_intel.conf
options kvm_intel nested=1
options kvm_intel enable_apicv=1
options kvm_intel ept=1
Option 2: VMware's Hidden Configuration Tweaks
# Add to .vmx file of the ESXi VM
vhv.enable = "TRUE"
hypervisor.cpuid.v0 = "FALSE"
monitor_control.restrict_backdoor = "TRUE"
Platform | vCPU Performance | Disk IOPS |
---|---|---|
Bare Metal ESXi | 100% | 15,000 |
Workstation Nested | 12% | 800 |
KVM Nested | 65% | 9,200 |
VMware officially states in KB 2009916 that nested ESXi is only supported for:
- Training environments
- Non-production lab testing
- Proof-of-concept development
For production workloads, always use physical hardware with VT-x/AMD-V enabled in BIOS.
While it's technically possible to install ESXi within VMware Workstation or other hypervisors, you'll immediately hit two fundamental roadblocks:
- Performance degradation: The nested hypervisor runs at about 10-15% of normal speed due to virtualization overhead
- VM execution blocking: ESXi detects it's running in a VM and prevents guest VMs from starting
VMware officially doesn't support running ESXi as a guest OS, but developers can enable nested virtualization through these techniques:
# For VMware Workstation/Player:
monitor_control.restrict_backdoor = "TRUE"
hypervisor.cpuid.v0 = "FALSE"
vhv.enable = "TRUE"
Your host machine must meet these prerequisites:
Component | Requirement |
---|---|
CPU | Intel VT-x/EPT or AMD-V/RVI |
BIOS | Virtualization enabled |
RAM | Minimum 16GB (32GB recommended) |
For developers needing nested ESXi for testing:
- Create a new VM with "Other 64-bit" as guest OS type
- Add these parameters to the .vmx file:
featMask.vm.hv.capable = "Min:1"
vhv.enable = "TRUE"
hypervisor.cpuid.v0 = "FALSE"
If performance is critical, consider:
- VMware Cloud on AWS: Official hosted ESXi solution
- Docker containers: For lightweight testing environments
- Physical test lab: Using Intel NUC or similar small form factor PCs
After successful installation:
# Disable unnecessary services in nested ESXi:
esxcli system maintenanceMode set --enable true
esxcli system maintenanceMode set --enable false
Remember that nested virtualization should only be used for development/testing purposes, not production workloads.