Aller à : navigation, rechercher

TISbackup - Concept

TISbackup est une solution centralisée de sauvegarde basée sur les deux classiques libres que sont rsync, le logiciel de synchronisation de fichiers et ssh le protocole de transfert sécurisé (optionnel suivant les types de sauvegarde). TISbackup fait appel aux éléments suivants :

  • tisbackup : un script exécuté sur le serveur de sauvegarde ;
  • tisbackup.ini : le fichier de configuration définissant les différentes sauvegardes à réaliser. Il a été conçu pour qu'il soit simple à configurer par tout administrateur système ;
  • tisbackup.sql : une base de donnée sqlite dans laquelle sont stockées les rapports de sauvegardes ;
  • TISbackup GUI : une interface graphique pour visualiser les sauvegardes définies, les dernières sauvegardes réalisées, et pour exporter une sauvegarde sur un média USB.

TISbackup permet de sauvegarder des répertoires, des bases de données, des machines virtuelles XCP, des méta-données de serveur de virtualisation XCP, des switchs, etc.


Un peu de technique

La déduplication de cette solution est basée sur les hardlink des systèmes de fichier ext3/4 utilisé pour le stockage des fichiers de sauvegarde.

Le serveur de sauvegarde devra exécuter rsync en mode serveur, et les postes à sauvegarder devront être équipés de rsync et ssh (de base usuellement sur les machines sous GNU/Linux, avec cygwin (ou un autre outil comme cwrsync) pour les machines sous MS Windows).

tisbackup

tisbackup est un script python que le serveur de sauvegarde exécute à intervalle régulier. Le fichier de configuration tisbackup.ini contient le détail des tâches à exécuter.

tisbackup possède différentes options pour son exécution, disponibles dans la commande tisbackup --help, dont voici les principales :

  • backup : exécute toutes les sauvegardes prévues ;
  • cleanup : examine les sauvegardes et supprimes celles qui sont plus vieilles que la durée maximum de rétention définie ;
  • checknagios : renvoi le contenu consultable par nagios ;
  • retryfailed : refait les sauvegardes qui ont précédemment échoué ;
  • exportbackup : exporte les dernières sauvegardes valide sur l'emplacement spécifié (distant, média externe, ...).
  • register_existing : scanne les sauvegardes effectuées et ajoute dans la base de données celles qui manquent

tisbackup.ini

tisbackup.ini définit les sauvegardes à exécuter et superviser. Il est écrit avec un formalisme simple.

Les différents type de sauvegarde sont :

  • rsync : la sauvegarde d'un répertoire par rsync en utilisant le protocole rsync,
  • rsync+ssh : la sauvegarde d'un répertoire par rsync avec le protocole ssh,
  • mysql+ssh : la sauvegarde d'une base de données mysql dans un fichier sql gzippé, avec le protocole ssh,
  • pgsql+ssh : la sauvegarde d'une base de données postgresql dans un fichier sql gzippé, avec le protocole ssh,
  • xen-xva : la sauvegarde d'une machine virtuelle tournant sur un serveur XCP comme un fichier XVA,
  • xen-meta-data  : la sauvegarde des méta-données XCP d'un serveur de virtualisation,
  • switch : la sauvegarde de switchs,
  • null : sauvegarde nulle d'un serveur ne nécessitant pas de sauvegarde mais pour lequel on doit savoir qu'il est pris en compte (supervision Nagios).

La première partie du fichier, commençant par la balise [Global], détermine :

  • le chemin du dossier où les sauvegardes seront stockées
  • la durée maximum de rétention d'une sauvegarde (en jour)
  • le délais maximum avant de déclencher un message critique nagios (en heure)
  • éventuellement la limite de bande passante utilisable

La suite du fichier énumère les différentes sauvegardes à faire, avec des paramètres spécifiques à chaque type de sauvegardes :

  • nom du répertoire dans la sauvegarde
  • type de sauvegarde
  • nom du serveur
  • répertoire (en cas de sauvegarde d'un répertoire)
  • répertoires à exclure (idem)
  • emplacement de la clé ssh à utiliser (clé privée sur le serveur de sauvegarde)
  • nom de la base de données (en cas de sauvegarde de base de données mysql ou postgresql)
  • numéro du port ssh à utiliser
  • utilisateur et mot de passe de la base de données (en cas de sauvegarde de base de données mysql)

tisbackup.sql

tisbackup.sql est la base squilite disponible sur le serveur de sauvegarde, dans laquelle sont stockées les informations de sauvegardes de chacune des zones sauvegardées. Elle sert en particulier à réunir les informations nécessaires à Nagios.

TISbackup GUI

Développé aussi en python,TISbackup GUI est une interface graphique qui permet directement de :

  • visualiser les dernières sauvegardes ;
  • exporter une sauvegarde sur un média USB ;
  • visualiser les sauvegardes à effectuer.