Rotera ZFS snapshots i FreeBSD

From Peters wiki
Jump to navigation Jump to search

Denna guide beskriver hur man automatiskt roterar snapshots på ZFS system.

Snapshot skript

Senaste version kan alltid hämtas via följande repository (kräver Gerrit-konto):

Logga in som root och kopiera skriptet till /usr/local/sbin/. Gör sen skriptet exekverbart:

root # chmod u+x /usr/local/sbin/zfs-autosnap.sh

Skriptet kräver bash för att fungera.

Crontab

För att automatiskt rotera varje timme, dagligen och varje vecka, kör kommandot crontab och lägg till följande rader:

@hourly /usr/local/sbin/zfs-autosnap.sh hourly
@daily  /usr/local/sbin/zfs-autosnap.sh daily
@weekly /usr/local/sbin/zfs-autosnap.sh weekly

Kom ihåg att default PATH för cronjob är:

PATH = /bin:/usr/bin

Så för att kunna köra kommandon som zfs, krävs att även /usr/sbin finns med i PATH:en.

Rotera snapshots

För att rotera snapshots på ett ZFS filsystem, sätter man egenskapen: org.freebsd:snap:{hourly|daily|weekly}=<count>. Antal snapshots innan rotering, styrs via <count> variabeln. Sätts t.ex. värdet till 7, kommer snapshots 7 st snapshots sparas innan äldre raderas.

Exempel: Skapa snapshots av trunk/home/peter dagligen, spara 7 stycken innan den äldsta raderas:

root # zfs set org.freebsd:snap:daily=7 trunk/home/peter