Outils pour utilisateurs

Outils du site


admin:services:backup

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
admin:services:backup [2019/08/23 13:47] – Cleanup pour laisser place au nouveau système herveadmin:services:backup [2020/05/11 01:01] (Version actuelle) toadjaune
Ligne 17: Ligne 17:
 </WRAP> </WRAP>
  
 +===== Motivation =====
  
-===== Concept de sauvegarde =====+FedeRez est une asso étudiante, dans laquelle, comme pour la plupart des assos de réseau étudiantes (si ce n'est plus), les ressources humaines peuvent fluctuer considérablement au cours du temps, parfois avec pas ou peu de passations de savoir. 
 + 
 +Les infrastructures et services que nous mettons en place doivent donc chercher à être aussi robustes que possible. 
 + 
 +Mais pas robustes au sens haute disponibilité, failover, etc ; plutôt au sens de disaster recovery. 
 + 
 +Ce qu'on veut, ce n'est pas une infra qui ne tombe jamais, c'est une infra qu'on a les capacités de réparer quand elle tombe. 
 + 
 +Ça implique plusieurs choses : 
 + 
 +* KISS 
 +* Bonne documentation 
 +* Backups solides 
 + 
 +Le choix de Borg + ansible me semble un bon compromis à ce niveau : pas de spof, pas de système compliqué de clustering, une seule techno assez simple d'utilisation partout, versatilité importante (se balader dans un backup en fuse, etc...) 
 + 
 +Aucune objection à en plus mettre d'autres types de backups tels que des snapshots de vm, c'est incontestablement plus simple d'utilisation dans les cas où c'est applicable, etc. Mais c'est plus limité en scope (proxmox vs hosting chez un tiers) et en résilience (c'est plus la même version de xxxx du coup le snapshot est plus compatible, ah mais on peut pas la restaurer là parce que pas la bonne conf réseau, etc) 
 + 
 + 
 +===== Fonctionnement de la solution ===== 
 + 
 +**BorgBackup** (ou Borg) sert à effectuer la sauvegarde proprement dite vers les serveurs de destination. Il gère un historique des versions des sauvegardes ainsi que la déduplication et la compression des données. Son installation et sa configuration sont gérés via ansible.
  
 **Backupninja** sert pour les sauvegardes automatisées locales (''/var/backups'') : **Backupninja** sert pour les sauvegardes automatisées locales (''/var/backups'') :
Ligne 24: Ligne 46:
   * des informations systèmes utiles (dpkg-selections, fstab, lvm...)   * des informations systèmes utiles (dpkg-selections, fstab, lvm...)
   * des dumps des bases de données MySQL   * des dumps des bases de données MySQL
 +Backupninja est installé et configuré manuellement là où il est utilisé.
 +
 +===== Serveurs de sauvegarde =====
  
-**BorgBackup** (ou Borg) sert à effectuer la sauvegarde proprement dite vers les serveurs de destination. Il gère un historique des versions des sauvegardes ainsi que la déduplication et la compression des données.+Actuellement,serveurs sont destination des sauvegardes réalisées par Borg : 
 +  * [[admin:serveurs:memoragon|memoragon]] (LXC non privilégié sur [[admin:serveurs:ronderu|ronderu]]) 
 +  * [[admin:serveurs:coronagon|coronagon]] (KVM hébergé au Résel)
  
 ---- ----
Ligne 38: Ligne 65:
 ==== Faire une sauvegarde ==== ==== Faire une sauvegarde ====
  
-TODO+Cette opération n'est normalement pas requise, un cron s'en charge. 
 +On peut néanmoins lancer manuellement un backup en exécutant le script `/etc/borg/system.sh` sur le système que l'on veut sauvegarder.
  
 ==== Mettre à jour la liste des chemins à sauvegarder ==== ==== Mettre à jour la liste des chemins à sauvegarder ====
  
-TODO+La configuration a lieu dans [[https://gitlab.federez.net/federez/ansible|le repo ansible]].
  
-==== Voir les générations (versions) ====+La plupart des hôtes utilisent la configuration commune, définie dans [[https://gitlab.federez.net/federez/ansible/-/blob/master/inventory/group_vars/all/vars.yml|inventory/group_vars/all/vars.yml]], mais il est possible de surcharger cette configuration par hôte ou par machine dans ''inventory/group_vars'' ou dans ''inventory/host_vars''.
  
-TODO+Redéployer le playbook après changement.
  
-==== Restaurer des données ====+==== Manipuler les backups (listing, restauration, etc) ====
  
 TODO TODO
  
-=== Restauration depuis le serveur original ===+Les commandes suivantes peuvent indifféremment être effectuées sur :
  
-TODO+* La machine dont on cherche à manipuler les backups 
 +* Un des serveurs de backup
  
-=== Restauration depuis une machine tierce ===+Commencer par configurer les variables d'environnement suivantes :
  
-TODO+<code> 
 +export BORG_RSH="ssh -i /root/.ssh/id_ed25519-backup" 
 +export BORG_PASSPHRASE="COMMON_SECRET_TO_REPLACE" # Présent dans le repo ansible ou dans /etc/borg/system.sh sur les systèmes backupés 
 +export REPOSITORY="borgbackup@memoragon.federez.net:system" # Remplacer memoragon si vous voulez accéder aux backups stockés sur coronagon 
 +</code>
  
-----+Il est notamment possible de : 
 + 
 +* lister les backups 
 +* Faire une archive tar à partir d'un backup 
 +* Monter l'archive localement via fuse et lire son contenu avec n'importe quel outil 
 + 
 +Se référer à la documentation de borg pour les syntaxes exactes.
  
----- 
  
 ===== Installation initiale de backupninja ===== ===== Installation initiale de backupninja =====
Ligne 149: Ligne 187:
 ===== Mise en place initiale de BorgBackup (ou Borg) ===== ===== Mise en place initiale de BorgBackup (ou Borg) =====
  
-==== Prérequis ==== +Aucune mise en place initiale n'est requise.
-  * Serveur de départ : ''borg'' +
-  * Serveur d'arrivée : accessible en SSH. Un utilisateur dédié ''borg'' et son home accessible en SSH par l'utilisateur qui exécute borg sur le serveur de départ (typiquement ''root'') devra être créé (cfci-dessous)+
  
 +Le rôle ansible déployant la configuration est capable d'installer intégralement un serveur de backup, seul un accès ssh est requis.
  
-==== Installation de Borg ==== 
- 
-TODO 
- 
-==== Configuration de borg ==== 
- 
-TODO 
  
admin/services/backup.1566560863.txt.gz · Dernière modification : 2019/08/23 13:47 de herve

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki