Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:linux:snapper

Dies ist eine alte Version des Dokuments!


snapper

Dieser Artikel ist im Aufbau

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.

Konfiguration

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.

Konfiguration erstellen

Eine Konfiguration wird wie folgt erstellt:

snapper -c <name> create-config </Pfad/zum/Subvolume>

Konfiguration anpassen

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 FIXME
NUMBER_MIN_AGE FIXME
NUMBER_LIMIT FIXME
NUMBER_LIMIT_IMPORTANT FIXME
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.

Snapshot manuell erstellen

Liste der Snapshots anzeigen

Snapshots löschen

Quellen

1)
Der Intervalle zwischen den Snapshot ist mit einer Stunde vorgelegt und kann angepasst werden.
2)
Falls der Intervall auf eine Zeitspanne von weniger als eine Stunde reduziert wurde.
3)
Bei manchen Distributionen wird per default eine Konfiguration für das Root-Filesystem erzeugt.
4)
Habe keine Erkenntnisse, ob man tatsächlich nach einem „Umziehen“ des Subvolumes an dieser Stelle eine Anpassung vornehmen kann.
5)
Hier ist eine manuelle Änderung in den Mechanismen des systemd notwendig.
thoschwiki/linux/snapper.1605954734.txt.gz · Zuletzt geändert: 21.11.2020 11:32 von thosch