Outils pour utilisateurs

Outils du site


borgbackup

BorgBackup

BorgBackup est un logiciel de sauvegarde. Cette page est un mémo rapide des principales commandes.

Avantages de Borg:

  • Sauvegardes incrémentales (il historise les anciennes versions des fichiers)
  • Sauvegardes différentielles (il ne sauvegarde que les parties modifiées des fichiers)
  • Compression (lz4 extrêmement rapide par défaut, mais peu aussi faire gzip ou lzma)
  • Dé-duplication (les fichiers identiques ne seront pas sauvegardés en double)
  • Chiffrement (optionnel)
  • Sauvegardes vers un répertoire local ou ssh.
  • Les backups peuvent être interrompus et repris.
  • Les backups sont accessibles en FUSE (sous forme de simples répertoires)

Vocabulaire

  • repo : Un “repo” borg est un répertoire dans lequel borg va stocker ses sauvegardes.
  • archive : Correspond à une sauvegarde. Un repo borg contient une ou plusieures “archives”.

Installation

Borg est présent dans la plupart des dépôts des distributions. Sous Debian/Ubuntu/LinuxMint:

sudo apt install borgbackup

Mais Borg étant un simple exécutable sans dépendances lourdes, vous pouvez aussi télécharger juste l'exécutable (voir cette page) et l'installer à la main.

Exemple pour un Linux 64 bits:

sudo wget https://github.com/borgbackup/borg/releases/download/1.1.4/borg-linux64
sudo cp borg-linux64 /usr/local/bin/borg
sudo chmod 755 /usr/local/bin/borg

