User Tools

Site Tools


virtualisation:lxc-turnkey-tklbam

TURNKEY : Sauvegarde et migration (TKLBAM)

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.

Sauvegardes

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).

Installation de TKLBAM

  • Dans un système dérivé de TurnKey, il n'est pas besoin de l'installer car TKLBAM est fourni avec TurnKey Core.
  • Dans un système générique dérivé de Debian ou d'Ubuntu, on peut l'installer avec la commande shell suivante:
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.

Bases de données prises en charge

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.

Fréquence de sauvegarde

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

Fréquences des sauvegardes complètes

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

Différence entre une sauvegarde complète et une sauvegarde incrémentielle

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.

Exclure une base de données ou une table de la sauvegarde

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.

Supprimer un fichier ou un répertoire de l'inclusion dans ma sauvegarde

En ajoutant un remplacement négatif à /etc/tklbam/overrides:

echo -/var/www/*/logs >> /etc/tklbam/overrides

Comment TKLBAM sait-il quoi sauvegarder

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:

  • dirindex.conf: une liste de répertoires pour vérifier les changements par défaut. Cette liste n'inclut aucun fichier ou répertoire géré par le système de gestion des packages.
  • dirindex: état d'installation de l'appliance - index du système de fichiers
  • packages: état d'installation de l'appliance - liste des packages

Les utilisateurs peuvent remplacer les fichiers et répertoires dont les modifications sont vérifiées en configurant des remplacements (voir ci-dessous).

Sauvegarder sur le stockage local (au lieu de S3)

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

Ajouter un répertoire à une sauvegarde

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é.

Régler et optimiser une sauvegarde TKLBAM

Une des façons préférées de faire cela:

Etape 1: générer un dump de la sauvegarde

tklbam-backup --dump=/tmp/mybackup

Etape 2: examiner le contenu du système de fichier

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

Etape 3: Adapter le fichier /etc/tklbam/overrides

Ajouter des includes ou des excludes, puis revenir à l'étape 1, nettoyer, répéter

vim /etc/tklbam/overrides

Etape 4: Lancer le backup

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.

Faire plusieurs sauvegardes TKLBAM sur un seul système

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

Utiliser TKLBAM pour ne sauvegarder qu'un seul répertoire

Créer une sauvegarde séparée avec un profil de sauvegarde vide:

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

Utiliser l'option --raw-upload

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.

Sauvegarde sur un stockage local

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 ).

1)
L'utilitaire duplicity est un outil en ligne de commande permettant d'effectuer des sauvegardes incrémentielles de fichiers et dossiers.
Il effectue la sauvegarde en créant des archives TAR chiffrées avec GnuPG. Ces archives sont alors envoyées dans un répertoire de sauvegarde local ou distant – les protocoles distants pris en charge sont FTP, SSH/SCP, Rsync, WebDAV/WebDAVs et Amazon S3. Puisque duplicity repose sur librsync, les sauvegardes incrémentielles sont économes en espace de stockage : seules les parties modifiées des fichiers sont prises en considération.
virtualisation/lxc-turnkey-tklbam.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1