Oracle Solaris ZFS-Administrationshandbuch

Senden und Empfangen komplexer ZFS-Snapshot-Datenströme

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

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


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

Eine Gruppe inkrementeller Snapshots lässt sich mithilfe von zfs send und der Option -I zu einem Snapshot 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 Snapshot 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 Snapshot und einen Klon-Snapshot 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 Snapshot replizieren. Nach dem Empfang dieses Datenstroms werden alle Eigenschaften, Snapshots, abhängigen Dateisysteme und Klone beibehalten.

Im folgenden Beispiel werden Snapshots für Benutzerdateisysteme erstellt. Es wird ein Replikationsdatenstrom für alle Benutzer-Snapshots erstellt. Anschließend werden die ursprünglichen Dateisysteme und Snapshots 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 Snapshot tank/cindy@today gesendet und vom Dateisystem sandbox/restfs empfangen. Außerdem wird ein restfs@today-Snapshot für das System newsys erstellt. In diesem Beispiel wird auf dem entfernten System ssh verwendet.