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

Senden und Empfangen von ZFS-Daten

Der Befehl zfs send erstellt von Schnappschüssen Datenstrominstanzen, die auf die Standardausgabe geschrieben werden. Standardmäßig wird ein vollständiger Datenstrom erzeugt. Sie können die Ausgabe in eine Datei oder ein anderes Dateisystem umleiten. Der Befehl zfs receive erstellt einen Schnappschuss, dessen Inhalt in einem Datenstrom auf der Standardeingabe angegeben wird. Wenn ein vollständiger Datenstrom gelesen wurde, wird ein neues Dateisystem erstellt. Mit diesen Befehlen können Sie ZFS-Schnappschussdaten senden und ZFS-Schnappschussdaten und Dateisysteme empfangen. Siehe hierzu die Beispiele im nachfolgenden Abschnitt.

Die folgenden Lösungen zum Sichern von ZFS-Daten stehen zur Verfügung:

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

Neben den Befehlen zfs send und zfs receive können Sie zum Sichern von ZFS-Dateien auch Archivierungsdienstprogramme wie z. B. tar und cpio verwenden. Diese Dienstprogramme sichern ZFS-Dateiattribute und -Zugriffskontrolllisten und können diese auch wiederherstellen. Überprüfen Sie die entsprechenden Optionen der Befehle tar und cpio.

Aktuelle Informationen zu Problemen im Zusammenhang mit ZFS und Sicherungssoftware von Drittherstellern finden Sie in den Solaris 10-Versionshinweisen oder den ZFS FAQs unter:

http://hub.opensolaris.org/bin/view/Community+Group+zfs/faq/#backupsoftware

Senden von ZFS-Schnappschüssen

Der Befehl zfs send dient zum Senden der Kopie eines Schnappschuss-Datenstroms und zum Empfangen des Schnappschuss-Datenstroms in einem anderen Pool auf demselben System oder in einem anderen Pool auf einem anderen System, das zur Aufbewahrung von Sicherungsdaten verwendet wird. Zum Senden des Schnappschuss-Datenstroms an einen anderen Pool auf demselben System verwenden Sie beispielsweise folgende Syntax:

# zfs send tank/dana@snap1 | zfs recv spool/ds01

Sie können zfs recv als Aliasnamen für den Befehl zfs receive verwenden.

Wenn Sie den Schnappschuss-Datenstrom an ein anderes System senden, setzen Sie für die Ausgabe von zfs send mit dem Befehl ssh eine Pipeline. Beispiel:

host1# zfs send tank/dana@snap1 | ssh host2 zfs recv newtank/dana

Wenn Sie einen vollständige Datenstrom senden, darf das Zieldateisystem nicht vorhanden sein.

Sie können inkrementelle Daten mit der Option i des Befehls -zfs send senden. Beispiel:

host1# zfs send -i tank/dana@snap1 tank/dana@snap2 | ssh host2 zfs recv newtank/dana

Bitte beachten Sie, dass das erste Argument (snap1) der frühere und das zweite Argument (snap2) der spätere Schnappschuss ist. In diesem Fall muss das Dateisystem newtank/dana bereits vorhanden sein, damit die inkrementellen Daten empfangen werden können.

Die inkrementelle Quelle snap1 kann als letzte Komponente des Schnappschussnamens angegeben werden. Dies bedeutet, dass Sie nach dem Zeichen @ für snap1 nur den Namen angeben müssen, von dem angenommen wird, dass er zum gleichen System wie snap2 gehört. Beispiel:

host1# zfs send -i snap1 tank/dana@snap2 > ssh host2 zfs recv newtank/dana

Diese Kurzsyntax entspricht der im vorherigen Beispiel demonstrierten inkrementellen Syntax.

Die folgende Meldung wird angezeigt, wenn Sie versuchen, aus einem anderen Dateisystem (snapshot1) einen inkrementellen Datenstrom zu erzeugen.

cannot send 'pool/fs@name': not an earlier snapshot from the same fs

Wenn mehrere Kopien gespeichert werden sollen, kann eine Komprimierung der Datenstrominstanz des ZFS-Schnappschusses mithilfe des Befehls gzip nützlich sein. Beispiel:

# zfs send pool/fs@snap | gzip > backupfile.gz

Empfangen von ZFS-Schnappschüssen

Beim Empfangen von Datensystem-Schnappschüssen sollten Sie folgenden wichtigen Punkte beachten:

Beispiel:

# zfs send tank/gozer@0830 > /bkups/gozer.083006
# zfs receive tank/gozer2@today < /bkups/gozer.083006
# zfs rename tank/gozer tank/gozer.old
# zfs rename tank/gozer2 tank/gozer

Wenn Sie am Zieldateisystem eine Änderung vornehmen und danach einen weiteren inkrementellen Schnappschuss senden möchten, müssen Sie zunächst den vorherigen Zustand des Zieldateisystems wiederherstellen.

Betrachten wir das folgende Beispiel. Zunächst ändern Sie das Dateisystem wie folgt:

host2# rm newtank/dana/file.1

Dann senden Sie einen weiteren inkrementellen Schnappschuss (tank/dana@snap3). Sie müssen jedoch erst den vorherigen Zustand des Zieldateisystems wiederherstellen, damit es den neuen inkrementellen Schnappschuss empfangen kann. Sie können den Wiederherstellungsschritt aber auch mithilfe der Option -F überspringen. Beispiel:

host1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh host2 zfs recv -F newtank/dana

Beim Empfang eines inkrementellen Schnappschusses muss das Zieldateisystem bereits vorhanden sein.

Wenn Sie am Dateisystem Änderungen vornehmen und den vorherigen Zustand des Zieldateisystems nicht wiederherstellen, sodass es den neuen inkrementellen Schnappschusses empfangen kann, oder Sie die Option -F nicht verwenden, wird eine Meldung wie die folgende angezeigt:

host1# zfs send -i tank/dana@snap4 tank/dana@snap5 | ssh host2 zfs recv newtank/dana
cannot receive: destination has been modified since most recent snapshot

Bevor das Ausführen der Option -F als erfolgreich gemeldet wird, werden die folgenden Überprüfungen durchgeführt:

Anwenden verschiedener Eigenschaftswerte auf einen ZFS-Schnappschussdatenstrom

Sie können einen ZFS-Schnappschussdatenstrom mit einem bestimmten Dateisystem-Eigenschaftswert senden, aber auch einen anderen lokalen Eigenschaftswert angeben, wenn der Schnappschussdatenstrom empfangen wird. Alternativ können Sie ebenfalls festlegen, dass der ursprüngliche Eigenschaftswert beim Empfang des Schnappschussdatenstroms verwendet wird, um das ursprüngliche Dateisystem neu zu erstellen. Außerdem besteht die Möglichkeit, eine Dateisystemeigenschaft zu deaktivieren, wenn der Schnappschussdatenstrom empfangen wird.

In einigen Fällen kann es vorkommen, dass Dateisystemeigenschaften in einem gesendeten Datenstrom nicht für das empfangene Dateisystem übernommen werden, oder lokale Dateisystemeigenschaften, wie z. B. der Eigenschaftswert mountpoint, zu Problemen mit einer Wiederherstellung führen.

Für das Dateisystem tank/data ist beispielsweise die Eigenschaft compression deaktiviert. Ein Schnappschuss des Dateisystems tank/data wird mit Eigenschaften (Option -p) an einen Sicherungs-Pool gesendet und mit aktivierter Eigenschaft compression empfangen.

# zfs get compression tank/data
NAME       PROPERTY     VALUE     SOURCE
tank/data  compression  off       default
# zfs snapshot tank/data@snap1
# zfs send -p tank/data@snap1 | zfs recv -o compression=on -d bpool
# zfs get -o all compression bpool/data
NAME        PROPERTY     VALUE     RECEIVED  SOURCE
bpool/data  compression  on        off       local

In diesem Beispiel wird die Eigenschaft compression aktiviert, wenn der Schnappschuss in bpool empfangen wird. Demzufolge ist der Wert von compression für bpool/data aktiviert.

Wird dieser Schnappschussdatenstrom an einen neuen Pool (restorepool) gesendet, möchten Sie eventuell aus Gründen der Wiederherstellung alle ursprünglichen Schnappschusseigenschaften beibehalten. In diesem Fall müssten Sie den Befehl zfs send -b verwenden, um die ursprünglichen Schnappschusseigenschaften wiederherzustellen. Beispiel:

# zfs send -b bpool/data@snap1 | zfs recv -d restorepool
# zfs get -o all compression restorepool/data
NAME              PROPERTY     VALUE     RECEIVED  SOURCE
restorepool/data  compression  off       off       received 

In diesem Beispiel ist der Komprimierungswert off. Dieser stellt den Wert für die Schnappschusskomprimierung aus dem ursprünglichen tank/data-Dateisystem dar.

Wenn Sie bei einem lokalen Dateisystem-Eigenschaftswert in einem Schnappschussdatenstrom möchten, dass die Eigenschaft beim Empfang deaktiviert ist, verwenden Sie den Befehl zfs receive -x. Der folgende Befehl sendet beispielsweise einen rekursiven Schnappschussdatenstrom von Dateisystemen für Home-Verzeichnisse mit allen für einen Sicherungs-Pool reservierten Dateisystemeigenschaften, aber ohne die Eigenschaftswerte für das Kontingent:

# zfs send -R tank/home@snap1 | zfs recv -x quota bpool/home
# zfs get -r quota bpool/home
NAME                   PROPERTY  VALUE  SOURCE
bpool/home             quota     none   local
bpool/home@snap1       quota     -      -
bpool/home/lori        quota     none   default
bpool/home/lori@snap1  quota     -      -
bpool/home/mark        quota     none   default
bpool/home/mark@snap1  quota     -      -

Wenn der rekursive Schnappschuss nicht mit der Option -x empfangen wurde, werden die Kontingenteigenschaften in den empfangenen Dateisystemen festgelegt.

# zfs send -R tank/home@snap1 | zfs recv bpool/home
# zfs get -r quota bpool/home
NAME                   PROPERTY  VALUE  SOURCE
bpool/home             quota     none   received
bpool/home@snap1       quota     -      -
bpool/home/lori        quota     10G    received
bpool/home/lori@snap1  quota     -      -
bpool/home/mark        quota     10G    received
bpool/home/mark@snap1  quota     -      -

Senden und Empfangen komplexer ZFS-Schnappschuss-Datenströme

In diesem Abschnitt wird das Senden und Empfangen komplexerer Schnappschuss-Datenströme mit den Befehlen zfs send -I und -R beschrieben.

Beachten Sie beim Senden und Empfangen von komplexen ZFS-Schnappschuss-Datenströmen Folgendes:

Beispiel 7-1 Senden und Empfangen komplexer ZFS-Schnappschuss-Datenströme

Eine Gruppe inkrementeller Schnappschüsse lässt sich mithilfe von zfs send und der Option -I zu einem Schnappschuss kombinieren. Beispiel:

# zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@all-I

Anschließend entfernen Sie snapB, snapC und snapD.

# zfs destroy pool/fs@snapB
# zfs destroy pool/fs@snapC
# zfs destroy pool/fs@snapD

Um den kombinierten Schnappschuss zu empfangen, verwenden Sie den folgenden Befehl.

# zfs receive -d -F pool/fs < /snaps/fs@all-I
# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
pool                      428K  16.5G    20K  /pool
pool/fs                    71K  16.5G    21K  /pool/fs
pool/fs@snapA              16K      -  18.5K  -
pool/fs@snapB              17K      -    20K  -
pool/fs@snapC              17K      -  20.5K  -
pool/fs@snapD                0      -    21K  -

Außerdem können Sie mit zfs send -I einen Schnappschuss und einen Klon-Schnappschuss zu einem kombinierten Dataset verbinden. Beispiel:

# zfs create pool/fs
# zfs snapshot pool/fs@snap1
# zfs clone pool/fs@snap1 pool/clone
# zfs snapshot pool/clone@snapA
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I
# zfs destroy pool/clone@snapA
# zfs destroy pool/clone
# zfs receive -F pool/clone < /snaps/fsclonesnap-I

Mit dem Befehl zfs send -R können Sie ein ZFS-Dateisystem und alle untergeordneten Dateisysteme bis hin zum benannten Schnappschuss replizieren. Nach dem Empfang dieses Datenstroms werden alle Eigenschaften, Schnappschüsse, abhängigen Dateisysteme und Klone beibehalten.

Im folgenden Beispiel werden Schnappschüsse für Benutzerdateisysteme erstellt. Es wird ein Replikationsdatenstrom für alle Benutzer-Schnappschüsse erstellt. Anschließend werden die ursprünglichen Dateisysteme und Schnappschüsse gelöscht und wiederhergestellt.

# zfs snapshot -r users@today
# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
users               187K  33.2G    22K  /users
users@today            0      -    22K  -
users/user1          18K  33.2G    18K  /users/user1
users/user1@today      0      -    18K  -
users/user2          18K  33.2G    18K  /users/user2
users/user2@today      0      -    18K  -
users/user3          18K  33.2G    18K  /users/user3
users/user3@today      0      -    18K  -
# zfs send -R users@today > /snaps/users-R
# zfs destroy -r users
# zfs receive -F -d users < /snaps/users-R
# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
users               196K  33.2G    22K  /users
users@today            0      -    22K  -
users/user1          18K  33.2G    18K  /users/user1
users/user1@today      0      -    18K  -
users/user2          18K  33.2G    18K  /users/user2
users/user2@today      0      -    18K  -
users/user3          18K  33.2G    18K  /users/user3
users/user3@today      0      -    18K  -

Im folgenden Beispiel wird der Befehl zfs send -R verwendet, um das Dataset users und seine untergeordneten Objekte zu replizieren und den replizierten Datenstrom an einen anderen Pool, users2, zu senden.

# zfs create users2 mirror c0t1d0 c1t1d0
# zfs receive -F -d users2 < /snaps/users-R
# zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
users                224K  33.2G    22K  /users
users@today             0      -    22K  -
users/user1           33K  33.2G    18K  /users/user1
users/user1@today     15K      -    18K  -
users/user2           18K  33.2G    18K  /users/user2
users/user2@today       0      -    18K  -
users/user3           18K  33.2G    18K  /users/user3
users/user3@today       0      -    18K  -
users2               188K  16.5G    22K  /users2
users2@today            0      -    22K  -
users2/user1          18K  16.5G    18K  /users2/user1
users2/user1@today      0      -    18K  -
users2/user2          18K  16.5G    18K  /users2/user2
users2/user2@today      0      -    18K  -
users2/user3          18K  16.5G    18K  /users2/user3
users2/user3@today      0      -    18K  -

Replikation von ZFS-Daten über das Netzwerk

Mit den Befehlen zfs send und zfs recv können Sie eine Datenstrominstanz über das Netzwerk von einem System auf ein anderes kopieren. Beispiel:

# zfs send tank/cindy@today | ssh newsys zfs recv sandbox/restfs@today

Mithilfe des Befehls wird der Schnappschuss tank/cindy@today gesendet und vom Dateisystem sandbox/restfs empfangen. Außerdem wird ein restfs@today-Schnappschuss für das System newsys erstellt. In diesem Beispiel wird auf dem entfernten System ssh verwendet.