La gestion des propriétés de jeu de données s'effectue à l'aide des sous-commandes set, inherit et get de la commande zfs.
La commande zfs set permet de modifier les propriétés de jeu de données pouvant être définies. Vous pouvez également définir les propriétés lors de la création des jeux de données à l'aide de la commande zfs create. Pour consulter la listes des propriétés de jeu de données définies, reportez-vous à la section Propriétés ZFS natives définies.
La commande zfs set permet d'indiquer une séquence propriété/valeur au format property=value, suivie du nom du jeu de données. Lors de chaque appel de la commande zfs set, vous ne pouvez définir ou modifier qu'une propriété à la fois.
L'exemple suivant illustre la définition de la propriété atime sur la valeur off pour tank/home.
# zfs set atime=off tank/home |
Vous pouvez également définir les propriétés des systèmes de fichiers une fois ces derniers créés. Exemple :
# zfs create -o atime=off tank/home |
Vous pouvez spécifier les valeurs des propriétés numériques à l'aide de suffixes facile à comprendre (par ordre croissant de grandeur) : BKMGTPEZ. Ces suffixes peuvent être suivis de la lettre b (signifiant "byte", octet) à l'exception du suffixe B, qui fait déjà référence à cette unité de mesure. Les quatre formulations de la commande zfs set suivantes correspondent à des expressions numériques équivalentes indiquant que la propriété quota doit être définie sur 50 Go sur le système de fichiers tank/home/marks :
# zfs set quota=50G tank/home/marks # zfs set quota=50g tank/home/marks # zfs set quota=50GB tank/home/marks # zfs set quota=50gb tank/home/marks |
Les valeurs des propriétés non numériques prennent en charge la distinction majuscules/minuscules et doivent être spécifiées sous la forme de minuscules, sauf pour les propriétés mountpoint et sharenfs. Les valeurs de ces propriétés peuvent utiliser des minuscules et des majuscules.
Pour plus d'informations sur la commande zfs set, reportez-vous à la page de manuel zfs(1M).
Toutes les propriétés définies, à l'exception des propriétés de quotas et de réservations, héritent de la valeur du jeu de données parent (sauf si un quota ou une réservation est explicitement défini pour le jeu de données descendant). Si aucune valeur explicite n'est définie pour une propriété d'un système ascendant, la valeur par défaut de cette propriété est appliquée. Vous pouvez utiliser la commande zfs inherit pour effacer la valeur d'une propriété et faire ainsi hériter la valeur du jeu de données parent.
L'exemple suivant illustre l'activation de la compression pour le système de fichiers tank/home/bonwick à l'aide de la commande zfs set. La commande zfs inherit est ensuite exécutée afin de supprimer la valeur de la propriété compression, entraînant ainsi l'héritage de la valeur par défaut off. En effet, la propriété compression n'est définie localement ni pour home, ni pour tank ; la valeur par défaut est donc appliquée. Si la compression avait été activée pour ces deux systèmes, la valeur définie pour le système ascendant direct aurait été utilisée (en l'occurrence, home).
# zfs set compression=on tank/home/bonwick # zfs get -r compression tank NAME PROPERTY VALUE SOURCE tank compression off default tank/home compression off default tank/home/bonwick compression on local # zfs inherit compression tank/home/bonwick # zfs get -r compression tank NAME PROPERTY VALUE SOURCE tank compression off default tank/home compression off default tank/home/bonwick compression off default |
La sous-commande inherit est appliquée de manière récursive lorsque l'option -r est spécifiée. Dans l'exemple suivant, la commande entraîne l'héritage de la valeur de la propriété compression pour tank/home ainsi que pour ses éventuels descendants :
# zfs inherit -r compression tank/home |
L'utilisation de l'option -r entraîne la suppression de la valeur de propriété actuelle pour l'ensemble des jeux de données descendants.
Pour plus d'informations sur la commande zfs inherit, reportez-vous à la page de manuel zfs(1M).
Le moyen le plus simple pour envoyer une requête sur les valeurs de propriété consiste à exécuter la commande zfs list. Pour plus d'informations, reportez-vous à la section Affichage des informations de base des systèmes ZFS. Cependant, dans le cadre de requêtes complexes et pour les scripts, utilisez la commande zfs get afin de fournir des informations plus détaillées dans un format personnalisé.
La commande zfs get permet de récupérer les propriétés de jeu de données. L'exemple suivant illustre la récupération d'une seule valeur de propriété au sein d'un jeu de données :
# zfs get checksum tank/ws NAME PROPERTY VALUE SOURCE tank/ws checksum on default |
La quatrième colonne SOURCE indique l'origine de la valeur de cette propriété. Le tableau ci-dessous définit les valeurs possibles de la source.
Tableau 6–3 Valeurs possibles de la colonne SOURCE (commande zfs get)
Valeur |
Description |
---|---|
default |
Cette propriété n'a jamais été définie de manière explicite pour ce jeu de données ni pour ses systèmes ascendants. La valeur par défaut est utilisée. |
inherited from nom-jeu-données |
La valeur de propriété est héritée du jeu de données parent spécifié par la chaîne dataset-name. |
local |
La valeur de propriété a été définie de manière explicite pour ce jeu de données à l'aide de la commande zfs set. |
temporary |
Cette valeur de propriété a été définie à l'aide la commande zfs mount spécifiée avec l'option - o et n'est valide que pour la durée du montage. Pour plus d'informations sur les propriétés de point de montage temporaires, reportez-vous à la section Utilisation de propriétés de montage temporaires. |
- (none) |
Cette propriété est en lecture seule. Sa valeur est générée par ZFS. |
Le mot-clé all permet de récupérer toutes les valeurs de propriétés du jeu de données. Les exemples suivants utilisent le mot-clé all :
# zfs get all tank/home NAME PROPERTY VALUE SOURCE tank/home type filesystem - tank/home creation Tue Jun 29 11:44 2010 - tank/home used 21K - tank/home available 66.9G - tank/home referenced 21K - tank/home compressratio 1.00x - tank/home mounted yes - tank/home quota none default tank/home reservation none default tank/home recordsize 128K default tank/home mountpoint /tank/home default tank/home sharenfs off default tank/home checksum on default tank/home compression off default tank/home atime on default tank/home devices on default tank/home exec on default tank/home setuid on default tank/home readonly off default tank/home zoned off default tank/home snapdir hidden default tank/home aclmode groupmask default tank/home aclinherit restricted default tank/home canmount on default tank/home shareiscsi off default tank/home xattr on default tank/home copies 1 default tank/home version 4 - tank/home utf8only off - tank/home normalization none - tank/home casesensitivity sensitive - tank/home vscan off default tank/home nbmand off default tank/home sharesmb off default tank/home refquota none default tank/home refreservation none default tank/home primarycache all default tank/home secondarycache all default tank/home usedbysnapshots 0 - tank/home usedbydataset 21K - tank/home usedbychildren 0 - tank/home usedbyrefreservation 0 - tank/home logbias latency default |
Le fonctionnement des propriétés casesensitivity, nbmand, normalization, sharesmb, utf8only et vscan n'est pas optimal dans la version Solaris 10 car le service Oracle Solaris SMB n'est pas pris en charge dans la version Solaris 10.
L'option -s spécifiée avec la commande zfs get permet de spécifier, en fonction du type de source, les propriétés à afficher. Cette option permet d'indiquer la liste des types de sources souhaités, séparés par une virgule. Seules les propriétés associées au type de source spécifié sont affichées. Les types de source valides sont local, default, inherited, temporary et none. L'exemple suivant indique toutes les propriétés définies localement sur pool.
# zfs get -s local all pool NAME PROPERTY VALUE SOURCE pool compression on local |
Les options décrites ci-dessus peuvent être associées à l'option -r afin d'afficher de manière récursive les propriétés spécifiées sur les systèmes enfant du jeu de données. Dans l'exemple suivant, les propriétés temporaires de tous les jeux de données définis sur tank sont affichées de manière récursive :
# zfs get -r -s temporary all tank NAME PROPERTY VALUE SOURCE tank/home atime off temporary tank/home/bonwick atime off temporary tank/home/marks atime off temporary |
Vous pouvez interroger les valeurs d'une propriété à l'aide de la commande zfs get sans spécifier le système de fichiers cible (la commande fonctionne sur tous les systèmes de fichiers et les pools). Exemple :
# zfs get -s local all tank/home atime off local tank/home/bonwick atime off local tank/home/marks quota 50G local |
Pour plus d'informations sur la commande zfs get, reportez-vous à la page de manuel zfs(1M).
La commande zfs get prend en charge les options -H et -o, qui permettent l'exécution de scripts. Vous pouvez utiliser l'option -H pour omettre les informations d'en-tête et pour remplacer un espace par un caractère de tabulation. L'uniformisation des espaces permet de faciliter l'analyse des données. Vous pouvez utiliser l'option -o pour personnaliser la sortie de l'une des façons suivantes :
Le littéral nom peut être utilisé avec une liste séparée par des virgules de propriétés comme l'explique la section Présentation des propriétés ZFS.
Une liste de champs littéraux séparés par des virgules (name, value, property et source) suivi d'un espace et d'un argument. En d'autres termes, il s'agit d'une liste de propriétés séparées par des virgules.
L'exemple suivant illustre la commande permettant de récupérer une seule valeur en spécifiant les options -H et -o de la commande zfs get:
# zfs get -H -o value compression tank/home on |
L'option -p indique les valeurs numériques sous leur forme exacte. Par exemple, 1 Mo serait signalé sous la forme 1000000. Cette option peut être utilisée comme suit :
# zfs get -H -o value -p used tank/home 182983742 |
L'option -r permet de récupérer de manière récursive les valeurs demandées pour l'ensemble des descendants et peut s'utiliser avec toutes les options mentionnées précédemment. Dans l'exemple suivant, les options -H, -o et -r sont spécifiées afin de récupérer le nom du jeu de données ainsi que la valeur de la propriété used pour export/home et ses descendants, tout en excluant les en-têtes dans la sortie :
# zfs get -H -o name,value -r used export/home export/home 5.57G export/home/marks 1.43G export/home/maybee 2.15G |