🛠 Outils IT

Guide Proxmox Backup Server

1. Qu'est-ce que Proxmox Backup Server

Proxmox Backup Server (PBS) est une solution de sauvegarde d'entreprise open-source, développée par Proxmox Server Solutions. Elle est spécialement conçue pour sauvegarder et restaurer des machines virtuelles, des conteneurs et des hôtes physiques.

Fonctionnalités clés

  • Déduplication au niveau bloc (chunks) : les données sont découpées en blocs (chunks) de taille variable. Seuls les blocs uniques sont stockés, ce qui réduit considérablement l'espace disque utilisé.
  • Compression zstd : chaque chunk est compressé via l'algorithme Zstandard (zstd), offrant un excellent ratio compression/vitesse.
  • Chiffrement AES-256-GCM : chiffrement côté client avec authentification (Galois/Counter Mode), garantissant que le serveur PBS ne voit jamais les données en clair.
  • Intégration native avec Proxmox VE : ajout en quelques clics comme storage de type « Proxmox Backup Server » dans PVE.
  • Interface web complète : accessible sur le port 8007 (HTTPS) — ex : https://srv-backup01.example.com:8007
  • Incrémentiel natif : après le premier backup complet, seuls les blocs modifiés sont transférés.
  • Restauration granulaire : restauration complète ou fichier par fichier.
Architecture réseau typique : le serveur PBS est un serveur dédié (physique ou VM), connecté au même réseau que les nœuds Proxmox VE. Il écoute sur le port 8007/tcp. Exemple : srv-backup01.example.com10.0.0.50:8007.

2. Installation

Option A : Installation depuis l'ISO dédiée

Proxmox fournit une image ISO dédiée pour PBS. C'est la méthode la plus simple :

  1. Télécharger l'ISO depuis le site officiel Proxmox.
  2. Graver sur clé USB (dd, Rufus, Etcher).
  3. Booter le serveur sur la clé USB.
  4. Suivre l'assistant d'installation (choix du disque, réseau, mot de passe root).
  5. Redémarrer et accéder à l'interface web.

Option B : Installation sur un Debian existant

Si vous disposez déjà d'un serveur Debian (Bookworm 12), vous pouvez ajouter PBS par-dessus :

Étape 1 : Ajouter le dépôt PBS

# Ajouter le depot PBS no-subscription
echo "deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription" > /etc/apt/sources.list.d/pbs-no-subscription.list

# Ajouter la cle GPG du depot Proxmox
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

Étape 2 : Installer PBS

apt update
apt install proxmox-backup-server

Étape 3 : Première connexion

Ouvrez votre navigateur et rendez-vous sur https://<IP-du-serveur>:8007. Connectez-vous avec les identifiants :

  • Utilisateur : root@pam
  • Mot de passe : le mot de passe root du système

Étape 4 : Configuration réseau

Vérifiez la configuration réseau dans /etc/network/interfaces. Il est recommandé d'utiliser une IP statique :

# /etc/network/interfaces - Exemple
auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
    address 10.0.0.50/24
    gateway 10.0.0.1
Conseil : Pour un environnement de production, utilisez un réseau dédié au backup (VLAN séparé) afin de ne pas saturer le réseau principal. Exemple : VLAN 50 — 10.0.50.0/24.

3. Datastores

Un datastore est l'emplacement de stockage où PBS enregistre les sauvegardes. C'est un répertoire sur le filesystem local du serveur PBS. Chaque datastore gère indépendamment ses chunks, ses index et ses politiques de rétention.

Créer un datastore depuis l'interface web

  1. Connectez-vous à l'interface PBS (https://srv-backup01.example.com:8007).
  2. Allez dans Administration > Storage / Disks.
  3. Si nécessaire, initialisez un disque (ZFS pool, ext4, etc.).
  4. Allez dans Datastore > Add Datastore.
  5. Renseignez le nom et le chemin, puis validez.

Créer un datastore en CLI

# Creer un point de montage (si besoin)
mkdir -p /mnt/backup-data

# Monter le disque dedie (exemple avec un disque formate en ext4)
mount /dev/sdb1 /mnt/backup-data

# Ajouter dans /etc/fstab pour montage automatique
echo "/dev/sdb1 /mnt/backup-data ext4 defaults 0 2" >> /etc/fstab

# Creer le datastore
proxmox-backup-manager datastore create mybackups /mnt/backup-data

Organisation interne d'un datastore

Un datastore PBS contient la structure suivante :

Répertoire / Fichier Description
.chunks/ Contient tous les blocs dédupliqués (chunks). Organisés en sous-répertoires par préfixe de hash.
ct/ et vm/ Répertoires contenant les index de backup classés par type (conteneur / VM).
host/ Répertoire pour les backups d'hôtes physiques.
Fichiers .fidx Index de blocs fixes (fixed-size) — utilisés pour les images disques de VM.
Fichiers .didx Index de blocs dynamiques — utilisés pour les archives pxar (fichiers).
Fichiers .blob Petits fichiers stockés directement (configs, manifestes).

Recommandations filesystem

  • ZFS (recommandé) : support natif des snapshots, scrub pour la détection d'erreurs, compression intégrée, raids logiciels (mirror, raidz).
  • ext4 : simple et stable, adapté pour des volumes de taille modérée.
  • XFS : performant pour les gros fichiers, mais moins de fonctionnalités que ZFS.
# Exemple : creer un pool ZFS mirror pour le datastore
zpool create backup-pool mirror /dev/sdb /dev/sdc
zfs set compression=on backup-pool
zfs set atime=off backup-pool

# Creer le datastore sur le pool ZFS
proxmox-backup-manager datastore create prod-backups /backup-pool/prod-backups

Plusieurs datastores : séparation par environnement

Il est recommandé de créer des datastores séparés par environnement pour mieux gérer la rétention et l'espace disque :

Datastore Chemin Usage
ds-prod /mnt/backup/prod VMs de production — rétention longue
ds-dev /mnt/backup/dev VMs de développement — rétention courte
ds-test /mnt/backup/test VMs de test — rétention minimale
Note : La déduplication fonctionne uniquement au sein d'un même datastore. Si vous séparez les datastores, les chunks ne seront pas partagés entre eux. Regroupez les VMs similaires dans le même datastore pour maximiser la déduplication.

4. Ajout du PBS dans Proxmox VE

Via l'interface web PVE

  1. Connectez-vous à Proxmox VE.
  2. Allez dans Datacenter > Storage > Add > Proxmox Backup Server.
  3. Remplissez les champs suivants :
Paramètre Valeur exemple Description
ID pbs-prod Nom du storage dans PVE
Server 10.0.0.50 Adresse IP ou FQDN du PBS (ex: srv-backup01.example.com)
Username backup-user@pbs Utilisateur créé dans PBS (ou root@pam)
Password ******** Mot de passe de l'utilisateur PBS
Datastore ds-prod Nom du datastore sur le PBS
Fingerprint AB:CD:EF:12:... Empreinte du certificat SSL du PBS

Obtenir le fingerprint du certificat PBS

Sur le serveur PBS, exécutez :

# Afficher les informations du certificat, dont le fingerprint
proxmox-backup-manager cert info | grep Fingerprint

# Resultat attendu :
# Fingerprint (sha256): AB:CD:EF:12:34:56:78:90:AB:CD:EF:12:34:56:78:90:AB:CD:EF:12:34:56:78:90:AB:CD:EF:12:34:56:78:90

Créer un utilisateur dédié dans PBS (recommandé)

Plutôt que d'utiliser root@pam, créez un utilisateur dédié :

# Creer l'utilisateur
proxmox-backup-manager user create backup-user@pbs --comment "Utilisateur PVE backup"

# Definir le mot de passe
proxmox-backup-manager user update backup-user@pbs --password "MotDePasseSecurise"

# Donner les droits sur le datastore
proxmox-backup-manager acl update /datastore/ds-prod DatastoreBackup --auth-id backup-user@pbs

Tester la connexion

Après l'ajout, vérifiez que le storage apparaît dans PVE :

  • Allez dans Datacenter > Storage et vérifiez que pbs-prod est Active.
  • Cliquez sur le storage et vérifiez que l'onglet Content s'affiche sans erreur.
  • Vous pouvez aussi tester en CLI depuis un nœud PVE :
# Test de connexion depuis PVE
pvesm status | grep pbs
Attention : Si le fingerprint est incorrect ou manquant, PVE refusera la connexion. Assurez-vous de copier le fingerprint complet depuis le serveur PBS.

5. Planification des sauvegardes

Depuis l'interface Proxmox VE

  1. Allez dans Datacenter > Backup > Add.
  2. Configurez le job de sauvegarde :
Paramètre Description Exemple
Storage Le storage PBS ajouté précédemment pbs-prod
Schedule Fréquence des sauvegardes daily 02:00
Selection mode Quelles VMs/CTs sauvegarder All, Include, Exclude, Pool
Mode Mode de backup Snapshot
Notification Notification en cas d'échec failure-only
Send email to Adresse de notification admin@example.com
Compression Type de compression ZSTD (défaut)

Formats de planification (schedule)

Format Description
daily Tous les jours à 00:00
daily 02:00 Tous les jours à 02h00
weekly Chaque semaine (dimanche à 00:00)
mon..fri 03:00 Du lundi au vendredi à 03h00
sat 22:00 Chaque samedi à 22h00
*:00 Toutes les heures (toutes les heures pile)
mon,wed,fri 01:30 Lundi, mercredi et vendredi à 01h30

Modes de backup

Mode Description Impact
Snapshot Sauvegarde à chaud via snapshot QEMU (live). Mode recommandé. Aucun downtime. Utilise l'agent QEMU pour la cohérence (freeze/thaw).
Suspend Suspend la VM en RAM le temps de la copie. Brève pause (quelques secondes). Cohérence garantie.
Stop Arrête proprement la VM, sauvegarde, puis la redémarre. Downtime complet. Réservé aux cas où la cohérence est critique.

Sélection des VMs/CTs

  • All : toutes les VMs et conteneurs du cluster.
  • Include selected : sélection manuelle des VMs à sauvegarder.
  • Exclude selected : toutes sauf celles sélectionnées.
  • Pool : sauvegarder toutes les VMs d'un pool donné (ex: pool « production »).

Backup en ligne de commande (vzdump)

# Sauvegarder une VM specifique (VMID 100) vers le storage PBS
vzdump 100 --storage pbs-prod --mode snapshot

# Sauvegarder plusieurs VMs
vzdump 100 101 102 --storage pbs-prod --mode snapshot

# Sauvegarder toutes les VMs du noeud
vzdump --all --storage pbs-prod --mode snapshot

# Sauvegarder avec notification email
vzdump 100 --storage pbs-prod --mode snapshot --mailnotification failure --mailto admin@example.com
Conseil : Installez le QEMU Guest Agent dans vos VMs pour garantir la cohérence des données lors des backups en mode snapshot. Sans l'agent, le filesystem peut ne pas être dans un état cohérent (dirty state).

6. Rétention et Pruning

Le pruning est le processus de suppression des anciens snapshots de sauvegarde en fonction d'une politique de rétention définie. Il est essentiel pour contrôler l'espace disque utilisé tout en conservant un historique suffisant.

Paramètres de rétention

Paramètre Description Exemple
keep-last Conserver les N derniers snapshots, quel que soit leur âge. keep-last=3
keep-hourly Conserver un snapshot par heure pour les N dernières heures. keep-hourly=24
keep-daily Conserver un snapshot par jour pour les N derniers jours. keep-daily=7
keep-weekly Conserver un snapshot par semaine pour les N dernières semaines. keep-weekly=4
keep-monthly Conserver un snapshot par mois pour les N derniers mois. keep-monthly=6
keep-yearly Conserver un snapshot par an pour les N dernières années. keep-yearly=1

Comment fonctionne le pruning ?

Les règles de rétention sont évaluées dans l'ordre suivant : keep-lastkeep-hourlykeep-dailykeep-weeklykeep-monthlykeep-yearly.

Un snapshot « retenu » par une règle ne peut plus être compté par les règles suivantes. Cela évite les doublons dans le décompte.

Exemples de politiques

Politique classique (production)

keep-daily=7,keep-weekly=4,keep-monthly=6,keep-yearly=1