Utilisation

  • En supposant que vous voulez faire vos sauvegardes dans le répertoire /repo
  • Initialiser le repo Borg (À faire une seule fois: C'est ce qui va “préparer” le répertoire qui va recevoir les backups):
    borg init /repo
    • Par défaut, c'est chiffré avec mot de passe. Pour faire sans chiffrement, faire:
      borg init --encryption=none /repo
    • Les “repos” peuvent être locaux ou distants.
  • Faire un backup:
    borg create /repo::{now} /source
    • Pour afficher plus d'informations, ajouter -v --stats --progress
    • {now} permet d'horodater automatiquement les backups, mais vous pouvez remplacer par le texte de votre choix (sans les accolades).
    • Si vous cherchez la compression maximale ajoutez --compression lzma
  • Lister les backups:
    borg list /repo
  • Vérifier l'intégrité des backups:
    borg check --verify-data --progress /repo
  • Accéder aux backups:
    mkdir archive
    borg mount /repo archive
    • Chaque backup est alors accessible comme un sous-répertoire dans le répertoire archive:
      • Note: Si vous avez beaucoup de fichiers, quand vous allez entrer dans le sous-répertoire d'un backup précis, le premier ls risque de prendre plusieurs minutes. C'est tout à fait normal. Ne soyez pas surpris.
    • Puis démonter par:
      borg umount archive
  • Purger les anciens backups:
    • On va garder 1 backup par jour sur les 7 derniers jours, et 1 backup par semaine sur les 4 dernières semaines et 1 backup par mois sur les 6 derniers mois.
      borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /repo
    • Vous avez bien entendu bien d'autres options de purge.

Notes

  • Bien entendu, le premier backup sera long (il va compresser tous les fichiers). Les backups suivants seront beaucoup plus rapides.
  • La compression par défaut est lz4 qui est extrêmement rapide (capable de compresser 500 Mo/seconde sur un processeur moyen).
  • Un backup précis est nommée par repo::archive.
    • Exemple: /repo::2017-12-11T12:25:38 désigne l'archive 2017-12-11T12:25:38 dans le repo /repo.
  • Borg est bon dans les cas suivants:
    • backup fichiers locaux ⇒ repo local
    • backup fichiers locaux ⇒ repo distant
  • Borg est moins bon pour:
    • backup fichiers distant ⇒ repo local.
    • Dans ce cas, vous devrez utiliser sshfs (ou autre) pour aller chercher les fichiers, et les performances seront nettement moins bonnes. (Ou alors vous faites préalablement un rsync (rapide) vers un répetoire local, puis un borg local vers local pour historiser les modifications).
    • Si vous allez chercher des fichiers distants par sshfs, je vous recommande d'utiliser l'option --files-cache=ctime,size (ou --ignore-inode sur Borg<1.1) car les inodes d'un montage sshfs ne sont pas constants, et vous risquez de re-sauvegarder des fichiers qui n'ont pas été modifiés.

Stats

Quand vous avez fini un backup (avec --stats), vous aurez un rapport sur votre sauvegarde:

------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
This archive:                4.51 GB              2.77 GB              1.06 MB
All archives:               13.53 GB              8.32 GB              1.87 GB

                       Unique chunks         Total chunks
Chunk index:                   70292               567669
------------------------------------------------------------------------------
  • This archive correspond à la sauvegarde que vous venez de faire.
    • Original size : Taille totale des fichiers dans ce backup.
    • Compressed size : Taille de ces fichiers une fois compressés.
    • Deduplicated size : Comme certains de ces fichiers étaient déjà présents à l'identique dans des sauvegardes antérieures, ils n'ont pas été re-sauvegardés. La taille affichée ici correspond à la quantité de données réellement nouvelles qui ont été ajoutées au repo borg (ici: 1,06 Mo).
  • All archives : correspond à la taille totale de données stockées dans les différents backups.
    • Deduplicated size : C'est la taille totale de votre repo borg, après compression et déduplication (repérage des fichiers identiques entre sauvegardes).

Propriétés des logiciels de sauvegarde

Les logiciels de backup peuvent posséder plusieurs de ces 4 propriétés: compression, incrémental, différentiel et dédupliqué.

  • Compression: La compression permet de réduire l'espace nécessaire au stockage de la sauvegarde d'un fichier, comme on le ferait avec une archive zip.
    • Exemple de logiciel: tar/gzip, zip…
  • Incrémental: Le logiciel conserve les anciennes versions des fichiers.
    • Vous pouvez récupérer un fichier tel qu'il était il y a une semaine, ou récupérer un fichier que vous avez effacé depuis plusieurs backups.
    • Exemple de logiciel: rsnapshot, BackInTime, TimeShift
  • Différentiel : Le logiciel de backup ne va sauvegarder que les parties modifiées des fichiers.
    • Imaginez: Vous faites fonctionner une machine virtuelle qui fait 10 Go:
      • Si votre logiciel de backup n'est pas différentiel, il verra que le fichier de 10 Go a été modifié, et il va le sauvegarder en entier à nouveau.
      • Si votre logiciel de backup est différentiel, il ne va sauvegarder que la partie modifiée du fichier. Le gain de place est énorme.
    • Exemple de logiciel: rdiff-backup, duplicity
  • Dé-dupliqué: Le logiciel de backup va repérer les données identiques dans des fichiers différents.
    • Imaginez: Vous déplacez un répertoire contenant beaucoup de fichiers, ou vous renommez des fichiers volumineux.
      • Si votre logiciel de backup ne fait pas de dé-duplication, il considérera que ce sont de nouveaux fichiers et ira tous les sauvegarder à nouveau. Votre sauvegarde va enfler.
      • Si votre logiciel de backup fait de la dé-duplication, il verra que le contenu des fichiers est identique à des fichiers déjà sauvegardés, et ne les sauvegardera pas à nouveau (énorme gain de temps et de place).
    • Exemple de logiciel: BorgBackup, bup, duplicati

Si j'aime autant BorgBackup, c'est qu'il possède justement ces 4 propriétés. En particulier, la dé-duplication vous permet de déplacer vos fichiers ou renommer les répertoires sans risquer de faire enfler inutilement les sauvegardes. Dans le cas de sauvegardes multi-utilisateurs ou multi-machines, le gain est encore plus important.

Liens

borgbackup.txt · Dernière modification: 2018/04/12 11:47 par sebsauvage