JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Administration d'Oracle Solaris 11.1 : Systèmes de fichiers ZFS     Oracle Solaris 11.1 Information Library (Français)
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.  Gestion des pools de stockage Oracle Solaris ZFS

4.  Gestion des composants du pool root ZFS

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

6.  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

Reconnaissance des flux d'instantané ZFS

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

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

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

9.  Rubriques avancées Oracle Solaris ZFS

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

11.  Archivage des instantanés et récupération du pool root

12.  Pratiques recommandées pour Oracle Solaris ZFS

A.  Descriptions des versions d'Oracle Solaris ZFS

Index

Présentation des instantanés ZFS

Un instantané est une copie en lecture seule d'un système de fichiers ou d'un volume. La création des instantanés est quasiment immédiate. Initialement, elle ne consomme pas d'espace disque supplémentaire au sein du pool. Toutefois, à mesure que les données contenues dans le jeu de données actif changent, l'instantané consomme de l'espace disque en continuant à faire référence aux anciennes données et empêche donc la libération de l'espace disque.

Les instantanés ZFS présentent les caractéristiques suivantes :

Il n'est pas possible d'accéder directement aux instantanés de volumes, mais ils peuvent être clonés, sauvegardés, restaurés, etc. Pour plus d'informations sur la sauvegarde d'un instantané ZFS, reportez-vous à la section Envoi et réception de données ZFS.

Création et destruction d'instantanés ZFS

Les instantanés sont créés à l'aide de la commande zfs snapshot ou zfs snap, qui accepte comme unique argument le nom de l'instantané à créer. Le nom de l'instantané est spécifié comme suit :

filesystem@snapname
volume@snapname

Ce nom doit respecter les conventions d'attribution de nom définies à la section Exigences d'attribution de noms de composants ZFS.

Dans l'exemple suivant, un instantané de tank/home/cindy nommé friday est créé.

# zfs snapshot tank/home/cindy@friday

Vous pouvez créer des instantanés pour tous les systèmes de fichiers descendants à l'aide de l'option -r. Par exemple :

# zfs snapshot -r tank/home@snap1
# zfs list -t snapshot -r tank/home
NAME                   USED  AVAIL  REFER  MOUNTPOINT
tank/home@snap1           0      -  2.11G  -
tank/home/cindy@snap1     0      -   115M  -
tank/home/lori@snap1      0      -  2.00G  -
tank/home/mark@snap1      0      -  2.00G  -
tank/home/tim@snap1       0      -  57.3M  -

Les propriétés des instantanés ne sont pas modifiables. Les propriétés des jeux de données ne peuvent pas être appliquées à un instantané. Par exemple :

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

La commande zfs destroy permet de détruire les instantanés. Par exemple :

# zfs destroy tank/home/cindy@friday

La destruction d'un jeu de données est impossible s'il existe des instantanés du jeu de données. Par exemple :

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

En outre, si des clones ont été créés à partir d'un instantané, ils doivent être détruits avant que l'instantané ne puisse être détruit.

Pour plus d'informations sur la sous-commande destroy, reportez-vous à la section Destruction d'un système de fichiers ZFS.

Conservation des clichés ZFS

Si vous disposez de plusieurs stratégies automatiques pour les instantanés pour que l'instantané le plus ancien soit par exemple détruit par la commande zfs receive car il n'existe plus du côté de l'envoi, vous pouvez utiliser la fonction de conservation des instantanés.

La conservation d'un instantané empêche sa destruction. En outre, cette fonction permet de supprimer un instantané contenant des clones en attendant la suppression du dernier clone à l'aide de la commande zfs destroy -d. Chaque instantané est associé à un décompte de référence utilisateur initialisé sur 0 (zéro). Ce nombre augmente de 1 à chaque fois qu'un instantané est conservé et diminue de 1 à chaque fois qu'un instantané conservé est libéré.

Dans la version précédente d'Oracle Solaris, les instantanés pouvaient uniquement être détruits à l'aide de la commande zfs destroy s'ils ne contenaient aucun clone. Dans cette version d'Oracle Solaris, les instantanés doivent également renvoyer un décompte de référence utilisateur égal à 0 (zéro).