Résultat : 7 jours de backups quotidiens + 4 semaines + 6 mois + 1 an. Cela représente environ 18 snapshots conservés maximum par VM.

Politique agressive (développement)

keep-daily=3,keep-weekly=2

Résultat : 3 derniers jours + 2 semaines. Economise de l'espace disque.

Politique conservatrice (compliance)

keep-daily=30,keep-monthly=12,keep-yearly=5

Résultat : 30 jours + 12 mois + 5 ans. Pour les environnements soumis à des obligations légales.

Configuration via l'interface web

  1. Dans PBS, cliquez sur le Datastore concerné.
  2. Onglet Prune & GC.
  3. Cliquez sur Add pour créer un Prune Job.
  4. Définissez le schedule et les paramètres de rétention.
  5. Validez.

Configuration en CLI

# Creer un prune job planifie
proxmox-backup-manager prune-job create daily-prune \
    --store ds-prod \
    --schedule "daily 04:00" \
    --keep-daily 7 \
    --keep-weekly 4 \
    --keep-monthly 6 \
    --keep-yearly 1

# Lister les prune jobs existants
proxmox-backup-manager prune-job list

# Modifier un prune job
proxmox-backup-manager prune-job update daily-prune --keep-daily 14

# Supprimer un prune job
proxmox-backup-manager prune-job remove daily-prune

Pruning manuel

# Pruning manuel depuis le client (sur un noeud PVE ou tout poste avec proxmox-backup-client)
proxmox-backup-client prune \
    --keep-daily 7 \
    --keep-weekly 4 \
    --keep-monthly 6 \
    --repository backup-user@srv-backup01.example.com:ds-prod

Simulation dry-run

Avant d'exécuter un pruning réel, effectuez un dry-run pour visualiser ce qui serait supprimé :

# Dry-run : affiche ce qui serait supprime sans rien supprimer
proxmox-backup-client prune \
    --keep-daily 7 \
    --keep-weekly 4 \
    --dry-run \
    --repository backup-user@srv-backup01.example.com:ds-prod
Attention : Le pruning supprime les références aux snapshots mais ne libère pas immédiatement l'espace disque. Les chunks ne sont réellement supprimés qu'après l'exécution du Garbage Collection (GC). Voir section suivante.

7. Garbage Collection (GC)

Qu'est-ce que le GC ?

La Garbage Collection est le processus qui supprime physiquement les chunks (blocs de données) qui ne sont plus référencés par aucun snapshot. Après un pruning, les snapshots sont supprimés mais les chunks qu'ils référençaient peuvent encore exister s'ils sont partagés avec d'autres snapshots (déduplication).

Le GC identifie et supprime les chunks orphelins pour récupérer l'espace disque.

Fonctionnement en deux phases

Phase Nom Description
Phase 1 Mark Parcourt tous les index de snapshots existants et marque chaque chunk référencé comme « utilisé ». Cette phase met à jour les timestamps d'accès (atime) des chunks.
Phase 2 Sweep Parcourt tous les chunks du datastore et supprime ceux qui n'ont pas été marqués lors de la Phase 1 (chunks orphelins dont l'atime est antérieur au début du GC).

Planification

Le GC doit être exécuté après le pruning. Recommandation :

  • Quotidien : si vous faites des backups et du pruning tous les jours.
  • Hebdomadaire : si vous avez peu de changements ou de suppressions.

Configurez le GC dans l'interface web :

  1. Datastore > onglet Prune & GC.
  2. Section Garbage Collection.
  3. Définissez le schedule (ex : daily 06:00).

Exécution en CLI

# Lancer le GC manuellement
proxmox-backup-manager garbage-collection start ds-prod

# Voir le statut du GC en cours
proxmox-backup-manager garbage-collection status ds-prod

# Planifier le GC en CLI
proxmox-backup-manager garbage-collection schedule-update ds-prod "daily 06:00"

Exemple de sortie du GC

Starting garbage collection on datastore 'ds-prod'
Phase 1: marking used chunks...
  Marked 145832 chunks.
Phase 2: sweeping unused chunks...
  Removed 12043 chunks (3.2 GiB).
