Creating VMs
Create and configure virtual machines in Proxmox VE: hardware settings, OS installation, and best practices.
Creating VMs
This guide covers creating a virtual machine in your Cloud-PVE cluster using the Proxmox VE web interface.
Create a VM
- Click Create VM in the top right corner of the interface
- Follow the wizard:
General tab
- Node: select the target node
- VM ID: auto-assigned (leave default)
- Name: give your VM a descriptive name
OS tab
- Upload or select an ISO from local → ISO Images
- Set Guest OS type and version (e.g., Linux 6.x for Ubuntu 22.04)
System tab
- BIOS: use
OVMF (UEFI)for modern OS,SeaBIOSfor legacy - Machine:
q35(recommended) ori440fx - SCSI Controller:
VirtIO SCSI singlefor best performance
Disks tab
- Bus:
VirtIO BlockorSCSI(both fast) - Storage:
local-lvm(NVMe-backed) - Size: set disk size in GB
- Enable Discard for thin provisioning
CPU tab
- Sockets: 1 (recommended for most workloads)
- Cores: as needed
- Type:
hostfor best performance (if not migrating between different CPU generations)
Memory tab
- Set Memory (MiB) as needed
- Enable Ballooning for flexible memory allocation
Network tab
- Bridge:
vmbr0(main network) - Model:
VirtIOfor best performance - Enable Firewall if you use Proxmox firewall rules
- Click Finish to create the VM
Install guest agent
After installing the OS, install the QEMU Guest Agent:
# Debian/Ubuntu
apt install qemu-guest-agent
systemctl enable --now qemu-guest-agent
# RHEL/CentOS
yum install qemu-guest-agent
systemctl enable --now qemu-guest-agent
Then enable it in VM → Options → QEMU Guest Agent.
VM templates
To create a template from an existing VM:
- Shut down the VM
- Right-click → Convert to Template
- Clone from template: Right-click template → Clone → choose Full Clone or Linked Clone
Best practices
- Always install QEMU Guest Agent for proper shutdown and IP reporting
- Use VirtIO drivers for NICs and disks
- Enable TRIM/Discard for SSDs
- Set appropriate CPU type, use
x86-64-v2-AESfor a good balance of compatibility and performance