Best Practice Configurations for Virtual Machines on Proxmox VE
Our experts have documented their recommended configurations for virtual machines running on Proxmox VE.
Special Considerations for Linux VMs
VirtIO Support
Modern Linux kernels (2.6.25 and later) include VirtIO drivers natively. A separate driver installation is generally not required.
QEMU Guest Agent
However, this must be installed separately; it may, however, be installed automatically during a fresh installation of the guest operating system.
- Package name depending on the distribution:
- Debian/Ubuntu:
apt install qemu-guest-agent - RHEL/Rocky/AlmaLinux:
dnf install qemu-guest-agent
- Debian/Ubuntu:
- Enable the service:
systemctl enable --now qemu-guest-agent
Recommended Settings for Linux
| Setting | | | Recommendation |
| Machine Type/Chipset | | | q35 or i1440fx |
| BIOS | | | OVMF (UEFI) or SeaBIOS |
| SCSI controller | | | VirtIO SCSI Single |
| Network | | | VirtIO |
| Guest Agent | | | qemu-guest-agent (package) |
| Cloud-Init | | | Recommended for template deployments |
Notes
- You should configure Discard/TRIM within the VM so that the host can reclaim the released storage. Configuring it only on the VM disk is not sufficient. In most cases, however, this is already configured by default in the guest OS, though usually only for SSDs => SSD emulation may be necessary, or manual configuration may be required, for example, in fstab.
What else should you keep in mind?
Host CPU Type
While this CPU type offers the most features and delivers the best performance, it could pose limitations for future live migrations.
In general, a live migration using the Host type between two different host CPUs is not possible or is very unstable. (For example, migrating from a newer to an older CPU usually doesn’t work, but migrating from an older to a newer CPU generation might work) .
This could potentially lead to problems when expanding the cluster. Therefore, we generally recommend choosing one of the x86-64-vX CPUs, as these have a fixed CPU feature set that remains consistent across all nodes. You should select the lowest common denominator within the cluster.
Additionally, this CPU type sometimes causes problems under Windows (if necessary, remove the nested-virt flag).
Any questions?

Our expert on Ceph, GRAID, PetaSAN, Proxmox, and more

