Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/08/2012, à 12:29

toulipe

[Astuce] A savoir si vous entreprenez de faire vos backups avec tar

Ce qui suit est issu de ma propre expérience, et n'est pas destiné à avoir valeur universelle. Il s'agit seulement de conseils de bon sens, qui à mon avis doivent être pris en compte si l'on souhaite vivre l'esprit tranquille quand on fait ses sauvegardes avec tar.

I) Nommer correctement les archives.

Une bonne archive doit, bien entendu, comprendre dans son nom la date à laquelle a été effectuée la sauvegarde. Il est utile, à ce niveau, de mettre le maximum d'informations, cela pour vous permettre :
1°) d'identifier immédiatement le moment auquel a été faite la sauvegarde
2°) de gérer facilement, à l'intérieur même du script qui fait la sauvegarde, les versions et les fréquences de sauvegarde, sans avoir besoin de l'appui d'un logiciel extérieur.

En pratique, les informations temporelles qu'il est utile de noter pour la gestion des versions sont :
- l'année (12, 13, etc.)
- le mois (01 à 12)
- la semaine (01 à 52)
- le jour (001 à 366)
- et, si vous faites plus d'une sauvegarde par jour, l'heure, voir les minutes.

L'intérêt d'établir un système fixe de notation de la temporalité se ressent surtout au niveau du script de sauvegarde, qui pourra facilement décider s'il est nécessaire, par exemple, de faire une sauvegarde "type mois" ou "type semaine" (avec, mettons, une liste de fichiers à sauvegarder différente), selon les informations de temps qu'il recueille en lisant le nom des logs de sauvegarde, qu'on aura pris soin d'aligner sur ceux des archives.


II) Gérer ses sauvegardes incrémentielles :

Il n'est pas question de revenir sur le principe, étant donné qu'il est déjà expliqué dans la documentation du site. Le seul point que je trouve discutable, sur ce sujet, c'est l'idée qu'il suffit d'utiliser un seul fichier de snapshot, que l'on devrait systématiquement envoyer en paramètre à tar (avec l'option -g). Des sauvegardes faites sur ce modèle se trouvent, par la force des choses, être toutes plus ou moins dépendantes les unes des autres, selon le schéma suivant :

(A) Sauvegarde complète --> (A1) Sauvegarde fille de la sauvegarde complète --> (A11) Sauvegarde fille de la sauvegarde fille de la sauvegarde complète --> (A111) Sauvegarde fille de la sauvegarde fille de la sauvegarde fille de la sauvegarde complète, etc.

Un tel système force nécessairement à décompresser toutes les archives qui ont été créées si l'on souhaite récupérer, après un crash de l'ordinateur, tous ses fichiers tels qu'ils étaient juste avant le crash. Il est, par ailleurs, très peu lisible. Plutôt que de procéder de cette manière, je propose de définir des niveaux de sauvegardes. Si, par exemple, je veux faire une sauvegarde complète tous les mois, avec des sauvegardes partielles tous les jours, je peux procéder comme suit :

- Le premier jour de la première semaine du mois, je fais une sauvegarde complète (A), en indiquant à tar d'utiliser un fichier de snapshot qui n'existe pas encore, et auquel on attribuera le numéro du mois + le numéro de la semaine ; si la sauvegarde foire pour une raison ou pour une autre, j'efface le fichier de snapshot qu'a créé tar ainsi que les archives, et je recommence.
- Le deuxième jour de la première semaine du mois, avant de faire la sauvegarde quotidienne, je fais une copie du fichier de snapshot, que j'envoie en paramètre à tar ; si l'archivage plante, j'efface ce fichier et les archives, et je recommence ; si tout se déroule bien, j'efface le fichier de snapshot.
[...]
- Le premier jour de la deuxième semaine du mois, je fais une copie du fichier de snapshot qui est resté identique depuis la première semaine, en le renommant au passage en "mois + semaine actuelle", et j'indique à tar de l'utiliser.
- Le deuxième jour de la deuxième semaine du mois, je fais une copie du fichier de snapshot que j'ai copié la veille, et j'indique à tar de l'utiliser
etc.

A la fin du mois, je me retrouve donc avec :

- Une sauvegarde complète pour le mois
- 3 ou 4 sauvegardes partielles de niveau "semaine"
- Et des sauvegardes partielles de niveau "jour"
Il suffit alors de décompresser 3 archives au maximum pour récupérer l'ensemble de ses fichiers tels qu'ils étaient à un instant donné.

L'inconvénient d'un tel système, c'est qu'il force à archiver plusieurs fois des fichiers identiques. Mais, par contre, il permet une gestion plus souple des erreurs, et facilite considérablement le déboggage. Par ailleurs, il facilite la mise en place de "sauvegardes forcées" - je veux dire par là, de sauvegardes qui ne suivent pas le schéma traditionnel de sauvegarde qui est défini dans le script -. Si par exemple, pour une raison ou pour une autre, je décide d'avancer la date de la sauvegarde de niveau "semaine", je peux le faire sans problèmes puisque j'ai gardé de côté les snapshots faits par tar ; autrement, si je n'utilisais qu'un seul fichier de snapshot, je serais obligé de tout reprendre systématiquement à zéro.

Ce système est, en fait, une solution intermédiaire entre l'archivage complet et systématique, et l'archivage "économe", qui ne sauvegarde que le strict essentiel.


III) Faire un vrai multi-volume :

Certains systèmes de fichiers n'autorisant pas le stockage de fichiers d'une taille trop importante, et l'archivage étant beaucoup plus risqué lorsque vous créez de gros fichiers, il est parfois utile de faire du multi-volume. La solution que l'on rencontre régulièrement sur internet conseille d'utiliser split conjointement à tar. C'est, à mon avis, une très mauvaise idée, parce qu'en procédant ainsi, vous vous condamnez à ne pas pouvoir extraire, mettons, un fichier particulier de l'archive, ou encore l'archive toute entière, sans avoir à la recoller d'abord, en doublant au passage l'espace disque occupé. Tar gérant nativement le multi-volume, autant ne pas recourir à un programme externe. Notez cependant que, l'option multi-volume de tar ayant été conçue d'abord pour archiver un système de fichiers sur plusieurs supports externes, il vous sera demandé, à chaque fois qu'un nouveau volume est préparé, d'indiquer son nom ou d'insérer un nouveau support de stockage. Pour pallier à cet inconvénient, et si vous utilisez un seul support de stockage, vous pouvez utiliser le script indiqué dans la page de manuel de tar, qui se chargera pour vous de changer les noms de volumes. Chaque archive étant traitée indépendamment par tar, vous pouvez tout de même récupérer la plupart de vos fichiers si l'une d'entre elles est défectueuse.

Hors ligne

#2 Le 03/08/2012, à 23:59

Maisondouf

Re : [Astuce] A savoir si vous entreprenez de faire vos backups avec tar

Ca à l'air de tenir la route, mais honnêtement à cette heure là, je n'ai plus assez de neurones disponibles pour analyser l'imbrication de ces sauvegardes. roll
En fait je poste, pour retrouver facilement ton tuto big_smile


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne