From c8d62e79dc1b03621a544ed3bd493e6c910d1743 Mon Sep 17 00:00:00 2001 From: BeauTroll <-> Date: Thu, 18 Dec 2025 18:09:03 +0100 Subject: [PATCH] Add comprehensive restore testing documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Create detailed guide for testing backup restoration at three levels: quick checks, service restoration, and full disaster recovery. Changes: - Add docs/RESTORE-TESTING.md with complete testing procedures - Include 3 testing levels (monthly, quarterly, semi-annual) - Document common restoration scenarios - Provide troubleshooting guides and checklists - Add RTO/RPO measurement guidelines - Include report templates for each test level đŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- docs/RESTORE-TESTING.md | 714 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 714 insertions(+) create mode 100644 docs/RESTORE-TESTING.md diff --git a/docs/RESTORE-TESTING.md b/docs/RESTORE-TESTING.md new file mode 100644 index 0000000..922d1dc --- /dev/null +++ b/docs/RESTORE-TESTING.md @@ -0,0 +1,714 @@ +# Guide de test de restauration Borgmatic + +> **"Un backup non testĂ© n'est pas un backup"** + +Ce guide dĂ©crit comment tester vos backups Borgmatic pour garantir que vos donnĂ©es sont restaurables en cas de sinistre. + +## Table des matiĂšres + +- [Pourquoi tester ?](#pourquoi-tester) +- [PrĂ©-requis](#prĂ©-requis) +- [Niveau 1 : Test rapide (mensuel)](#niveau-1--test-rapide-mensuel) +- [Niveau 2 : Test de service (trimestriel)](#niveau-2--test-de-service-trimestriel) +- [Niveau 3 : Disaster Recovery complet (semestriel)](#niveau-3--disaster-recovery-complet-semestriel) +- [ScĂ©narios de restauration courants](#scĂ©narios-de-restauration-courants) +- [Checklist de vĂ©rification](#checklist-de-vĂ©rification) +- [Troubleshooting](#troubleshooting) + +--- + +## Pourquoi tester ? + +### Risques sans test de restauration + +- ❌ Backup corrompu dĂ©couvert trop tard +- ❌ Passphrase incorrecte ou perdue +- ❌ ClĂ©s SSH manquantes ou expirĂ©es +- ❌ Fichiers critiques exclus par erreur +- ❌ Permissions/ownership incorrects +- ❌ Temps de restauration inconnu (RTO) +- ❌ ProcĂ©dure non documentĂ©e + +### BĂ©nĂ©fices des tests rĂ©guliers + +- ✅ Confiance totale dans vos backups +- ✅ ProcĂ©dure Ă©prouvĂ©e et documentĂ©e +- ✅ Temps de restauration mesurĂ© +- ✅ DĂ©tection prĂ©coce des problĂšmes +- ✅ Équipe formĂ©e en conditions rĂ©elles + +--- + +## PrĂ©-requis + +### Informations nĂ©cessaires + +Assurez-vous d'avoir accĂšs Ă  : + +```bash +# Variables d'environnement +BORG_REPO=ssh://USER@IP:PORT/./backups +BORG_PASSPHRASE=votre-passphrase-sĂ©curisĂ©e + +# ClĂ©s SSH +~/.ssh/id_rsa (ou clĂ© configurĂ©e pour le serveur de backup) +``` + +### VĂ©rifications prĂ©liminaires + +```bash +# 1. VĂ©rifier la connexion au repository +make info + +# 2. Lister les archives disponibles +make list + +# 3. VĂ©rifier l'intĂ©gritĂ© du repository +make check +``` + +--- + +## Niveau 1 : Test rapide (mensuel) + +**DurĂ©e estimĂ©e :** 5-10 minutes +**FrĂ©quence recommandĂ©e :** Tous les mois +**Objectif :** VĂ©rifier que la restauration fonctionne + +### ProcĂ©dure + +#### 1. CrĂ©er un environnement de test + +```bash +# CrĂ©er un dossier de test avec horodatage +TEST_DIR="/tmp/restore-test-$(date +%Y%m%d-%H%M)" +mkdir -p "$TEST_DIR" +cd "$TEST_DIR" +``` + +#### 2. Restaurer quelques fichiers critiques + +```bash +# Restaurer la configuration Borgmatic +borgmatic extract \ + --archive latest \ + --path /etc/borgmatic/config.yaml \ + --destination "$TEST_DIR/" + +# Restaurer un fichier Nextcloud +borgmatic extract \ + --archive latest \ + --path /opt/nextcloud/config/config.php \ + --destination "$TEST_DIR/" + +# Restaurer un fichier de configuration systĂšme +borgmatic extract \ + --archive latest \ + --path /etc/nginx/nginx.conf \ + --destination "$TEST_DIR/" +``` + +#### 3. VĂ©rifier les fichiers restaurĂ©s + +```bash +# VĂ©rifier que les fichiers existent +ls -lh "$TEST_DIR/etc/borgmatic/" +ls -lh "$TEST_DIR/opt/nextcloud/config/" + +# Comparer avec l'original (si toujours accessible) +diff /etc/borgmatic/config.yaml "$TEST_DIR/etc/borgmatic/config.yaml" + +# VĂ©rifier le contenu +cat "$TEST_DIR/etc/borgmatic/config.yaml" +``` + +#### 4. Nettoyer + +```bash +# Supprimer le dossier de test +rm -rf "$TEST_DIR" +echo "✅ Test rapide terminĂ© avec succĂšs" +``` + +### Checklist de validation + +- [ ] Les fichiers ont Ă©tĂ© restaurĂ©s sans erreur +- [ ] Le contenu des fichiers est correct +- [ ] Les permissions semblent correctes +- [ ] Aucun message d'erreur dans les logs + +--- + +## Niveau 2 : Test de service (trimestriel) + +**DurĂ©e estimĂ©e :** 30-60 minutes +**FrĂ©quence recommandĂ©e :** Tous les 3 mois +**Objectif :** VĂ©rifier la restauration complĂšte d'un service + +### ScĂ©nario : Restaurer Nextcloud complet + +#### 1. PrĂ©parer l'environnement + +```bash +TEST_DIR="/tmp/restore-nextcloud-$(date +%Y%m%d)" +mkdir -p "$TEST_DIR" +``` + +#### 2. Restaurer Nextcloud + +```bash +# Restaurer tous les fichiers Nextcloud +borgmatic extract \ + --archive latest \ + --path /opt/nextcloud \ + --destination "$TEST_DIR/" + +# ChronomĂ©trer la restauration +time borgmatic extract \ + --archive latest \ + --path /opt/nextcloud \ + --destination "$TEST_DIR/" +``` + +#### 3. VĂ©rifier la restauration + +```bash +# VĂ©rifier la taille totale +du -sh "$TEST_DIR/opt/nextcloud/" + +# Comparer avec la production +du -sh /opt/nextcloud/ + +# VĂ©rifier la structure +tree -L 2 "$TEST_DIR/opt/nextcloud/" + +# VĂ©rifier les fichiers de configuration +cat "$TEST_DIR/opt/nextcloud/config/config.php" + +# VĂ©rifier quelques fichiers utilisateurs +ls -lh "$TEST_DIR/opt/nextcloud/data/" + +# VĂ©rifier les permissions +ls -la "$TEST_DIR/opt/nextcloud/" +``` + +#### 4. Tests approfondis + +```bash +# Compter les fichiers +find "$TEST_DIR/opt/nextcloud/" -type f | wc -l +find /opt/nextcloud/ -type f | wc -l + +# VĂ©rifier les bases de donnĂ©es (si incluses) +ls -lh "$TEST_DIR/opt/nextcloud/data/"*.db + +# Tester l'intĂ©gritĂ© de fichiers alĂ©atoires +md5sum "$TEST_DIR/opt/nextcloud/data/user1/files/photo.jpg" +``` + +#### 5. Documenter les rĂ©sultats + +```bash +# CrĂ©er un rapport +cat > "$TEST_DIR/test-report.txt" < /tmp/disaster-recovery-report-$(date +%Y%m%d).txt < /tmp/archive-files.txt +grep "nextcloud" /tmp/archive-files.txt +``` + +### Permissions incorrectes + +```bash +# Restaurer les permissions originales +sudo chown -R www-data:www-data /opt/nextcloud/data/ +sudo chmod -R 755 /opt/nextcloud/ +``` + +--- + +## Bonnes pratiques + +### 1. Planification des tests + +CrĂ©ez un calendrier de tests : + +``` +Janvier : Test rapide +FĂ©vrier : Test rapide +Mars : Test rapide + Test service (Nextcloud) +Avril : Test rapide +Mai : Test rapide +Juin : Test rapide + Test service (Mailcow) + DR complet +Juillet : Test rapide +... +``` + +### 2. Documentation continue + +AprĂšs CHAQUE test : + +- Mettre Ă  jour ce document avec les leçons apprises +- Noter les durĂ©es rĂ©elles +- Documenter les problĂšmes et solutions +- Partager avec l'Ă©quipe + +### 3. Automatisation + +CrĂ©er des scripts pour les tests frĂ©quents : + +```bash +# Script de test rapide automatisĂ© +./scripts/test-restore-quick.sh + +# Script de rapport automatique +./scripts/generate-restore-report.sh +``` + +### 4. Formation de l'Ă©quipe + +- Faire tourner les personnes qui effectuent les tests +- Documenter la procĂ©dure comme si vous la lisiez pour la premiĂšre fois +- Simuler des pannes sans prĂ©venir (test surprise) + +### 5. AmĂ©lioration continue + +À chaque test, posez-vous : + +- Qu'est-ce qui pourrait ĂȘtre plus rapide ? +- Qu'est-ce qui manque dans la documentation ? +- Quels fichiers critiques ne sont pas backupĂ©s ? +- Comment rĂ©duire le RTO (temps de restauration) ? + +--- + +## MĂ©triques importantes + +### RTO (Recovery Time Objective) + +**Temps maximum acceptable pour restaurer le service** + +Mesurez lors de vos tests : + +- Restauration fichiers uniquement : **\_** minutes +- Restauration + redĂ©marrage services : **\_** minutes +- Disaster Recovery complet : **\_** heures + +### RPO (Recovery Point Objective) + +**QuantitĂ© de donnĂ©es qu'on peut accepter de perdre** + +Avec backup quotidien Ă  3h : + +- RPO : Maximum 24 heures de donnĂ©es perdues + +Si critique, envisager : + +- Backups plus frĂ©quents (2x/jour) +- RĂ©plication en temps rĂ©el +- Snapshots supplĂ©mentaires + +--- + +## Conclusion + +**Un test de restauration rĂ©gulier est la SEULE façon de garantir que vos backups fonctionnent.** + +N'attendez pas la catastrophe pour dĂ©couvrir que vos backups sont inutilisables. + +### Prochaines Ă©tapes + +1. [ ] Planifier votre premier test rapide (cette semaine) +2. [ ] Calendrier de tests pour l'annĂ©e +3. [ ] Former au moins une autre personne Ă  la procĂ©dure +4. [ ] Automatiser les tests simples +5. [ ] Documenter votre RTO/RPO rĂ©el + +--- + +**Date de derniĂšre mise Ă  jour :** 2025-12-18 +**Version :** 1.0 +**Mainteneur :** Agence66