Comment configurer Borg Prune et Compact sans longues interruptions entre les sauvegardes

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

Pour éviter de longues interruptions entre les sauvegardes Borg, exécutez la purge de rétention après une sauvegarde réussie, mais planifiez le compactage du dépôt moins souvent et en dehors de la fenêtre principale de sauvegarde. Borg 1.4 sépare la suppression des archives de la récupération physique de l’espace ; il n’est donc pas nécessaire d’exécuter borg compact après chaque borg prune.

Ce guide cible le modèle de commandes stable actuel de Borg 1.4.x. Borg 2 modifie la sémantique des dépôts et des archives dans plusieurs domaines ; vérifiez donc la version installée avant de reprendre l’automatisation d’une autre version majeure.

Vérifiez la version de Borg et le dépôt

borg --version
borg info /mnt/backup/borg-repo
borg list /mnt/backup/borg-repo

La FAQ de Borg indique que Borg utilise un verrou à l’échelle du dépôt et qu’un seul processus peut disposer d’un accès en écriture à la fois. Si une longue opération de compactage chevauche la prochaine sauvegarde planifiée, celle-ci attend le verrou ou échoue lorsque le délai d’attente du verrou expire.

Définissez d’abord la rétention avec une simulation

borg prune est destructif pour l’historique des archives. La documentation de Borg sur prune recommande vivement de tester avec --dry-run et --list.

borg prune   --dry-run   --list   --keep-daily 7   --keep-weekly 4   --keep-monthly 6   --glob-archives '{hostname}-*'   /mnt/backup/borg-repo

Si un dépôt contient les sauvegardes de plusieurs machines ou jeux de données, le filtre d’archives est essentiel. Sans filtre restrictif, Borg 1.4 considère toutes les archives du dépôt comme candidates aux mêmes règles de rétention.

Exécutez la purge uniquement après une sauvegarde réussie

#!/bin/sh
set -eu
REPO=/mnt/backup/borg-repo
ARCHIVE='{hostname}-{now:%Y-%m-%d_%H-%M}'

borg create --stats "$REPO::$ARCHIVE" /srv/data

borg prune   --list   --keep-daily 7   --keep-weekly 4   --keep-monthly 6   --glob-archives '{hostname}-*'   "$REPO"

Ne lancez pas l’élagage parce qu’un planificateur s’est déclenché ; lancez-le parce qu’une nouvelle sauvegarde s’est terminée avec succès et que la politique de rétention a déjà été validée.

-15% OFF

Comprenez pourquoi l’élagage ne libère pas immédiatement de l’espace

Depuis Borg 1.2, le compactage est séparé des commandes normales d’écriture dans le dépôt. Les notes distinctes sur le compactage de Borg expliquent que la suppression ou l’élagage des archives ne récupère pas immédiatement tout l’espace disque du dépôt.

borg create
    |
nouvelle archive validée
    |
borg prune
    |
anciennes archives supprimées de l’ensemble de rétention
    |
borg compact
    |
espace inutilisé des segments récupéré

C’est utile pour la planification, car les sauvegardes quotidiennes n’ont pas à supporter le coût total de la réécriture des segments de dépôt partiellement utilisés.

Planifiez le compactage moins souvent que l’élagage

  • sauvegarde : chaque nuit ;
  • élagage : après chaque sauvegarde réussie ou quelques fois par semaine ;
  • compactage : une fois par semaine pendant une période calme ;
  • vérification complète du dépôt : selon un calendrier distinct et moins fréquent.
# Sauvegarde et élagage quotidiens
0 1 * * * /usr/local/sbin/borg-backup

# Compactage hebdomadaire
0 4 * * 0 /usr/local/sbin/borg-compact

Si les sauvegardes s’exécutent souvent pendant plusieurs heures, espacez davantage le compactage ou utilisez un minuteur avec des dépendances explicites.

Utilisez le seuil de compactage par défaut avant de forcer des réécritures maximales

La documentation actuelle sur le compactage utilise par défaut un seuil de 10 %.

borg compact --progress /mnt/backup/borg-repo

Cette valeur par défaut constitue un bon point de départ lorsque votre priorité est de réduire la durée de la fenêtre de maintenance. Évitez d’utiliser automatiquement --threshold 0; il réécrit chaque fois qu’un espace peut être récupéré et peut être sensiblement plus lent sur un grand dépôt.

Évitez que la maintenance n’entre en conflit avec la prochaine sauvegarde

Si une tâche peut légitimement attendre un autre processus Borg, définissez une attente de verrou bornée :

borg --lock-wait 1800 create   /mnt/backup/borg-repo::'{hostname}-{now}'   /srv/data

N’utilisez pas une attente très longue du verrou pour pallier une mauvaise planification. Surveillez le moment où la sauvegarde démarre et se termine réellement.

Si plusieurs clients partagent un même dépôt, espacez leurs planifications. La FAQ de Borg indique que plusieurs dépôts peuvent réduire la contention sur les verrous lorsque la déduplication entre clients n’est pas importante.

Utiliser les statistiques rapides lorsque les rapports ralentissent prune

Borg 1.4.5 a ajouté --quick-stats pour créer, supprimer et élaguer, en évitant les statistiques plus lentes à l’échelle du dépôt lorsqu’elles ne sont pas nécessaires.

borg prune   --quick-stats   --keep-daily 7   --keep-weekly 4   --keep-monthly 6   --glob-archives '{hostname}-*'   /mnt/backup/borg-repo

Conserver de l’espace libre avant d’avoir besoin de compact

N’attendez pas que le système de fichiers du dépôt n’ait plus aucun espace libre. Borg ne peut pas effectuer de manière fiable les opérations normales d’écriture dans un dépôt sur un système de fichiers complètement saturé.

df -h /mnt/backup
borg info /mnt/backup/borg-repo

Pour un plan de sauvegarde NAS plus complet, le guide de sauvegarde 3-2-1 de ZimaOS rappelle utilement que la rétention d’un dépôt n’est qu’un volet de la conception d’une sauvegarde.

Valider la planification avant de lui faire confiance

  • Chaque sauvegarde a-t-elle créé une nouvelle archive ?
  • prune ne s’est-il exécuté qu’après la réussite des sauvegardes ?
  • L’ensemble de rétention correspondait-il au plan d’exécution à blanc ?
  • Le compactage hebdomadaire s’est-il terminé avant la sauvegarde suivante ?
  • L’espace libre a-t-il augmenté après compact ?
  • Une tâche a-t-elle passé un temps inattendu à attendre le verrou Borg ?

Si compact chevauche régulièrement la sauvegarde suivante, réduisez la fréquence de compactage, conservez le seuil par défaut, déplacez compact vers une plage horaire moins chargée ou répartissez les charges de travail indépendantes dans des dépôts distincts.

Une stratégie de maintenance Borg à faible intervalle

QUOTIDIEN
01:00  borg create
        |
        +-- réussite --> borg prune
        |
        +-- échec --> conserver les anciennes archives, envoyer une alerte

HEBDOMADAIRE
04:00  borg compact

PÉRIODIQUE
        borg check
        restaurer les fichiers sélectionnés

La règle centrale est simple : prune protège la politique de rétention ; compact récupère de l’espace de stockage ; ils n’ont pas besoin d’être exécutés à la même fréquence.

Assistance et conseils

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.