In this article, I will introduce how to install another hypervisor, VMware ESXi, on a configured Proxmox VE host without dedicating the entire server to ESXi.
Prerequisites
A Proxmox node that can perform hardware-assisted virtualization (Intel: VT-x; AMD: AMD-V).
Problem
I need to test the VMware environment, so I want to install VMware ESX 7.0 as a virtual machine in Proxmox VE 7.2. The problem is that if the virtual device is selected incorrectly, vSphere cannot see the virtual disk and cannot start the installation.
Enabling Nested Virtualization on Proxmox:
First, we need to ensure that nested virtualization is enabled on the PVE host:
cat /sys/module/kvm_intel/parameters/nested
If it returns N or 0
, it means it is disabled:
# Intel
echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf
# AMD
echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf
Then you need to re-enable the kvm kernel module. To do this, you need to stop all virtual machines on the host or reboot the host after running these commands:
modprobe -r kvm_intel
modprobe kvm_intel
# AMD
modprobe -r kvm_amd
modprobe kvm_amd
Check again:
# Intel
echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf
# AMD
echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf
Creating a Virtual Machine
This step is very simple: just create a new virtual machine, but pay attention to the options:
- ‘OS Tab’
- ‘Type:’ Linux
- ‘Version:’ 5.x – 2.6 Kernel
- ‘System Tab’
- ‘Graphic card:’ Default
- ‘SCSI Controller:’ VMware PVSCSI
- ‘BIOS:’ SeaBIOS
- ‘Machine:’ q35
- ‘Hard Disk Tab’
- ‘Bus/Device:’ SATA
- ‘SSD emulation:’ Check
- ‘Discard:’ Check
- ‘CPU Tab’
- ‘Cores:’ 4
- ‘Sockets:’ 2
- ‘Type:’ host
- ‘Enable NUMA:’ Check if our system supports
- ‘Memory Tab’
- ‘Memory (MiB):’ At least 4096 but to run vCenter 16384
- ‘Ballooning Device:’ Uncheck
- ‘Network Tab’
- ‘Model:’ VMware vmxnet3
Enabling Nested Virtualization on the Virtual Machine:
Before starting the newly defined virtual machine, you need to return to the console and add an additional configuration line. Run the following command to enable nested virtualization in the corresponding virtual machine. Replace VM_ID with the numerical ID displayed in the Proxmox UI.
echo "args: -machine vmport=off" > /etc/pve/qemu-server/<vm_id>.conf </vm_id>
Do I still need to do this? I am running Proxmox 7.3.3, and I actually forgot this step, but it still worked.
Start the vSphere virtual machine.
qm start <vm_id></vm_id>
Your support is the motivation that keeps me going