Garbage collection completed successfully.
  Original data usage: 850.4 GiB
  On-disk usage: 312.7 GiB
  Deduplication factor: 2.72
  Removed bytes: 3.2 GiB
IMPORTANT : Ne jamais interrompre un GC en cours (kill, reboot, etc.). Cela pourrait laisser le datastore dans un état incohérent. Si un GC est bloqué, attendez qu'il se termine ou consultez les logs avant toute action.
Conseil : Planifiez toujours le GC après le pruning. Exemple : Pruning à 04:00, GC à 06:00. Cela garantit que les chunks orphelins créés par le pruning seront nettoyés le même jour.

8. Vérification d'intégrité

La vérification d'intégrité permet de s'assurer que les données stockées dans le datastore ne sont pas corrompues. PBS vérifie les checksums de chaque chunk et compare avec les valeurs attendues.

Types de vérification

Type Description Quand l'utiliser
Vérification après backup Vérifie le snapshot immédiatement après sa création. Activer dans le backup job PVE (option « Verify new backups »).
Vérification périodique Vérifie tous les snapshots du datastore selon un planning. Planifier hebdomadaire ou mensuel pour détecter la corruption silencieuse (bit rot).
Vérification manuelle Vérification ponctuelle lancée à la demande. Après un incident matériel, un déménagement de disques, etc.

Vérification en CLI

# Verifier tout le datastore
proxmox-backup-manager verify ds-prod

# Verifier un snapshot specifique
proxmox-backup-manager verify ds-prod --backup-id vm/100 --backup-time "2026-02-20T02:00:00Z"

# Verifier uniquement les snapshots non encore verifies
proxmox-backup-manager verify ds-prod --outdated-after 30

Créer un job de vérification planifié

Depuis l'interface web :

  1. Datastore > onglet Verify Jobs.
  2. Cliquez sur Add.
  3. Définissez le schedule (ex : weekly).
  4. Option Re-verify after : nombre de jours après lequel un snapshot déjà vérifié sera re-vérifié (ex : 30 jours).
Note : Si vous utilisez ZFS comme filesystem, les scrubs ZFS (zpool scrub) complètent la vérification PBS en détectant et corrigeant automatiquement les erreurs au niveau bloc (bit rot) grâce aux checksums ZFS et à la redondance (mirror/raidz).

9. Chiffrement

PBS supporte le chiffrement côté client en AES-256-GCM. Les données sont chiffrées avant d'être envoyées au serveur PBS, ce qui signifie que le serveur ne voit jamais les données en clair. Seul le détenteur de la clé peut restaurer les données.

Créer une clé de chiffrement

# Generer une nouvelle cle de chiffrement
proxmox-backup-client key create /root/pbs-encryption-key.json

# Un mot de passe sera demande pour proteger la cle elle-meme (key password)
# Ce mot de passe sera requis a chaque utilisation de la cle

Utiliser le chiffrement lors du backup

# Backup chiffre en CLI
proxmox-backup-client backup vm/100 \
    --repository backup-user@srv-backup01.example.com:ds-prod \
    --encryption-key /root/pbs-encryption-key.json

# Depuis PVE (vzdump), configurer la cle dans le storage PBS :
# PVE > Datacenter > Storage > pbs-prod > Edit > Encryption Key
# Collez le contenu du fichier JSON de la cle

Sauvegarder la clé (CRITIQUE)

# Generer un paperkey (version imprimable de la cle)
proxmox-backup-client key paperkey /root/pbs-encryption-key.json

# Le paperkey genere un QR code + texte lisible a imprimer et stocker en lieu sur
# (coffre-fort, coffre numerique chiffre, etc.)
ATTENTION CRITIQUE : Sans la clé de chiffrement, les données sont DÉFINITIVEMENT IRRECUPÉRABLES. Aucune procédure de récupération n'existe. Sauvegardez la clé dans au moins 2 emplacements séparés (ex : coffre-fort physique + gestionnaire de mots de passe).

Changer le mot de passe de la clé

# Modifier le mot de passe de protection de la cle
proxmox-backup-client key change-passphrase /root/pbs-encryption-key.json

Mode master key (avancé)

Pour les environnements avec plusieurs clés, PBS supporte un système de master key permettant de déchiffrer les backups chiffrés avec n'importe quelle clé dérivée :

# Creer une paire RSA master
proxmox-backup-client key create-master-key

# Cela genere : master-public.pem et master-secret.pem
# Importer la cle publique dans la cle de chiffrement
proxmox-backup-client key create /root/pbs-encryption-key.json --master-pubkey master-public.pem

10. Restauration

Restaurer une VM complète depuis l'interface PVE

  1. Dans PVE, allez dans Storage > pbs-prod > Content.
  2. Sélectionnez le backup souhaité (identifié par VM ID et date).
  3. Cliquez sur Restore.
  4. Paramètres de restauration :
Paramètre Description
Target Storage Storage où restaurer les disques (local-lvm, ceph, etc.)
VM ID Garder le même VMID ou en attribuer un nouveau
Unique Regénérer les adresses MAC et UUID (recommandé si duplication)
Start after restore Démarrer automatiquement la VM après restauration
Override Settings Modifier CPU, RAM, réseau avant de restaurer

Restauration de fichiers individuels (File-Level Restore)

PBS permet de restaurer des fichiers individuels sans restaurer la VM entière :

  1. Dans PVE, Storage > pbs-prod > Content.
  2. Sélectionnez le backup.
  3. Cliquez sur File Restore.
  4. Naviguez dans l'arborescence des fichiers.
  5. Sélectionnez le(s) fichier(s) et cliquez sur Download.
Note : La restauration file-level lance une micro-VM temporaire (QEMU) pour monter le disque du backup et parcourir le filesystem. Cela peut prendre quelques secondes au premier accès.

Restauration en CLI

# Lister les snapshots disponibles
proxmox-backup-client snapshot list \
    --repository backup-user@srv-backup01.example.com:ds-prod

# Restaurer une archive pxar (fichiers) vers un repertoire local
proxmox-backup-client restore host/srv-web01/2026-02-20T02:00:05Z root.pxar /tmp/restore/ \
    --repository backup-user@srv-backup01.example.com:ds-prod

# Restaurer un disque VM (image .img)
proxmox-backup-client restore vm/100/2026-02-20T02:00:05Z drive-scsi0.img /tmp/restore/disk.raw \
    --repository backup-user@srv-backup01.example.com:ds-prod

# Restaurer avec une cle de chiffrement
proxmox-backup-client restore vm/100/2026-02-20T02:00:05Z drive-scsi0.img /tmp/restore/disk.raw \
    --repository backup-user@srv-backup01.example.com:ds-prod \
    --encryption-key /root/pbs-encryption-key.json

Restaurer sur un autre nœud PVE

Si le PBS est ajouté comme storage sur plusieurs nœuds PVE, vous pouvez restaurer une sauvegarde sur n'importe quel nœud du cluster :

  • Connectez-vous à l'interface du nœud cible.
  • Allez dans Storage > pbs-prod > Content.
  • Les mêmes backups apparaissent (le datastore est partagé).
  • Restaurez normalement — les disques seront créés sur le storage local du nœud cible.

Restaurer un conteneur LXC

# Restaurer un conteneur LXC depuis un backup PBS
pct restore 200 pbs-prod:backup/ct/200/2026-02-20T02:00:05Z \
    --storage local-lvm \
    --unique
Conseil : Testez régulièrement vos restaurations ! Une sauvegarde qui n'a jamais été testée n'est pas une sauvegarde fiable. Planifiez des tests de restauration trimestriels.

11. Monitoring et Maintenance

Dashboard web

L'interface web PBS (https://srv-backup01.example.com:8007) fournit un dashboard complet :

  • Espace utilisé / disponible par datastore.
  • Ratio de déduplication : indique l'efficacité de la déduplication (ex : 2.5x = les données d'origine sont 2.5 fois plus volumineuses que le stockage réel).
  • Historique des tâches : backups, pruning, GC, vérifications.
  • Statut des derniers backups : succès, échec, warnings.

Commandes de monitoring CLI

# Lister les datastores et leur utilisation
proxmox-backup-manager datastore list

