Restauration¶
Procédures de restauration complète de l'infrastructure.
Restauration LXC depuis PBS¶
Via Proxmox Web UI¶
- Connexion PBS Web UI :
https://pve-host:8007 - Datastore →
datastore→ct/<lxc-id>/ - Sélectionner snapshot → Restore
- Configurer :
- Storage :
local-zfs - CT ID : nouveau ou même ID
- Network : vérifier bridge
- Storage :
- Start after restore → Restore
Via CLI¶
# Lister backups disponibles
pct exec 102 -- proxmox-backup-manager backup list --output-format json
# Restore LXC 100
pct restore 100 pbs-datastore:backup/ct/100/<snapshot-name> \
--storage local-zfs \
--unprivileged 1 \
--start 1
# Restore LXC 101
pct restore 101 pbs-datastore:backup/ct/101/<snapshot-name> \
--storage local-zfs \
--unprivileged 1 \
--start 1
Vérification Post-Restore¶
# Vérifier status
pct status 100
pct status 101
# Vérifier services Docker
pct exec 100 -- docker ps
pct exec 101 -- docker ps
# Vérifier montage données
pct exec 100 -- df -h /mnt/data
pct exec 101 -- df -h /mnt/data
Restauration Configs Host¶
Depuis Google Drive¶
# Download dernier backup
pct exec 102 -- rclone copy \
gdrive:backup/homeserver/configs/proxmox-host-config-YYYYMMDD-HHMMSS.tar.gz \
/tmp/
# Extraire (ne pas écraser sans backup)
cd /tmp
tar -tzf proxmox-host-config-*.tar.gz # Lister contenu
tar -xzf proxmox-host-config-*.tar.gz # Extraire
# Restaurer sélectivement
cp -a etc/pve/* /etc/pve/
cp -a etc/network/* /etc/network/
cp -a etc/fstab /etc/
cp -a etc/snapraid.conf /etc/
cp -a usr/local/bin/* /usr/local/bin/
chmod +x /usr/local/bin/*.sh
# Recharger network
systemctl restart networking
# Vérifier montages
mount -a
Ordre Restauration Host Complet¶
Si réinstallation Proxmox complète :
- Installer Proxmox VE fresh
- Restaurer
/etc/network/interfaces→systemctl restart networking - Restaurer
/etc/fstab→mount -a - Restaurer
/etc/pve/storage.cfg(PBS config) - Recréer LXC 102 ou restore depuis backup externe
- Configurer rclone dans LXC 102
- Restaurer datastore PBS depuis Google Drive
- Restore LXC 100 + 101 depuis PBS
Restauration Configs Docker¶
# Download backup
pct exec 102 -- rclone copy \
gdrive:backup/homeserver/docker-configs/docker-configs-YYYYMMDD-HHMMSS.tar.gz \
/tmp/
# Extraire
pct exec 102 -- tar -xzf /tmp/docker-configs-*.tar.gz -C /tmp/
# Restaurer docker-compose
pct exec 102 -- cp /tmp/100-media/docker-compose.yml /mnt/lxc-data/100-media/
pct exec 102 -- cp /tmp/101-admin/docker-compose.yaml /mnt/lxc-data/101-admin/
# Restaurer configs apps
pct exec 102 -- cp /tmp/100-media/prowlarr/config.xml \
/mnt/lxc-data/100-media/prowlarr/
# ... idem pour radarr, sonarr, sabnzbd, homepage
# Restart containers
pct exec 100 -- docker-compose -f /mnt/data/100-media/docker-compose.yml restart
pct exec 101 -- docker-compose -f /mnt/data/101-admin/docker-compose.yaml restart
Restauration Documentation¶
# Download backup
pct exec 102 -- rclone copy \
gdrive:backup/homeserver/documentation/documentation-YYYYMMDD-HHMMSS.tar.gz \
/tmp/
# Extraire
pct exec 102 -- tar -xzf /tmp/documentation-*.tar.gz -C /tmp/
# Restaurer
pct exec 102 -- rsync -av /tmp/documentation/ /mnt/lxc-data/documentation/
Restauration PBS Datastore depuis Google Drive¶
Si perte complète datastore PBS :
# Sync complet depuis Google Drive
pct exec 102 -- rclone sync \
gdrive:backup/homeserver/pbs/ \
/mnt/datastore/ \
--progress
# Vérifier intégrité
pct exec 102 -- proxmox-backup-manager verify --store datastore
⚠️ Attention : rclone sync écrase destination. Vérifier avant.
Restauration Partielle¶
Single File depuis LXC Backup¶
# Mount backup en lecture seule
pct exec 102 -- proxmox-backup-client mount \
ct/100/<snapshot> /mnt/restore/
# Copier fichiers
cp /mnt/restore/path/to/file /destination/
# Unmount
pct exec 102 -- proxmox-backup-client umount /mnt/restore/
Troubleshooting¶
Filesystem Read-Only (Pool LVM Thin Saturé)¶
Symptôme : LXC filesystems passent en lecture seule, erreur "read-only file system" dans Docker
Diagnostic :
# Test écriture sur chaque LXC
for lxc in 100 101 102 103 104; do
echo -n "LXC $lxc: "
pct exec $lxc -- touch /test-write 2>&1 && pct exec $lxc -- rm /test-write && echo "RW OK" || echo "READ-ONLY"
done
# Vérifier pool thin
lvs -o lv_name,data_percent pve/data
# Vérifier logs kernel
dmesg | grep -E "ext4.*read-only|aborted journal" | tail -20
Causes courantes :
- Pool LVM thin > 95% (pas d'espace pour metadata)
- Logs excessifs (journald, PBS)
- Shutdown forcé → journal aborted
Résolution :
- Arrêter LXC affectés
- Réparer filesystems avec e2fsck
# Pour chaque LXC affecté
e2fsck -f -y /dev/pve/vm-100-disk-0
e2fsck -f -y /dev/pve/vm-103-disk-0
e2fsck -f -y /dev/pve/vm-104-disk-0
- Libérer espace pool
# Option A : Nettoyer logs
pct exec 102 -- journalctl --vacuum-size=500M
pct exec 102 -- find /var/log -name "*.log" -mtime +7 -delete
# Option B : Étendre pool (si espace VG disponible)
vgs pve # Vérifier VFree
lvextend -l +100%FREE /dev/pve/data
# Option C : Réduire LXC surdimensionné
pct stop 102
lvreduce -L 40G /dev/pve/vm-102-disk-0
e2fsck -f /dev/pve/vm-102-disk-0
resize2fs /dev/pve/vm-102-disk-0
pct start 102
- Redémarrer LXC
pct start 100
pct start 103
pct start 104
# Vérifier RW
for lxc in 100 103 104; do
pct exec $lxc -- touch /test-write && pct exec $lxc -- rm /test-write && echo "LXC $lxc: OK"
done
- Prévention
# Configurer logrotate PBS (voir logs-management.md)
# Limite journald 500MB
# Monitoring pool thin < 85%
Historique : Incident 2026-03-23 - Pool 92% → read-only cascade → résolu par cleanup logs + extension pool
Erreur restore LXC¶
# Vérifier storage disponible
pvesm status
# Vérifier backup exists
pct exec 102 -- proxmox-backup-manager backup list
# Vérifier logs PBS
pct exec 102 -- journalctl -u proxmox-backup.service -n 50
Erreur rclone Google Drive¶
# Tester connexion
pct exec 102 -- rclone lsd gdrive:
# Renouveler OAuth
pct exec 102 -- rclone config reconnect gdrive:
Testing¶
Tests mensuels obligatoires : voir testing.md.