Skip to main content

Proxmox Backup Server (PBS)

PBS is een gespecialiseerde backupoplossing ontwikkeld door Proxmox, ontworpen voor het efficiënt en betrouwbaar backuppen van servers en data.

Waarom PBS?

In een omgeving met meerdere Linux servers, containers en virtuele machines is een centrale backupoplossing essentieel. PBS biedt:

  • Deduplicatie: identieke datablokken worden slechts één keer opgeslagen, waardoor schijfruimte significant bespaard wordt
  • Incrementele backups: enkel gewijzigde data wordt overgedragen na de eerste volledige backup
  • Integriteitscontrole: automatische verificatie van opgeslagen data detecteert stille corruptie (bitrot)
  • Flexibele restore: individuele bestanden, mappen of volledige backups zijn eenvoudig terug te zetten via webUI of CLI
  • Retentiebeheer: automatisch opruimen van oude snapshots op basis van instelbare regels

Wanneer PBS inzetten?

PBS is aangewezen wanneer:

  • Meerdere servers centraal gebackupt moeten worden
  • Schijfruimte efficiënt benut moet worden door deduplicatie
  • Een betrouwbare, verifieerbare backuphistorie vereist is
  • Zowel volledige systemen als individuele bestanden herstelbaar moeten zijn

Server

Installatie PBS

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/proxmox-backup-server.sh)"

Client

Linux

Installatie

wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg   -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
echo "deb http://download.proxmox.com/debian/pbs-client bookworm main"   > /etc/apt/sources.list.d/pbs-client.list
apt update && apt install proxmox-backup-client

Soms ook:

wget http://archive.ubuntu.com/ubuntu/pool/main/libz/libzstd/libzstd1_1.5.5+dfsg2-2build1.1_amd64.deb
dpkg -i libzstd1_1.5.5+dfsg2-2build1.1_amd64.deb
apt install proxmox-backup-client

Script

vim /diy/backup_PBS.sh

Maak hier de juiste aanpassingen (bv server ip XXXX, Password YYYY, ZZZZ  fingerprint, AAAA hostname, eventueel datastores...)

#!/bin/bash
echo "=== Backup gestart: $(date) ===" >> /var/log/backup_PBS.log
export PBS_REPOSITORY="root@pam@XXXX:Backups_HD1"
export PBS_PASSWORD="YYYY"
export PBS_FINGERPRINT="fc:7e:e7:02:65:c7:6b:97:4a:a8:74:4d:28:02:9b:96:51:9b:b6:61:c3:e3:7d:32:8a:ad:d2:12:bc:c5:77:53"ZZZZZZ"

proxmox-backup-client backup \
  backupRemote.pxar:/backupRemote \
  diy.pxar:/diy \
  configs.pxar:/etc \
  home.pxar:/root \
  --repository $PBS_REPOSITORY \
  --backup-id BabbelAAAA \
  --exclude lost+found \
  --exclude '**/.cache'

echo "=== Backup beëindigd: $(date) ===" >> /var/log/backup_PBS.log
chmod +x /diy/backup_PBS.sh 

Opstart Scripts

vim /etc/systemd/system/backup-pbs.service
ini[Unit]
Description=PBS backup

[Service]
Type=oneshot
ExecStart=/bin/bash /diy/backup_PBS.sh
StandardOutput=append:/var/log/backup_PBS.log
StandardError=append:/var/log/backup_PBS.log
vim /etc/systemd/system/backup-pbs.timer

Pas eventueel tijd aan dat de backups genomen wordt. Niet alle server tegelijkertijd bv.

ini[Unit]
Description=Dagelijkse PBS backup

[Timer]
OnCalendar=*-*-* 05:43:21
Persistent=true

[Install]
WantedBy=timers.target

Zorg dat dit automatisch loopt, en draai het ook even manueel.

systemctl daemon-reload
systemctl enable --now backup-pbs.timer
bash -v /diy/backup_PBS.sh