Skip to content

Proxmox Backup Server (PBS)

Proxmox Backup Server running on px5-lemans (France) for efficient incremental backups over WAN.

Container: CT 5101 (pbs-fr)
IP: 10.35.1.101
Web UI: https://10.35.1.101:8007
Last Updated: 2026-02-04


Overview

PBS replaces traditional vzdump-to-NFS backups with:

  • Incremental backups - Only changed data transferred (typically 1-5GB vs 40-100GB)
  • Deduplication - ~50-70% storage reduction
  • Resume on failure - Interrupted backups continue where they left off
  • Faster restores - 10-20 minutes vs 30-60 minutes

Architecture

UK (px1/px2/px3)                              France (px5)
      │                                            │
      ├── PBS ────── WireGuard (~18ms) ──────→ CT 5101 (pbs-fr)
      │              (incremental, ~1-5GB/night)   │
      │                                            ↓
      │                                       PBS Datastore
      │                                       (pikvm-backup NFS)
      │
      └── vzdump → px3-nas (UK local, fast restore)

Container Specification

Parameter Value
VMID 5101
Hostname pbs-fr
IP 10.35.1.101/24
Gateway 10.35.1.1
Cores 4
RAM 4096 MB
Root disk 16 GB (local)
Datastore Bind mount from pikvm-backup NFS

Datastore

Name Path Storage Free Space
pbs-main /mnt/datastore/pbs-main pikvm-backup NFS ~1.1 TB

Maintenance Jobs

Job Schedule Purpose
Garbage Collection Saturday 02:00 Remove orphaned chunks
Verification Sunday 04:00 Verify backup integrity

PVE Storage Integration

PBS is registered as storage pbs-fr in the Proxmox cluster.

# Check storage status
pvesm status | grep pbs-fr

# List backups
pvesm list pbs-fr --content backup

Backup Jobs

All jobs configured in /etc/pve/jobs.cfg:

Job Node Schedule Retention
pbs-px3-daily px3-suzuka 22:00 7 daily, 4 weekly, 2 monthly
pbs-px2-daily px2-monza 00:30 7 daily, 4 weekly, 2 monthly
pbs-px1-daily px1-silverstone 03:00 7 daily, 4 weekly, 2 monthly
pbs-weekly px1-silverstone Sun 07:00 8 weekly, 3 monthly

Job Details

vzdump: pbs-px1-daily
    all 1
    compress zstd
    enabled 1
    mailnotification failure
    mailto chpa35@gmail.com
    mode snapshot
    node px1-silverstone
    notes-template {{guestname}}-pbs
    prune-backups keep-daily=7,keep-weekly=4,keep-monthly=2
    schedule 03:00
    storage pbs-fr

Web UI Access

URL: https://10.35.1.101:8007

Warning

Accept the browser security warning for the self-signed certificate.

Login

  • Realm: Linux PAM
  • Username: root
  • Password: Stored in password manager

Key Dashboards

  • Dashboard - Overview of datastore usage and recent tasks
  • Datastore > pbs-main - Browse backups, verify, prune
  • Administration > Tasks - View running and completed jobs

CLI Commands

On PBS Container (CT 5101)

# Enter container
ssh px5 "pct exec 5101 -- bash"

# List datastores
proxmox-backup-manager datastore list

# Show datastore details
proxmox-backup-manager datastore show pbs-main

# List users
proxmox-backup-manager user list

# Check GC status
proxmox-backup-manager task list --type gc

# Manual GC
proxmox-backup-manager garbage-collection start pbs-main

From PVE Nodes

# List PBS backups
pvesm list pbs-fr --content backup

# Manual backup to PBS
vzdump 1112 --storage pbs-fr --compress zstd --mode snapshot

# Restore from PBS
pct restore 1112 pbs-fr:backup/ct/1112/2026-02-04T03:00:00Z --storage ceph-pool

# Restore to different VMID (test)
pct restore 9999 pbs-fr:backup/ct/1112/2026-02-04T03:00:00Z --storage ceph-pool --unique

Recovery Procedures

Restore CT from PBS

# List available backups
pvesm list pbs-fr --content backup | grep "ct/1112"

# Restore (overwrites existing)
pct restore 1112 pbs-fr:backup/ct/1112/2026-02-04T03:00:00Z --storage ceph-pool

# Restore to new VMID
pct restore 9999 pbs-fr:backup/ct/1112/2026-02-04T03:00:00Z --storage ceph-pool --unique

Restore VM from PBS

# List available backups
pvesm list pbs-fr --content backup | grep "vm/1111"

# Restore
qmrestore pbs-fr:backup/vm/1111/2026-02-04T03:00:00Z 1111 --storage ceph-pool

File-Level Restore

PBS supports restoring individual files without full VM restore:

  1. Open PBS Web UI
  2. Navigate to Datastore > pbs-main > Content
  3. Select backup snapshot
  4. Click "Browse Files"
  5. Download individual files

Monitoring

Check Backup Status

# Recent PBS tasks
ssh px5 "pct exec 5101 -- proxmox-backup-manager task list" | head -20

# Check datastore usage
pvesm status | grep pbs-fr

# Verify backups exist
pvesm list pbs-fr --content backup | wc -l

Alerts

PBS sends email notifications on: - Backup failures - Verification failures
- Low storage warnings


Troubleshooting

PBS Unreachable

# Check container status
ssh px5 "pct status 5101"

# Check PBS services
ssh px5 "pct exec 5101 -- systemctl status proxmox-backup-proxy"

# Check network
ping 10.35.1.101

Storage Not Visible

# Check PVE storage config
grep -A10 "pbs: pbs-fr" /etc/pve/storage.cfg

# Test connectivity
pvesm list pbs-fr --content backup 2>&1 | head -5

Backup Failures

# Check vzdump logs
tail -100 /var/log/vzdump/vzdump-*.log

# Check PBS task log (in web UI or CLI)
ssh px5 "pct exec 5101 -- proxmox-backup-manager task list"

Parallel Run Period

During the 2-week validation period (Feb 4-18, 2026):

  • Both vzdump and PBS jobs run simultaneously
  • Monitor PBS backup sizes (should decrease after day 2)
  • Test restores from PBS
  • Compare with vzdump restore times

After validation, disable old vzdump jobs: - pikvm-px1, pikvm-px2, pikvm-px3 - backup-55292acc - weekly-archive

Keep active: uk-secondary (vzdump to px3-nas for fast UK restores)


Expected Benefits

Metric Before (vzdump NFS) After (PBS)
Nightly WAN transfer 40-100 GB 1-5 GB
Storage used ~1.5 TB ~500 GB
Restore time (France) 30-60 min 10-20 min
Resume on failure No Yes
Deduplication No Yes


Last updated: 2026-02-04