Proxmox LXC, ZFS & Samba + VSS

Volumenschattenkopien oder Vorgängerversionen unter Windows sind eine einfache Variante um Dateien ohne groß im Backup zu suchen, wiederherstellen zu können. ZFS bietet in diesem Zusammenhang eine Möglichkeit auch für den Endbenutzer dieses Feature einfach zu nutzen.

Um dieses Funktion bereit stellen zu können, bedarf es aber ein paar einfachen Befehlen und einer kleinen Konfiguration im Samba Server selbst. Anschließend ist alles für den Nutzer direkt in den Eigenschaften der Datei oder des Ordners auf dem Netzlaufwerk verfügbar.

Folgende Dinge sind nötig:

  • aktivieren von Autosnapshots auf dem gewünschten Volume/Subvolume
  • Installation und Konfiguration von zfs-auto-snapshot
  • Konfigurieren von Samba

Zuerst sollte man auf allen ZFS Pools automatische Erstellung deaktivieren und anschließen nur die Volumes aktivieren, die man haben möchte/:

zfs set com.sun:auto-snapshot=false <zfs-pool>

zfs set com.sun:auto-snapshot=true <zfs-pool>/<zfs-subvol>

Überprüfen, ob man die Einstellungen richtig gesetzt hat, kann man mit folgendem Befehl:

zfs get com.sun:auto-snapshot

Es sollte eine Ausgabe ähnlich dieser kommen. Bei aktivieren Autosnapshot steht bei Value “true” und Source als “local”

NAME                        PROPERTY               VALUE                  SOURCE
tank                        com.sun:auto-snapshot  false                  local
tank/subvol-203-disk-0      com.sun:auto-snapshot  false                  inherited from tank
tank/subvol-203-disk-1      com.sun:auto-snapshot  true                   local

Anschließend muss das Paket zfs-auto-snapshot installiert werden:

apt install zfs-auto-snapshot

Nun muss der cronjob noch konfiguriert werden. Dies wird in der Datei /etc/cron.d/zfs-auto-snapshot erledigt. Hier kann man die Anzahl, sowie die Frequenz der Jobs definieren. Hier mal ein Beispiel, wie man alle sechs Stunden einen Snapshot macht und nur vier Stück davon behält:

0 */6 * * * root which zfs-auto-snapshot > /dev/null || exit 0 ; zfs-auto-snapshot –quiet –syslog –label=frequent –keep=4 <zfs-pool>/<zfs-subvol>

Nun muss man sich nur noch um die Samba Konfiguration im Container kümmern. Dazu fügt man in den Freigaben nur folgende Zeilen hinzu und startet den Samba Dienst neu (als Beispiel ist hier das Home Verzeichnis gezeigt):

[homes]
       comment = Homedirectories
       read only = No
       browseable = No
       browsable = No
       writeable = yes
       vfs objects = shadow_copy2
       shadow:snapdir = .zfs/snapshot
       shadow:sort = desc
       shadow:format = zfs-auto-snap_frequent-%Y-%m-%d-%H%M

Wichtig ist, dass label im Cronjob und im shadow:format gleich sind. In diesem Fall “frequent”. Anschließend können die Windows Benutzer unter Eigenschaften->Vorgängerversion die letzten Versionen wieder herstellen.

Achtung: Das Paket zfs-auto-snapshot legt ebenfalls unter /etc/cron.{hourly,daily,weekly,monthly}/zfs-auto-snapshot Einträge ab. Falls diese nicht gewünscht sind, sollte man diese deaktivieren. Andernfalls werden mit den Standardeinstellungen 24 stündliche, 31 tägliche, acht wöchentliche und 12 monatliche Snapshots angelegt.

Wichtig ist jedoch auch in diesem Fall: Diese Funktion ersetzt nicht ein echtes Backup!


Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.