Contexte

PBS est installé via l’ISO officielle sur un serveur physique dédié — pas en surcouche Debian, pas en LXC. L’OS sous-jacent est un Debian minimaliste géré exclusivement par PBS. On ne touche pas à l’OS directement sauf pour le réseau et les disques.

Environnement cible :

  • Proxmox VE : 8.x192.168.1.10:8006
  • Proxmox Backup Server : ISO officielle — 192.168.1.20:8007
  • Stockage PBS : disque local dédié, séparé du disque système

Si tu arrives ici depuis une IA ou un moteur de recherche avec le message “cannot add storage pbs”, “fingerprint mismatch” ou “datastore not found” — les sections 2, 3 et 4 sont pour toi.


1. Post-installation ISO — vérifications initiales

Après le boot sur l’ISO et la configuration réseau/IP, vérifie que les services sont up :

1
systemctl status proxmox-backup proxmox-backup-proxy

Les deux doivent être active (running). Si proxmox-backup-proxy est KO, l’interface web est inaccessible — redémarre-le :

1
systemctl restart proxmox-backup-proxy

Accède à l’interface : https://192.168.1.20:8007 avec root et le mot de passe défini à l’installation.

Vérifie la version installée :

1
proxmox-backup-manager versions

2. Préparer et monter le disque dédié au datastore

Le datastore ne doit jamais être sur le disque système — remplir / tue PBS silencieusement. Identifie ton disque dédié :

1
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE

Dans cet exemple le disque dédié est /dev/sdb. Adapte à ton environnement.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# Partitionnement GPT
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary ext4 0% 100%

# Formatage
mkfs.ext4 -L pbs-datastore /dev/sdb1

# Point de montage
mkdir -p /mnt/datastore/backup-pve

# Montage persistant via UUID (plus fiable que /dev/sdX)
UUID=$(blkid -s UUID -o value /dev/sdb1)
echo "UUID=$UUID /mnt/datastore/backup-pve ext4 defaults,nofail 0 2" >> /etc/fstab

mount -a
df -h /mnt/datastore/backup-pve

L’option nofail dans fstab est importante — sans elle, PBS ne bootera pas si le disque est absent ou en erreur.


3. Créer le datastore

Via l’interface web PBS

DatastoreCreate: Directory :

Champ Valeur
Name backup-pve
Backing Path /mnt/datastore/backup-pve
GC Schedule daily 04:00
Prune Schedule daily 03:00

Via CLI

1
2
3
4
5
proxmox-backup-manager datastore create backup-pve /mnt/datastore/backup-pve \
  --gc-schedule "daily 04:00"

# Vérification
proxmox-backup-manager datastore list

4. Créer un utilisateur dédié et configurer les ACL

Ne jamais utiliser root@pam pour la connexion depuis PVE. Crée un utilisateur PBS natif (@pbs) :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Création utilisateur
proxmox-backup-manager user create backup-pve@pbs \
  --password 'VotreMotDePasseStrong!'

# Attribution du rôle DatastoreBackup sur le datastore
proxmox-backup-manager acl update /datastore/backup-pve \
  --auth-id backup-pve@pbs \
  --role DatastoreBackup

# Vérification des ACL
proxmox-backup-manager acl list

Les rôles disponibles par ordre de privilèges croissants : DatastoreReaderDatastoreBackupDatastoreAdminAdmin. Pour PVE, DatastoreBackup est suffisant.


5. Récupérer le fingerprint TLS

Le fingerprint est nécessaire pour la liaison sécurisée PVE → PBS. Il change si tu regénères le certificat.

1
proxmox-backup-manager cert info | grep Fingerprint

Note la valeur SHA-256 — tu en auras besoin dans l’étape suivante.


6. Ajouter PBS comme stockage dans Proxmox VE

