Aller au contenu

Sauvegarder des hôtes physiques avec proxmox-backup-client

Day 1 · DéployerNiveau 2 · OpérerProcédureRédigé · à valider en lab

Objectif : sauvegarder chaque nuit les fichiers d'un serveur Linux physique (ou d'une VM hors Proxmox) vers le datastore pbs01, dans un namespace hosts, avec chiffrement et rétention gérés par le PBS. proxmox-backup-client sauvegarde des fichiers (.pxar) ou des périphériques bloc (.img) ; ce n'est pas un outil de restauration bare metal complète, et il n'existe que pour Linux.

Ce que l'on peut sauvegarder

Archive Source Exemple
nom.pxar Arborescence de fichiers root.pxar:/, etc.pxar:/etc, data.pxar:/srv/data
nom.img Périphérique bloc (LV, disque) mydata.img:/dev/vg0/data

Les points de montage sont ignorés par défaut : chaque système de fichiers à inclure se déclare avec --include-dev. Les exclusions se placent dans un fichier .pxarexclude (motifs glob, ! pour ré-inclure) ou via --exclude.

Avant de toucher la prod

  • Serveur sous Debian/Ubuntu (paquet) ou autre distribution (binaire statique proxmox-backup-client-static).
  • Port TCP 8007 ouvert du serveur vers pbs01.client.lan.
  • Liste des répertoires à sauvegarder et à exclure validée avec le responsable applicatif.
  • Bases de données : dump applicatif planifié avant la sauvegarde (le client copie des fichiers, pas un état cohérent de base ouverte).
  • Lieu de séquestre de la clé de chiffrement identifié.

Étapes

1. Préparer le PBS

  1. Datastore → pbs01 → Content → Add Namespace : hosts.
  2. Configuration → Access Control : utilisateur host-backup@pbs, jeton srv-fichiers.
  3. Datastore → pbs01 → Permissions → Add : chemin /datastore/pbs01/hosts, rôle DatastoreBackup, pour l'utilisateur et pour le jeton.
  4. Datastore → pbs01 → Prune & GC → Prune Jobs → Add : namespace hosts, keep-daily 14, keep-weekly 8, keep-monthly 6.
proxmox-backup-manager user create host-backup@pbs
proxmox-backup-manager user generate-token host-backup@pbs srv-fichiers
proxmox-backup-manager acl update /datastore/pbs01/hosts DatastoreBackup --auth-id 'host-backup@pbs'
proxmox-backup-manager acl update /datastore/pbs01/hosts DatastoreBackup --auth-id 'host-backup@pbs!srv-fichiers'

Le namespace se crée depuis la GUI ou depuis le client : proxmox-backup-client namespace create hosts --repository ….

2. Installer le client sur le serveur

cat > /etc/apt/sources.list.d/pbs-client.sources <<'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/pbs-client
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
apt update && apt install proxmox-backup-client

(Clé du dépôt : même fichier proxmox-archive-keyring.gpg que pour l'installation de PBS.)

3. Configurer l'accès et la clé

install -d -m 700 /root/.pbs
cat > /root/.pbs/env <<'EOF'
PBS_REPOSITORY='host-backup@pbs!srv-fichiers@pbs01.client.lan:pbs01'
PBS_PASSWORD_FILE=/root/.pbs/token
PBS_FINGERPRINT='AB:CD:…:EF'
EOF
echo -n '<secret-du-jeton>' > /root/.pbs/token && chmod 600 /root/.pbs/token

proxmox-backup-client key create --kdf none          # ~/.config/proxmox-backup/encryption-key.json
proxmox-backup-client key paperkey --output-format text > /root/paperkey.txt   # imprimer puis supprimer

4. Lancer et planifier la sauvegarde

set -a; . /root/.pbs/env; set +a
proxmox-backup-client backup root.pxar:/ --include-dev /boot/efi --ns hosts \
  --exclude /var/cache --exclude /tmp --change-detection-mode metadata

Planification par un timer systemd pbs-backup.timer (OnCalendar=*-*-* 23:30) appelant ce script, ou par cron. Le nom du groupe est host/<nom-du-serveur>.

Vérifications

proxmox-backup-client snapshot list --ns hosts
# host/srv-fichiers/2026-10-22T21:30:02Z  root.pxar catalog.pcat1 index.json client.log
proxmox-backup-client catalog shell host/srv-fichiers/2026-10-22T21:30:02Z root.pxar --ns hosts
# pxar:/ > ls etc   puis   restore-selected /tmp/test-restore

Restauration complète d'une archive : proxmox-backup-client restore <snapshot> root.pxar /restore --ns hosts. Montage en lecture : proxmox-backup-client mount <snapshot> root.pxar /mnt/pbs --ns hosts.

Rollback

Désactiver le timer (systemctl disable --now pbs-backup.timer) ; supprimer le jeton côté PBS si le serveur est décommissionné. Les sauvegardes restent soumises au prune job du namespace.

Pièges vus en support

  • /home ou /srv sur un volume séparé oublié : sans --include-dev, l'archive est vide pour ce point de montage.
  • Clé créée avec mot de passe puis exécution planifiée : la sauvegarde attend une saisie et échoue. Utiliser --kdf none et protéger le fichier, ou PBS_ENCRYPTION_PASSWORD_FILE.
  • Clé uniquement sur le serveur sauvegardé : serveur perdu, sauvegardes illisibles.
  • Base de données copiée « à chaud » au niveau fichiers : restauration non cohérente.
  • Attente d'une restauration bare metal : il faut réinstaller l'OS (partitionnement, chargeur de démarrage) puis restaurer les fichiers.

Quand ouvrir un ticket iTop

Sauvegarde d'un serveur Windows physique ou besoin de restauration bare metal : demande de conseil P4 (autre outil à prévoir). Échecs d'authentification ou de certificat persistants : P3. Joindre la commande exacte, client.log de la dernière sauvegarde et la version du client.

Ouvrir un ticket iTop

Pour aller plus loin