Wie kann ich auf den Inhalt eines ZFS-Snapshots zugreifen, ohne die aktuellen Daten zu beeinflussen?

10

Ich habe einen ZFS-Datensatz, der stündliche Schnappschüsse erstellt. Gestern wurden einige der Dateien geändert, die zurückgesetzt werden müssen. Der Datensatz enthält jedoch laufende Änderungen, die nicht rückgängig gemacht werden sollten.

Welche Möglichkeiten habe ich, um auf den Schnappschuss zuzugreifen, ohne die aktuelle Kopie seiner Daten zu stören? Kann ich einen Snapshot im schreibgeschützten Modus an einem neuen Einhängepunkt bereitstellen?

STW
quelle

Antworten:

15

Es ist schon eine Weile her, dass ich mit zfs gespielt habe, aber Sie sollten in der Lage sein, zfs list -t snapshotIhre verfügbaren Snapshots zu finden und auf die Dateien in einem speziellen .zfsVerzeichnis unter Ihrem zfs-Mountpoint zuzugreifen .

[~]# zfs list -t snapshot
NAME                       USED  AVAIL  REFER  MOUNTPOINT
mypool                    1.49G   527M   528M  /mnt/zfspool
mypool@snap1                28K      -   993M  -
mypool@snap2                28K      -   993M  -
mypool@snap3                28K      -   993M  -

[~]# cd /mnt/zfspool/.zfs/snapshot/snap1
[snap1]# ls

IIRC, Snapshots sind bereits schreibgeschützt, daher sollten Versuche, Daten im Snapshot-Verzeichnis zu ändern, fehlschlagen. Wenn sich die Daten in der realen fs ändern, sollte der Snapshot wachsen, da die vorab geänderten Daten kopiert werden, um den Snapshot konsistent zu halten.

Sie müssten zfs cloneden Schnappschuss an einen neuen Speicherort verschieben, damit Sie den Schnappschuss bearbeiten können (an diesem Punkt wäre es nicht mehr der Schnappschuss).

Wie gesagt, es ist schon eine Weile her, also testen Sie zuerst ...

Ref: http://www.googlux.com/zfs-snapshot.html

jimbobmcgee
quelle
3
Ja, ein ZFS-Snapshot ist definitiv schreibgeschützt.
Jlliagre
Vielleicht liegt es daran, dass ich ZFS unter Linux verwende, aber ich sehe den .zfs-Ordner nicht unter dem Mount-Punkt meines Pools
STW
9
@STW - Laut groups.google.com/a/zfsonlinux.org/forum/#!topic/zfs-discuss/… benötigen Sie ZoL 0.6.0rc8 im Kernel> 2.6.37. Laut lists.freebsd.org/pipermail/freebsd-fs/2008-November/… müssen Sie zfs set snapdir=visible /mnt/zfspooles sichtbar machen, aber Sie sollten es nicht benötigen, um auf Ihren Schnappschuss zuzugreifen (dh Sie sollten es cd /mnt/zfspool/.zfs/snapsot/snap1trotzdem können). .
jimbobmcgee
9
@STV Sie werden .zfs nicht sehen, aber Sie können immer noch CD darin. Snapshots werden im übergeordneten Dataset gespeichert, daher muss das übergeordnete Dataset bereitgestellt werden, um auf die .zfs
mikky
@mikky du machst meinen Tag
Alessio