New Technologies In Live

Sauvegardes incrémentielles faciles avec tar

Publié par   : Michael Bideau le  : Mardi 8 décembre 2009

Dès lors que vous avez des données importantes, comme par exemple sur un serveur en production ou tout simplement vos fichiers de travail ou vos fichiers privés, vous allez être confronté au problème de leur conservation et donc à gérer le risque de la perte de données. Dans certains cas vous aurez même l’obligation de ne pas perdre (conserver intactes) ces données pendant plusieurs mois. C’est pourquoi vous allez avoir besoin d’une politique de sauvegarde efficace et robuste.

Ainsi je vous présente aujourd’hui une méthode basée sur l’historique programme d’archivage tar. Pourquoi tar me direz-vous ? Et bien car il est présent sur quasiment n’importe quel système Linux/Unix ce qui vous garanti de pouvoir exploiter cette méthode sans installation préalable.

Comme toutes méthodes de sauvegarde celle-ci présente des

Avantages

  • fichiers et répertoires identiques à ceux existant au moment de la sauvegarde
  • utilisation optimale de l’espace disque (car seuls les fichiers différents entre 2 sauvegardes seront sauvegardés)
  • compression (bzip2 ou gzip)

et des

Inconvénients

  • les sauvegardes incrémentielles exigent une référence vers un fichier snapshot commun (pas nécessaire pour la restauration) qui contiendra les informations de la dernière sauvegarde (device, inode, timestamp) et permettra à la prochaine sauvegarde de ne sélectionner que les fichiers différents
  • dépend des timestamps, inodes et du device (possibilité d’ajouter l’option –no-check-device à tester)
  • la restauration à l’identique exige au minimum 2 fichiers
    • le fichier d’archive de la première sauvegarde (full)
    • le fichier d’archive de l’incrément
  • archives illisibles par un tar non-GNU (à confirmer)

En pratique

Pour construire la première archive complète (full) la commande est :

###
tar –verbose –directory “${SOURCE_DIR_PATH}” –create \
–bzip2 –file=”${FULL_ARCHIVE_FILE_PATH}” \
–listed-incremental=”${FULL_SNAPSHOT_PATH}” \
.
###

Ensuite concernant les incréments il y a 2 façons de faire qui vont impliquer des contraintes au niveau de la restauration

  1. soit à chaque fois que vous faites un incrément, vous vous basez sur la première archive (full), ce que je recommande. Vous aurez alors besoin à chaque nouvel incrément de vous référer à une copie du fichier de snapshot créé lors de la première archive (full). Ainsi lors de la restauration vous n’aurez besoin d’extraire que le fichier de la première archive (full) et le fichier d’archive de l’incrément. Les incréments étant indépendants entre eux
  2. soit à chaque fois que vous faites un incrément, vous vous basez sur l’incrément précédent. Cela évite de recopier le fichier de snapshot mais par contre au moment de la restauration vous aurez besoin d’extraire la totalité du fichier de la première archive ainsi que les archives de tous les incréments pour obtenir un filesystem identique à celui existant au moment du dernier incrément. Les incréments étant liés les uns aux autres

Pour construire un incrément avec la stratégie 1 :

###
cp -f “${FULL_SNAPSHOT_PATH}” “${INCR_SNAPSHOT_PATH}” \

&& tar –verbose –directory “${SOURCE_DIR_PATH}” –create \
–bzip2 –file=”${INCR_ARCHIVE_FILE_PATH}” \
–listed-incremental=”${INCR_SNAPSHOT_PATH}” \
. \

&& rm -f “${INCR_SNAPSHOT_PATH}”
###

Pour construire un incrément avec la stratégie 2 :

###
tar –verbose –directory “${SOURCE_DIR_PATH}” –create \
–bzip2 –file=”${INCR_ARCHIVE_FILE_PATH}” \
–listed-incremental=”${FULL_SNAPSHOT_PATH}” \
.
###

Ensuite pour restaurer le filesystem à l’identique au moment du 2 ème incrément avec la stratégie 1 :

###
tar –verbose –directory “${DEST_DIR_PATH}” –extract \
–bzip2 –file=”${FULL_ARCHIVE_FILE_PATH}” \
–listed-incremental=/dev/null \

&& tar –verbose –directory “${DEST_DIR_PATH}” –extract \
–bzip2 –file=”${INCR2_ARCHIVE_FILE_PATH}” \
–listed-incremental=/dev/null
###

Pour restaurer le filesystem à l’identique au moment du 2 ème incrément avec la stratégie 2 :

###
tar –verbose –directory “${DEST_DIR_PATH}” –extract \
–bzip2 –file=”${FULL_ARCHIVE_FILE_PATH}” \
–listed-incremental=/dev/null \

&& tar –verbose –directory “${DEST_DIR_PATH}” –extract \
–bzip2 –file=”${INCR1_ARCHIVE_FILE_PATH}” \
–listed-incremental=/dev/null \

tar –verbose –directory “${DEST_DIR_PATH}” –extract \
–bzip2 –file=”${INCR2_ARCHIVE_FILE_PATH}” \
–listed-incremental=/dev/null
###

Voilà vous pouvez maintenant sauvegarder efficacement vos données sur (à peu près) n’importe quel serveur ou poste de travail sous Linux/Unix.

Pour plus d’informations référez-vous au manuel de tar ou à l’article suivant (en anglais).

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Twitter picture

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Connexion à %s

Translate this blog English Français Español

Bienvenue

Blog ouvert sur les nouvelles technologies. Il sera souvent technique lorsque j'aborderai mon travail et ma passion: le développement web et système. Cependant j'essaierai de prendre du recul et d'évoquer d'autres thèmes plus généralistes tels que le matériel numérique, la gestion de projets, l'entreprenariat, l'informatique verte et les nouvelles sciences telles que les nanotechnologies et la robotique (qui m'intéressent particulièrement). Je vous souhaite une agréable lecture et espère pouvoir vous être utile ... Bon surf ;-)

Fréquence de publication

1 ou 2 articles par semaine
Création du blog: 31-07-2009

A propos de l’auteur

Je m'appelle Michael BIDEAU, j'ai 25 ans. Je vis à Marseille dans le sud de la France. Je suis diplômé de l'université de Dauphine (Paris) en Master MIAGE spécialité Nouvelles Technologies. Je suis en train de travailler à créer ma propre société dans le domaine des services informatiques. Le projet n'est pas encore concrétisé car il demande beaucoup d'études, de recherches et surtout de décisions ;-)
Si vous souhaitez entrer en contact avec moi voici les outils qui vous le permettront


Pour en savoir plus sur moi je vous recommande de visiter mon univers Netvibes (ci-dessous) afin de profiter de ma sélection des meilleurs flux d'informations sur le Web 2.0, le Développement Web et l'Entrepreneuriat.


Je bookmark donc je suis

Blog Stats

  • 4,062 hits

VCard

card.ly
Suivre

Get every new post delivered to your Inbox.