# Voir l'espace disque detaille
df -h /mnt/backup-data

# Lister les snapshots d'un datastore
proxmox-backup-manager snapshot list ds-prod

# Voir les taches recentes
proxmox-backup-manager task list

# Voir le detail d'une tache
proxmox-backup-manager task log <UPID>

Synchronisation entre deux PBS (réplication off-site)

Pour une stratégie de backup 3-2-1, vous pouvez synchroniser un datastore vers un second serveur PBS distant :

# Creer un sync job vers un PBS distant
proxmox-backup-manager sync-job create offsite-sync \
    --store ds-prod \
    --remote remote-pbs \
    --remote-store ds-prod-offsite \
    --schedule "daily 08:00" \
    --remove-vanished true

# Prerequis : creer d'abord le "remote"
proxmox-backup-manager remote create remote-pbs \
    --host srv-backup02.example.com \
    --auth-id sync-user@pbs \
    --password "MotDePasseSync" \
    --fingerprint "AB:CD:EF:..."

Alertes email

Configurez les notifications dans PBS :

  1. Allez dans Configuration > Notifications.
  2. Configurez un SMTP endpoint (serveur mail, port, identifiants).
  3. Créez des notification matchers pour filtrer les événements (gc, verify, sync, prune).
  4. Définissez les destinataires (ex : admin@example.com).
# Exemple de configuration SMTP en CLI
proxmox-backup-manager notification endpoint smtp create mail-alert \
    --server smtp.example.com \
    --port 587 \
    --username alerts@example.com \
    --mailto admin@example.com \
    --from-address pbs@example.com

Intégration Metrics (InfluxDB / Grafana)

PBS peut envoyer des métriques vers InfluxDB pour une visualisation avancée dans Grafana :

# Configurer l'envoi de metriques vers InfluxDB
# Dans /etc/proxmox-backup/metricserver.cfg :
influxdb: monitoring
    server https://influxdb.example.com:8086
    organization example-org
    bucket pbs-metrics
    token <influxdb-token>

Métriques disponibles : utilisation disque, nombre de chunks, ratio de déduplication, durée des tâches, nombre de snapshots, etc.

Conseil : Créez un dashboard Grafana dédié avec des alertes sur : espace disque > 80%, échec de backup, GC non exécuté depuis > 48h.

12. Tips et Dépannage

Problème : Espace disque insuffisant

Vérification Commande / Action
Vérifier l'espace disque df -h /mnt/backup-data
Vérifier que le pruning s'exécute Onglet Prune & GC > vérifier les logs
Vérifier que le GC s'exécute Le GC doit tourner après le pruning
Lancer un GC manuel proxmox-backup-manager garbage-collection start ds-prod
Revoir la politique de rétention Réduire les keep-* si nécessaire

Problème : Backup lent

  • Réseau : Vérifiez le débit entre PVE et PBS (iperf3). Un lien 1 Gbps minimum est recommandé, 10 Gbps pour les gros environnements.
  • Charge I/O : Vérifiez avec iostat -x 1 ou iotop si les disques sont saturés.
  • Niveau de compression zstd : Le niveau par défaut (3) offre un bon compromis. Monter le niveau augmente la compression mais ralentit le backup.
  • CPU : Vérifiez que le CPU du PBS n'est pas saturé (htop).
  • Nombre de backups simultanés : Limitez le nombre de jobs parallèles pour ne pas saturer le PBS.
# Test de debit reseau entre PVE et PBS
# Sur le PBS :
iperf3 -s

# Sur le noeud PVE :
iperf3 -c srv-backup01.example.com

Problème : Connexion PVE → PBS échoue

Cause possible Solution
Fingerprint incorrect Recopiez le fingerprint depuis proxmox-backup-manager cert info
Firewall bloque le port 8007 Ouvrez le port 8007/tcp sur le firewall PBS et entre les deux machines
Certificat expiré Renouvelez le certificat dans PBS > Administration > Certificates
Mauvais identifiants Vérifiez user/password, testez avec proxmox-backup-client login
DNS non résolu Utilisez l'IP directement ou vérifiez la résolution DNS
# Test de connexion reseau
telnet srv-backup01.example.com 8007

