50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
|
+++
|
||
|
title = "daily zfs snapshots"
|
||
|
date = "2011-04-26T13:00:00+00:00"
|
||
|
author = "Gibheer"
|
||
|
draft = false
|
||
|
+++
|
||
|
|
||
|
In (Open)Solaris gab es eine Funktion mit dem Namen TimeMachine. Das
|
||
|
sind einzelne Scripte, welche in regelmaessigen Abstaenden laufen und
|
||
|
Snapshots der Dateisysteme erstellen.
|
||
|
|
||
|
Da es diese Funktion unter FreeBSD so noch nicht gibt, hatte ich mir
|
||
|
gedacht, so ein Script selbst zu bauen. Wie ich dann feststellen durfte,
|
||
|
gibt es bereits eine handvoll Scripte, die genaue diese Aufgabe auf
|
||
|
verschiedene Art und Weise vollbringen.
|
||
|
|
||
|
Da ich aber ohnehin Uebung in Shellscripten brauchte, habe ich es
|
||
|
einfach mal weiter geschrieben und dabei herausgekommen ist ein Script,
|
||
|
welches taegliche, woechentliche, monatliche und jaehrliche Snapshots
|
||
|
erstellen kann. Die Konfiguration wird nicht in ein Config file
|
||
|
geschrieben sondern in Form von Properties direkt auf die ZFS-Partition
|
||
|
geschrieben.
|
||
|
|
||
|
Einzig in der /etc/periodic.conf muss ein Eintrag
|
||
|
`snapshot_zfs_enable="YES"` hinterlegt werden.
|
||
|
|
||
|
Das Script koennt ihr euch [hier](//downloads/zfs_snapshot.sh)
|
||
|
runterladen. Dieses koennt ihr nach
|
||
|
`/usr/local/etc/periodic/daily/900.snapshot_zfs` oder nach
|
||
|
`/etc/periodic/daily/900.snapshot_zfs` entpacken. Wenn in der
|
||
|
`/etc/periodic.conf` der Eintrag fuer snapshots drin ist, dann laeuft
|
||
|
das Script von nun an jeden Tag.
|
||
|
|
||
|
Jetzt koennen wir fuer eine ZFS Partition mal das Snapshot einschalten:
|
||
|
|
||
|
<source:shell>\
|
||
|
\# zfs set org.snap:auto-snapshot=on tank/storage\
|
||
|
\# zfs get org.snap:auto-snapshot\
|
||
|
NAME PROPERTY VALUE SOURCE\
|
||
|
tank/storage org.snap:auto-snapshot on local\
|
||
|
tank/storage/foo org.snap:auto-snapshot on inherited from tank/storage\
|
||
|
</source>
|
||
|
|
||
|
Mit diesen Einstellungen jeden Tag ein Snapshot erstellt, wobei 10
|
||
|
taegliche, 3 woechentliche und 3 monatliche Snapshots aufgehoben werden.
|
||
|
Zusaetzlich gibt es noch die Option fuer jaehrliche Snapshots. Die Zahl
|
||
|
der aufzuhebenden Snapshots laesst sich mit den Properties
|
||
|
`org.snap:keep-daily`, `org.snap:keep-weekly`, `org.snap:keep-monthly`
|
||
|
und `org.snap:keep-yearly` festlegen.
|