Vous pouvez conserver un instantané ou un jeu d'instantanés. Par exemple, la syntaxe suivante insère une balise de conservation keep sur citerne/home/cindys/snap@1  :

# zfs hold keep tank/home/cindy@snap1

Vous pouvez utiliser l'option -r pour conserver récursivement les instantanés de tous les systèmes de fichiers descendants. Par exemple :

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

Cette syntaxe permet d'ajouter une référence keep unique à cet instantané ou à ce jeu d'instantanés. Chaque instantané possède son propre espace de noms de balise dans lequel chaque balise de conservation doit être unique. Si un instantané est conservé, les tentatives de destruction de ce dernier à l'aide de la commande zfs destroy échoueront. Par exemple :

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

Pour détruire un instantané conservé, utilisez l'option -d. Par exemple :

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

Utilisez la commande zfs holds pour afficher la liste des instantanés conservés. Par exemple :

# zfs holds tank/home@now
NAME           TAG   TIMESTAMP                 
tank/home@now  keep  Fri Aug  3 15:15:53 2012  
# zfs holds -r tank/home@now
NAME                 TAG   TIMESTAMP                 
tank/home/cindy@now  keep  Fri Aug  3 15:15:53 2012  
tank/home/lori@now   keep  Fri Aug  3 15:15:53 2012  
tank/home/mark@now   keep  Fri Aug  3 15:15:53 2012  
tank/home/tim@now    keep  Fri Aug  3 15:15:53 2012  
tank/home@now        keep  Fri Aug  3 15:15:53 2012  

Vous pouvez utiliser la commande zfs release pour libérer un instantané ou un jeu d'instantanés conservé. Par exemple :

# zfs release -r keep tank/home@now

Si l'instantané est libéré, l'instantané peut être détruit à l'aide de la commande zfs destroy. Par exemple :

# zfs destroy -r tank/home@now

Deux nouvelles propriétés permettent d'identifier les informations de conservation d'un instantané :

Renommage d'instantanés ZFS

Vous pouvez renommer les instantanés. Cependant, ils doivent rester dans le même pool et dans le même jeu de données dans lequel il ont été créés. Par exemple :

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

En outre, la syntaxe de raccourci suivante est équivalente à la syntaxe précédente :

# zfs rename tank/home/cindy@snap1 today

L'opération de renommage (rename) d'instantané n'est pas prise en charge, car le nom du pool cible et celui du système de fichiers ne correspondent pas au pool et au système de fichiers dans lesquels l'instantané a été créé :

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

Vous pouvez renommer de manière récursive les instantanés à l'aide de la commande zfs rename - r. Par exemple :

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

Affichage et accès des instantanés ZFS

Par défaut, les instantanés ne sont plus affichés dans la sortie zfs list. Vous devez utiliser la commande zfs list -t snapshot pour afficher les informations relatives aux instantanés. Ou activez la propriété de pool listsnapshots. Par exemple :

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

Les instantanés des systèmes de fichiers sont accessibles dans le répertoire .zfs/snapshot au sein du root du système de fichiers. Par exemple, si tank/home/cindy est monté sur /home/cindy, les données de l'instantané de tank/home/cindy@thursday sont accessibles dans le répertoire /home/cindy/.zfs/snapshot/thursday.

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

Vous pouvez répertorier les instantanés comme suit :

# zfs list -t snapshot -r tank/home
NAME                       USED  AVAIL  REFER  MOUNTPOINT
tank/home/cindy@tuesday     45K      -  2.11G  -
tank/home/cindy@wednesday   45K      -  2.11G  -
tank/home/cindy@thursday      0      -  2.17G  -

Vous pouvez répertorier les instantanés qui ont été créés pour un système de fichiers particulier comme suit :

# zfs list -r -t snapshot -o name,creation tank/home
NAME                       CREATION
tank/home/cindy@tuesday    Fri Aug  3 15:18 2012
tank/home/cindy@wednesday  Fri Aug  3 15:19 2012
tank/home/cindy@thursday   Fri Aug  3 15:19 2012
tank/home/lori@today       Fri Aug  3 15:24 2012
tank/home/mark@today       Fri Aug  3 15:24 2012

Comptabilisation de l'espace disque des instantanés ZFS

