Analyse Stratégique : Optimisation Infrastructure Backup¶
Date : 2026-01-XX
Contexte : Suite harmonisation backup LXC 103, analyse opportunités amélioration stratégie globale
Question 1 : Faut-il sauvegarder le LXC 102 via PBS ?¶
État Actuel¶
PBS sauvegarde :
- ✅ LXC 100 (docker-media) - 03:00 quotidien, 7/4/3 jours/semaines/mois
- ✅ LXC 101 (docker-management) - 03:00 quotidien, 7/4/3
- ✅ LXC 103 (network-gateway) - 03:00 quotidien, 7/4/3
- ❌ LXC 102 (pbs) - PAS SAUVEGARDÉ
Rôle LXC 102 :
- Serveur PBS (Proxmox Backup Server)
- Orchestrateur backup centralisé (rclone, scripts)
- Gère uploads Google Drive
- Point unique défaillance infrastructure backup
Risques Identifiés¶
| Risque | Impact | Probabilité |
|---|---|---|
| Perte configuration PBS | Recréation manuelle datastores, schedules | Moyen |
| Perte scripts backup centralisés | Réécriture /usr/local/bin/backup-*.sh |
Moyen |
| Perte configuration rclone | Reconfiguration Google Drive authentif | Moyen |
| Corruption filesystem LXC 102 | Perte totale infrastructure backup | Faible |
| Perte complète LXC 102 | Reconstruction complète système backup | Très faible |
Impact cumulé : ÉLEVÉ - La perte de LXC 102 nécessite reconstruction manuelle complète infrastructure backup.
Analyse Avantages/Inconvénients¶
✅ AVANTAGES d'ajouter LXC 102 au PBS :
- Cohérence architecture : Tous LXC Docker sauvegardés (100/101/103) → logique étendre à 102
- Disaster Recovery complet : PBS peut restaurer sa propre config depuis snapshot
- Protection configuration : Scripts, rclone config, PBS datastores sauvegardés
- Restauration rapide :
pct restoreau lieu reconfiguration manuelle - Versioning : Historique modifications config PBS (7 jours)
❌ INCONVÉNIENTS :
- Circularité conceptuelle : PBS se sauvegarde lui-même (philosophiquement étrange mais fonctionnel)
- Espace disque : +quelques GB sur datastore PBS (négligeable vs 103 avec NPM/Authelia/WireGuard)
- Charge CPU : Backup supplémentaire à 03:00 (faible impact, LXC 102 léger)
- Limitation : Si datastore PBS corrompu, snapshot LXC 102 affecté (mais configs externalisées Google Drive)
Évaluation Technique¶
Taille estimée LXC 102 : ~2-3 GB (OS + PBS + scripts)
Datastore disponible : À vérifier (pvesm status)
Impact performance : Négligeable (backup 1 LXC additionnel ~5-10 min)
Circularité gérée par :
- Snapshot LXC 102 → datastore PBS local
- Configs scripts backupés aussi → Google Drive (via backup-proxmox-host.sh pour /usr/local/bin/)
- Double protection : PBS snapshot + rclone external
🎯 RECOMMANDATION¶
✅ OUI - Ajouter LXC 102 au schedule PBS
Justification :
- Infrastructure complète : Aucun LXC Docker non sauvegardé
- Principe redondance : PBS snapshot + Google Drive = double protection
- Simplicité restauration :
pct restore 102vs reconfiguration manuelle complexe - Coût négligeable : Espace/performance minimes vs bénéfice sécurité
Configuration recommandée :
# Ajouter job PBS pour LXC 102
Schedule: Daily @ 03:00 (comme autres LXC)
Retention: 7/4/3 (keep-daily/weekly/monthly)
Mode: Snapshot
Ordre backup :
- 03:00 - PBS backup LXC 100/101/102/103 (tous)
- 05:00 - LXC 102 backup configs Docker (100/101/103) + upload Google Drive
Mitigation circularité : Backup PBS configuration séparé host-side via /usr/local/bin/backup-proxmox-host.sh (déjà en place).
Question 2 : Stratégie Backup Sélectif vs Complet¶
État Actuel¶
Backup SÉLECTIF (stratégie actuelle) :
LXC 100 :
├─ docker-compose.yml
├─ prowlarr/config.xml
├─ radarr/config.xml
├─ sonarr/config.xml
└─ sabnzbd/sabnzbd.ini
LXC 101 :
├─ docker-compose.yaml
└─ homepage/*.yaml
LXC 103 :
├─ docker-compose.yml
├─ authelia/{configuration,users_database}.yml
├─ npm/data/
└─ wireguard/
EXCLUSIONS actuelles :
- Médias Jellyfin (
/jellyfin/media/- TBs) - Caches applicatifs (
*/cache/*) - Logs (
*/logs/*) - Downloads temporaires (
*/downloads/*,*/Downloads/*) - MediaCover (*arr)
- Base configs générées (ASP, Definitions, Sentry)
Option A : Backup Complet /mnt/lxc-data/docker-XXX/¶
✅ AVANTAGES :
- Exhaustivité garantie : Aucun fichier oublié (nouveaux configs automatiquement inclus)
- Simplicité script :
tar -czf /mnt/lxc-data/docker-100/ /mnt/lxc-data/docker-101/(2 lignes vs 10+) - Restauration complète : Environnement 100% identique (bases données applicatives incluses)
- Pas de maintenance : Ajout nouvelle app = backup automatique (pas mise à jour script)
❌ INCONVÉNIENTS :
- Taille explosive :
- docker-100 actuel : ~50 GB (avec bases données *arr, transcode cache Jellyfin, covers)
- docker-101 actuel : ~2 GB
- Total : ~52 GB par backup quotidien
- Temps backup : Compression 52 GB = 15-30 min (vs actuel ~2 min)
- Coût Google Drive :
- 30 jours rétention = 52 GB × 30 = 1.56 TB stockage
- Plan Google Workspace actuel : 2 TB (limite proche)
- Bande passante upload : 52 GB/jour = ~6 heures upload (connexion moyenne)
- Redondance inutile : Bases metadata *arr reconstruisibles depuis fichiers configs
Option B : Backup Complet /mnt/lxc-data/¶
❌ ENCORE PIRE :
- Inclut
/mnt/lxc-data/backups/(récursion absurde) - Inclut médias Jellyfin (plusieurs TB)
- Inclut documentation (déjà backupée séparément)
- IMPRATICABLE : Taille prohibitive, temps upload ingérable
Option C : Stratégie Sélective Améliorée (recommandée)¶
Principe : Sauvegarder uniquement configs critiques non-régénérables
Configuration actuelle OPTIMALE :
| Fichier | Critique ? | Régénérable ? | Backup ? |
|---|---|---|---|
| docker-compose.yml | ✅ OUI | ❌ NON | ✅ OUI |
| */config.xml | ✅ OUI | ❌ NON | ✅ OUI |
| homepage/*.yaml | ✅ OUI | ❌ NON | ✅ OUI |
| authelia/users_database | ✅ OUI | ❌ NON | ✅ OUI |
| npm/data/ | ✅ OUI | ❌ NON | ✅ OUI |
| */cache/ | ❌ NON | ✅ OUI | ❌ NON |
| */logs/ | ❌ NON | ✅ OUI | ❌ NON |
| */MediaCover/ | ❌ NON | ✅ OUI | ❌ NON |
| */downloads/ | ❌ NON | ✅ OUI | ❌ NON |
| bazarr/config/db/ | ⚠️ MOYEN | ⚠️ PARTIEL | ⚠️ ÉVAL |
Fichiers manquants possibles :
# Vérifier configs non-backupés
find /mnt/lxc-data/docker-100/ -name "*.xml" -o -name "*.yml" -o -name "*.yaml" -o -name "*.json" | grep -v "cache\|logs\|MediaCover\|downloads"
Amélioration suggérée :
# Ajouter au script backup-docker-configs.sh (sur host)
/mnt/lxc-data/docker-100/bazarr/config/config.yaml
/mnt/lxc-data/docker-100/bazarr/config/db/bazarr.db # Base données subtitles
🎯 RECOMMANDATION¶
✅ Conserver stratégie SÉLECTIVE actuelle + ajustements mineurs
Justification :
- Rapport coût/bénéfice optimal :
- Taille actuelle : ~500 MB → upload 5 min
- Stratégie complète : ~52 GB → upload 6h + 1.5 TB stockage
- Configs critiques couverts : docker-compose + app configs XML/YAML/INI
- Redondance intelligente :
- PBS snapshot → filesystem complet (ZFS)
- rclone Google Drive → configs essentiels
- Double protection différenciée
- Maintenabilité : Script simple, logs clairs, exécution rapide
Actions recommandées :
- ✅ Audit annuel : Vérifier nouveaux configs apps non-backupés
- ✅ Documenter critères : Quels fichiers inclurent (yaml/xml/ini/db vs cache/logs)
- ⚠️ Évaluer bazarr.db : Base données subtitles (taille vs criticité)
- ✅ Tester restore : Valider configs suffisent reconstruction environnement
Stratégie Hybride (optionnelle)¶
Backup différencié par fréquence :
| Type | Contenu | Fréquence | Rétention | Destination |
|---|---|---|---|---|
| Critique | Configs (sélectif) | Quotidien | 30 jours | Google Drive |
| Complet | docker-XXX/ entier | Hebdomadaire | 4 semaines | Disque local backup |
| Snapshot | LXC complets (PBS) | Quotidien | 7/4/3 | PBS datastore |
Avantage : Granularité récupération vs coût stockage optimisé
Inconvénient : Complexité scripts + gestion 3 destinations
Synthèse Recommandations¶
🎯 Priorité HAUTE¶
- ✅ Ajouter LXC 102 au schedule PBS backup
- Schedule : 03:00 daily
- Retention : 7/4/3
- Impact : +2-3 GB datastore, +5 min backup
🎯 Priorité MOYENNE¶
-
✅ Conserver stratégie backup sélective actuelle
- Rapport coût/bénéfice optimal
- Ajuster si nouveaux configs critiques détectés
-
⚠️ Audit configurations backupées
-
📋 Documenter critères inclusion backup
- Créer section dans scripts.md : "Critères fichiers backupés"
- Expliciter : configs essentiels vs données régénérables
🎯 Priorité BASSE (optionnel)¶
-
🔄 Tester restore complet environnement
- VM test : restore configs uniquement
- Valider : docker-compose up reconstruit environnements
- Documenter : procédure restoration.md
-
💾 Évaluer backup hebdomadaire complet local
- Si espace disque disponible /mnt/backup-pool/
- Alternative : backup complet moins fréquent, rétention courte
Conclusion¶
Architecture backup actuelle = SOLIDE
Seule lacune identifiée : LXC 102 non-backupé (facilement corrigeable)
Stratégie sélective = OPTIMALE pour rapport coût/performance/praticité
Recommandation finale :
- ✅ Ajouter LXC 102 au PBS (CRITIQUE) - FAIT
- ✅ Harmoniser LXC 103 avec architecture centralisée - FAIT
- Audit annuel configs (MAINTENANCE)
- Conserver approche sélective (OPTIMAL)