JavaScript is required to for searching.
Navigationslinks �berspringen
Druckansicht beenden
Oracle Solaris ZFS-Administrationshandbuch
search filter icon
search icon

Dokument-Informationen

Vorwort

1.  Oracle Solaris ZFS-Dateisystem (Einführung)

2.  Erste Schritte mit Oracle Solaris ZFS

3.  Unterschiede zwischen Oracle Solaris ZFS und herkömmlichen Dateisystemen

4.  Verwalten von Oracle Solaris ZFS-Speicher-Pools

5.  Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems

6.  Verwalten von Oracle Solaris ZFS-Dateisystemen

7.  Arbeiten mit Oracle Solaris ZFS-Snapshots und -Klonen

Überblick über ZFS-Schnappschüsse

Erstellen und Löschen von ZFS-Schnappschüssen

Aufbewahren von ZFS-Schnappschüssen

Umbenennen von ZFS-Schnappschüssen

Anzeigen von und Zugreifen auf ZFS-Schnappschüsse

Berechnung von Festplattenkapazität für ZFS-Schnappschüsse

Wiederherstellen eines früheren ZFS-Schnappschusses

Ermitteln von ZFS-Schnappschussunterschieden (zfs diff)

Überblick über ZFS-Klone

Erstellen eines ZFS-Klons

Löschen eines ZFS-Klons

Ersetzen eines ZFS-Dateisystems durch einen ZFS-Klon

Senden und Empfangen von ZFS-Daten

Sichern von ZFS-Daten mit anderen Softwarepaketen zur Erstellung von Sicherungskopien

Senden von ZFS-Schnappschüssen

Empfangen von ZFS-Schnappschüssen

Anwenden verschiedener Eigenschaftswerte auf einen ZFS-Schnappschussdatenstrom

Senden und Empfangen komplexer ZFS-Schnappschuss-Datenströme

Replikation von ZFS-Daten über das Netzwerk

8.  Schützen von Oracle Solaris ZFS-Dateien mit Zugriffskontrolllisten und Attributen

9.  Delegierte Oracle Solaris ZFS-Administration

10.  Fortgeschrittene Oracle Solaris ZFS-Themen

11.  Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS

A.  Oracle Solaris ZFS-Versionsbeschreibungen

Index

Überblick über ZFS-Schnappschüsse

Ein Schnappschuss ist eine schreibgeschützte Kopie eines Dateisystems bzw. Volumes. Schnappschüsse können sehr schnell erstellt werden und belegen anfänglich keine zusätzliche Festplattenkapazität im Pool. Mit der Änderung von Daten innerhalb des aktiven Datasets belegt der Schnappschuss jedoch schrittweise mehr Festplattenkapazität, da er Verweise auf die älteren Daten speichert und so ein Löschen dieser Daten verhindert

ZFS-Schnappschüsse besitzen die folgenden Leistungsmerkmale:

Auf Schnappschüsse von Volumes kann nicht direkt zugegriffen werden, aber sie können geklont, als Sicherungskopie gesichert und wiederhergestellt werden. Informationen zum Erstellen von Sicherungskopien für ZFS-Schnappschüsse finden Sie unter Senden und Empfangen von ZFS-Daten.

Erstellen und Löschen von ZFS-Schnappschüssen

Schnappschüsse werden mithilfe des Befehls zfs snapshot erstellt. Diesem wird als einziges Argument der Name des zu erstellenden Schnappschusses übergeben. Der Schnappschussname ist wie folgt anzugeben:

filesystem@snapname
volume@snapname

Der Schnappschussname muss den unter Konventionen für das Benennen von ZFS-Komponenten aufgeführten Benennungskonventionen genügen.

Im folgenden Beispiel wird ein Schnappschuss des Dateisystems tank/home/matt mit dem Namen friday erstellt.

# zfs snapshot tank/home/matt@friday

Mithilfe der Option -r können Sie Schnappschüsse für alle untergeordneten Dateisysteme erstellen. Beispiel:

# zfs snapshot -r tank/home@snap1
# zfs list -t snapshot -r tank/home
zfs list -t snapshot -r tank/home
NAME                   USED  AVAIL  REFER  MOUNTPOINT
tank/home@snap1           0      -    34K  -
tank/home/mark@snap1      0      -  2.00G  -
tank/home/matt@snap1      0      -  1.00G  -
tank/home/tom@snap1       0      -  2.00G  -

Schnappschüsse besitzen keine konfigurierbaren Eigenschaften, und es können für Schnappschüsse auch keine Dataset-Eigenschaften gesetzt werden. Beispiel:

# zfs set compression=on tank/home/matt@friday
cannot set property for 'tank/home/matt@friday': this property can not be modified for snapshots

Schnappschüsse werden mithilfe des Befehls zfs destroy gelöscht. Beispiel:

# zfs destroy tank/home/matt@friday

Ein Dataset kann nicht gelöscht werden, wenn Schnappschüsse dieses Datasets vorhanden sind. Beispiel:

# zfs destroy tank/home/matt
cannot destroy 'tank/home/matt': filesystem has children
use '-r' to destroy the following datasets:
tank/home/matt@tuesday
tank/home/matt@wednesday
tank/home/matt@thursday

Wenn von einem Schnappschuss Klone erstellt wurden, müssen diese zuerst gelöscht werden, bevor das Löschen des Schnappschusses möglich ist.

Weitere Informationen zum Unterbefehl destroy finden Sie unter Löschen eines ZFS-Dateisystems.

Aufbewahren von ZFS-Schnappschüssen

Wenn Sie verschiedene automatische Schnappschuss-Richtlinien verwenden und dadurch ältere Schnappschüsse durch zfs receive gelöscht werden, weil sie nicht mehr auf der Sendeseite vorhanden sind, können Sie die Schnappschuss-Aufbewahrungsfunktion verwenden.

Durch die Aufbewahrung eines Schnappschusses wird verhindert, dass er gelöscht wird. Außerdem ermöglicht diese Funktion das Löschen eines Schnappschusses zusammen mit Klonen in Abhängigkeit von der Entfernung des letzten Klons mithilfe des Befehls zfs destroy -d. Jeder Schnappschuss besitzt eine zugeordnete Benutzerreferenzzählung, die bei Null beginnt. Dieser Wert wird erhöht, wenn ein weiterer Schnappschuss aufbewahrt wird, und verringert, wenn eine Aufbewahrung beendet wird.

In der Vorgängerversion von Oracle Solaris konnte ein Schnappschuss nur dann mithilfe des Befehls zfs destroy gelöscht werden, wenn er keine Klone hatte. In dieser Oracle Solaris-Version muss zudem der Wert der Benutzerreferenzzählung des Schnappschusses auf Null stehen.

Sie können einen Schnappschuss oder eine Gruppe von Schnappschüssen aufbewahren. Anhand der folgenden Syntax wird beispielsweise ein Aufbewahrungs-Tag, keep, für tank/home/cindy/snap@1 gesetzt:

# zfs hold keep tank/home/cindy@snap1

Sie können die Option -r verwenden, um die Schnappschüsse aller untergeordneten Dateisystem rekursiv aufzubewahren. Beispiel:

# zfs snapshot -r tank/home@now
# zfs hold -r keep tank/home@now

Mithilfe dieser Syntax wird eine einzelne Referenz, keep, zu einem Schnappschuss oder einer Gruppe von Schnappschüssen hinzugefügt. Jeder Schnappschuss besitzt einen eigenen Tag-Namensraum. Die Aufbewahrungs-Tags innerhalb dieses Namensraums müssen eindeutig sein. Wenn ein Schnappschuss aufbewahrt wird, kann er nicht mithilfe des Befehls zfs destroy gelöscht werden. Beispiel:

# zfs destroy tank/home/cindy@snap1
cannot destroy 'tank/home/cindy@snap1': dataset is busy

Wenn Sie einen aufbewahrten Schnappschuss löschen möchten, verwenden Sie die Option -d. Beispiel:

# zfs destroy -d tank/home/cindy@snap1

Verwenden Sie den Befehl zfs holds, um eine Liste der aufbewahrten Schnappschüsse anzuzeigen. Beispiel:

# zfs holds tank/home@now
NAME           TAG   TIMESTAMP                 
tank/home@now  keep  Fri May  6 06:34:03 2011 
# zfs holds -r tank/home@now
NAME                 TAG   TIMESTAMP                 
tank/home/cindy@now  keep  Fri May  6 06:34:03 2011  
tank/home/mark@now   keep  Fri May  6 06:34:03 2011  
tank/home/matt@now   keep  Fri May  6 06:34:03 2011  
tank/home/tom@now    keep  Fri May  6 06:34:03 2011  
tank/home@now        keep  Fri May  6 06:34:03 2011 

Sie können den Befehl zfs release verwenden, um einen aufbewahrten Schnappschuss oder eine Gruppe aufbewahrter Schnappschüsse freizugeben. Beispiel:

# zfs release -r keep tank/home@now

Ist ein Schnappschuss freigegeben, kann er mithilfe des Befehls zfs destroy gelöscht werden. Beispiel:

# zfs destroy -r tank/home@now

Zwei neue Eigenschaften liefern Informationen zur Aufbewahrung von Schnappschüssen.

Umbenennen von ZFS-Schnappschüssen

Sie können Schnappschüsse umbenennen. Allerdings müssen Schnappschüsse innerhalb des Pools und Datasets, in dem sie erstellt wurden, umbenannt werden. Beispiel:

# zfs rename tank/home/cindy@snap1 tank/home/cindy@today

Außerdem entspricht die folgende Kurzsyntax der obigen Syntax:

# zfs rename tank/home/cindy@snap1 today

Der folgende Vorgang zum Umbenennen eines Schnappschusses wird nicht unterstützt, da sich Ziel-Pool und -Dateisystem von dem Pool und Dateisystem unterscheiden, in denen der betreffende Schnappschuss erstellt wurde:

# zfs rename tank/home/cindy@today pool/home/cindy@saturday
cannot rename to 'pool/home/cindy@today': snapshots must be part of same 
dataset

Sie können Schnappschüsse mithilfe des Befehls zfs rename - r rekursiv umbenennen. Beispiel:

# zfs list -t snapshot -r users/home
NAME                        USED  AVAIL  REFER  MOUNTPOINT
users/home@now             23.5K      -  35.5K  -
users/home@yesterday           0      -    38K  -
users/home/lori@yesterday      0      -  2.00G  -
users/home/mark@yesterday      0      -  1.00G  -
users/home/neil@yesterday      0      -  2.00G  -
# zfs rename -r users/home@yesterday @2daysago
# zfs list -t snapshot -r users/home
NAME                       USED  AVAIL  REFER  MOUNTPOINT
users/home@now            23.5K      -  35.5K  -
users/home@2daysago           0      -    38K  -
users/home/lori@2daysago      0      -  2.00G  -
users/home/mark@2daysago      0      -  1.00G  -
users/home/neil@2daysago      0      -  2.00G  -

Anzeigen von und Zugreifen auf ZFS-Schnappschüsse

Sie können das Anzeigen von Schnappschusslisten in der zfs list-Ausgabe durch Verwenden der Pool-Eigenschaft listsnapshots aktivieren oder deaktivieren. Diese Eigenschaft ist standardmäßig aktiviert.

Wenn Sie diese Eigenschaft deaktivieren, können Sie Schnappschuss-Informationen mit dem Befehl zfs list -t snapshot anzeigen. Oder aktivieren Sie die Pool-Eigenschaft listsnapshots. Beispiel:

# zpool get listsnapshots tank
NAME  PROPERTY       VALUE      SOURCE
tank  listsnapshots  on        default
# zpool set listsnapshots=off tank
# zpool get listsnapshots tank
NAME  PROPERTY       VALUE      SOURCE
tank  listsnapshots  off         local

