Es gibt auf FreeBSD mehrere Möglichkeiten um ZFS Snapshots zu automatisieren. Ich selbst nutze sehr gerne die zfstools (sysutils/zfstools). Dieses orientiert sich nämlich an der Automatisierung von Solaris / Opensolaris. Liegt mir am nächsten und kann sogar konsistente Snapshots einer MySQL oder auch PostgreSQL erstellen.
Die zfstools sind als binary oder aus den Ports flott installiert:
root@errorlap ~> pkg install zfstools
Nach der Installation füttert man noch schnell seine /etc/crontab:
# ZFS snapshots 15,30,45 * * * * root /usr/local/sbin/zfs-auto-snapshot frequent 4 0 * * * * root /usr/local/sbin/zfs-auto-snapshot hourly 24 7 0 * * * root /usr/local/sbin/zfs-auto-snapshot daily 7 14 0 * * 7 root /usr/local/sbin/zfs-auto-snapshot weekly 4 28 0 1 * * root /usr/local/sbin/zfs-auto-snapshot monthly 12
Ggf. muss die Path Variable in der crontab noch erweitert werden:
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
Fehlt nur noch dieses ebenfalls im jeweiligen ZFS Volume zu aktivieren. Auf meinem Notebook reicht es mir für das Homevolume:
root@errorlap ~> zfs set com.sun:auto-snapshot=true zroot/usr/home
Ab diesem Moment werden nun ZFS Snapshots für mein(e) home(s) erstellt. Im Standard werden dabei folgende Snapshots vorgehalten:
– Ein Snapshot alle 15 Minuten, dabei werden 4 Snapshots vorgehalten.
– Ein Snapshot jede Stunde, dabei werden 24 Snapshots vorgehalten.
– Ein Snapshot jeden Tag, dabei werden 7 Snapshots vorgehalten.
– Ein Snapshot jede Woche, dabei werden 4 Snapshots vorgehalten.
– Ein Snapshot jeden Monat, dabei werden 12 Snapshots vorgehalten.
Für meine Zwecke ist diese absolut ausreichend. Über diesen Weg komme ich sehr schnell und einfach wieder an einen alten Stand 🙂
kernel@errorlap ~> zfs list -r -H -t snapshot zroot/usr/home zroot/usr/home@zfs-auto-snap_hourly-2016-05-19-11h00 21,5M - 82,5G - zroot/usr/home@zfs-auto-snap_frequent-2016-05-19-11h30 14,6M - 82,6G - zroot/usr/home@zfs-auto-snap_frequent-2016-05-19-11h45 13,3M - 82,6G - zroot/usr/home@zfs-auto-snap_hourly-2016-05-19-12h00 14,0M - 82,7G - zroot/usr/home@zfs-auto-snap_frequent-2016-05-19-12h15 12,6M - 83,9G - zroot/usr/home@zfs-auto-snap_frequent-2016-05-19-12h30 13,7M - 83,9G -
Möchte man eine Datenbank damit „sichern“ muss dieses speziell für das Datenbankvolume angegeben werden:
root@errorlap ~> zfs set com.sun:auto-snapshot=postgresql DATASET
Im Grunde muss es nicht erwähnt werden…. Aber eine Datensicherung auf dem gleichen System ist keine echte Datensicherung 😛 Man könnte jetzt aber diese Snapshots mit einem zfs send verbinden und somit die Snapshots replizieren.
Schreibe einen Kommentar