Guide d'administration Oracle Solaris 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 de Solaris, les instantanés ne peuvent pas être détruits à l'aide de la commande zfs destroy s'ils ne contiennent aucun clone. Dans cette version de 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/cindys@snap1

Vous pouvez utiliser l'option -r pour conserver récursivement les instantanés de tous les systèmes de fichiers descendants. 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. Exemple :


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

Si vous souhaitez détruire un instantané conservé, utilisez l'option -d. Exemple :


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

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


# zfs holds tank/home@now
NAME           TAG   TIMESTAMP                 
tank/home@now  keep  Thu Jul 15 11:25:39 2010  

# zfs holds -r tank/home@now
NAME                  TAG   TIMESTAMP                 
tank/home/cindys@now  keep  Thu Jul 15 11:25:39 2010  
tank/home/mark@now    keep  Thu Jul 15 11:25:39 2010  
tank/home@now         keep  Thu Jul 15 11:25:39 2010  

Vous pouvez utiliser la commande zfs release pour libérer un instantané ou un jeu d'instantanés conservé. 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. Exemple :


# zfs destroy -r tank/home@now

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