JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Guide d'administration Oracle Solaris ZFS
search filter icon
search icon

Informations document

Préface

1.  Système de fichiers Oracle Solaris ZFS (introduction)

2.  Mise en route d'Oracle Solaris ZFS

3.  Différences entre les systèmes de fichiers Oracle Solaris ZFS et classiques

4.  Gestion des pools de stockage Oracle Solaris ZFS

5.  Installation et initialisation d'un système de fichiers racine ZFS Oracle Solaris

6.  Gestion des systèmes de fichiers Oracle Solaris ZFS

7.  Utilisation des instantanés et des clones ZFS Oracle Solaris

Présentation des instantanés ZFS

Création et destruction d'instantanés ZFS

Conservation des clichés ZFS

Renommage d'instantanés ZFS

Affichage et accès des instantanés ZFS

Comptabilisation de l'espace disque des instantanés ZFS

Restauration d'un instantané ZFS

Identification des différences entre des instantanés ZFS (zfs diff)

Présentation des clones ZFS

Création d'un clone ZFS

Destruction d'un clone ZFS

Remplacement d'un système de fichiers ZFS par un clone ZFS

Envoi et réception de données ZFS

Enregistrement de données ZFS à l'aide d'autres produits de sauvegarde

Envoi d'un instantané ZFS

Réception d'un instantané ZFS

Application de différentes valeurs de propriété à un flux d'instantané ZFS

Envoi et réception de flux d'instantanés ZFS complexes

Réplication distante de données ZFS

8.  Utilisation des ACL et des attributs pour protéger les fichiers Oracle Solaris ZFS

9.  Administration déléguée de ZFS dans Oracle Solaris

10.  Rubriques avancées Oracle Solaris ZFS

11.  Dépannage d'Oracle Solaris ZFS et récupération de pool

A.  Descriptions des versions d'Oracle Solaris ZFS

Index

Envoi et réception de données ZFS

La commande zfs send crée une représentation de flux d'un instantané qui est écrite dans la sortie standard. Un flux complet est généré par défaut. Vous pouvez rediriger la sortie vers un fichier ou un système fichier. La commande zfs receive crée un instantané dont le contenu est spécifié dans le flux fourni dans l'entrée standard. En cas de réception d'un flux complet, un système de fichiers est également créé. Ces commandes permettent d'envoyer les données d'instantané ZFS et de recevoir les systèmes de fichiers et les données d'instantané ZFS. Reportez-vous aux exemples de la section suivante.

Les solutions de sauvegarde suivantes sont disponibles pour enregistrer les données ZFS :

Enregistrement de données ZFS à l'aide d'autres produits de sauvegarde

Outre les commandes zfs send et zfs receive, vous pouvez utiliser des utilitaires d'archivage, tels que les commandes tar et cpio pour enregistrer des fichiers ZFS. Ces utilitaires enregistrent et restaurent les attributs de fichiers et les ACL ZFS. Vérifiez les options adéquates des commandes tar et cpio.

Pour connaître les toutes dernières informations relatives à ZFS et aux produits de sauvegarde tiers, consultez les notes de version de Solaris 10 ou la FAQ de ZFS à l'adresse :

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

Envoi d'un instantané ZFS

Vous pouvez utiliser la commande zfs send pour envoyer une copie d'un flux d'instantané et recevoir ce flux dans un autre pool du même système ou dans un autre pool d'un système différent utilisé pour stocker les données de sauvegarde. Par exemple, pour envoyer le flux d'instantané à un pool différent du même système, employez une syntaxe du type suivant :

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

Vous pouvez utiliser zfs recv en tant qu'alias pour la commande zfs receive.

Si vous envoyez le flux de l'instantané à un système différent, envoyez la sortie de la commande zfs send à la commande ssh. Exemple :

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

Lors de l'envoi d'un flux complet, le système de fichiers de destination ne doit pas exister.

Vous pouvez envoyer les données incrémentielles à l'aide de l'option zfs send - i. Exemple :

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

Le premier argument (snap1) correspond à l'instantané le plus ancien, le second (snap2) à l'instantané le plus récent. Dans ce cas, le système de fichiers newtank/dana doit déjà exister pour que la réception incrémentielle s'effectue correctement.

La source de l'instantané1 incrémentiel peut être spécifiée comme étant le dernier composant du nom de l'instantané. Grâce à ce raccourci, il suffit de spécifier le nom après le signe @ pour l'instantané1, qui est considéré comme provenant du même système de fichiers que l'instantané2. Exemple :

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

Cette syntaxe de raccourci est équivalente à la syntaxe incrémentielle de l'exemple précédent.

Le message s'affiche en cas de tentative de génération d'un flux incrémentiel à partir d'un instantané1 provenant d'un autre système de fichiers :

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

Si vous devez stocker de nombreuses copies, envisagez de compresser une représentation de flux d'instantané ZFS à l'aide de la commande gzip. Exemple :

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

Réception d'un instantané ZFS

Gardez les points suivants à l'esprit lorsque vous recevez un instantané d'un système de fichiers :

Exemple :

# 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

Si vous apportez des modifications au système de fichiers de destination et souhaitez effectuer un autre envoi incrémentiel d'instantané, vous devez au préalable restaurer le système de fichiers destinataire.

