Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:linux:snapper

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 Beim Wert "yes" wird der number cleanup algorithm aktiviert.
Dieser Algorithmus löscht nur Snapshots die den Bereinigungstyp number haben. Die periodisch automatisch erstellten Snapshots mit dem Bereinigungstyp timeline werden nicht einbezogen.
NUMBER_MIN_AGE Mindestalter der Snapshots, die in die Bereinigung einbezogen werden, in Sekunden
NUMBER_LIMIT Zahl der verbleibenden Snapshots
NUMBER_LIMIT_IMPORTANT Zahl der verbleibenden Snapshots mit der Priorität 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" wird der timeline cleanup algorithm aktiviert.
Dieser Algorithmus löscht nur die periodisch automatisch erstellten Snapshots.
TIMELINE_MIN_AGE Mindestalter der Snapshots, die in die Bereinigung einbezogen werden, in Sekunden
TIMELINE_LIMIT_HOURLY Zahl der Snapshots, die für den vergangenen Tag pro Stunde verbleiben sollen.6)
TIMELINE_LIMIT_DAILY Zahl der Snapshots, die für den vergangenen Tag pro Stunde verbleiben sollen.
TIMELINE_LIMIT_WEEKLY Zahl der Snapshots, die für die vergangenen Woche (beginnt mit dem Montag) verbleiben sollen.
TIMELINE_LIMIT_MONTHLY Zahl der Snapshots, die für den vergangenen Monat verbleiben sollen.
TIMELINE_LIMIT_YEARLY Zahl der Snapshots, die für das vergangenen Jahr verbleiben sollen.
EMPTY_PRE_POST_CLEANUP Beim Wert "yes" wird der empty-pre-post cleanup algorithm aktiviert.
Dieser Algorithmus löscht pre-post-Snapshots bei denen der post-Snapshot fehlt.
EMPTY_PRE_POST_MIN_AGE Mindestalter der Snapshots, die in die Bereinigung einbezogen werden, in Sekunden

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.
6)
Nur von Bedeutung, wenn der Intervall zwischen den automatisch erstellten Snapshots kürzer als eine Stunde ist.
thoschwiki/linux/snapper.txt · Zuletzt geändert: 21.11.2020 12:14 von thosch