How to Install Veeam Backup & Replication for Proxmox VE Virtual Machine Backup

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

Three Backup Options for Proxmox VE: Which One Is Right for You?

I run a homelab with Proxmox VE managing 12 VMs and containers — it’s my playground for testing everything before pushing to production. After years of trying all kinds of backup tools, the question I get most from junior sysadmins is: PBS is enough, why would anyone need Veeam?

The answer isn’t always “Veeam is better.” More accurately: each tool fits a different problem. There are three main approaches to backing up VMs on Proxmox VE:

  • vzdump — Built-in, free, minimal setup
  • Proxmox Backup Server (PBS) — Free, purpose-built for Proxmox
  • Veeam Backup & Replication — Enterprise-grade solution with multi-platform support

vzdump — Simple but with Clear Limitations

vzdump is Proxmox’s built-in tool, capable of backing up both KVM VMs and LXC containers. It’s a good fit when you have just 3–5 VMs and don’t need complex retention policies. Downsides: no true deduplication, incremental backup only works in snapshot mode, and restore management is fairly manual.

Proxmox Backup Server — Good Enough for Most Use Cases

PBS integrates deeply with Proxmox, offering solid deduplication and compression via the PXAR format, along with true incremental backups. For typical server workloads, dedup ratios of around 2:1–3:1 are common — significant savings when keeping many restore points. I’ve written a dedicated article on PBS — if your environment is pure Proxmox and your budget is zero, PBS is the optimal choice. No need to read further.

Veeam Backup & Replication — When Do You Actually Need It?

Veeam added Proxmox VE support starting with version 12.1 (early 2024). Its strengths lie in areas where PBS falls short:

  • Hybrid environments: Proxmox alongside VMware/Hyper-V and cloud — all managed from a single console
  • VM Replication to a DR site — a feature PBS doesn’t have
  • Instant Recovery — boot a VM directly from the backup file in minutes, no waiting for a full restore
  • Compliance and reporting with audit trails for enterprises
  • Veeam Agent for physical servers and cloud workloads in the same interface

PBS vs Veeam: A Feature-by-Feature Comparison

Looking at each criterion in detail:

  • Cost: PBS is completely free; Veeam offers a Community Edition free for up to 10 workloads, with paid Enterprise editions priced per workload
  • Deduplication: Both support it — PBS uses PXAR chunks, Veeam uses per-job or global dedup
  • VM Replication: PBS doesn’t have it; Veeam does, syncing VMs to a secondary site with low RPO
  • Instant Recovery: PBS has limited support; Veeam is faster and more reliable, booting VMs directly from backups
  • Multi-platform: PBS is Proxmox-only; Veeam supports VMware, Hyper-V, Proxmox, AWS, and Azure
  • Backup Server OS: PBS runs on Linux/Debian; Veeam B&R requires Windows Server
  • Setup complexity: PBS is simpler; Veeam involves more steps but has a clear wizard

Which Solution Should You Choose?

Based on my experience, it depends on the environment:

  • Homelab or SMB running pure Proxmox → PBS is sufficient, don’t over-engineer it
  • Enterprise hybrid environment (Proxmox + VMware/cloud) → Veeam is worth serious consideration
  • Need VM Replication to a DR site → Veeam is currently the best option
  • Under 10 VMs, want to try enterprise features for free → Veeam Community Edition

This guide uses Veeam Community Edition — free for up to 10 workloads, enough to fully experience its features before committing to a license.

Setting Up Your Environment

Unlike PBS which runs on Linux, Veeam B&R requires Windows Server — something you’ll need to prepare in advance. Minimum requirements:

  • Windows Server 2019 or 2022 (Windows 10/11 works for lab use)
  • 4 CPU cores, 8GB RAM (16GB recommended)
  • 100GB disk for installation + separate storage for the backup repository
  • Network connectivity to the Proxmox host on ports 443 and 22

Create a Windows Server VM on Proxmox to run Veeam:

# Run on Proxmox node
qm create 200 --name veeam-backup-server \
  --memory 16384 \
  --cores 4 \
  --sockets 1 \
  --cpu host \
  --net0 virtio,bridge=vmbr0 \
  --scsihw virtio-scsi-pci \
  --scsi0 local-lvm:100 \
  --ide2 local:iso/windows-server-2022.iso,media=cdrom \
  --boot order=ide2 \
  --ostype win11

# Start the VM
qm start 200

Installing Veeam Backup & Replication

Step 1: Download and Mount the ISO

Go to Veeam’s website, create a free account, and download the ISO (approximately 10GB). Mount it on Windows Server and run Setup.exe to begin.

For a silent install via PowerShell:

# Assuming the ISO is mounted at drive D:
# Silent install, automatically accept the license
D:\Setup.exe /silent /acceptlicensepolicy /acceptthirdpartylicenses

# Monitor installation progress via log
Get-Content "C:\ProgramData\Veeam\Setup\Temp\VeeamSetup.log" -Wait -Tail 20

Step 2: GUI Installation Wizard

Typically you’ll use the wizard. Key steps:

  1. Select Veeam Backup & Replication (skip other components for now)
  2. Leave the default installation path: C:\Program Files\Veeam\
  3. SQL Server: choose Install new instance of SQL Server Express — the installer handles this automatically, no prior setup needed
  4. Service account: use LOCAL SYSTEM for lab environments, a domain account for production
  5. Wait approximately 20–30 minutes

Connecting Proxmox VE to Veeam

Create a Dedicated API User on Proxmox

Don’t use root for Veeam. Create a dedicated user with exactly the permissions needed:

# Run on Proxmox node (via SSH or the Shell in the web UI)

# Create the veeam user in the pve realm
pveum useradd veeam@pve --comment "Veeam Backup Service Account"

# Create a role with the required permissions
pveum roleadd VeeamRole -privs "VM.Audit VM.Backup VM.Config.Disk VM.Config.Options VM.Console VM.Monitor VM.Snapshot VM.Snapshot.Rollback Datastore.AllocateSpace Datastore.Audit"

# Assign the role to the user at the root path (applies to the entire cluster)
pveum aclmod / -user veeam@pve -role VeeamRole

# Set the password
pveum passwd veeam@pve

# Verify permissions
pveum user list | grep veeam

Add Proxmox Host to Veeam Console

  1. Open Veeam Backup & Replication Console
  2. Go to InventoryVirtual InfrastructureAdd Server
  3. Select Proxmox Virtual Environment
  4. Enter the IP or hostname of the Proxmox node
  5. Add credentials: user veeam@pve and the password you just set
  6. Accept the SSH fingerprint when prompted

If you have a Proxmox Cluster, add the cluster VIP address instead of individual node IPs — Veeam will auto-discover all nodes:

# Check cluster status and node information
pvecm status
pvecm nodes

# Get the cluster IP (typically the corosync ring0 address)
cat /etc/pve/corosync.conf | grep addr

Creating a Backup Repository

Veeam stores backups in a repository. Common options:

  • Linux server via SSH — cost-effective, no additional Windows license needed
  • NFS/SMB share from a NAS
  • S3-compatible object storage (self-hosted MinIO or cloud)
  • Local disk on the Windows Server — simplest but least flexible

Steps to add a repository in the Veeam Console:

  1. Go to Backup InfrastructureBackup RepositoriesAdd Repository
  2. Select type: Linux (SSH) or Network attached storage
  3. Enter the server IP, SSH credentials, and the directory path for storing backups
  4. Configure concurrent tasks: 4–8 for a server with 16GB RAM
  5. Enable Decompress backup data blocks before storing if the repository has its own dedup (ZFS, NAS)

Creating a Backup Job for Proxmox VMs

Create a Basic Job

  1. HomeJobsBackup JobVirtual machine
  2. Name the job, e.g. Proxmox-Production-Daily
  3. Virtual MachinesAdd → select the VMs to back up from the connected Proxmox inventory
  4. Select the Backup repository you just created
  5. Configure Restore points to keep: typically 14 (two weeks of daily backups)

Configure the Schedule

# Typical backup schedule for production:
# Daily incremental: 2:00 AM every day
# Active Full Backup: Sunday at 1:00 AM (rebuild full backup weekly)
# Retry failed VMs: 3 times, 10 minutes apart
# Terminate job if it runs longer than: 8 hours

# Configure in the Schedule tab of the job wizard:
# [x] Run the job automatically
#     Daily at this time: 2:00 AM
# [x] Retry failed VM processing: 3 times
#     Wait before each retry attempt: 10 minutes
# [x] Terminate job if it exceeds: 8 hours

Check Job Status After a Run

# From PowerShell on the Veeam server
Add-PSSnapin VeeamPSSnapIn

# Get the most recent job session
$job = Get-VBRJob -Name "Proxmox-Production-Daily"
$lastSession = $job | Get-VBRJobSession | Sort-Object CreationTime -Descending | Select-Object -First 1
$lastSession | Select-Object Name, Result, CreationTime, EndTime

# View details of any failed VMs
$lastSession | Get-VBRTaskSession | Where-Object {$_.Status -ne "Success"} | Select-Object Name, Status, Info

Restoring a VM from Backup

Instant VM Recovery — Boot a VM Directly from Backup

This is my favorite Veeam feature — something PBS simply can’t do. The VM boots up in minutes without waiting for a full restore to complete:

  1. In HomeBackups, right-click the VM → RestoreInstant Recovery to Proxmox
  2. Select a specific restore point (by date/time)
  3. Choose the target Proxmox host and storage
  4. The VM boots within 2–5 minutes — Veeam mounts the backup file as temporary storage
  5. Verify the VM is working correctly, then click Migrate to Production to sync data to actual storage

Full VM Restore — For Complete Recovery

  1. Right-click the VM backup → RestoreEntire VM restore
  2. Select the restore point and destination (original location or a different Proxmox host)
  3. Optionally choose Quick rollback to restore only changed blocks (significantly faster)

Real-World Notes

After running Veeam with Proxmox for a while, here are a few things worth knowing:

  • CBT reset after kernel updates: Changed Block Tracking can reset after a Proxmox node kernel update. The first backup afterward will be a full backup — taking more time and space than usual. This is expected behavior, not a bug — just good to know so you’re not caught off guard
  • Database VMs: VMs running MySQL/PostgreSQL should have application-aware processing enabled in job settings to ensure crash-consistent backups. This requires installing the Veeam Agent inside the guest OS
  • Sizing your repository: Plan for at least 30% more space than the total size of VMs being backed up. Real-world dedup ratios range from 2:1–4:1 depending on workload — web server VMs deduplicate better, while database VMs change more frequently and yield lower ratios
  • Community Edition is limited to 10 workloads: each Proxmox VM counts as one workload. If you have 12 VMs like I do, you’ll need to purchase licenses for the remaining 2 or selectively choose which VMs to back up through Veeam

Veeam doesn’t replace PBS in every scenario — that was never the goal. But as environments grow larger and more complex, PBS starts hitting its limits. Replication to a DR site, managing VMware and cloud simultaneously from a single console — these are problems Veeam solves, and PBS doesn’t.

Share: