Ein Snapshot erzeugt ein Abbild eines Dateisystems zu einem
gegebenen Zeitpunkt. Dieses Abbild kann mit dump gesichert werden,
während das eigentliche Dateisystem wieder im Produktiveinsatz ist.
Somit werden Ausfallzeiten von Dateisystemen minimiert. Die Erstellung eines Snapshots dauert nicht einmal eine
Sekunde, dabei werden alle datenverändernden Prozesse gestopt, die Blöcke synchronisiert und der Snapshot
erstellt. Anschließend werden die gestopten Prozesse fortgesetzt. Das Dateisystem ist also zur Erstellung des
Snapshots so konsistent wie nach einem gewöhnlichen umount.
Implementiert in NetBSD 2.0, muss im Kernel die Option
pseudo-device fss 4 # file system snapshot device
aktiviert sein und /dev/{r}fss[0-3] existieren, was in
der Standarddistribution der Fall ist.
Um einen Snapshot zu verwenden, muss mit fssconfig(8) das entsprechende Pseudogerät zum
Dateisystem konfiguert werden. Dies geschieht mit:
fssconfig -c fss0 /home /usr/backups/home0.fss
wobei folgende Optionen gelten:
fss0 ist das zu verwendende Pseudogerät
/home ist das Quellverzeichnis
/usr/backups/home0.fss ist eine Datei, in die alle Änderungen am Quellverzeichnis geschrieben werden.
Ist das letzte Argument keine Datei sondern ein Verzeichnis, wird diese nicht erstellt.
Das Quellsystem ist nun zum Zeitpunkt des Snapshots als /dev/fss0 nur lesbar als normales Dateisystem
verfügbar, kann also bspw. gemounted werden. Wird das Quellverzeichnis verändert, bspw. eine Datei
hineinkopiert, wird diese Änderung nicht nach /dev/fss0 durchgeschleift, sondern nach
/usr/backups/home0.fss geschrieben.
fssconfig -vl zeigt alle Pseudogeräte und ihre Konfiguration an.
fssconfig -u fss0 deaktiviert das Pseudogerät, wobei die Datei für die Änderungen zurückbleibt.
Ist /dev/fss0 konfiguriert, kann es ganz normal (aber nur lesbar) eingebunden werden:
mount /dev/fss0 /mnt