Accéder au contenuNavigation Accéder à la page : page précédente [raccourci clavier p] / page suivante [raccourci clavier n]
documentation.suse.com / Les concepts de base de Snapper

Les concepts de base de Snapper

Date de publication : 20 mar 2025
CONTENU

Cet article décrit les concepts de base de l'outil Snapper utilisé pour créer et gérer des instantanés du système de fichiers Btrfs.

MOTIF

Cet article fournit une présentation de base de Snapper, de ses interfaces prises en charge et de ses principales fonctions. Il fournit également des informations sur les paramètres par défaut pour les instantanés sous SUSE Linux Micro.

EFFORT

Un maximum de 20 minutes est nécessaire pour comprendre Snapper et sa configuration par défaut.

CONDITIONS REQUISES
  • Des privilèges root ou sudo

  • Snapper doit être installé. Il est disponible sous SUSE Linux Micro par défaut.

  • Une taille de partition root (/) d'au moins 16 Go. La taille de la partition root dépend du produit. Nous recommandons vivement un minimum de 50 Go.

Note
Note

Cet article est le premier de la série d'articles sur Snapper. Dans les articles suivants, nous aborderons des cas d'utilisation courants tels que l'annulation des modifications, la restauration du système, la création et la gestion manuelles d'instantanés, le nettoyage automatique des instantanés, etc. Chaque article s'appuie sur les connaissances acquises grâce aux précédents articles, permettant ainsi progressivement de mieux comprendre l'outil Snapper.

1 Concepts essentiels des instantanés et des sous-volumes Btrfs

Les sous-volumes Btrfs sont des systèmes de fichiers montables séparément au sein d'une partition physique. Le système de fichiers Btrfs est configuré avec des sous-volumes par défaut. Les instantanés dans Btrfs sont un type de sous-volume qui partage des données avec un autre sous-volume. Ils sont créés à l'aide des fonctionnalités de copie sur écriture de Btrfs, ce qui permet de les créer rapidement avec une utilisation minimale de l'espace disque. Les instantanés peuvent être utilisés pour capturer l'état d'un système de fichiers à un moment donné et pour revenir à un état antérieur si nécessaire.

Un sous-volume Btrfs possède sa propre hiérarchie de fichiers et de répertoires. Contrairement aux volumes logiques LVM, qui fonctionnent au niveau des blocs, les sous-volumes Btrfs sont basés sur les étendues de fichiers. Un instantané est également considéré comme un sous-volume, portant le contenu initial du sous-volume d'origine. Les sous-volumes apparaissent sous forme de répertoires et peuvent être manipulés comme n'importe quel autre répertoire, y compris en les renommant ou en les déplaçant.

L'un des principaux objectifs des sous-volumes est d'être explicitement inclus ou exclus des instantanés. Lorsque vous utilisez un instantané pour restaurer le système, nous devons nous assurer que les données telles que les répertoires privés des utilisateurs, le contenu des serveurs Web et FTP ou les fichiers journaux, ne sont pas perdues ou écrasées lors d'un retour à l'état initial. Cela est possible en excluant certains sous-volumes Btrfs des instantanés. Vous trouverez plus d'informations et la liste des sous-volumes exclus à la Section 3.3, « Sous-volumes exclus des instantanés ».

2 Présentation de Snapper

Snapper est un outil qui aide à créer et gérer des instantanés de système de fichiers. Les instantanés de système de fichiers permettent de conserver une copie de l'état d'un système de fichiers à un moment donné. Snapper peut créer et comparer des instantanés, inverser les instantanés et prendre en charge les chronologies des instantanés automatiques. Snapper ne modifie jamais le contenu des instantanés.

La configuration standard de Snapper est conçue pour permettre l'annulation des modifications du système. Toutefois, vous pouvez également l'utiliser pour créer des sauvegardes sur disque des données utilisateur. Comme base pour cette fonctionnalité, Snapper utilise deux types de systèmes de fichiers :

  • Btrfs, un système de fichiers de copie sur écriture pour Linux qui prend en charge en mode natif les instantanés de système de fichiers des sous-volumes.

  • Des volumes LVM à provisionnement dynamique, formatés avec XFS.

Note
Note

Vous pouvez également démarrer à partir d'instantanés Btrfs.

2.1 Possibilités de Snapper

Snapper possède une interface de ligne de commande et une interface YaST. Ces deux interfaces peuvent être utilisées de manière interchangeable, ce qui vous permet de créer, de supprimer et de comparer des instantanés, ainsi que d'annuler les modifications apportées entre les instantanés.

