Retour : Page Principale > Politique de sécurité

Vue d'ensemble des sauvegardes de Tela Botanica


Principe de la sauvegarde sur le serveur de sauvegarde

Important : penser à mettre à jour la configuration de la sauvegarde lors des opérations suivantes :
  • arrivée/départ d'une nouvelle personne dans l'équipe
  • ajout/suppression d'un compte utilisateur sur un serveur
  • ajout/suppression d'une base de données sur un serveur

Scripts de sauvegarde

Une collection de scripts maison assurent les sauvegardes. Voici ceux qui doivent être présents sur Adansonia dans /usr/local/sbin.
scripts_backup_adansoniatar.gz (3.3kB)

Postes individuels

Des sauvegardes quotidiennes se font durant la journée, toutes les 30mn environ.
Elles sont déclenchées par le serveur de sauvegarde qui tente de réaliser la sauvegarde à l'aide de rsync.
La synchronisation se fait entre le dossier /home/ du poste de la personne et le dossier /home/ de cette même personne sur le serveur de sauvegarde.

Voir la méthode de sauvegarde des postes individuels
Voir la méthode de sauvegarde des ordinateurs portables

Containers Proxmox

Y'a un backup régulier (mensuel) au niveau des conteneurs Proxmox, voir "vzdump" dans ServeurOsyrisProcedureConfiguration et ServeurFestucaProcedureConfiguration

Serveurs

Ils envoient durant la nuit l'ensemble de leurs fichiers à sauvegarder dans un dossier de /home du serveur de sauvegarde, portant le nom du serveur à sauvegarder.
Par exemple /home/sequoia pour le serveur Sequoia.

Note : pour une raison obscure, les données volumineuses de Grosdur (RAID 5 d'Agathis) sont sauvegardées par Sequoia et non Agathis.

Voir la méthode de sauvegarde des serveurs

Sauvegardes sur plusieurs jours

Elles sont assurées par l'outil snapshot présent sur le serveur de sauvegarde.
Il se charge de copier les dossiers /home/ de chacun des postes individuels et les dossiers de sauvegarde des serveurs sur :
  • 5 jours glissants
  • 2 semaines glissantes
  • 2 mois glissants

Ces sauvegardes sont accessibles par SFTP sur le serveur de sauvegarde sous le nom :
  • /sauvegarde/daily.1 : jour - 1
  • /sauvegarde/daily.2 : jour - 2
  • ...

snapshot utilise des liens en dur pour consommer le moins d'espace disque possible : un fichier présent dans les 9 snapshots n'occupe qu'une fois l'espace disque. Par contre, c'est seulement lorsque tous les liens en dur pointant sur un fichier sont supprimés que l'espace disque est libéré.

Organisation du stockage

Les sauvegardes du jour sont stockées sur /home (1 disque de 2Tio).
Les snapshots sont stockés sur /sauvegarde (1 disque de 4Tio).
Les données des ancien⋅ne⋅s collègues sont déplacées dès que possible sur l'ordinateur dédié aux archives pour ne pas saturer /home.

Configuration de la crontab du serveur de sauvegarde

C'est le serveur de sauvegarde qui va chercher le contenu des postes individuels.
Au contraire, les serveurs appellent le serveur de sauvegarde; la crontab ne les mentionne donc pas.
La sauvegarde du code source des applications est également déclenchée ici.

Le cron définit l'horaire de la sauvegarde. Pour éditer la crontab :
crontab -e

Important : laisser le maximum de temps entre deux sauvegardes, car un cumul dégrade les performances.
Exemple de crontab de root (2017-08-07) :
# m     h       dom     mon     dow     command
# Snapshots
30      23      *       *       1-5     /usr/local/bin/snapshot.sh daily 1>/dev/null 2>/dev/null
01      02      *       *       0       /usr/local/bin/snapshot.sh weekly 1>/dev/null 2>/dev/null
01      04      1       *       *       /usr/local/bin/snapshot.sh monthly 1>/dev/null 2>/dev/null
# Sauvegarde des dépôts Git depuis GitHub
01      03      *       *       2-6     su github -c /usr/local/sbin/backup-github.sh
# Sauvegardes des postes
00      10      *       *       1-5     /usr/local/sbin/backup_adansonia.sh             mathias                 192.168.0.33
45      10      *       *       1-5     /usr/local/sbin/backup_adansonia.sh             delphine                192.168.0.31
30      11      *       *       1-5     /usr/local/sbin/backup_adansonia.sh             elodie                  192.168.0.34
15      12      *       *       1-5     /usr/local/sbin/backup_adansonia.sh             emilie                  192.168.0.32
00      13      *       *       1-5     /usr/local/sbin/backup_adansonia.sh             killian                 192.168.0.35
45      13      *       *       1-5     /usr/local/sbin/backup_adansonia.sh             arthur                  192.168.0.36
30      14      *       *       1-5     /usr/local/sbin/backup_adansonia.sh             eric                    192.168.0.30
15      15      *       *       1-5     /usr/local/sbin/backup_adansonia.sh             vero                    192.168.0.37
00      16      *       *       1-5     /usr/local/sbin/backup_adansonia_macosx.sh      christine               192.168.0.44
45      16      *       *       1-5     /usr/local/sbin/backup_adansonia_macosx.sh      shanna                  192.168.0.41
30      17      *       *       1-5     /usr/local/sbin/backup_adansonia.sh             alexandre               192.168.0.51
# Rapports des sauvegardes
15      18      *       *       1-5     /usr/local/sbin/backup_rapport.sh               dev-log@tela-botanica.org
20      18      *       *       1-5     /usr/local/sbin/backup_rapport_nettoyage.sh
00      01      *       *       1-5     /usr/local/sbin/backup_place_disque.sh


Configuration de snapshot sur le serveur de sauvegarde

Programme : /usr/local/bin/snapshot.sh
Service : /etc/snapshot
Pour mieux contrôler l'heure de déclenchement utiliser : crontab -e

Pour un exemple des commandes de snapshot dans la crontab de root, voir le paragraphe ci-dessus.

Les fichiers de configuration du programme sont :
  • /etc/snapshot/exclude.text : extensions ou répertoires a exclure
  • /etc/snapshot/include.text : répertoires à snapshotter
  • /etc/snapshot/settings.text : paramètres

Contenu de ces fichiers

exclude.text :
vide

include.text (2017-07-08) :
/etc
/home/agathis
/home/sequoia
/home/grosdur
/home/osyris
/home/sycomore
/home/aphyllanthe
/home/orobanche
/home/cuscuta
/home/amandine/portable
/home/audrey
/home/christel/cygdrive
/home/christel/portable
/home/christine/sauvegardes
/home/delphine/sauvegardes
/home/elodie/sauvegardes
/home/jennifer/sauvegardes
/home/killian/sauvegardes
/home/laura/sauvegardes
/home/mathias/sauvegardes
/home/shanna/sauvegardes
/home/vero/sauvegardes
/home/emilie/sauvegardes
/home/arthur/sauvegardes
/home/alexandre/sauvegardes
/home/ordi_pierre
/home/Taiga
/home/e-veg
/home/github
/home/ovh-moodle

settings.text (2017-07-08) :
# The "daily" snapshot is the only really time-consuming one; the weekly etc snapshots
# just pop theirs off the stack.
dailymax=4
weeklymax=2
monthlymax=2

# log file gets overwritten on every snapshot.
logfile=/var/log/snapshot.log

# Backup root.  All snapshots will be stored here:
# monthly.1 is taken from the top daily snapshot.
# must exist
backuproot=/sauvegarde

# Files used to store settings.
backup=`cat /etc/snapshot/include.text`
excludefile=/etc/snapshot/exclude.text


Résumé des méthodes de configuration des sauvegardes

Voir la méthode de sauvegarde des serveurs
Voir la méthode de sauvegarde des postes individuels
Voir la méthode de sauvegarde des ordinateurs portables
Voir la méthode de sauvegarde du code source des applications

Pour les sauvegardes "hors site" (en cas de vol, incendie ...)

Actuellement, le serveur de sauvegarde est dans les locaux de Tela Botanica. Les serveurs sont situés sur un autre site, mais pas les ordinateurs de bureau, pour lesquels il n'y a donc aucune sauvegarde hors site.
Lors du remplacement du serveur de sauvegarde, il peut être envisagé de mettre en place une solution de sauvegarde sur disque externe.
Le disque serait branché sur une machine de travail, le serveur de sauvegarde détecterait ce branchement et déclencherait la sauvegarde. Un mail préviendrait l'administrateur lorsque la sauvegarde serait terminée. Quelque chose dans ce goût-là.

Idées Killian juin 2017

Mon plan de sauvegarde des sauvegardes consisterait à sauvegarder les sauvegardes sur un site différent de Tela ou d'Agropolis (architecture en triangle)​.​ Et le troisième sommet de ce triangle pourrait se situer par exemple :
  • Chez OVH (ou un de ses concurrents) au niveau d'un service de serveur de sauvegarde. (Simple à administrer, donnant de larges possibilités en terme de système, un large espace de stockage, mais coutant un large prix annuel​​, genre 500€ pour 4To chez OVH)
  • Chez Amazon Glacier ​​ou autre service de stockage à froid. (Stockage type bande magnétiques, y'aurait juste à bricoler le script d'archivage et d'upload chez Amazon, rien de plus sinon payer un tarif annuel de 55€ par To. Et quelques dizaines d'euros pour récupérer le tout en cas de sinistre)
​ - Chez un quelconque partenaire ayant du To en trop sur ses serveurs de backup.​

De mon coté je préconiserais la solution de type stockage à froid​. Même si il faudrait alors trouver/bricoler un système permettant d'envoyer des archives contenant des sauvegardes incrémentielles​​ à intervalles réguliers.