TKLBAM est un logiciel gratuit sous licence GPL3 construit sur Duplicity1) qui fournit une sauvegarde efficace au niveau du système des fichiers modifiés, des utilisateurs, des bases de données et de l'état de gestion des paquets. Cette sauvegarde au niveau du système peut être restaurée automatiquement sur toute installation du même type d'appliance virtuelle, quel que soit le matériel ou l'emplacement sous-jacent. Le résultat attendu est une copie fonctionnellement équivalente du système d'origine.
Il est également conçu pour aider à la migration des données et des configurations système entre différentes versions du même type d'appliance virtuelle, mais pour certaines applications, des étapes manuelles supplémentaires, telles qu'une mise à jour du schéma de base de données, peuvent être nécessaires pour terminer la migration entre les versions.
On peut sauvegarder à peu près tout, bien que le stockage des sauvegardes sur Amazon S3 soit plus simple car l'authentification et la gestion des clés sont automatiques. Il suffit d'exécuter:
tklbam-backup
On peut également sauvegarder sur n'importe quelle cible de stockage prise en charge par le back-end de TKLBAM, y compris le système de fichiers local, NFS, Rsync, SSH, FTP, WebDAV, Rackspace CloudFiles et même IMAP.
Le système de fichiers local est l'une des cibles de stockage les plus faciles à utiliser car on n'a pas besoin de se soucier des informations d'authentification.
Par exemple pour sauvegarder dans /mnt/otherdisk
:
tklbam-backup --address file:///mnt/otherdisk/tklbam/backup tklbam-escrow /mnt/otherdisk/tklbam/key
Et pour restaurer:
tklbam-restore --address file:///mnt/otherdisk/tklbam/backup \ --keyfile=/mnt/otherdisk/tklbam/key
L'inconvénient est qu'on ne peut pas restaurer/tester la sauvegarde dans le cloud ou à partir d'une VM exécutée dans une autre succursale de bureau (par exemple).
wget -O - -q \ https://raw.github.com/turnkeylinux/tklbam/master/contrib/ez-apt-install.sh \ | PACKAGE=tklbam /bin/bash
Cela ajoute le référentiel de packages TurnKey à la sources APT et utilise APT pour installer le package tklbam et ses dépendances.
L'utilisation de TKLBAM sur TurnKey Linux offre la meilleure expérience, mais cela fonctionnera également bien avec n'importe quel système dérivé de Debian ou Ubuntu et même avec d'autres Linux si on installe à partir des sources en utilisant l'option –skip-packages pour désactiver l'intégration avec APT, le gestionnaire de paquets Debian.
Lorsqu'on utilise TKLBAM avec TurnKey Linux, il tire parti de l'état d'installation fixe connu pour effectuer la plus petite sauvegarde possible. Par exemple, il ne sauvegardera que les fichiers de configuration /etc que ont été modifiés. Cela facilite la migration en augmentant la visibilité de ce qui a réellement changé. Par comparaison sur un système Debian ou Ubuntu générique, il sauvegardera tous les fichiers de configuration /etc.
Actuellement, seuls MySQL et PostgreSQL ont un support intégré mais TKLBAM peut fonctionner avec d'autres bases de données si on configure des procédures de sérialisation/désérialisation personnalisées dans un script hook.
Si on veut sauvegarder plus fréquemment (par exemple, toutes les heures au lieu de tous les jours), il est fortement recommandé de créer des sauvegardes complètes plus fréquemment - quotidiennes ou hebdomadaires au lieu de mensuelles (par exemple, la valeur par défaut).
La raison en est que les longues chaînes de sauvegarde sont inefficaces et plus vulnérables en cas de problème, car les maillons de la chaîne dépendent les uns des autres.
Si on effectue une sauvegarde quotidienne et une sauvegarde complète tous les mois, les chaînes de sauvegarde se composeront d'une sauvegarde complète avec au plus 31 sauvegardes incrémentielles liées. Mais si on effectue une sauvegarde toutes les heures, à la fin du mois, la chaîne de sauvegarde peut comprendre jusqu'à 744 sauvegardes incrémentielles, qui doivent toutes être téléchargées et extraites lors de la restauration.
Pour configurer des sauvegardes automatiques toutes les heures avec une sauvegarde complète tous les 7 jours:
mv /etc/cron.daily/tklbam-backup /etc/cron.hourly chmod +x /etc/cron.hourly/tklbam-backup echo full-backup 7D >> /etc/tklbam/conf
Par défaut, une sauvegarde complète aura lieu si la dernière sauvegarde complète date de plus de 30 jours. Entre les sauvegardes complètes, toutes les sessions de sauvegarde sont incrémentielles.
On recommande d'activer la tâche cron de sauvegarde quotidienne afin que les sauvegardes incrémentielles quotidiennes se produisent automatiquement:
chmod + x /etc/cron.daily/tklbam-backup
On peut remplacer la valeur par défaut en définissant le paramètre de sauvegarde complète dans la configuration tklbam.
Par exemple pour créer une sauvegarde complète tous les 14 jours:
echo full-backup 14D >> /etc/tklbam/conf
Une sauvegarde complète est une sauvegarde qui peut être restaurée indépendamment de toute autre sauvegarde. Une sauvegarde incrémentielle est liée à la dernière sauvegarde précédente et ne comprend que les modifications apportées depuis.
Les chaînes de sauvegarde sont des liens de sessions de sauvegarde qui commencent par une sauvegarde complète, puis une série de sauvegardes incrémentielles enregistrant chacune uniquement les modifications apportées depuis la sauvegarde précédente. Les sauvegardes incrémentielles sont utiles car elles sont rapides et efficaces.
La restauration d'une sauvegarde incrémentielle nécessite de récupérer les volumes de toutes les sessions de sauvegarde effectuées avant elle, jusqu'à et y compris la sauvegarde complète qui a démarré la chaîne. Plus la chaîne de sauvegarde est longue, plus la restauration prendra de temps.
En ajoutant un remplacement de base de données négatif à /etc/tklbam/overrides
:
# exclure la base de données drupal7 echo -mysql:drupal7 >> /etc/tklbam/override # table d'exclusion de sessions dans la base de données drupal8 echo -mysql:drupal8/sessions >> /etc/tklbam/overrides
Ou en ligne de commande:
echo -mysql:drupal7 >> /etc/tklbam/override
Par défaut, TOUTES les bases de données sont sauvegardées, donc l'ajout d'un remplacement de base de données négatif exclut uniquement cette base de données ou cette table de la sauvegarde.
L'exclusion d'une table exclut uniquement ses données. Le schéma est toujours sauvegardé tant que la base de données est incluse.
La spécification d'un remplacement de base de données positif modifie le comportement par défaut de sorte que seule la base de données ou la table spécifiée dans le remplacement soit incluse dans la sauvegarde.
En ajoutant un remplacement négatif à /etc/tklbam/overrides
:
echo -/var/www/*/logs >> /etc/tklbam/overrides
Chaque appliance TurnKey prise en charge par TKLBAM possède un profil de sauvegarde correspondant, qui est téléchargé à partir du concentrateur lorsqu'on initialise TKLBAM. Le profil est utilisé pour calculer la liste des modifications du système que l'on doit sauvegarder. Il décrit généralement l'état d'installation d'une appliance TurnKey et contient une liste de packages, des chemins de système de fichiers pour rechercher les modifications et un index du contenu de ces chemins qui enregistre les horodatages, la propriété et les autorisations.
On peut également générer des propres profils personnalisés avec la commande suivante:
tklbam-internal create-profile
Le profil de sauvegarde est stocké dans /var/lib/tklbam/profile
et contient les fichiers texte suivants:
Les utilisateurs peuvent remplacer les fichiers et répertoires dont les modifications sont vérifiées en configurant des remplacements (voir ci-dessous).
Par défaut, TKLBAM est conçu pour fonctionner automatiquement avec S3. En mode manuel, TKLBAM peut également fonctionner avec des adresses de stockage non S3. De toutes les cibles de stockage manuel non S3, le système de fichiers local est l'option la plus simple car il n'est pas besoin de s'occuper des informations d'authentification.
Par exemple, pour sauvegarde dans /mnt/otherdisk
:
tklbam-backup --address file:///mnt/otherdisk/tklbam/backup tklbam-escrow /mnt/otherdisk/tklbam/key
Pour restaurer la sauvegarde:
tklbam-restore --address file:///mnt/otherdisk/tklbam/backup --keyfile=/mnt/otherdisk/tklbam/key
Linux prend en charge le montage de la plupart des types de périphériques de stockage (par exemple, disque dur externe, partage de fichiers réseau local) sur le système de fichiers, bien que cela puisse nécessiter une configuration supplémentaire au niveau du système d'exploitation.
L'un des principaux inconvénients de l'utilisation d'une cible de stockage local, en plus du processus de configuration et de maintenance plus compliqué, est que vous ne pourrez pas
En ajoutant un emplacement à /etc/tklbam/overrides
:
echo /mnt/images >> /etc/tklbam/overrides
Ou sur la ligne de commande:
tklbam-backup /var/www/*/logs
Il faut avoir connaissance des implications de cette opération. Par exemple, si on ajoute un répertoire géré par la gestion des packages, cela peut interrompre la gestion des packages sur le syteme que restauré.
Une des façons préférées de faire cela:
tklbam-backup --dump=/tmp/mybackup
NCDU (NCurses Disk Usage) permet d’analyser un système de fichier et de naviguer à l’intérieur. L’analyse ce fait dans l’arborescence ou on se trouve ou celle indiquée, très pratique pour un serveur samba.
cd /tmp/mybackup apt-get install ncdu ncdu
Ajouter des includes ou des excludes, puis revenir à l'étape 1, nettoyer, répéter
vim /etc/tklbam/overrides
Quand tout est parfait
tklbam-backup --upload-raw=/tmp/mybackup
Par défaut, TKLBAM déterminera automatiquement les chemins et les bases de données à sauvegarder sur un système TurnKey donné en fonction du profil de sauvegarde qu'il obtient du Hub. Le profil par défaut suit les modifications apportées aux parties personnalisables et réparables par l'utilisateur du système de fichiers (par exemple, /etc
/root
/home
/var
/usr/local
/opt
/srv
) tout en ignorant les modifications dans les zones gérées par le système de gestion de paquets.
On peut «remplacer» la configuration du profil de sauvegarde par défaut en spécifiant des remplacements, soit sur la ligne de commande, soit de préférence en éditant le fichier de configuration /etc/tklbam/overrides
.
Par exemple, lorsque la sauvegarde TKLBAM par défaut a une taille de plusieurs gigaoctets et que l'on souhaite créer une sauvegarde plus légère de 100 Mo qui sera mise à jour plus fréquemment et prendra moins de temps à mettre à jour/restaurer:
cp -a /etc/tklbam /etc/tklbam.light echo -/var/www/\*/logs >> /etc/tklbam.light/overrides echo -/home/liraz/bigfiles >> /etc/tklbam.light/overrides echo -mysql:mydatabase/bigtable >> /etc/tklbam.light/overrides export TKLBAM_CONF=/etc/tklbam.light mkdir /var/lib/tklbam.light export TKLBAM_REGISTRY=/var/lib/tklbam.light tklbam-init tklbam-backup
Pour plus de commodité, on peut créer un script qui définit les variables d'environnement TKLBAM_REGISTRY et TKLBAM_CONF:
cat > /usr/local/bin/tklbam-backup-light << EOF #!/bin/bash export TKLBAM_CONF=/etc/tklbam.light export TKLBAM_REGISTRY=/var/lib/tklbam.light tklbam-backup EOF chmod +x /usr/local/bin/tklbam-backup-light
export TKLBAM_REGISTRY=/var/lib/tklbam.srv export TKLBAM_CONF=/etc/tklbam.srv tklbam-init --force-profile=empty tklbam-backup --skip-packages --skip-database -- /srv
L'option –raw-upload force TKLBAM à sauvegarder simplement le répertoire spécifié au lieu de créer une sauvegarde de niveau système. En d'autres termes, –raw-upload transforme TKLBAM en un outil de sauvegarde au niveau du répertoire plutôt qu'en un outil de sauvegarde au niveau du système.
Par exemple, on ne veut pas inclure dans votre sauvegarde système les gros fichiers dans /srv
(par exemple, parce qu'on ne veut pas gonfler votre sauvegarde).
Configurer un override pour exclure le répertoire /srv
de la sauvegarde par défaut et créer une autre sauvegarde TKLBAM uniquement pour les gros fichiers:
echo -/srv >> /etc/tklbam/overrides export TKLBAM_REGISTRY=/var/lib/tklbam.srv-raw tklbam-backup --raw-upload=/srv
Pour restaurer, il faudra utiliser l'option –raw-download:
tklbam-restore --raw-download=/srv <your-backup-id>
Sans cette option, TKLBAM supposera qu'on essaye de restaurer une sauvegarde au niveau du système et retournera une erreur.
Par défaut, TKLBAM est conçu pour fonctionner automatiquement avec S3, et c'est l'option la plus simple et la plus sûre. En mode manuel, TKLBAM peut également fonctionner avec des adresses de stockage non S3,
De toutes les cibles de stockage manuel non S3, le système de fichiers local est l'option la plus simple car on n'a pas à se soucier des informations d'authentification.
Pour sauvegarder, en supposant que l'on souhaite stocker les sauvegardes dans /mnt/otherdisk
:
tklbam-backup --address file:///mnt/otherdisk/tklbam/backup tklbam-escrow /mnt/otherdisk/tklbam/key
Pour restaurer :
tklbam-restore --address file:///mnt/otherdisk/tklbam/backup --keyfile=/mnt/otherdisk/tklbam/key
Linux prend en charge le montage de la plupart des types de périphériques de stockage (par exemple, disque dur externe, partage de fichiers réseau local) sur le système de fichiers, bien que cela puisse nécessiter une configuration supplémentaire au niveau du système d'exploitation.
L'un des principaux inconvénients de l'utilisation d'une cible de stockage local, en plus du processus de configuration et de maintenance plus compliqué, est que l'on ne peut pas restaurer/tester la sauvegarde dans le cloud ou à partir d'une VM exécutée dans une autre succursale de bureau (par exemple ).