Dawan Proxmox VE — TSSR

Chapitre 5 — SDN, pare-feu et sauvegarde

6. PBS : réplication 3-2-1

Un seul PBS reste un point de défaillance unique. On garde donc une copie des sauvegardes ailleurs : c'est la réplication entre PBS.

6.1 Réplication PBS inter-sites — règle 3-2-1

La règle fondamentale du backup est la règle 3-2-1 : 3 copies des données, sur 2 supports différents, dont 1 hors site. Un seul PBS dans le datacenter primaire ne respecte que les deux premiers critères. Un sinistre (incendie, coupure réseau totale) emporterait à la fois l'infrastructure et les sauvegardes.

PBS résout ce problème avec les sync jobs : un PBS peut synchroniser ses datastores vers un PBS distant en ne transférant que les chunks manquants. La déduplication s'applique aussi à la synchronisation — si les deux PBS partagent 80% des données, seuls les 20% manquants transitent sur le réseau.

PBS-Paris (datastore demo-store) est la source ; PBS-Lyon (datastore production-dr), sur le site de reprise, en garde une copie. Un sync job s'exécute sur le PBS qui reçoit : il va chercher chez un remote les sauvegardes qui lui manquent.

C'est donc sur Lyon qu'on le configure, et c'est une force. Le site de reprise tire les données, sans que Paris ait le moindre droit d'écriture ni de suppression chez lui. Un attaquant qui prendrait Paris ne pourrait pas effacer la copie de Lyon.

Dans le Shell de PBS (interface web de PBS → Administration → Shell) :

# Sur PBS-Lyon — déclarer PBS-Paris comme remote (le secret est celui d'un jeton de Paris)
proxmox-backup-manager remote create pbs-paris \
  --host <ip-pbs-paris> \
  --auth-id 'sync@pbs!sync-token' \
  --password '<secret-du-jeton>' \
  --fingerprint '<empreinte-de-pbs-paris>'

# Sur PBS-Lyon — tirer chaque jour à 4 h ce qui manque, depuis demo-store de Paris
proxmox-backup-manager sync-job create sync-dr \
  --store production-dr \
  --remote pbs-paris \
  --remote-store demo-store \
  --schedule "04:00" \
  --remove-vanished false

# Vérifier que le remote et le sync-job sont enregistrés
proxmox-backup-manager remote list
proxmox-backup-manager sync-job list   # puis le sync-job

Résultat attendu de proxmox-backup-manager remote list :

┌───────────┬────────────────┬──────────────────────┬─────────────────────┐
│ name      │ host           │ auth-id              │ fingerprint         │
╞═══════════╪════════════════╪══════════════════════╪═════════════════════╡
│ pbs-paris │ <ip-pbs-paris> │ sync@pbs!sync-token  │ AA:BB:CC:…          │
└───────────┴────────────────┴──────────────────────┴─────────────────────┘

Côté Paris, le jeton sync@pbs!sync-token n'a besoin que du rôle DatastoreReader sur demo-store : il lit, il n'écrit jamais. Depuis PBS 3.3, un sync job peut aussi pousser (push) depuis la source ; le mode par défaut, qui tire, reste le plus sûr pour un site de reprise.

remove-vanished: false : si vous l'activez, PBS-Lyon supprimera les sauvegardes prunées sur Paris, reflétant exactement la même rétention. Désactivé (recommandé), le DR (Disaster Recovery, le site de reprise, ici PBS-Lyon) conserve les sauvegardes plus longtemps. Il offre ainsi un filet de sécurité en cas de purge accidentelle sur le PBS primaire.

Le job peut ranger la copie dans un namespace local (option --ns, champ Local Namespace) : un namespace par source, et les sauvegardes de plusieurs PBS ne se mélangent pas.

▶ À pratiquer maintenant — Atelier 6

Répliquer vers un second PBS pour satisfaire la règle 3-2-1 — la seule protection qui tienne quand le site principal disparaît.

À retenir : la règle 3-2-1 : trois copies, deux supports, une hors site. Un sync job, lancé par le PBS qui reçoit, copie les sauvegardes d'un PBS distant en ne transférant que les chunks manquants, dans un namespace par source.