Concepts de base de Snapper
SUSE Linux Enterprise Server 16.0

Concepts de base de Snapper

Date de publication : 11 déc 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 Enterprise Server.

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 par défaut sur SUSE Linux Enterprise Server.

  • 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.

Remarque
Remarque

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 tout 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 et ext4.

Remarque
Remarque

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

2.1 Possibilités de Snapper

Snapper a une interface de ligne de commande, 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.

  • 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 Types d'instantanés

Il existe deux aspects selon lesquels les instantanés peuvent être classés : les événements déclenchant l'instantané et l'heure de création de l'instantané.

Types d'instantanés basés sur les événements déclencheurs

Bien que les instantanés proprement dits ne diffèrent pas d'un point de vue technique, nous distinguons trois types d'instantanés, en fonction des événements qui les déclenchent.

Instantanés d'installation

Chaque fois qu'un ou plusieurs paquet sont installés, des instantanés sont créés de la manière suivante :

  • L'instantané 0 single existe toujours dans Snapper. Il fait toujours référence à l'état actuel du système, comme indiqué dans la colonne Description. Cet instantané capture l'état du système juste après la fin du processus d'installation.

  • L'instantané 1 single pour la partition root (/) est pris automatiquement avec le nom first root filesystem. Cet instantané est pris après la première série de mises à jour ou de configurations du système.

  • L'instantané 2 single est pris automatiquement avec le nom after installation. Cet instantané est créé vers la fin du processus d'installation et signalé comme important. Il représente l'état du système à l'issue de toute la configuration initiale.

Les anciens instantanés sont automatiquement supprimés. Par défaut, les dix derniers instantanés importants et les dix derniers instantanés « standard » (y compris les instantanés d'administration) sont conservés. Les instantanés d'installation sont activés par défaut. Pour désactiver manuellement les instantanés d'installation, désinstallez le paquet snapper-zypp-plugin.

Instantanés d'administration

Chaque fois que vous apportez des modifications au système, une paire d'instantanés est créée : une paire avant la modification du système (« avant ») et l'autre après la modification du système (« après »). Les anciens instantanés sont automatiquement supprimés. Par défaut, les dix derniers instantanés importants et les dix derniers instantanés « standard » (y compris les instantanés d'installation) sont conservés. Les instantanés d'administration sont activés par défaut.

Instantanés chronologiques

Un instantané unique est créé toutes les heures. Les instantanés chronologiques sont activés par défaut, sauf pour le système de fichiers racine. Les intervalles par défaut pour les instantanés chronologiques sont chaque heure, chaque jour, chaque semaine, chaque moi et chaque année. Pour modifier ces intervalles, les utilisateurs doivent modifier directement les minuteurs systemd de Snapper, car cette action ne peut pas être configurée dans Snapper proprement dit. Les anciens instantanés sont automatiquement supprimés. Par défaut, le premier instantané des dix derniers jours, mois et années est conservé.

Important
Important : exception pour les types d'instantanés d'installation et d'administration

Les types d'instantanés d'installation et d'administration ne s'appliquent pas aux systèmes transactionnels.

Remarque
Remarque

Les instantanés chronologiques et d'administration peuvent être activés ou désactivés indépendamment.

Types d'instantanés basés sur l'heure de création

Parmi les instantanés d'administration et d'installation, Snapper en reconnaît trois types différents : avant, après et unique. Ils n'ont pas de différence physique, mais Snapper les traite différemment.

pre

Instantané d'un système de fichiers avant une modification. Chaque instantané pre a un instantané post correspondant. Par exemple, celui-ci est utilisé pour les instantanés automatiques.

post

Instantané d'un système de fichiers après une modification. Chaque instantané post a un instantané pre correspondant. Par exemple, celui-ci est utilisé pour les instantanés automatiques.

single

Instantané autonome. Par exemple, celui-ci est utilisé pour les instantanés automatiques horaires. Il s'agit du type par défaut lors de la création d'instantanés.

Voici la liste des instantanés directement après une nouvelle installation d'un système avec une partition root > 16 Go :

# | Type   | Pre # | Date                     | User | Used Space | Cleanup | Description           | Userdata     
-----+--------+-------+--------------------------+------+------------+---------+-----------------------+--------------
0  | single |       |                          | root |            |         | current               |              
1  | single |       | Thu Mar 24 12:14:34 2022 | root |  32.44 MiB |         | first root filesystem |              
2  | single |       | Thu Mar 24 12:25:55 2022 | root | 280.40 MiB | number  | after installation    | important=yes
45 | pre    |       | Mon Apr 25 17:58:45 2022 | root |  27.52 MiB | number  | zypp(zypper)          | important=yes
46 | post   |    45 | Mon Apr 25 18:00:07 2022 | root |  39.04 MiB | number  |                       | important=yes

2.3 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 !

Remarque
Remarque : 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 un autre système de fichiers.

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 Enterprise Server 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

Par défaut, Snapper sur SUSE Linux Enterprise Server est automatiquement configuré lors de l'installation du système si les conditions suivantes sont remplies :

  • Taille de la partition root : > 16 Go

  • Système de fichiers de la partition root : Btrfs

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 » Pour plus d'informations sur les types d'instantanés, l'heure et les événements ayant occasionné leur création, consultez la Section 2.2, « Types d'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.

Remarque
Remarque : 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/.

Avertissement
Avertissement : activation de Snapper dans le système installé

Si vous avez désactivé Snapper lors de l'installation, il est possible de l'activer par la suite. Cependant, l'activation de Snapper après l'installation entraîne des différences notamment dans la disposition des sous-volumes ainsi que dans les variables. Nous vous recommandons vivement de déterminer si vous avez besoin d'instantanés dans votre système avant de démarrer l'installation.

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 /
Remarque
Remarque : 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 initiales 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.