Lors de la création d'un instantané, son espace disque est initialement partagé entre l'instantané et le système de fichiers et éventuellement avec des instantanés précédents. Lorsque le système de fichiers change, l'espace disque précédemment partagé devient dédié à l'instantané, et il est compté dans la propriété used de l'instantané. De plus, la suppression d'instantanés peut augmenter la quantité d'espace disque dédié à d'autres instantanés (et, par conséquent, utilisé par ceux-ci).

La valeur de la propriété referenced de l'espace d'un instantané est la même que lors de la création de l'instantané sur le système de fichiers.

Vous pouvez identifier des informations supplémentaires sur la façon dont les valeurs de la propriété used sont utilisées. Les nouvelles propriétés de système de fichiers en lecture seule décrivent l'utilisation de l'espace disque pour les clones, les systèmes de fichiers et les volumes. Par exemple :

$ zfs list -o space -r rpool
NAME                      AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
rpool                      124G  9.57G         0    302K              0      9.57G
rpool/ROOT                 124G  3.38G         0     31K              0      3.38G
rpool/ROOT/solaris         124G  20.5K         0       0              0      20.5K
rpool/ROOT/solaris/var     124G  20.5K         0   20.5K              0          0
rpool/ROOT/solaris-1       124G  3.38G     66.3M   3.14G              0       184M
rpool/ROOT/solaris-1/var   124G   184M     49.9M    134M              0          0
rpool/VARSHARE             124G  39.5K         0   39.5K              0          0
rpool/dump                 124G  4.12G         0   4.00G           129M          0
rpool/export               124G    63K         0     32K              0        31K
rpool/export/home          124G    31K         0     31K              0          0
rpool/swap                 124G  2.06G         0   2.00G          64.7M          0

Pour une description de ces propriétés, reportez-vous au Tableau 5-1.

Restauration d'un instantané ZFS

Vous pouvez utiliser la commande zfs rollback pour abandonner toutes les modifications apportées à un système de fichiers depuis la création d'un instantané spécifique. Le système de fichiers revient à l'état dans lequel il était lors de la prise de l'instantané. Par défaut, la commande ne permet pas de restaurer un instantané autre que le plus récent.

Pour restaurer un instantané précédent, tous les instantanés intermédiaires doivent être détruits. Vous pouvez détruire les instantanés précédents en spécifiant l'option -r.

S'il existe des clones d'un instantané intermédiaire, vous devez spécifier l'option -R pour détruire également les clones.


Remarque - Si le système de fichiers que vous souhaitez restaurer est actuellement monté, il doit être démonté, puis remonté. Si le système de fichiers ne peut pas être démonté, la restauration échoue. L'option -f force le démontage du système de fichiers, le cas échéant.


Dans l'exemple suivant, l'état du système de fichiers tank/home/cindy correspondant à l'instantané tuesday est restauré.

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

Dans cet exemple, les instantanés wednesday et thursday sont détruits en raison de la restauration de l'instantané tuesday précédent.

# zfs list -r -t snapshot -o name,creation tank/home/cindy
NAME                     CREATION
tank/home/cindy@tuesday  Fri Aug  3 15:18 2012

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

Vous pouvez déterminer les différences entre des instantanés ZFS en utilisant la commande zfs diff.

Supposons par exemple que les deux instantanés suivants sont créés :

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

Par exemple, afin d'identifier les différences entre deux instantanés, utilisez une syntaxe semblable à la suivante :

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

Dans la sortie, M indique que le répertoire a été modifié. Le + indique que fileB existe dans l'instantané le plus récent.

Dans la sortie suivante, le M indique qu'un fichier dans un instantané a été renommé.

$ 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

Le tableau suivant résume les modifications apportées au fichier ou au répertoire identifiées par la commande zfs diff.

Modification de répertoire ou de fichier
Identificateur
Le fichier ou le répertoire a été modifié ou le lien d'un répertoire ou d'un fichier a changé
M
Le fichier ou le répertoire est présent dans l'ancien instantané mais pas dans le plus récent
Le fichier ou le répertoire est présent dans l'instantané le plus récent mais pas dans le plus ancien.
+
Le fichier ou le répertoire a été renommé
R

Pour plus d'informations, reportez-vous à la page de manuel zfs(1M).