Dies ist eine alte Version des Dokuments!
snapper ist ein Linux-Tools zum Anlegen und verwalten von Snapshots auf Btrfs oder LVM-Dateisystemen.
Kernfunktion von snapper ist das automatisierte Erstellen von stündlichen1) Snapshot sowie das automatisierte „Ausdünnen“ der erstellten Snapshot. Beim „Ausdünnen“ wird täglich die Zahl der verbleibenden Snapshot auf eine vorgegebene Zahl pro Stunde2), Tag, Woche, Monat und Jahr reduziert.
Das Tool stammt ursprünglich aus dem OpenSUSE-Umfeld und ist mittlerweile in den Paketquellen der meisten Linux-Distributionen verfügbar.
In diesem Artikel wird nur der Einsatz in einem Btrfs-Umfeld behandelt.
Für die Nutzung von snapper ist es notwendig, vorab eine entsprechende Konfiguration zu erstellen3). Beim hier betrachteten Einsatz in einem Btrfs-Umfeld ist es notwendig, dass es sich bei dem Verzeichnis, für das die Snapshots erstellt werden sollen, um ein Btrfs-Subvolume handelt.
Eine Konfiguration wird wie folgt erstellt:
snapper -c <name> create-config </Pfad/zum/Subvolume>
Die Vorgaben für die jeweilige Konfiguration ist in der Datei /etc/snapper/configs/<name>
abgelegt und kann dort mit einem Texteditor bearbeitet werden. Die Datei ist gut mit Kommentaren dokumentiert.
In der Voreinstellung ist die Bearbeitung nur mit root-Rechten möglich. Unter Debian/-, Ubuntu- und sowie davon abgeleiteten Linuxen ist daher die Verwendung von sudo
notwendig.
sudo nano /etc/snapper/configs/<name>
Die wichtigsten Schlüsselworte der Konfigurationsdatei:
Schlüsselwort | Funktion |
---|---|
SUBVOLUME | Pfad zum Subvolume, für das die Snapshot angelegt werden.4) |
FSTYPE | Typ des Filsystems; sollte man lieber nicht verändern. |
SPACE_LIMIT | Anteil des Dateisystems, das die Snapshot diese Konfiguration einnehmen dürfen. |
FREE_LIMIT | Anteil des Dateisystems, das frei bleiben muss. |
ALLOW_USERS ALLOW_GROUPS | Nutzer bzw. Gruppen, die mit dieser Konfiguration arbeiten dürfen. Sofern hier keine Vorgaben erfolgen, kann nur der Nutzer root zugreifen bzw. Verwendung von sudo ist notwendig. |
SYNC_ACL | Beim Wert "yes" können die in ALLOW_USERS und ALLOW_GROUPS benannten Benutzer und Gruppen auf das Verzeichnis mit den Snapshot unter </Pfad/zum/Subvolume/.snapshots> zugreifen. |
NUMBER_CLEANUP | |
NUMBER_MIN_AGE | |
NUMBER_LIMIT | |
NUMBER_LIMIT_IMPORTANT | |
TIMELINE_CREATE | Beim Wert "yes" werden automatisch regelmäßige Snapshsots angelegt. Das Steuern des Zeitintervalls zwischen dem Anlegen der einzelnen Snapshot kann nicht über die Konfigurationsdatei erfolgen.5) |
TIMELINE_CLEANUP | Beim Wert "yes" werden die erstellten Snapshot nach den nachfolgenden Regeln automatisch ausgedünnt. |
Eine detaillierte, englischsprachige Beschreibung ist bei snapper.io verfügbar.
systemd
notwendig.