Skip to content

Audit Backup Infrastructure - 4 février 2026

Date audit : 4 février 2026
Objectif : Vérification exhaustive couches backup avant upgrade hardware
Contexte : Préparation migration i7-2600 (Sandy Bridge) → i5-6400 (Skylake)


📊 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 :

  1. Entrer dans LXC 102 :

    pct enter 102
    
  2. Vérifier existence script :

    ls -lh /usr/local/bin/pbs-sync-gdrive-optimal.sh
    cat /usr/local/bin/pbs-sync-gdrive-optimal.sh
    
  3. Vérifier cron :

    crontab -l
    # Attendu : 0 4 * * * /usr/local/bin/pbs-sync-gdrive-optimal.sh
    
  4. Vérifier rclone config dans LXC 102 :

    rclone listremotes
    # Attendu : gdrive: (si configuré)
    
  5. Tester upload manuel :

    rclone ls gdrive:backup/homeserver/pbs/
    

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

# Créer script dans LXC 102
# Installer rclone si absent
# Configurer token OAuth Google Drive

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

Statut : ⚠️ À vérifier
Attendu : rclone installé pour sync PBS datastore

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, lsblk sauvegardés
  • Network config : /etc/network/interfaces backupé

🎯 Plan d'Action Immédiat

Priorité 1 : CRITIQUE (Avant upgrade J-7)

  1. Clone SSD boot dd (durée : 30 min)

    dd if=/dev/sda of=/mnt/storage/backups/proxmox-boot-sda-$(date +%Y%m%d).img bs=4M status=progress
    pigz -9 /mnt/storage/backups/proxmox-boot-sda-*.img
    
  2. Documentation UUIDs/SMART (durée : 10 min)

    blkid > /mnt/storage/backups/migration-$(date +%Y%m%d)-blkid.txt
    for disk in sda sdb sdc sdd sde; do
        smartctl -a /dev/$disk > /mnt/storage/backups/migration-$(date +%Y%m%d)-smart-$disk.txt
    done
    
  3. Validation derniers backups PBS (durée : 5 min)

    pvesm list pbs-backups | grep $(date +%Y-%m-%d)
    # Vérifier présence LXC 100/101/103
    

Priorité 2 : HAUTE (Pendant upgrade J-Day à J+2)

  1. Ajouter LXC 102 au schedule PBS (durée : 2 min)

    # UI Proxmox ou CLI :
    pvesh set /cluster/backup/backup-92e016e4-0dfc --vmid 100,101,102,103
    
  2. Vérifier PBS sync Google Drive (durée : 15 min)

    pct enter 102
    ls -lh /usr/local/bin/pbs-sync-gdrive-optimal.sh
    crontab -l
    rclone listremotes
    # Si manquant : créer script ou sync depuis host
    

Priorité 3 : MOYENNE (Post-upgrade J+2)

  1. Corriger partition sde parity (durée : 1-2h)

  2. 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

  1. Host Proxmox :

    • Scripts backup centralisés sur host
    • Rclone token OAuth sur host
    • Mitigation : Configs backupés offsite quotidien
  2. LXC 102 (PBS) :

    • Non backupé par PBS
    • Mitigation : Configs scripts dans backup-proxmox-host.sh
    • À corriger : Ajouter LXC 102 au schedule
  3. 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)

  1. Exécuter checklist préparation (voir section ci-dessus)
  2. Clone dd SSD boot + compression
  3. Valider backups PBS < 24h tous LXC
  4. Test extraction tar.gz Google Drive configs

Moyen Terme (J-Day à J+3)

  1. Ajouter LXC 102 backup PBS (priorité haute)
  2. Vérifier/créer PBS datastore sync Google Drive
  3. Corriger partition sde parity (post-upgrade Phase 6.1)
  4. Tests restauration complète (valider procédures)

Long Terme (Post-upgrade stabilisé)

  1. 💡 Monitoring backups automatisé (Grafana/Prometheus ou Homepage)
  2. 💡 Alertes échec backup (email/webhook notifications)
  3. 💡 Documentation procédures restore (runbooks détaillés)
  4. 💡 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