Diese Frage ist kürzlich im Rahmen eines Sicherungsszenario aufgetreten und soll hier kurz in Form einiger Terminalabfragen und -ausgaben erläutert werden.
Ausgangssituation
- ZFS Version 5
- Deduplication deaktiviert
# zfs get dedup stash/install
NAME           PROPERTY  VALUE          SOURCE
stash/install  dedup     off            default
# zfs get version stash/install
NAME           PROPERTY  VALUE    SOURCE
stash/install  version   5        -Test 1: Lokales Umbenennen einer Datei
Eine Datei wird lediglich lokal umbenannt.
# Snapshot erstellen
# zfs snap stash/install@before_rename
# Snapshot anzeigen
# zfs list -t snapshot | grep -E 'NAME|before_rename'
NAME                                                                        USED  AVAIL  REFER  MOUNTPOINT
stash/install@before_rename                                                    0      -  68.1G  -
# Datei verschieben (= umbenennen)
# ls -ahl archlinux-2013.04.01-dual.iso
-rw-rw-r--  1 g  g   506M Apr 23  2013 archlinux-2013.04.01-dual.iso
# mv archlinux-2013.04.01-dual.iso RENAMED_x-2013.04.01-dual.iso
# Snapshot erstellen
# zfs snap stash/install@after_rename
# zfs list -t snapshot | grep -E 'NAME|rename'
NAME                                                                        USED  AVAIL  REFER  MOUNTPOINT
stash/install@before_rename                                                    0      -  68.1G  -
stash/install@after_rename                                                     0      -  68.1G  -Ergebnis: Snapshotgröße bleibt unberührt.
Test 2: Löschen und Wiedereinkopieren über Netzwerk
Eine Datei wird lokal gelöscht und über das Netzwerk (CIFS) wiedereinkopiert.
Dieser Anwendungsfall ist gängig, wenn ZFS als Ziel-Dateisystem für regelmäßige Sicherungen von anderen Netzwerkgeräten eingesetzt wird.
# rm RENAMED_archlinux-2013.04.01-dual.iso
# [an dieser Stelle wurde via Netzwerk einkopiert]
# ls -hal archlinux-2013.04.01-dual.iso 
-rw-------  1 g  g   506M Apr 23  2013 archlinux-2013.04.01-dual.iso
# Snapshot erstellen
# zfs snap stash/install@after_recreation_via_network
# zfs list -t snapshot | grep -E 'NAME|before|after'
NAME                                                                        USED  AVAIL  REFER  MOUNTPOINT
stash/install@before_rename                                                    0      -  68.1G  -
stash/install@after_rename                                                  163K      -  68.1G  -
stash/install@after_recreation_via_network                                     0      -  68.1G  -Ergebnis: Snapshotgröße wächst mit 163K minimal an, anstatt den benötigten Speicherplatz der Datei erneut zu verbrauchen.
