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é fridayest 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.
Ou différentes stratégies de conservation des données instantané automatique peut se traduire par les instantanés les plus anciens sont par exemple détruit. Si la suppression d'un fait partie d'un instantané zfs send et une opération de réception en cours, l'opération risque d'échouer. Pour éviter ce scénario, placez éventuellement un blocage à un instantané.
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é :
La propriété defer_destroy est définie sur on si l'instantané a été marqué en vue d'une destruction différée à l'aide de la commande zfs destroy –d. Dans le cas contraire, la propriété est définie sur off.
La propriété userrefs également appelée décompte de référence utilisateur, est définie sur le nombre de conservations pour cet instantané.
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 -