Snapper vous permet d'effectuer les tâches suivantes :

  • Annuler les modifications système effectuées par zypper et YaST.

  • Restaurer les fichiers à partir des précédents instantanés.

  • Effectuer un retour à l'état initial du système en démarrant à partir d'un instantané.

  • Créer et gérer manuellement des instantanés, dans le système en cours d'exécution.

  • Effectuer un nettoyage automatique des instantanés.

2.2 Création d'instantanés

Lorsqu'un instantané est créé, l'instantané et l'original pointent vers les mêmes blocs dans le système de fichiers. Ainsi, au départ, un instantané n'occupe pas d'espace disque supplémentaire. Si les données du système de fichiers d'origine sont modifiées, les blocs de données changés sont copiés tandis que les anciens blocs de données sont conservés pour l'instantané. Par conséquent, un instantané occupe la même quantité d'espace que les données modifiées. La quantité d'espace allouée à un instantané augmente donc constamment au fil du temps. Par conséquent, la suppression de fichiers d'un système de fichiers Btrfs contenant des instantanés peut ne pas libérer d'espace disque !

Note
Note : emplacement des instantanés

Un instantané réside toujours sur la partition ou le sous-volume sur lequel il a été pris. Il n'est pas possible de stocker des instantanés sur une partition ou un sous-volume différent.

Dès lors, les partitions contenant des instantanés doivent être plus grandes que celles n'en contenant pas. La quantité exacte dépend fortement du nombre d'instantanés que vous conservez et de la quantité de modifications de données. En règle générale, attribuez à une partition le double de l'espace que vous utiliseriez normalement. Pour éviter que les disques ne soient saturés, les anciens instantanés sont automatiquement nettoyés.

3 Configuration par défaut de Snapper

Découvrez la configuration par défaut de Snapper et ses paramètres par défaut.

Snapper est configuré comme un outil d'annulation et de récupération pour les modifications système. Par défaut, la partition root (/) de SUSE Linux Micro est formatée avec Btrfs. La prise d'instantanés est automatiquement activée si la partition root (/) est suffisamment grande (plus de 16 Go environ). Par défaut, les instantanés sont désactivés sur les partitions autres que /.

Important
Important

Il est déconseillé d'activer les instantanés manuellement après l'installation du système avec des instantanés. L'activation de Snapper après l'installation entraîne une configuration différente de celle décrite ici.

Astuce
Astuce : vérification de la taille de la partition root

La taille de la partition root dépend du produit. Pour connaître l'espace disque occupé par la partition root, exécutez :

        > 
        df -h

3.1 Paramètres par défaut de Snapper

Les instantanés sont créés pour la partition root uniquement et certains répertoires sont exclus au moyen de sous-volumes. Pour obtenir la liste des sous-volumes exclus, reportez-vous à la Section 3.3, « Sous-volumes exclus des instantanés ».

Snapper fournit des algorithmes de nettoyage automatique des instantanés pour éviter de manquer d'espace sur la partition root. Ces algorithmes font la distinction entre les instantanés chronologiques et les instantanés numérotés (paires d'instantanés d'administration et d'installation). Le comportement de nettoyage peut être configuré en fonction des critères suivants :

  • Limite de nombre : le système peut être configuré pour supprimer automatiquement les anciens instantanés lorsqu'un certain nombre d'instantanés est atteint.

  • Limite d'ancienneté : les anciens instantanés peuvent être supprimés s'ils dépassent un certain âge, tout en conservant un nombre d'instantanés pour chaque période (horaire, quotidienne, mensuelle, annuelle).

  • Paires d'instantanés Pre et post : les paires d'instantanés pre et post qui ne diffèrent pas peuvent être supprimées automatiquement.

Pour les instantanés numérotés, qui incluent des paires d'instantanés d'administration et d'installation, le nettoyage est contrôlé par des paramètres tels que NUMBER_CLEANUP, NUMBER_LIMIT, NUMBER_LIMIT_IMPORTANT et NUMBER_MIN_AGE. Les valeurs par défaut sont 2–10 pour NUMBER_LIMIT et 4–10 pour NUMBER_LIMIT_IMPORTANT, ce qui signifie que seuls les instantanés les plus récents sont conservés.

Pour les instantanés chronologiques, le nettoyage est basé sur le nombre d'instantanés à conserver pour chaque type (horaire, quotidien, hebdomadaire, mensuel, annuel). Par exemple, les instantanés des 24 dernières heures, le premier instantané quotidien des sept derniers jours, le premier instantané effectué le dernier jour du mois au cours des douze derniers mois, etc. Les paramètres comprennent TIMELINE_CLEANUP et TIMELINE_MIN_AGE, ainsi que des paramètres d'intervalle tels que TIMELINE_LIMIT_DAILY et TIMELINE_LIMIT_HOURLY.

Vous pouvez restaurer un instantané existant à tout moment en démarrant à partir de l'instantané respectif et en l'activant par la suite.

