Nested Virtualization is a CPU feature of AMD and Intel processors that allows virtual machines to run their own hypervisor program (i.e. VirtualBox, VMware Workstation Pro/Player, VMware vSphere/ESXi, KVM/QEMU, Proxmox VE) and virtual machines.
Simply put, nested virtualization allows a virtual machine to run more virtual machines in it (using the same or a different hypervisor program than the host).
In this article, I will show you how to enable nested virtualization on a Proxmox VE virtual machine so that you can test different features of Proxmox VE in a virtual machine or test/run other hypervisor programs in a Proxmox VE virtual machine.
Table of Contents
- Checking if Nested Virtualization is Enabled on Your Proxmox VE Server
- Enabling Nested Virtualization on Proxmox VE Server
- Enabling Nested Virtualization on a Proxmox VE Virtual Machine (VM)
- Checking if Nested Virtualization is Enabled on the Proxmox VE Virtual Machine (VM)
- Conclusion
- References
Checking if Nested Virtualization is Enabled on Your Proxmox VE Server
To check if nested virtualization is enabled on your Proxmox VE server, run one of the commands below depending on the processor you have installed on your server.
For Intel processor:
$ cat /sys/module/kvm_intel/parameters/nested
For AMD processor:
$ cat /sys/module/kvm_amd/parameters/nested
If nested virtualization is enabled on your Proxmox VE server, you will see the output Y if you have an Intel processor and the output 1 if you have an AMD processor.
Enabling Nested Virtualization on Proxmox VE Server
On Proxmox VE 8, nested virtualization is enabled by default. In this section, I will show you how to enable nested virtualization on your Proxmox VE server in case it’s not enabled.
To enable nested virtualization on a Proxmox VE server with an Intel processor installed, run the command below:
$ echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf
To enable nested virtualization on a Proxmox VE server with an AMD processor installed, run the command below:
$ echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf
For the changes to take effect, reboot your Proxmox VE server with the following command:
$ reboot
Once your Proxmox VE server boots, check if nested virtualization is enabled on your Proxmox VE server.
Enabling Nested Virtualization on a Proxmox VE Virtual Machine (VM)
Once nested virtualization is enabled on your Proxmox VE server, you need to configure nested virtualization on the virtual machines (VMs) where you want to use it.
You can enable nested virtualization on a Proxmox VE virtual machine with the ID 100 (let’s say) from the Proxmox VE shell with the following command:
$ qm set 100 --cpu host
Nested virtualization should be enabled for the Proxmox VE virtual machine ID 100.
You can also enable nested virtualization on a Proxmox VE virtual machine from the Hardware section of the virtual machine.
From the Hardware section of the Proxmox VE virtual machine, select Processors and click on Edit.
From the Type dropdown menu, select host[1] and click on OK[2].
Nested virtualization should be enabled for the selected Proxmox VE virtual machine.
Checking if Nested Virtualization is Enabled on the Proxmox VE Virtual Machine (VM)
To check if nested virtualization is enabled on a Linux Proxmox VE virtual machine, read this article.
To check if nested virtualization is enabled on a Windows Proxmox VE virtual machine, read this article.
Conclusion
In this article, I have shown you how to check if nested virtualization is enabled on Intel and AMD-based Proxmox VE servers. I have also shown you how to enable nested virtualization on a Proxmox VE server with Intel and AMD processors installed. I have shown you how to enable nested virtualization on a Proxmox VE virtual machine (VM) from the Proxmox VE shell and from the Hardware section of the Proxmox VE virtual machine (VM).
References
More...