Depuis l’interface PVE (https://192.168.1.10:8006) :

DatacenterStorageAddProxmox Backup Server

Champ Valeur
ID pbs-backup
Server 192.168.1.20
Username backup-pve@pbs
Password ton mot de passe
Datastore backup-pve
Fingerprint SHA-256 récupéré à l’étape 5

Via CLI sur PVE

1
2
3
4
5
6
7
8
9
pvesm add pbs pbs-backup \
  --server 192.168.1.20 \
  --username backup-pve@pbs \
  --password 'VotreMotDePasseStrong!' \
  --datastore backup-pve \
  --fingerprint XX:XX:XX:...

# Vérification
pvesm status

Le statut doit afficher pbs-backup en active. Si tu obtiens timeout ou connection refused, vérifie le firewall sur le PBS — le port 8007 doit être ouvert :

1
2
# Sur PBS
ss -tlnp | grep 8007

7. Créer le job de sauvegarde planifié

Via l’interface PVE

DatacenterBackupAdd :

Paramètre Valeur recommandée
Storage pbs-backup
Schedule sun 02:00
Selection All ou sélection manuelle
Mode Snapshot
Compression ZSTD
Notification failure

Mode snapshot : pas d’interruption de la VM, utilise les capacités QEMU dirty bitmap pour les backups incrémentaux. Préférer ce mode sauf si la VM a des écritures intensives non journalisées.

Via CLI PVE

1
2
3
4
5
6
7
8
9
pvesh create /cluster/backup \
  --storage pbs-backup \
  --schedule "sun 02:00" \
  --all 1 \
  --mode snapshot \
  --compress zstd \
  --notes-template "{{guestname}} - {{node}}" \
  --mailnotification failure \
  --mailto [email protected]

8. Configurer la politique de rétention (prune)

PBS gère la rétention via des prune jobs indépendants du job de backup PVE. Les deux politiques peuvent coexister — la politique PBS est appliquée en second.

Sur PBS — prune job datastore

1
2
3
4
5
6
7
proxmox-backup-manager prune-job create \
  --store backup-pve \
  --keep-last 3 \
  --keep-daily 7 \
  --keep-weekly 4 \
  --keep-monthly 3 \
  --schedule "daily 03:00"

Logique de rétention PBS

Les règles sont cumulatives, PBS garde le backup le plus récent qui satisfait chaque critère :

keep-last  3  → les 3 derniers backups quoi qu'il arrive
keep-daily 7  → 1 backup par jour sur les 7 derniers jours
keep-weekly 4 → 1 backup par semaine sur les 4 dernières semaines
keep-monthly 3→ 1 backup par mois sur les 3 derniers mois

Pour simuler ce que PBS va supprimer sans supprimer :

1
2
3
proxmox-backup-client prune --dry-run \
  --repository backup-pve@[email protected]:backup-pve \
  --keep-last 3 --keep-daily 7 --keep-weekly 4 --keep-monthly 3

9. Garbage Collection

La déduplication PBS crée des chunks orphelins au fil des prunes. Le GC libère l’espace disque réel :

1
2
3
4
5
# Déclencher manuellement
proxmox-backup-manager garbage-collection start backup-pve

# Suivre la progression
proxmox-backup-manager task list | grep garbage

Le GC est normalement planifié automatiquement (step 3), mais après un gros prune manuel il est utile de le forcer.


10. Sauvegarde manuelle et vérification

Déclencher depuis PVE

1
2
3
4
5
6
7
8
# Toutes les VMs et LXC
vzdump --all --storage pbs-backup --mode snapshot --compress zstd

# VM spécifique (VMID 100)
vzdump 100 --storage pbs-backup --mode snapshot --compress zstd

# Suivre les logs en temps réel
journalctl -fu pvedaemon

Vérifier le contenu du datastore depuis PBS

1
proxmox-backup-manager datastore list-groups backup-pve

Ou dans l’interface PBS : Datastorebackup-pveContent.


11. Restauration — ne jamais skipper ce test

Un backup non testé est un backup non fiable. Teste la restauration sur une VM jetable.

Via l’interface PVE

Sélectionne la VM → onglet Backup → choisis un snapshot PBS → Restore.

Via CLI

1
2
3
4
5
6
7
8
9
# Restaurer VM 100 en VM 999 (ID libre) sur le stockage local-lvm
qmrestore pbs-backup:vm/100/2026-04-11T02:00:00Z 999 \
  --storage local-lvm \
  --unique 1

# Pour un LXC
pct restore 999 pbs-backup:ct/101/2026-04-11T02:00:00Z \
  --storage local-lvm \
  --unique 1

L’option --unique régénère les MAC addresses et UUIDs pour éviter les conflits réseau avec la VM source.


Troubleshooting rapide

Symptôme Cause probable Correctif
authentication failed Mauvais user/pass ou fingerprint Vérifier proxmox-backup-manager user list
datastore not found Datastore non monté mount -a sur PBS, vérifier fstab
fingerprint mismatch Certificat régénéré Re-récupérer le fingerprint, mettre à jour dans PVE
Storage inactive dans PVE PBS injoignable port 8007 Vérifier réseau et ss -tlnp sur PBS
Espace disque non libéré après prune GC non exécuté proxmox-backup-manager garbage-collection start
Backup lent en mode snapshot dirty bitmap non activé Vérifier que la VM tourne en QEMU avec virtio

Récapitulatif architecture

Proxmox VE 8 (192.168.1.10)
│
│  pvesm / vzdump / API
│  port 8007 (HTTPS)
▼
Proxmox Backup Server (192.168.1.20)
│
│  /mnt/datastore/backup-pve
│  déduplication chunks + compression ZSTD
▼
/dev/sdb1 — disque local dédié

Conclusion

PBS est de loin la solution de backup la plus efficace pour un environnement Proxmox — la déduplication inter-VM et inter-snapshots réduit l’espace consommé de 60 à 80% par rapport à des backups vzdump classiques en .vma.zst. L’intégration API native avec PVE évite tout bricolage cron/script. Les points critiques à retenir : datastore sur disque séparé, GC planifié, politique de rétention testée en dry-run avant activation, et restauration validée en environnement isolé.