Skip to content

Proxmox Backup Server

PegaProx integrates with Proxmox Backup Server (PBS) for enterprise-grade backup management:

  • Connect and manage multiple PBS instances
  • Browse backup contents and restore individual files
  • Schedule automated backups to PBS
  • Monitor backup job status and storage usage
  • Restore VMs/CTs from PBS backups

Changes in 1.3

  • API tokens: a PBS server can be connected with an API token instead of a password (#805).
  • Linking to clusters: a PBS server is linked to the clusters that may use it. Only a global administrator can leave a server linked to no cluster (which makes it visible to every tenant); other users link it to clusters they reach. An update that leaves linked_clusters out keeps the stored links.
  • Shared PBS servers: where one PBS serves several clusters or tenants, each user sees only the backups of guests on clusters they may use. Server-wide actions (changing or running jobs, stopping tasks, garbage collection, prune, verify, datastore changes, host upgrade) need every linked cluster.
  • Certificate fingerprint: when a fingerprint is stored, a connection whose certificate does not match it is refused, also in the storage pre-flight. Adding the PBS as storage to clusters puts the stored credentials only on clusters the server is linked to.
  • Changing the address: a new host or port needs the credential again in the same step.

Datastore Management

Garbage Collection

Reclaim disk space by removing unreferenced chunks. GC identifies orphaned data blocks and purges them safely. Run on schedule or trigger manually.

Verify Integrity

Validate checksums of every stored chunk to detect bit rot or silent corruption. Schedule weekly or monthly depending on datastore size.

Prune Snapshots

Apply retention policies to remove old snapshots. Pruning respects keep rules and protection flags.

Retention Policies

Rule Description Example
keep-last Keep N most recent snapshots 3 retains latest 3
keep-hourly One per hour for N hours 24 keeps one per hour for 1 day
keep-daily One per day for N days 7 keeps daily for 1 week
keep-weekly One per week for N weeks 4 keeps weekly for 1 month
keep-monthly One per month for N months 6 keeps monthly for 6 months
keep-yearly One per year for N years 2 keeps yearly for 2 years

Snapshot Protection & Notes

Protected snapshots cannot be deleted manually or by automated prune jobs. Notes are searchable and useful for tagging important backups (e.g. "pre-migration" or "before kernel upgrade").

Sync, Verify & Prune Jobs

Sync Jobs

Replicate snapshots between PBS servers using incremental deduplication. Useful for offsite DR.

Verify Jobs

Validate chunk integrity by recomputing checksums. Detects bit rot and storage corruption.

Prune Jobs

Automated retention policy enforcement on a schedule. Dry-run mode available.

Traffic Control

Parameter Description Default
Rate In Max incoming bandwidth (MiB/s) for uploads Unlimited
Rate Out Max outgoing bandwidth (MiB/s) for restores/sync Unlimited
Time Windows Cron-style schedule for when limits are active Always

Notification Endpoints

SMTP

Email notifications via SMTP relay with TLS support.

Gotify

Push notifications with severity-mapped priority levels.

Webhook

HTTP POST with JSON payload for Slack, Teams, or custom alerting.

Matchers filter notifications by job type (backup, sync, verify, prune), severity, and datastore name.

Disk SMART Monitoring

Attribute Warning Significance
Reallocated Sectors > 0 Physical media damage; rising count signals imminent failure
Pending Sectors > 0 Sectors awaiting reallocation
Temperature > 55°C Excessive heat accelerates wear
Power-On Hours Info Lifecycle tracking
SSD Wear < 10% Remaining flash endurance

Complete PBS API Reference (41 Endpoints)

Server Management

Method Endpoint Description
GET /api/pbs List PBS servers
POST /api/pbs Add PBS server
PUT /api/pbs/{id} Update config
DELETE /api/pbs/{id} Remove server
POST /api/pbs/{id}/test Test connection
GET /api/pbs/{id}/status Server status

Datastores

Method Endpoint Description
GET /api/pbs/{id}/datastores List datastores
POST /api/pbs/{id}/datastores Create datastore
DELETE /api/pbs/{id}/datastores/{store} Delete datastore
POST /api/pbs/{id}/datastores/{store}/gc Run garbage collection
POST /api/pbs/{id}/datastores/{store}/verify Verify integrity
POST /api/pbs/{id}/datastores/{store}/prune Prune snapshots

Snapshots

Method Endpoint Description
GET /api/pbs/{id}/datastores/{store}/snapshots List snapshots
DELETE /api/pbs/{id}/datastores/{store}/snapshots Delete snapshot
PUT /api/pbs/{id}/datastores/{store}/protected Toggle protection
GET /api/pbs/{id}/datastores/{store}/catalog Browse catalog
GET /api/pbs/{id}/datastores/{store}/file-download Download file

Jobs

Method Endpoint Description
GET /api/pbs/{id}/jobs List all jobs
POST /api/pbs/{id}/jobs/{type} Create job
POST /api/pbs/{id}/jobs/{type}/{job_id}/run Trigger manual run

Monitoring

Method Endpoint Description
GET /api/pbs/{id}/tasks List tasks
GET /api/pbs/{id}/disks Disk info + SMART
GET /api/pbs/{id}/rrd Performance metrics

Traffic & Notifications

Method Endpoint Description
GET /api/pbs/{id}/traffic-control Traffic rules
POST /api/pbs/{id}/traffic-control Create traffic rule
GET /api/pbs/{id}/notifications List notification config
POST /api/pbs/{id}/notifications/targets/{type}/{name} Create target
POST /api/pbs/{id}/notifications/matchers/{name} Create matcher