Audit Infrastructure Backup¶
Vérification exhaustive couches backup infrastructure Proxmox.
📊 Résumé Exécutif¶
État Général : ⚠️ ACCEPTABLE avec lacunes critiques¶
| Couche | Statut | Dernière exec | Destination | Priorité fix |
|---|---|---|---|---|
| PBS Snapshots LXC | ✅ Actif | 04/02 09:03 | pbs-backups (local) | - |
| Configs Docker offsite | ✅ Actif | 04/02 05:00 | Google Drive | - |
| Configs Host offsite | ✅ Actif | 04/02 05:00 | Google Drive | - |
| PBS Datastore sync cloud | ⚠️ Inconnu | ? | Google Drive | MOYENNE |
| SnapRAID Parity | ❌ Inactif | Jamais | /mnt/parity (286K!) | CRITIQUE |
| LXC 102 (PBS) backup | ❌ Manquant | - | Non configuré | HAUTE |
Actions immédiates : 1. 🔴 CRITIQUE : Corriger partition sde parity (286K → 931GB) post-upgrade 2. 🟠 HAUTE : Ajouter LXC 102 au schedule PBS backup 3. 🟡 MOYENNE : Vérifier script sync PBS datastore → Google Drive
🔍 Détail Audit par Couche¶
1. Proxmox Backup Server (PBS) - LXC Snapshots¶
Configuration Actuelle¶
Job PBS:
ID: backup-92e016e4-0dfc
Schedule: 03:00 daily
Mode: snapshot
Storage: pbs-backups
Retention: keep-daily=7, keep-weekly=4, keep-monthly=3
LXC backupés:
- 100 (docker-media) : ✅ Actif
- 101 (management) : ✅ Actif
- 103 (network-gateway) : ✅ Actif
- 102 (pbs) : ❌ MANQUANT
Derniers Backups Vérifiés¶
LXC 100 (docker-media):
- 2026-02-04T09:03:01Z : 6.7 GB (snapshot réussi)
- 2026-02-03T23:03:00Z : 6.7 GB
- 2026-02-02T23:03:02Z : 6.7 GB
→ Rétention 7 jours : ✅ OK
LXC 101 (management):
- 2026-02-04T09:03:34Z : 2.3 GB (snapshot réussi)
- 2026-02-03T23:03:37Z : 2.3 GB
- 2026-02-02T23:03:35Z : 2.2 GB
→ Rétention 7 jours : ✅ OK
LXC 103 (network-gateway):
- 2026-02-03T23:11:23Z : 2.9 GB (dernier 3 fév)
- 2026-02-01T23:11:23Z : 2.9 GB
→ ⚠️ Backup du 4 février manquant (en cours ou échoué?)
Datastore PBS¶
Emplacement : /mnt/datastore/ (LXC 102)
Capacité totale : 100 GB
Utilisé : 8.4 GB (8.37%)
Disponible : 86.7 GB
Chunks déduplication : Actifs
Garbage collection : Automatique (02:00)
🔴 PROBLÈME CRITIQUE : LXC 102 (PBS) Non Backupé¶
Impact : - Configuration PBS non sauvegardée (datastores, schedules, users) - Scripts backup centralisés non protégés - Config rclone Google Drive non backupée - Perte LXC 102 = reconstruction manuelle complète
Recommandation :
# Ajouter LXC 102 au job PBS
# UI Proxmox : Datacenter → Backup → backup-92e016e4-0dfc
# Modifier vmid : 100,101,102,103
# OU via CLI :
pvesh set /cluster/backup/backup-92e016e4-0dfc --vmid 100,101,102,103
Justification : - Cohérence : Tous LXC Docker backupés - Circularité OK : PBS peut se backuper (datastore = filesystem normal) - Double protection : PBS local + configs rclone offsite
2. Backup Configs Docker (Offsite)¶
Configuration Script¶
Script: /usr/local/bin/backup-docker-configs.sh
Exécution: Host Proxmox
Cron: 05:00 daily
Destination: gdrive:backup/homeserver/lxc-data/
Rétention: 30 jours
Contenu Backupé¶
LXC 100 (docker-media) :
- docker-compose.yml ✅
- prowlarr/config.xml ✅
- radarr/config.xml ✅
- sonarr/config.xml ✅
- sabnzbd/sabnzbd.ini ✅
LXC 101 (management) :
- docker-compose.yaml ✅
- coolercontrol/ ✅
- homepage/ ✅
- zensical/docs/ ✅
- zensical/zensical.toml ✅
LXC 103 (network-gateway) :
- docker-compose.yml ✅
- authelia/configuration.yml ✅
- authelia/users_database.yml ✅
- npm/data/ ✅
- wireguard/ ✅
Exclusions (par design)¶
❌ lxc-data/docker-103/npm/data/logs
❌ lxc-data/docker-101/zensical/site
❌ lxc-data/*/cache
❌ lxc-data/*/logs
❌ lxc-data/*/MediaCover
❌ lxc-data/*/downloads
Dernière Exécution¶
Date : 04/02/2026 05:00:06 CET
Statut : ✅ Success
Taille archive : ~500 MB (estimé tar.gz)
Upload Google Drive : ✅ Successful
Log : /var/log/backup-docker-configs.log
Extrait log :
[Wed Feb 4 05:00:04 AM CET 2026] ✅ Upload successful to Google Drive
[Wed Feb 4 05:00:06 AM CET 2026] Backup completed successfully
Validation Offsite¶
Derniers backups Google Drive :
gdrive:backup/homeserver/lxc-data/lxc-data-20260203-050001/
→ Contenu : 1.8 GB docker-100 + 22 MB docker-101 + 13 MB docker-103
→ Structure préservée : lxc-data/docker-XXX/...
✅ STATUT : OPTIMAL¶
Points forts : - Stratégie sélective : configs critiques uniquement (vs backup complet 52 GB) - Double protection : PBS local + rclone offsite - Upload quotidien fonctionnel - Rétention 30 jours suffisante
Optimisations possibles :
- ⚠️ Vérifier configs manquants : find /mnt/lxc-data/docker-{100,101,103}/ -name "*.db" -o -name "*.yaml" | grep -v cache
- 💡 Envisager : bazarr/config/config.yaml + bazarr/config/db/bazarr.db
3. Backup Configs Host (Offsite)¶
Configuration Script¶
Script: /usr/local/bin/backup-proxmox-host.sh
Exécution: Host Proxmox
Cron: 05:00 daily
Destination: gdrive:backup/homeserver/proxmox/
Rétention: 30 jours
Contenu Backupé¶
/etc/pve/ ✅ Configs Proxmox VE
/etc/network/ ✅ Configuration réseau
/etc/ssh/ ✅ Config SSH daemon
/root/.ssh/ ✅ Clés SSH root
/etc/cron.d/ ✅ Tâches cron.d
/etc/cron.daily/ ✅ Tâches quotidiennes
/etc/cron.weekly/ ✅ Tâches hebdomadaires
/etc/cron.monthly/ ✅ Tâches mensuelles
/etc/snapraid.conf ✅ Config SnapRAID
/etc/fstab ✅ Montages disques
/usr/local/bin/ ✅ Scripts custom
Dernière Exécution¶
Date : 04/02/2026 05:00:06 CET
Statut : ✅ Success
Taille archive : ~52 KB
Upload Google Drive : ✅ Successful
Log : /var/log/backup-proxmox-host.log
Extrait log :
[Wed Feb 4 05:00:04 AM CET 2026] ✅ Upload successful to Google Drive
[Wed Feb 4 05:00:06 AM CET 2026] Backup completed successfully
Validation Offsite¶
Derniers backups Google Drive :
proxmox-host-config-20260130-160332.tar.gz : 52 KB
proxmox-host-config-20260130-154410.tar.gz : 52 KB
proxmox-host-config-20260128-211121.tar.gz : 52 KB
✅ STATUT : OPTIMAL¶
Points forts : - Tous configs critiques système couverts - Archive légère (~50 KB) - Upload quotidien rapide - Structure tar préserve chemins complets (restauration facile)
Critique pour upgrade hardware :
- /etc/fstab : UUIDs disques essentiels remontage post-migration
- /usr/local/bin/ : Scripts backup-*.sh sauvegardés
- /etc/pve/ : Config LXC, storage, networking
4. PBS Datastore Sync Google Drive¶
Configuration Attendue¶
Script: /usr/local/bin/pbs-sync-gdrive-optimal.sh
Emplacement: LXC 102 (PBS)
Cron: 04:00 daily (attendu)
Méthode: rclone sync chunks
Source: /mnt/datastore/backup/
Destination: gdrive:backup/homeserver/pbs/
⚠️ PROBLÈME : État Inconnu¶
Vérifications effectuées :
# Script absent dans LXC 102
$ pct exec 102 -- ls -lh /usr/local/bin/*.sh
→ Aucun script trouvé
# Cron dans LXC 102
$ pct exec 102 -- crontab -l
→ À vérifier manuellement
# Derniers chunks Google Drive
$ rclone ls gdrive:backup/homeserver/pbs/
→ À vérifier si dossier existe
🔴 ACTION REQUISE¶
Étapes validation :
-
Entrer dans LXC 102 :
-
Vérifier existence script :
-
Vérifier cron :
-
Vérifier rclone config dans LXC 102 :
-
Tester upload manuel :
Si script manquant :
Option A : Sync depuis host (recommandé temporaire)
# Sur host Proxmox
# Ajouter au crontab :
0 4 * * * rclone sync /mnt/pve/pbs-datastore/datastore/backup/ gdrive:backup/homeserver/pbs/ --fast-list
Option B : Installer dans LXC 102
5. SnapRAID Parity Protection¶
Configuration Actuelle¶
Config: /etc/snapraid.conf
Parity file: /mnt/parity/snapraid.parity
Data disks:
- d1: /mnt/disk1 (WD Green 1TB)
- d2: /mnt/disk2 (Toshiba 1TB attendu)
Pool: MergerFS 2TB
🔴 PROBLÈME CRITIQUE : Parity Non Fonctionnelle¶
État réel :
$ lsblk -f /dev/sde
sde
├─sde1 ext4 parity 286K utilisables /mnt/parity
├─sde2 vfat (EFI)
├─sde3 hfs+ (HFSPLUS)
└─sde4 (Gap)
$ df -h /mnt/parity
/dev/sde1 269K 14K 236K 6% /mnt/parity
$ snapraid status
The array is empty.
$ parted /dev/sde print
Disk /dev/sde: 1000GB
Partition Table: gpt
Number Start End Size File system Name Flags
1 32.8kB 326kB 293kB ext2 Gap0 hidden
2 326kB 8714kB 8.3MB EFI boot boot, esp
3 8714kB 1832MB 1.8GB hfs+ HFSPLUS hidden
4 1832MB 1832MB 307kB Gap1 hidden
Impact : - ❌ Pool MergerFS 2TB NON PROTÉGÉ contre défaillance disque - ❌ Aucune parité calculée (array vide) - ❌ Risque perte données archives personnelles - ❌ Disque sde (WD Green 1TB) inutilisable (partition 286K vs 931GB attendu)
Cause racine : - Table de partitions GPT Mac (ancien usage) - Partitions minuscules (Gap0, EFI, HFSPLUS) - Formatage ext4 sur partition 293KB uniquement
🔧 CORRECTION PLANIFIÉE (Post-Upgrade Hardware)¶
Référence procédure : Voir Migration Hardware 2026
Timeline :
J-Day : Migration hardware i7-2600 → i5-6400
J+1 : Configuration iGPU passthrough
J+2 : Tests validation (Phases 1-5)
J+2 : 🔧 Phase 6.1 - Correction disque sde parity
├─ Reformatage /dev/sde (wipefs + parted)
├─ Partition unique 931GB ext4
├─ Mise à jour /etc/fstab (UUID)
├─ Premier sync SnapRAID (~30-60 min)
└─ Activation cron sync quotidien
Justification timing : - ⚠️ Ne PAS reformater sde durant upgrade hardware (risque manipulation disques) - ✅ Attendre stabilisation système post-migration (Phase 5 validée) - ✅ Exécuter correction quand système stable (J+2)
⚠️ RISQUE ACTUEL : ACCEPTABLE Court Terme¶
Mitigation temporaire :
- ✅ PBS snapshots LXC actifs (protection configs/applications)
- ✅ Google Drive offsite actif (double protection configs)
- ⚠️ Pool MergerFS non protégé MAIS :
- Contenu actuel : Downloads temporaires, processing
- Médias critiques : /mnt/media-bulk (lecture seule, hors pool)
- Risque perte : Moyen (données reconstruisibles)
Action immédiate si upgrade retardé : - Envisager correction sde AVANT upgrade si délai > 7 jours
6. Rclone Infrastructure¶
Installation Host¶
Commande : /usr/bin/rclone
Version : v1.72.1
Config : /root/.config/rclone/rclone.conf (permissions 600)
Remote configuré : gdrive: (Google Drive)
Installation LXC 102¶
Validation Token Google Drive¶
# Tester authentification host
$ rclone ls gdrive:backup/homeserver/
→ ✅ Fonctionne (configs backupés récents)
# Tester LXC 102
$ pct exec 102 -- rclone listremotes
→ ⚠️ À vérifier manuellement
✅ STATUT HOST : OPTIMAL¶
Points forts : - Rclone récent (v1.72.1) - Token OAuth fonctionnel - Architecture centralisée sur host (isolation sécurité)
📋 Checklist Préparation Upgrade Hardware¶
Backups Critiques (J-7)¶
- PBS snapshots < 24h : LXC 100/101/103 backupés 04/02 09:03
- Configs Docker offsite : Google Drive sync 04/02 05:00
- Configs Host offsite : Google Drive sync 04/02 05:00
- Clone dd SSD boot :
/dev/sda→/mnt/storage/backups/proxmox-boot-sda-YYYYMMDD.img - Documentation UUIDs :
blkid > /mnt/storage/backups/migration-YYYYMMDD-blkid.txt - SMART disques :
smartctl -a /dev/sd{a,b,c,d,e} > /mnt/storage/backups/migration-YYYYMMDD-smart-*.txt
Validation Restauration¶
- Test restore config Docker : Vérifier extraction tar.gz Google Drive
- Test restore config Host : Vérifier extraction tar.gz Google Drive
- Test restore LXC PBS : Simuler
pct restore 102 pbs-datastore:...
Documentation État Actuel¶
- Audit backup : Ce document ✅
- Inventory hardware :
lscpu,dmidecode,lsblksauvegardés - Network config :
/etc/network/interfacesbackupé
🎯 Plan d'Action Immédiat¶
Priorité 1 : CRITIQUE (Avant upgrade J-7)¶
-
Clone SSD boot dd (durée : 30 min)
-
Documentation UUIDs/SMART (durée : 10 min)
-
Validation derniers backups PBS (durée : 5 min)
Priorité 2 : HAUTE (Pendant upgrade J-Day à J+2)¶
-
Ajouter LXC 102 au schedule PBS (durée : 2 min)
-
Vérifier PBS sync Google Drive (durée : 15 min)
Priorité 3 : MOYENNE (Post-upgrade J+2)¶
- Corriger partition sde parity (durée : 1-2h)
- Référence : Migration Hardware 2026
- Reformatage /dev/sde (931GB)
- Premier sync SnapRAID
-
Activation cron
-
Tests restauration complète (durée : 1h)
- Restore config Docker depuis Google Drive
- Restore config Host depuis Google Drive
- Simuler restore LXC depuis PBS
📊 Métriques Backup¶
Espace Utilisé¶
| Destination | Espace Utilisé | Capacité | % |
|---|---|---|---|
| PBS datastore (local) | 8.4 GB | 100 GB | 8.4% |
| Google Drive (offsite) | ~10-15 GB | 2 TB | <1% |
| /mnt/parity (cassé) | 14 KB | 286 KB | 6% |
Fréquences Backup¶
| Type | Fréquence | Dernière Exec | Statut |
|---|---|---|---|
| PBS snapshots | 03:00 | 04/02/2026 09:03 | ✅ |
| Configs Docker | 05:00 | 04/02/2026 05:00 | ✅ |
| Configs Host | 05:00 | 04/02/2026 05:00 | ✅ |
| PBS datastore sync | 04:00 | ? | ⚠️ |
| SnapRAID sync | 02:00 | Jamais | ❌ |
Rétentions¶
| Type | Daily | Weekly | Monthly | Total Snapshots |
|---|---|---|---|---|
| PBS LXC 100 | 7 | 4 | 3 | ~10-12 |
| PBS LXC 101 | 7 | 4 | 3 | ~10-12 |
| PBS LXC 103 | 7 | 4 | 3 | ~10-12 |
| Configs offsite | 30 | - | - | 30 |
🔐 Sécurité & Redondance¶
Stratégie 3-2-1 : ⚠️ Partielle¶
3 copies :
✅ Production (LXC running)
✅ PBS local (snapshots déduplication)
✅ Google Drive offsite (configs tar.gz)
2 supports :
✅ SSD local (PBS datastore)
✅ Cloud (Google Drive)
1 offsite :
✅ Google Drive (configs essentiels)
⚠️ PBS datastore chunks (à vérifier)
Points de Défaillance Unique¶
- Host Proxmox :
- Scripts backup centralisés sur host
- Rclone token OAuth sur host
-
Mitigation : Configs backupés offsite quotidien
-
LXC 102 (PBS) :
- Non backupé par PBS
- Mitigation : Configs scripts dans backup-proxmox-host.sh
-
À corriger : Ajouter LXC 102 au schedule
-
Google Drive :
- Single offsite destination
- Mitigation : PBS local + 3-2-1 stratégie
- Acceptable pour homelab (vs multi-cloud entreprise)
📝 Recommandations Finales¶
Court Terme (J-7 avant upgrade)¶
- ✅ Exécuter checklist préparation (voir section ci-dessus)
- ✅ Clone dd SSD boot + compression
- ✅ Valider backups PBS < 24h tous LXC
- ✅ Test extraction tar.gz Google Drive configs
Moyen Terme (J-Day à J+3)¶
- ✅ Ajouter LXC 102 backup PBS (priorité haute)
- ✅ Vérifier/créer PBS datastore sync Google Drive
- ✅ Corriger partition sde parity (post-upgrade Phase 6.1)
- ✅ Tests restauration complète (valider procédures)
Long Terme (Post-upgrade stabilisé)¶
- 💡 Monitoring backups automatisé (Grafana/Prometheus ou Homepage)
- 💡 Alertes échec backup (email/webhook notifications)
- 💡 Documentation procédures restore (runbooks détaillés)
- 💡 Tests disaster recovery annuels (validation stratégie)
🎓 Conclusion¶
État Actuel : ⚠️ ACCEPTABLE avec Réserves¶
Points forts : - ✅ PBS snapshots LXC actifs et récents - ✅ Configs essentiels backupés offsite quotidien - ✅ Double protection (local + cloud) - ✅ Rétention adaptée (7/4/3 PBS, 30j offsite)
Lacunes critiques : - 🔴 SnapRAID non fonctionnel (partition sde cassée) - 🟠 LXC 102 (PBS) non backupé - 🟡 PBS datastore sync Google Drive à vérifier
Risque upgrade hardware : ✅ ACCEPTABLE
Justification : - Tous LXC protégés (PBS snapshots < 24h) - Configs critiques offsite (Google Drive) - Clone dd SSD boot planifié (J-7) - SnapRAID corrigé post-upgrade (J+2)
Recommandation finale : ✅ Procéder upgrade après exécution checklist J-7
Auditeur : Assistant Infrastructure
Validation : En attente approbation utilisateur
Prochaine révision : Post-upgrade (J+3) - Validation corrections appliquées