# Ou avec curl
curl -k https://srv-backup01.example.com:8007/api2/json/version

# Verifier le firewall PBS
iptables -L -n | grep 8007
# Ou si vous utilisez pve-firewall/nftables :
nft list ruleset | grep 8007

Logs et diagnostics

# Logs du service PBS (proxy web)
journalctl -u proxmox-backup-proxy --since today

# Logs du service PBS (API backend)
journalctl -u proxmox-backup --since today

# Repertoire de logs des taches
ls /var/log/proxmox-backup/tasks/

# Suivre les logs en temps reel
journalctl -u proxmox-backup-proxy -f

Performances : recommandations matérielles

Composant Recommandation Détail
CPU 4+ cœurs Compression zstd et chiffrement sont CPU-intensifs
RAM 4 Go minimum, 8+ Go recommandé ZFS utilise la RAM pour le cache (ARC)
Disques data HDD large ou SSD RAID1 / ZFS mirror minimum pour la redondance
Disques index SSD rapide Les index chunks bénéficient grandement d'un SSD pour les accès aléatoires
Réseau 1 Gbps minimum, 10 Gbps idéal Le backup incrémentiel réduit le volume transféré

Mise à jour de PBS

# Verifier les mises a jour disponibles
apt update
apt list --upgradable

# Appliquer les mises a jour
apt dist-upgrade

# Verifier la version installee
proxmox-backup-manager version
Attention : Avant toute mise à jour majeure, consultez les release notes sur le site officiel Proxmox. Certaines versions peuvent nécessiter des étapes de migration manuelles. Planifiez les mises à jour pendant une fenêtre de maintenance.

Ratio de déduplication faible

  • Normal : si les VMs sauvegardées sont très différentes (OS différents, applications différentes). Ratio typique : 1.2x - 1.5x.
  • Optimal : pour des VMs clones ou très similaires (même template, même OS). Ratio possible : 3x - 10x.
  • Améliorer le ratio : regroupez les VMs similaires dans le même datastore. Utilisez des templates communs pour vos déploiements.

Sauvegarder la configuration PBS

La configuration de PBS est stockée dans /etc/proxmox-backup/. Sauvegardez ce répertoire régulièrement :

# Contenu du repertoire de configuration
ls -la /etc/proxmox-backup/
# datastore.cfg   - Configuration des datastores
# user.cfg        - Utilisateurs et tokens
# acl.cfg         - Permissions
# remote.cfg      - Serveurs PBS distants (sync)
# sync.cfg        - Jobs de synchronisation
# verify.cfg      - Jobs de verification
# tape.cfg        - Configuration des lecteurs de bandes (si applicable)

# Sauvegarder la config
tar czf /root/pbs-config-backup-$(date +%Y%m%d).tar.gz /etc/proxmox-backup/

# Sauvegarder aussi les certificats
cp /etc/proxmox-backup/proxy.pem /root/pbs-cert-backup/
cp /etc/proxmox-backup/proxy.key /root/pbs-cert-backup/

Récapitulatif des ports réseau

Port Protocole Usage
8007 TCP / HTTPS Interface web + API REST + transfert de données backup
Simplicité réseau : PBS n'utilise qu'un seul port (8007) pour tout : interface web, API, et transfert de données. Cela simplifie considérablement la configuration du firewall par rapport à d'autres solutions de backup.

Commandes essentielles — Aide-mémoire

Action Commande
Lister les datastores proxmox-backup-manager datastore list
Créer un datastore proxmox-backup-manager datastore create <nom> <chemin>
Lister les snapshots proxmox-backup-client snapshot list --repository user@host:store
Lancer un backup vzdump <vmid> --storage pbs-prod --mode snapshot
Restaurer une VM qmrestore pbs-prod:backup/vm/<id>/<timestamp> <vmid>
Pruning proxmox-backup-client prune --keep-daily 7 --repository ...
Garbage Collection proxmox-backup-manager garbage-collection start <store>
Vérification proxmox-backup-manager verify <store>
Voir le fingerprint proxmox-backup-manager cert info | grep Fingerprint
Voir les tâches proxmox-backup-manager task list
Voir la version proxmox-backup-manager version