notes / Opérations d’infrastructure
Réplication de sauvegardes vers un stockage OpenWrt
Conception et vérification d’une réplication de sauvegardes à l’initiative d’un Raspberry Pi OpenWrt vers un disque externe dédié, séparée des points de récupération conservés sur le VPS.
Pourquoi cette note existe
Les sauvegardes stockées uniquement sur le même VPS sont utiles, mais elles ne protègent pas contre la perte du VPS, de son stockage ou de l'accès au compte qui l'accueille.
Cette note documente une deuxième couche de récupération pour un service d'état : les sauvegardes terminées restent disponibles sur le VPS pour un retour rapide, tandis qu'un OpenWrt Raspberry Pi tire les artefacts de sauvegarde complétés sur un disque externe dédié.
L'important choix de conception est que l'appareil local tire du VPS. Le réseau domestique n'accepte pas l'accès entrant, et le VPS ne peut pas lancer une connexion au réseau local.
Objectifs de conception
Le système a été conçu pour fournir:
- points de récupération rapides sur le VPS
- une copie locale conservée séparément sur le stockage physique
- pas de SSH public ou de transfert de port dans le réseau d'origine
- une identité locale qui ne peut pas modifier le VPS
- Gestion sûre des transferts interrompus
- rétention qui ne supprime jamais des copies saines après une synchronisation ratée
- matériel de récupération au-delà du répertoire de données primaires
Un lecteur externe local partage toujours le même site physique que le routeur. Il fournit toutefois une limite de stockage et d'accès séparée du VPS.
Architecture
VPS-hosted stateful service
|
| creates completed backup archives
v
VPS backup repository
|
| restricted SSH identity + rsync
| initiated by the local device
v
OpenWrt Raspberry Pi
|
v
Dedicated external ext4 storage
Le lecteur externe est monté séparément du stockage du système OpenWrt. Cela évite de traiter le support de démarrage du routeur comme une cible de sauvegarde et donne à l'archive sa propre capacité, système de fichiers et chemin de remplacement.
Ce qui est conservé
Un ensemble de récupération utile doit inclure plus que le répertoire de données actif.
Les artefacts de sauvegarde reproduits couvrent les données de service d'état ainsi que le matériel opérationnel nécessaire pour le restaurer de manière cohérente:
- service primaire ou état mondial
- configuration du serveur et du service
- accès-contrôle et données d'identité
- autoriser les listes, les fichiers d'opérateurs ou les dossiers politiques, le cas échéant
- configuration d'extension et d'intégration
- paramètres requis pour reproduire le service en cours d'exécution
Le point est de récupérer un système de travail, pas seulement un dossier de données partiel qui a encore besoin d'une configuration importante reconstruite à partir de la mémoire.
Modèle d'accès par tirage
Le périphérique OpenWrt lance chaque transfert.
Son identité SSH est limitée à la source de sauvegarde. Elle ne peut pas ouvrir un shell interactif, modifier le service, parcourir des fichiers VPS non liés, ou écrire à l'hôte distant. Le côté distant expose un chemin de sauvegarde fixe par une commande d'expéditeur contrôlée.
Cela crée une limite utile:
OpenWrt can read completed backup artifacts
OpenWrt cannot administer the VPS
VPS cannot initiate access to the home network
C'est plus sûr et plus simple que d'exposer un service de routeur à Internet seulement pour que le VPS puisse pousser des fichiers vers l'intérieur.
Synchronisation Comportement
Le Pi vérifie le dépôt de sauvegarde sur un calendrier et ne synchronise que les artefacts complétés.
rsync est utilisé parce qu'il traite les cas opérationnels qui comptent ici:
- de nouvelles archives sont copiées sans recopier celles existantes
- les transferts interrompus peuvent reprendre en toute sécurité
- Les artefacts modifiés peuvent être rafraîchis
- l'archive locale peut rattraper après la perte temporaire de réseau
- sortie de transfert peut être enregistré pour l'inspection
Le travail utilise un verrou de sorte qu'un transfert exceptionnellement lent ne peut pas se chevaucher avec la prochaine exécution prévue.
Conservation indépendante
La rétention est délibérément indépendante à chaque couche.
Le VPS garde un jeu de roulis court pour le retour immédiat. Le lecteur externe local conserve sa propre archive roulante, de sorte qu'il ne perd pas les points de récupération plus anciens simplement parce que le VPS tourne sa fenêtre courte.
Si la connexion, le stockage ou le transfert échoue, le travail s'éteint avant de supprimer les anciennes copies locales. Cette commande empêche une opération de sauvegarde échouée de devenir un événement de nettoyage destructeur.
Le nombre exact de copies est une décision de capacité et de récupération-fenêtre, pas un numéro magique. Il devrait être examiné lorsque la taille de sauvegarde, le taux de changement, le stockage disponible, ou les changements de point de récupération acceptables.
Décisions de stockage
La cible locale est un disque dur externe de 2,5 pouces, formaté ext4 et monté sur OpenWrt Raspberry Pi.
C'était intentionnel :
- les supports de démarrage de routeur ne sont pas traités comme stockage d'archives
- un lecteur séparé peut être remplacé sans reconstruire le routeur
- ext4 donne des autorisations Linux prévisibles et le comportement du système de fichiers
- le lecteur a une capacité suffisante pour une fenêtre de rétention significative
- Windows peut être maintenu en lecture seule lors de l'inspection du disque, en évitant l'initialisation accidentelle ou les dommages du système de fichiers
Le lecteur est monté automatiquement au démarrage, et la tâche de sauvegarde utilise le montage stable plutôt qu'un nom de périphérique supposé.
Vérification
La conception a été vérifiée avec de vrais artefacts de sauvegarde plutôt qu'un fichier de configuration réussi.
Vérifications incluses:
- confirmant le lecteur externe séparément du disque système OpenWrt avant de le formater
- confirmant le montage du système de fichiers et la capacité disponible
- prouvant que le compte restreint pouvait accéder uniquement à l'arborescence de sauvegarde prévue
- compléter un miroir initial sur le disque externe
- vérifier que l'état de service, les données d'authentification et la configuration ont été inclus
- tester un chemin de restauration à partir du système de sauvegarde
- confirmant que les références de conservation étaient présentes après les sauvegardes programmées
Enseignements opérationnels
Le résultat le plus important est la séparation des responsabilités:
VPS: creates fast recovery points
OpenWrt Pi: pulls a separate archive without inbound exposure
External drive: holds the retained local recovery set
Une erreur de service peut être repoussée rapidement du VPS. Une perte de niveau VPS laisse encore une copie stockée indépendamment. Un problème de routeur ou de lecteur peut être réparé sans lui accorder un large contrôle sur le serveur de production.
Le travail est un bon exemple de la fiabilité de l'infrastructure définie par les limites d'accès, l'exhaustivité de la récupération et le comportement testé, pas seulement en ayant un dossier appelé backups.