Note
Note : désactivation automatique et manuelle de Snapper

Si votre partition root est inférieure à 16 Go, la création automatique d'instantanés décrite ci-dessus est désactivée par défaut. Dans ce cas, vous pouvez créer manuellement des instantanés. Surveillez l'espace disque disponible.

Pour désactiver les instantanés automatiques même si la taille de votre partition root est suffisante, désactivez manuellement les instantanés lors de l'installation à l'étape de configuration de la partition.

3.2 Snapper sur root

Lorsque Snapper est configuré pour fonctionner sur root, chaque sous-volume Btrfs est exclu par défaut.

Le comportement par défaut de Snapper est défini dans un fichier de configuration spécifique à chaque partition ou sous-volume Btrfs. Ces fichiers de configuration se trouvent sous /etc/snapper/configs/.

3.3 Sous-volumes exclus des instantanés

Le principal cas d'utilisation des instantanés consiste à rétablir un état antérieur du système. Par conséquent, il existe certains sous-volumes (répertoires) pour lesquels la création d'instantanés est désactivée.

La liste suivante contient les répertoires exclus des instantanés. En fonction de votre produit et de votre architecture, ils peuvent ne pas tous être disponibles sur votre système.

/boot/grub2/i386-pc, /boot/grub2/x86_64-efi, /boot/grub2/powerpc-ieee1275, /boot/grub2/s390x-emu

Un retour à l'état initial de la configuration du chargeur de démarrage n'est pas pris en charge. Les répertoires ci-dessus sont spécifiques à l'architecture. Les deux premiers répertoires sont présents sur les machines AMD64/Intel 64, les deux derniers se trouvent respectivement sur IBM POWER et IBM Z.

/home

Si /home ne réside pas sur une partition distincte, il est exclu pour éviter la perte de données créées par l'utilisateur lors de retours à l'état initial.

/opt, /usr/local

Ces répertoires sont utilisés lors de l'installation manuelle de produits tiers. Ils sont exclus pour éviter la désinstallation de ces produits lors de retours à l'état initial.

/srv

Contient des données pour les serveurs Web et FTP. Il est exclu pour éviter les pertes de données lors des retours à l'état initial.

/tmp

Tous les répertoires contenant des fichiers temporaires et des caches sont exclus des instantanés.

/var

Contient de nombreux fichiers de variables, tels que des journaux, des caches temporaires et des produits tiers dans /var/opt ; il s'agit de l'emplacement par défaut des images et des bases de données de machines virtuelles. Par conséquent, ce sous-volume est créé pour exclure toutes les données de variables des instantanés et a sa fonction de copie sur écriture (« Copy-On-Write ») désactivée.

/run

Ce répertoire contient les données d'exécution de l'application et est exclu des instantanés pour réduire la taille de l'instantané et éviter d'inclure des informations potentiellement sensibles.

Astuce
Astuce

La liste des sous-volumes est spécifique au produit. Pour savoir quels sous-volumes sont créés sous / et, par conséquent, connaître les répertoires qui sont exclus du comportement d'instantanés par défaut, exécutez :

> sudo btrfs subvolume list /
Note
Note : pourquoi l'espace est-il limité ?

Lors de la création d'un instantané, aucune copie de données physiques n'est créée. Un instantané se compose uniquement de pointeurs vers les blocs de données respectifs. Tant que l'instantané reste cohérent avec le système actuel, il n'occupe pratiquement pas d'espace disque supplémentaire (à l'exception des métadonnées qu'il contient). Toutefois, si un fichier est modifié sur le système, les données modifiées sont enregistrées dans l'instantané. Au fil du temps, à mesure que des modifications supplémentaires s'accumulent et que l'instantané diffère du système réel, la taille de l'instantané augmente en conséquence.

Pour éviter une saturation des disques (ce qui rendrait le système inopérationnel), nous vous recommandons de définir une taille minimale pour le système de fichiers racine. La taille requise dépend de l'utilisation du système :

  • La fréquence de création d'instantanés

  • La durée de conservation des instantanés

  • Le taux de modifications du système

En général, plus vous avez d'instantanés, plus ils sont conservés longtemps et plus le système change fréquemment, plus la partition root doit être volumineuse.

4 Informations supplémentaires

Pour plus d'informations sur le système de fichiers Btrfs, reportez-vous aux documents https://documentation.suse.com/sles/15-SP5/html/SLES-all/cha-filesystems.html#sec-filesystems-major-btrfs et https://wiki.archlinux.org/title/btrfs.

Pour plus d'informations sur les volumes LVM, reportez-vous au document https://documentation.suse.com/sles/15-SP5/html/SLES-all/part-lvm.html.