Schnappschüsse befinden sich im Verzeichnis .zfs/snapshot des Stammverzeichnisses des Dateisystems. Wenn das Dateisystem tank/home/ahrens beispielsweise in /home/ahrens eingehängt ist, befinden sich die Daten des Schnappschusses tank/home/ahrens@thursday im Verzeichnis /home/ahrens/.zfs/snapshot/thursday .

# ls /tank/home/matt/.zfs/snapshot
tuesday wednesday thursday

Schnappschüsse können wie folgt angezeigt werden:

# zfs list -t snapshot -r tank/home
NAME                       USED  AVAIL  REFER  MOUNTPOINT
tank/home/cindy@today         0      -  2.00G  -
tank/home/mark@today          0      -  2.00G  -
tank/home/matt@tuesday      20K      -  1.00G  -
tank/home/matt@wednesday    20K      -  1.00G  -
tank/home/matt@thursday       0      -  1.00G  -

Schnappschüsse, die für ein bestimmtes Dateisystem erstellt wurden, können wie folgt angezeigt werden:

# zfs list -r -t snapshot -o name,creation tank/home
NAME                      CREATION
tank/home/cindy@today     Fri May  6  6:32 2011
tank/home/mark@today      Fri May  6  6:22 2011
tank/home/matt@tuesday    Tue May  3  6:27 2011
tank/home/matt@wednesday  Wed May  4  6:28 2011
tank/home/matt@thursday   Thu May  5  6:28 2011

Berechnung von Festplattenkapazität für ZFS-Schnappschüsse

Nach der Erstellung eines Schnappschusses wird dessen Festplattenkapazität anfänglich vom Schnappschuss und vom Dateisystem (sowie eventuell von früheren Schnappschüssen) gemeinsam genutzt. Wenn sich ein Dateisystem mit der Zeit ändert, wird gemeinsam genutzte Festplattenkapazität dann nur noch vom Schnappschuss belegt und in die Berechnung des vom Schnappschuss belegten Speicherplatzes (Eigenschaft used) einbezogen. Darüber hinaus kann durch das Löschen von Schnappschüssen die Festplattenkapazität, die Schnappschüssen eindeutig zugewiesen ist (und deswegen in der Eigenschaft used angegeben ist und somit belegt wird), größer werden.

Der Eigenschaftswert referenced des Speicherlatzes eines Schnappschusses entspricht dem des Dateisystems zum Zeitpunkt der Erstellung dieses Schnappschusses.

Sie können zusätzliche Informationen darüber erhalten, wie die Werte der Eigenschaft used belegt werden. Neue schreibgeschützte Dateisystem-Eigenschaften beschreiben die Belegung von Festplattenkapazität für Klone, Dateisysteme und Volumes. Beispiel:

$ zfs list -o space -r rpool
NAME                       AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
rpool                      59.1G  7.84G       21K    109K              0      7.84G
rpool@snap1                    -    21K         -       -              -          -
rpool/ROOT                 59.1G  4.78G         0     31K              0      4.78G
rpool/ROOT@snap1               -      0         -       -              -          -
rpool/ROOT/zfsBE           59.1G  4.78G     15.6M   4.76G              0          0
rpool/ROOT/zfsBE@snap1         -  15.6M         -       -              -          -
rpool/dump                 59.1G  1.00G       16K   1.00G              0          0
rpool/dump@snap1               -    16K         -       -              -          -
rpool/export               59.1G    99K       18K     32K              0        49K
rpool/export@snap1             -    18K         -       -              -          -
rpool/export/home          59.1G    49K       18K     31K              0          0
rpool/export/home@snap1        -    18K         -       -              -          -
rpool/swap                 61.2G  2.06G         0     16K          2.06G          0
rpool/swap@snap1               -      0         -       -              -          -

Eine Beschreibung dieser Eigenschaften können Sie Tabelle 6-1 entnehmen.

Wiederherstellen eines früheren ZFS-Schnappschusses

Mit dem Befehl zfs rollback können Sie alle Änderungen rückgängig machen, die seit der Erstellung eines bestimmten Schnappschusses an einem Dateisystem vorgenommen wurden. Im Dateisystem wird der Zustand zum Zeitpunkt der Erstellung des betreffenden Schnappschusses wiederhergestellt. Standardmäßig stellt dieser Befehl stets den Zustand des zuletzt gemachten Schnappschusses wieder her.

Damit das Dateisystem im Zustand eines früheren Schnappschusses wiederhergestellt werden kann, müssen alle dazwischen liegenden Schnappschusses gelöscht werden. Frühere Schnappschüsse können mithilfe der Option -r gelöscht werden.

Wenn Klone dazwischen liegender Schnappschüsse vorhanden sind, müssen auch diese Klone mithilfe der Option -R gelöscht werden.


Hinweis - Das Dateisystem, dessen früherer Zustand wiederhergestellt werden soll, wird aus- und wieder eingehängt, wenn es gerade eingehängt ist. Wenn das betreffende Dateisystem nicht ausgehängt werden kann, schlägt die Wiederherstellung des früheren Zustands fehl. Die Option -f erzwingt bei Bedarf das Aushängen des Dateisystems.


Im folgenden Beispiel wird das Dateisystem tank/home/ahrens auf den Schnappschuss mit dem Namen tuesday zurückgesetzt:

# zfs rollback tank/home/matt@tuesday
cannot rollback to 'tank/home/matt@tuesday': more recent snapshots exist
use '-r' to force deletion of the following snapshots:
tank/home/matt@wednesday
tank/home/matt@thursday
# zfs rollback -r tank/home/matt@tuesday

In diesem Beispiel wurden die Schnappschüsse wednesday und thursday gelöscht, da Sie den Zustand des davor liegenden Schnappschusses tuesday wiederhergestellt haben.

# zfs list -r -t snapshot -o name,creation tank/home/matt
NAME                    CREATION
tank/home/matt@tuesday  Tue May  3  6:27 2011

Ermitteln von ZFS-Schnappschussunterschieden (zfs diff)

Sie können ZFS-Schnappschussunterschiede mithilfe des Befehls zfs diff ermitteln.

Beispielsweise werden folgende zwei Schnappschüsse erstellt:

$ ls /tank/home/tim
fileA
$ zfs snapshot tank/home/tim@snap1
$ ls /tank/home/tim
fileA  fileB
$ zfs snapshot tank/home/tim@snap2

Um beispielsweise die Unterschiede zwischen zwei Schnappschüssen zu ermitteln, verwenden Sie folgende Syntax:

$ zfs diff tank/home/tim@snap1 tank/home/timh@snap2
M       /tank/home/tim/
+       /tank/home/tim/fileB

In der Ausgabe gibt M an, dass das Verzeichnis geändert wurde. Das + gibt an, dass fileB im späteren Schnappschuss vorhanden ist.

Das R in der folgenden Ausgabe gibt an, dass eine Datei in einem Schnappschuss umbenannt wurde.

$ mv /tank/cindy/fileB /tank/cindy/fileC
$ zfs snapshot tank/cindy@snap2
$ zfs diff tank/cindy@snap1 tank/cindy@snap2
M       /tank/cindy/
R       /tank/cindy/fileB -> /tank/cindy/fileC

In der folgenden Tabelle werden die vom Befehl zfs diff ermittelten Datei- oder Verzeichnisänderungen zusammengefasst.

Datei- oder Verzeichnisänderung
Kennung
Datei oder Verzeichnis bzw. Verknüpfung von Datei oder Verzeichnis wurde geändert
M
Datei oder Verzeichnis ist im älteren Schnappschuss vorhanden, nicht aber im neueren
Datei oder Verzeichnis ist im neueren Schnappschuss vorhanden, nicht aber im älteren
+
Datei oder Verzeichnis wurde umbenannt
R

Weitere Informationen finden Sie in der Manpage zfs(1M).