Voyez l'exemple suivant : Modifiez tout d'abord le système de fichiers comme suit :

host2# rm newtank/dana/file.1

Effectuez ensuite un envoi incrémentiel de char/dana@snap3. Cependant, vous devez d'abord annuler (roll back) le système de fichiers destinataire pour permettre la réception du nouvel instantané incrémentiel. Vous pouvez aussi utiliser l'option -F pour éviter l'étape de restauration. Exemple :

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

Lors de la réception d'un instantané incrémentiel, le système de fichiers de destination doit déjà exister.

Si vous apportez des modifications au système de fichiers sans restaurer le système de fichiers destinataire pour permettre la réception du nouvel instantané incrémentiel, ou si vous ne spécifiez pas l'option -F, un message similaire au message suivant s'affiche :

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

Les vérifications suivantes sont requises pour assurer l'exécution de l'option -F :

Application de différentes valeurs de propriété à un flux d'instantané ZFS

Vous pouvez envoyer un flux d'instantané ZFS avec une certaine valeur de propriété de système de fichiers, mais vous pouvez spécifier une valeur de propriété locale différente lorsque le flux de l'instantané est reçu. Vous pouvez également indiquer que la valeur de propriété d'origine doit être utilisée lorsque le flux d'instantané est reçu pour recréer le système de fichiers d'origine. En outre, vous pouvez désactiver une propriété de système de fichiers lorsque le flux d'instantané est reçu.

Dans certains cas, les propriétés du système de fichiers dans un flux envoyé ne peuvent pas s'appliquer au système de fichiers récepteur ou aux propriétés du système de fichiers local, comme la valeur de propriété mountpoint, et risquent d'interférer avec une restauration.

Par exemple, dans le système de fichiers tank/données, la propriété compression est désactivée. Un instantané du système de fichiers tank/data est envoyé avec des propriétés (option -p) à un pool de sauvegarde et est reçu avec la propriété compression activée.

# 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

Dans l'exemple, la propriété compression est activée lorsque l'instantané est reçu dans bpool. Par conséquent, pour bpool/data, la valeur compression est activée.

Si ce flux d'instantané est envoyé à un nouveau pool, restorepool, à des fins de récupération, vous pouvez être amené à conserver toutes les propriétés de l'instantané d'origine. Dans ce cas, vous devez utiliser la commande zfs send -b pour restaurer les propriétés de l'instantané d'origine. Par exemple :

# 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 

Dans l'exemple, la valeur de compression est off, elle représente la valeur de compression de l'instantané du système de fichiers tank/data d'origine.

Si vous disposez d'une valeur de propriété de système de fichiers local dans un flux d'instantané et que vous souhaitez désactiver la propriété lors de sa réception, utilisez la commande zfs receive -x. Par exemple, la commande suivante envoie un flux d'instantané récursif des systèmes de fichiers du répertoire personnel avec toutes les propriétés de système de fichiers réservées à un pool de sauvegarde, mais sans les valeurs de propriété du quota :

# 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     -      -

Si l'instantané récursif n'a pas été reçu avec l'option -x, la propriété de quota doit être définie dans les systèmes de fichiers reçus.

# 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     -      -

Envoi et réception de flux d'instantanés ZFS complexes

Cette section décrit l'utilisation des options zfs send -I et -R pour envoyer et recevoir des flux d'instantanés plus complexes.

Gardez les points suivants à l'esprit lors de l'envoi et de la réception de flux d'instantanés ZFS complexes :

Exemple 7-1 Envoi et réception de flux d'instantanés ZFS complexes

Plusieurs instantanés incrémentiels peuvent être regroupés en un seul instantané à l'aide de l'option zfs send -I. Exemple :

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

Vous pouvez ensuite supprimer snapB, snapC et snapD.

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

Pour recevoir les instantanés combinés, vous devez utiliser la commande suivante :

# 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  -

Vous pouvez également utiliser la commande zfs send -I pour regrouper un instantané et un clone d'instantané en un nouveau jeu de données. Exemple :

# 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

Vous pouvez utiliser la commande zfs send -R pour répliquer un système de fichiers ZFS et tous ses systèmes de fichiers descendants, jusqu'à l'instantané nommé. Une fois ce flux reçu, les propriétés, instantanés, systèmes de fichiers descendants et clones sont conservés.

Dans l'exemple suivant, des instantanés des systèmes de fichiers utilisateur sont créés. Un flux de réplication de tous les instantanés utilisateur est créé. Les systèmes de fichiers et instantanés d'origine sont ensuite détruits et récupérés.

# 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  -

Dans l'exemple suivant, la commande zfs send -R a été utilisée pour répliquer le jeu de données users et ses descendants, puis envoyer le flux répliqué à un autre pool, users2.

# 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  -

Réplication distante de données ZFS

Les commandes zfs send et zfs recv permettent d'effectuer une copie distante d'une représentation de flux d'instantané d'un système vers un autre. Exemple :

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

Cette commande envoie les données de l'instantané tank/cindy@today et les reçoit dans le système de fichiers sandbox/restfs. La commande suivante crée également un instantané restfs@aujourd'hui sur le système newsys. Dans cet exemple, l'utilisateur a été configuré pour utiliser ssh dans le système distant.