Ce chapitre contient des informations détaillées sur la gestion des systèmes de fichiers ZFS Oracle Solaris. Il aborde notamment les concepts d'organisation hiérarchique des systèmes de fichiers, d'héritage des propriétés, de gestion automatique des points de montage et d'interaction sur les partages.
Il contient les sections suivantes :
Création, destruction et renommage de systèmes de fichiers ZFS
Envoi de requêtes sur les informations des systèmes de fichiers ZFS
La création d'un système de fichiers ZFS s'effectue sur un pool de stockage. La création et la destruction des systèmes de fichiers peuvent s'effectuer de manière dynamique, sans allocation ni formatage manuels de l'espace disque sous-jacent. En raison de leur légèreté et de leur rôle central dans l'administration du système ZFS, la création de ces systèmes de fichiers constitue généralement une opération extrêmement courante.
La gestion des systèmes de fichiers ZFS s'effectue à l'aide de la commande zfs. La commande zfs offre un ensemble de sous-commandes permettant d'effectuer des opérations spécifiques sur les systèmes de fichiers. Chacune de ces sous-commandes est décrite en détail dans ce chapitre. Cette commande permet également de gérer les instantanés, les volumes et les clones. Toutefois, ces fonctionnalités sont uniquement traitées de manière succincte dans ce chapitre. Pour plus d'informations sur les instantanés et les clones, reportez-vous au Chapitre 7Utilisation des instantanés et des clones ZFS Oracle Solaris. Pour de plus amples informations sur les volumes ZFS, reportez-vous à la section Volumes ZFS.
Dans ce chapitre, le terme jeu de données désigne de manière générique un système de fichiers, un instantané, un clone ou un volume.
La création et la destruction des systèmes de fichiers ZFS s'effectuent respectivement à l'aide des commandes zfs create et zfs destroy. Vous pouvez renommer les systèmes de fichiers ZFS en utilisant la commande zfs rename.
La création des systèmes de fichiers ZFS s'effectue à l'aide de la commande zfs create. La sous-commande create ne peut contenir qu'un argument : le nom du système de fichiers à créer. Le nom de ce système de fichiers permet également de définir le nom du chemin par rapport au nom du pool, comme suit :
nom-pool/[nom-système-fichiers/]nom-système-fichiers
Le nom du pool et les noms des systèmes de fichiers existants mentionnés dans le chemin déterminent l'emplacement du nouveau système de fichiers dans la structure hiérarchique. Le dernier nom mentionné dans le chemin correspond au nom du système de fichiers à créer. 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 système de fichiers nommé bonwick est créé dans le système de fichiers tank/home.
# zfs create tank/home/bonwick |
Si le processus de création se déroule correctement, le système de fichiers ZFS est automatiquement monté. Par défaut, les systèmes de fichiers sont montés sous /jeu-données, à l'aide du chemin défini pour le nom du système dans la commande create. Dans cet exemple, le système de fichiers bonwick créé est monté sous /tank/home/bonwick. Pour plus d'informations sur les points de montage gérés automatiquement, reportez-vous à la section Gestion des points de montage ZFS.
Pour plus d'informations sur la commande zfs create, reportez-vous à la page de manuel zfs(1M).
Il est possible de définir les propriétés du système de fichiers lors de la création de ce dernier.
Dans l'exemple ci-dessous, le point de montage /export/zfs est créé pour le système de fichiers tank/home :
# zfs create -o mountpoint=/export/zfs tank/home |
Pour plus d'informations sur les propriétés des systèmes de fichiers, reportez-vous à la section Présentation des propriétés ZFS.
La destruction d'un système de fichiers ZFS s'effectue à l'aide de la commande zfs destroy. Les systèmes de fichiers détruits sont automatiquement démontés et ne sont plus partagés. Pour plus d'informations sur les montages ou partages gérés automatiquement, reportez-vous à la section Points de montage automatiques.
L'exemple suivant illustre la destruction du système de fichiers tabriz :
# zfs destroy tank/home/tabriz |
Aucune invite de confirmation ne s'affiche lors de l'exécution de la sous-commande destroy. Son utilisation requiert une attention particulière.
Si le système de fichiers à détruire est occupé et ne peut pas être démonté, la commande zfs destroy échoue. Pour détruire un système de fichiers actif, indiquez l'option -f. L'utilisation de cette option requiert une attention particulière. En effet, elle permet de démonter, d'annuler le partage et de détruire des systèmes de fichiers actifs, ce qui risque d'affecter le comportement de certaines applications.
# zfs destroy tank/home/ahrens cannot unmount 'tank/home/ahrens': Device busy # zfs destroy -f tank/home/ahrens |
La commande zfs destroy échoue également si le système de fichiers possède des descendants. Pour détruire un système de fichiers et l'ensemble des descendants de ce système de fichiers, indiquez l'option -r. Ce type d'opération de destruction récursive entraîne également la destruction des instantanés ; l'utilisation de cette option requiert donc une attention particulière.
# zfs destroy tank/ws cannot destroy 'tank/ws': filesystem has children use '-r' to destroy the following datasets: tank/ws/billm tank/ws/bonwick tank/ws/maybee # zfs destroy -r tank/ws |
Si le système de fichiers à détruire possède des systèmes indirectement dépendants, même la commande de destruction récursive échoue. Pour forcer la destruction de tous systèmes dépendants, y compris des systèmes de fichiers clonés situés en dehors de la structure hiérarchique cible, vous devez indiquer l'option -R. Utilisez cette option avec précaution.
# zfs destroy -r tank/home/schrock cannot destroy 'tank/home/schrock': filesystem has dependent clones use '-R' to destroy the following datasets: tank/clones/schrock-clone # zfs destroy -R tank/home/schrock |
Aucune invite de confirmation ne s'affiche lors de l'utilisation des options -f, - r ou -R avec la commande zfs destroy. L'utilisation de ces options requiert donc une attention particulière.
Pour plus d'informations sur les instantanés et les clones, reportez-vous au Chapitre 7Utilisation des instantanés et des clones ZFS Oracle Solaris.
La modification du nom d'un système de fichiers ZFS s'effectue à l'aide de la commande zfs rename. La commande rename permet d'effectuer les opérations suivantes :
Modifier le nom d'un système de fichiers.
Déplacer le système de fichiers au sein de la hiérarchie ZFS.
Modifier le nom d'un système de fichiers et son emplacement au sein de la hiérarchie ZFS.
L'exemple suivant utilise la sous-commande rename pour renommer le système de fichiers kustarz en kustarz_old :
# zfs rename tank/home/kustarz tank/home/kustarz_old |
L'exemple ci-dessous illustre la modification de l'emplacement d'un système de fichiers à l'aide de la sous-commande zfs rename :
# zfs rename tank/home/maybee tank/ws/maybee |
Dans cet exemple, le système de fichiers maybee est déplacé de tank/home vers tank/ws. Lorsque vous modifiez l'emplacement d'un système de fichiers à l'aide de la commande rename, le nouvel emplacement doit se trouver au sein du même pool et l'espace disque disponible doit être suffisant pour contenir le nouveau système de fichiers. Si l'espace disque disponible du nouvel emplacement est insuffisant, par exemple si le quota d'espace disque est atteint, l'opération rename échoue.
Pour plus d'informations sur les quotas, reportez-vous à la section Définition des quotas et réservations ZFS.
L'opération rename tente de démonter, puis de remonter le système de fichiers ainsi que ses éventuels systèmes de fichiers descendants. Si la commande rename ne parvient pas à démonter un système de fichiers actif, l'opération échoue. Si ce problème survient, vous devez forcer le démontage du système de fichiers.
Pour plus d'informations sur la modification du nom des instantanés, reportez-vous à la section Renommage d'instantanés ZFS.
Les propriétés constituent le mécanisme principal de contrôle du comportement des systèmes de fichiers, des volumes, des instantanés et des clones. Sauf mention contraire, les propriétés définies dans cette section s'appliquent à tous les types de jeu de données.
Les propriétés se divisent en deux catégories : les propriétés natives et les propriétés définies par l'utilisateur. Les propriétés natives permettent d'exporter des statistiques internes ou de contrôler le comportement des systèmes de fichiers ZFS. Certaines de ces propriétés peuvent être définies tandis que d'autres sont en lecture seule. Les propriétés définies par l'utilisateur n'ont aucune incidence sur le comportement des systèmes de fichiers ZFS. En revanche, elles permettent d'annoter les jeux de données avec des informations adaptées à votre environnement. Pour plus d'informations sur les propriétés définies par l'utilisateur, reportez-vous à la section Propriétés ZFS définies par l'utilisateur.
La plupart des propriétés pouvant être définies peuvent également être héritées. Les propriétés pouvant être héritées sont des propriétés qui, une fois définies sur un jeu de données parent, peuvent être appliquées à l'ensemble des descendants de ce parent.
Toutes ces propriétés héritables sont associées à une source indiquant la façon dont la propriété a été obtenue. Les sources de propriétés peuvent être définies sur les valeurs suivantes :
Indique que la propriété été définie de manière explicite sur le jeu de données à l'aide de la commande zfs set, selon la procédure décrite à la section Définition des propriétés ZFS.
Indique que la propriété a été héritée à partir de l'ascendant indiqué.
Indique que la valeur de la propriété n'a été ni héritée, ni définie en local. Cette source est définie lorsque la propriété n'est pas définie en tant que source local sur aucun système ascendant.
Le tableau suivant répertorie les propriétés de système de fichiers ZFS natives en lecture seule et pouvant être définies. Les propriétés natives en lecture seule sont signalées comme tel. Les autres propriétés natives répertoriées dans le tableau peuvent être définies. Pour plus d'informations sur les propriétés définies par l'utilisateur, reportez-vous à la section Propriétés ZFS définies par l'utilisateur.
Tableau 6–1 Description des propriétés ZFS natives
Nom de la propriété |
Type |
Valeur par défaut |
Description |
---|---|---|---|
aclinherit |
Chaîne |
secure |
Contrôle le processus d'héritage des entrées ACL lors de la création de fichiers et de répertoires. Les valeurs possibles sont discard, noallow, secure et passthrough. Pour une description de ces valeurs, reportez-vous à la section Propriétés ACL. |
aclmode |
Chaîne |
groupmask |
Contrôle le processus de modification des entrées ACL lors des opérations chmod. Les valeurs possibles sont discard, groupmask et passthrough. Pour une description de ces valeurs, reportez-vous à la section Propriétés ACL. |
atime |
Booléen |
on |
Détermine si l'heure d'accès aux fichiers est mise à jour lorsqu'ils sont consultés. La désactivation de cette propriété évite de produire du trafic d'écriture lors de la lecture de fichiers et permet parfois d'améliorer considérablement les performances ; elle risque cependant de perturber les logiciels de messagerie et autres utilitaires du même type. |
available |
Valeur numérique |
SO |
Propriété en lecture seule indiquant la quantité d'espace disque disponible pour le jeu de données et l'ensemble des systèmes enfant, sans tenir compte des autres activités du pool. L'espace disque étant partagé au sein d'un pool, l'espace disponible peut être limité par divers facteurs, y compris la taille du pool physique, les quotas, les réservations ou les autres jeux de données présents au sein du pool. L'abréviation de la propriété est avail. Pour plus d'informations sur la détermination de l'espace disque, reportez-vous à la section Comptabilisation de l'espace disque ZFS. |
canmount |
Booléen |
on |
Détermine si un système de fichiers donné peut être monté à l'aide de la commande zfs mount. . Cette propriété peut être définie sur tous les systèmes de fichiers et ne peut pas être héritée. En revanche, lorsque cette propriété est définie sur off, un point de montage peut être hérité par des systèmes de fichiers descendants. Le système de fichiers à proprement parler n'est toutefois pas monté. Lorsque l'option noauto est définie, un jeu de données ne peut être monté et démonté que de manière explicite. Le jeu de données n'est pas monté automatiquement lorsqu'il est créé ou importé, et n'est pas monté par la commande zfs mount- a ni démonté par la commande zfs unmount-a. Pour plus d'informations, reportez-vous à la section Propriété canmount. |
checksum |
Chaîne |
on |
Détermine la somme de contrôle permettant de vérifier l'intégrité des données. La valeur par défaut est définie sur on. Cette valeur permet de sélectionner automatiquement l'algorithme approprié, actuellement fletcher4. Les valeurs possibles sont on, off, fletcher2, fletcher4 et sha256. La valeur off entraîne la désactivation du contrôle d'intégrité des données utilisateur. La valeur off n'est pas recommandée. |
compression |
Chaîne |
off |
Active ou désactive la compression d'un jeu de données. Les valeurs sont on , off et lzjb, gzip ou gzip-N. Donner à cette propriété la valeur lzjb, gzip ou la valeur gzip- N a actuellement le même effet que la valeur on. L'activation de la compression sur un système de fichiers contenant des données existantes entraîne uniquement la compression des nouvelles données. Les données actuelles restent non compressées. L'abréviation de la propriété est compress. |
compressratio |
Valeur numérique |
SO |
Propriété en lecture seule indiquant le ratio de compression obtenu pour un jeu de données, exprimé sous la forme d'un multiple. La compression peut être activée en exécutant zfs set compression=on dataset. Cette valeur est calculée sur la base de la taille logique de l'ensemble des fichiers et de la quantité de données physiques indiquée. Elle induit un gain explicite basé sur l'utilisation de la propriété compression. |
copies |
Valeur numérique |
1 |
Définit le nombre de copies des données utilisateur par système de fichiers. Les valeurs disponibles sont 1, 2 ou 3. Ces copies viennent s'ajouter à toute redondance au niveau du pool. L'espace disque utilisé par plusieurs copies de données utilisateur est chargé dans le fichier et le jeu de données correspondants et pénalise les quotas et les réservations. En outre, la propriété used est mise à jour lorsque plusieurs copies sont activées. Considérez la définition de cette propriété à la création du système de fichiers car lorsque vous la modifiez sur un système de fichiers existant, les modifications ne s'appliquent qu'aux nouvelles données. |
creation |
Chaîne |
SO |
Propriété en lecture seule identifiant la date et l'heure de création d'un jeu de données. |
devices |
Booléen |
on |
Contrôle si les fichiers de périphérique d'un système de fichiers peuvent être ouverts. |
exec |
Booléen |
on |
Contrôle l'autorisation d'exécuter les programmes dans un système de fichiers. Par ailleurs, lorsqu'elle est définie sur off, les appels de la commande mmap(2) avec PROT_EXEC ne sont pas autorisés. |
mounted |
Booléen |
SO |
Propriété en lecture seule indiquant si un système de fichiers, un clone ou un instantané est actuellement monté. Cette propriété ne s'applique pas aux volumes. Les valeurs possibles sont yes ou no. |
mountpoint |
Chaîne |
SO |
Détermine le point de montage utilisé pour le système de fichiers. Lorsque la propriété mountpoint d'un système de fichiers est modifiée, ce système de fichiers ainsi que les éventuels systèmes descendants héritant du point de montage sont démontés. Si la nouvelle valeur est définie sur legacy, ces systèmes restent démontés. Dans le cas contraire, ils sont automatiquement remontés au nouvel emplacement si la propriété était précédemment définie sur legacy ou sur none ou s'ils étaient montés avant la modification de la propriété. D'autre part, le partage de tout système de fichiers est annulé puis rétabli au nouvel emplacement. Pour plus d'informations sur l'utilisation de cette propriété, reportez-vous à la section Gestion des points de montage ZFS. |
primarycache |
Chaîne |
all |
Contrôle les éléments mis en cache dans le cache principal (ARC). Les valeurs possibles sont all, none et metadata. Si elles sont définies sur all, les données d'utilisateur et les métadonnées sont mises en cache. Si elle est définie sur none, ni les données d'utilisateur ni les métadonnées ne sont mises en cache. Si ces valeurs sont définies sur metadata, seules les métadonnées sont mis en mémoire cache. |
origin |
Chaîne |
SO |
Propriété en lecture seule appliquée aux systèmes de fichiers ou aux volumes clonés et indiquant l'instantané à partir duquel le clone a été créé. Le système d'origine ne peut pas être détruit (même à l'aide des options -r ou -f) tant que le clone existe. Les systèmes de fichiers non clonés indiquent un système d'origine none. |
quota |
Valeur numérique (ou none) |
none |
Limite la quantité d'espace disque disponible pour le jeu de données et ses descendants. Cette propriété permet d'appliquer une limite fixe à la quantité d'espace disque utilisée, y compris l'espace utilisé par les descendants, qu'il s'agisse de systèmes de fichiers ou d'instantanés. La définition d'un quota sur un descendant d'un jeu de données déjà associé à un quota n'entraîne pas le remplacement du quota du système ascendant. Cette opération entraîne au contraire l'application d'une limite supplémentaire. Les quotas ne peuvent pas être définis pour les volumes car la propriété volsize sert de quota implicite. Pour plus d'informations concernant la définition de quotas, reportez-vous à la section Définitions de quotas sur les systèmes de fichiers ZFS. |
readonly |
Booléen |
off |
Contrôle l'autorisation de modifier un jeu de données. Lorsqu'elle est définie sur on, aucune modification ne peut être apportée. L'abréviation de la propriété est rdonly. |
recordsize |
Valeur numérique |
128K |
Spécifie une taille de bloc suggérée pour les fichiers d'un système de fichiers. L'abréviation de la propriété est recsize. Pour obtenir une description détaillée de cette propriété, reportez-vous à la section Propriété recordsize. |
referenced |
Valeur numérique |
SO |
Propriété en lecture seule identifiant la quantité de données à laquelle un jeu de données a accès, lesquelles peuvent être ou non partagées avec d'autres jeux de données du pool. Lorsqu'un instantané ou un clone est créé, il indique dans un premier temps la même quantité d'espace disque que le système de fichiers ou l'instantané à partir duquel il a été créé. En effet, son contenu est identique. L'abréviation de la propriété est refer. |
refquota |
Valeur numérique (ou none) |
none |
Définit la quantité d'espace disque pouvant être utilisé par un jeu de données. Cette propriété définit une quantité d'espace maximale. Cette limite maximale n'inclut pas l'espace disque utilisé par les descendants, notamment les instantanés et les clones. |
refreservation |
Valeur numérique (ou none) |
none |
Définit la quantité d'espace disque minimale garantie pour un jeu de données, à l'exclusion des descendants, notamment les instantanés et les clones. Lorsque la quantité d'espace disque utilisée est inférieure à cette valeur, le système considère que le jeu de donnée utilise la quantité d'espace spécifiée par refreservation La réservation refreservation est prise en compte dans l'espace disque utilisé des jeux de donnés parent et vient en déduction de leurs quotas et réservations. Lorsque la propriété refreservation est définie, un instantané n'est autorisé que si suffisamment d'espace est disponible dans le pool au-delà de cette réservation afin de pouvoir contenir le nombre actuel d'octets référencés dans le jeu de données. L'abréviation de la propriété est refserv. |
reservation |
Valeur numérique (ou none) |
none |
Définit la quantité minimale d'espace disque réservée pour un jeu de données et ses descendants. Lorsque la quantité d'espace disque utilisée est inférieure à la valeur de cette propriété, le système considère que le jeu de donnée utilise la quantité d'espace réservée. Les réservations sont prises en compte dans l'espace disque utilisé des jeux de données parent et viennent en déduction de leurs quotas et réservations. L'abréviation de la propriété est reserv. Pour plus d'informations, reportez-vous à la section Définition de réservations sur les systèmes de fichiers ZFS. |
secondarycache |
Chaîne |
all |
Contrôle les éléments qui sont mis en cache dans le cache secondaire (L2ARC). Les valeurs possibles sont all, none et metadata. Si elles sont définies sur all, les données d'utilisateur et les métadonnées sont mises en cache. Si elle est définie sur none, ni les données d'utilisateur ni les métadonnées ne sont mises en cache. Si ces valeurs sont définies sur metadata, seules les métadonnées sont mis en mémoire cache. |
setuid |
Booléen |
on |
Contrôle l'application du bit setuid dans un système de fichiers. |
shareiscsi |
Chaîne |
off |
Contrôle si un volume ZFS est partagé en tant que cible iSCSI. Les valeurs de la propriété sont on, off et type=disk. Vous pouvez définir la valeur shareiscsi=on pour un système de fichiers afin que tous les volumes ZFS au sein du système de fichiers soient partagés par défaut. Cependant, la configuration de cette propriété sur un système de fichiers n'a aucune incidence directe. |
sharenfs |
Chaîne |
off |
Détermine si un système de fichiers est disponible via NFS, ainsi que les options utilisées. Si cette propriété est définie sur on, la commande zfs share est exécutée sans option. Dans le cas contraire, la commande zfs share est exécutée avec les options équivalentes au contenu de cette propriété. Si elle est définie sur off, le système de fichiers est géré à l'aide des commandes héritées share et unshare et du fichier dfstab file. Pour plus d'informations sur le partage des systèmes de fichiers ZF, reportez-vous à la section Activation et annulation du partage des systèmes de fichiers ZFS. |
snapdir |
Chaîne |
hidden |
Détermine si le répertoire .zfs doit être affiché ou masqué au niveau de la racine du système de fichiers. Pour plus d'informations sur l'utilisation des instantanés, reportez-vous à la section Présentation des instantanés ZFS. |
type |
Chaîne |
SO |
Propriété en lecture seule identifiant le type de jeu de données comme étant un système de fichiers, (filesystem ; système de fichiers à proprement parler ou clone), un volume (volume) ou un instantané (snapshot). |
used |
Valeur numérique |
SO |
Propriété en lecture seule identifiant la quantité d'espace disque utilisée par le jeu de données et tous ses descendants. Pour obtenir une description détaillée de cette propriété, reportez-vous à la section Propriété used. |
usedbychildren |
Valeur numérique |
off |
Propriété en lecture seule indiquant la quantité d'espace disque utilisée par les enfants de ce jeu de données, qui serait libérée si tous ses enfants étaient détruits. L'abréviation de la propriété est usedchild. |
usedbydataset |
Valeur numérique |
off |
Propriété en lecture seule indiquant la quantité d'espace disque utilisée par le jeu de données lui-même, qui serait libérée si ce dernier était détruit, après la destruction préalable de tous les instantanés et la suppression de toutes les réservations refreservation. L'abréviation de la propriété est usedds. |
usedbyrefreservation |
Valeur numérique |
off |
Propriété en lecture seule indiquant la quantité d'espace disque utilisée par un jeu refreservation sur un jeu de données, qui serait libérée si le jeu refreservation était supprimé. L'abréviation de la propriété est usedrefreserv. |
usedbysnapshots |
Valeur numérique |
off |
Propriété en lecture seule indiquant la quantité d'espace disque utilisée par les instantanés de ce jeu de données. En particulier, elle correspond à la quantité d'espace disque qui serait libérée si l'ensemble des instantanés de ce jeu de données était supprimé. Notez que cette valeur ne correspond pas simplement à la somme des propriétés used des instantanés, car l'espace peut être partagé par plusieurs instantanés. L'abréviation de la propriété est usedsnap. |
version |
Valeur numérique |
SO |
Identifie la version du disque d'un système de fichiers. Cette information n'est pas liée à la version du pool. Cette propriété peut uniquement être définie avec une version supérieure prise en charge par la version du logiciel. Pour plus d'informations, reportez-vous à la commande zfs upgrade. |
volsize |
Valeur numérique |
SO |
Spécifie la taille logique des volumes. Pour obtenir une description détaillée de cette propriété, reportez-vous à la section Propriété volsize. |
volblocksize |
Valeur numérique |
8 KB |
(Volumes) Spécifie la taille de bloc du volume. Une fois que des données ont été écrites sur un volume, la taille de bloc ne peut plus être modifiée. Vous devez donc définir cette valeur lors de la création du volume. La taille de bloc par défaut des volumes est de 8 Ko. Toute puissance de deux comprise entre 512 octets et 128 Ko est correcte. L'abréviation de la propriété est volblock. |
zoned |
Booléen |
SO |
Indique si un jeu de données a été ajouté à une zone non globale. Si cette propriété est activée, le point de montage ne figure pas dans la zone globale et le système ZFS ne peut pas monter le système de fichiers en réponse aux requêtes. Lors de la première installation d'une zone, cette propriété est définie pour tout système de fichiers ajouté. Pour plus d'informations sur l'utilisation du système ZFS avec des zones installées, reportez-vous à la section Utilisation de ZFS dans un système Solaris avec zones installées. |
xattr |
Booléen |
on |
Indique si les attributs étendus sont activés (on) ou désactivés (off) pour ce système de fichiers. |
Les propriétés natives en lecture seule peuvent être récupérées, mais ne peuvent pas être définies. Elles ne peuvent pas non plus être héritées. Certaines propriétés natives sont spécifiques à un type de jeu de données. Dans ce cas, le type de jeu de données correspondant est mentionné dans la description figurant dans le Tableau 6–1.
Les propriétés natives en lecture seule sont répertoriées dans cette section et décrites dans le Tableau 6–1.
available
compressratio
creation
mounted
origin
referenced
type
used
Pour plus d'informations sur cette propriété, reportez-vous à la section Propriété used.
usedbychildren
usedbydataset
usedbyrefreservation
usedbysnapshots
Pour plus d'informations sur la détermination de l'espace disque, notamment sur les propriétés used, referenced et available, reportez-vous à la section Comptabilisation de l'espace disque ZFS.
La propriété used est une propriété en lecture seule indiquant la quantité d'espace disque utilisée par le jeu de données et l'ensemble de ses descendants. Cette valeur est comparée au quota et à la réservation définis pour le jeu de données. La quantité d'espace disque utilisé n'inclut pas la réservation du jeu de données. En revanche, elle prend en compte les réservations définies pour les éventuels jeux de données descendants. La quantité d'espace disque utilisée sur le parent par un jeu de données, ainsi que la quantité d'espace disque libérée si le jeu de données est détruit de façon récursive, constituent la plus grande partie de son espace utilisé et sa réservation.
Lors de la création d'un instantané, l'espace disque correspondant est dans un premier temps partagé entre cet instantané et le système de fichiers ainsi que les instantanés existants (le cas échéant). Lorsque le système de fichiers est modifié, l'espace disque précédemment partagé devient dédié à l'instantané. Il est alors comptabilisé dans l'espace utilisé par cet instantané. L'espace disque utilisé par un instantané représente ses données uniques. La suppression d'instantanés peut également augmenter l'espace disque dédié et utilisé par les autres instantanés. Pour plus d'informations sur les instantanés et les questions d'espace, reportez-vous à la section Comportement d'espace saturé.
La quantité d'espace disque utilisé, disponible et référencé ne comprend pas les modifications en attente. Ces modifications sont généralement prises en compte au bout de quelques secondes. La modification d'un disque utilisant la fonction fsync(3c) ou O_SYNC ne garantit pas la mise à jour immédiate des informations concernant l'utilisation de l'espace disque.
Les informations de propriété usedbychildren, usedbydataset , usedbyrefreservation et usedbysnapshots peuvent être affichées à l'aide de la commande zfs list -o space. Ces propriétés divisent la propriété used en espace disque utilisé par les descendants. Pour plus d'informations, reportez-vous au Tableau 6–1.
Les propriétés natives définies sont les propriétés dont les valeurs peuvent être récupérées et modifiées. La définition des propriétés natives s'effectue à l'aide de la commande zfs set, selon la procédure décrite à la section Définition des propriétés ZFS ou à l'aide de la commande zfs create, selon la procédure décrite à la section Création d'un système de fichiers ZFS. À l'exception des quotas et des réservations, les propriétés natives définies sont héritées. Pour plus d'informations sur les quotas et les réservations, reportez-vous à la section Définition des quotas et réservations ZFS.
Certaines propriétés natives définies sont spécifiques à un type de jeu de données. Dans ce cas, le type de jeu de données est mentionné dans la description figurant dans le Tableau 6–1. Sauf indication contraire, les propriétés s'appliquent à tous les types de jeu de données : aux systèmes de fichiers, aux volumes, aux clones et aux instantanés.
Les propriétés pouvant être définies sont répertoriées dans cette section et décrites dans le Tableau 6–1.
aclinherit
Pour obtenir une description détaillée, reportez-vous à la section Propriétés ACL.
aclmode
Pour obtenir une description détaillée, reportez-vous à la section Propriétés ACL.
atime
canmount
Somme de contrôle
compression
copies
devices
exec
mountpoint
primarycache
quota
readonly
recordsize
Pour obtenir une description détaillée de cette propriété, reportez-vous à la section Propriété recordsize.
refquota
refreservation
reservation
secondarycache
shareiscsi
sharenfs
setuid
snapdir
version
volsize
Pour obtenir une description détaillée de cette propriété, reportez-vous à la section Propriété volsize.
volblocksize
zoned
xattr
Si la propriété canmount est désactivée (valeur off), le système de fichiers ne peut pas être monté à l'aide de la commande zfs mount, ni de la commande zfs mount -a. Définir cette propriété sur off est comparable à définir la propriété mountpoint sur la valeur none. Toutefois, le jeu de données possède toujours une propriété mountpoint standard susceptible d'être héritée. Vous pouvez par exemple définir cette propriété sur la valeur off et définir des propriétés héritées pour les systèmes de fichiers descendants. Toutefois, le système de fichiers parent à proprement parler n'est jamais monté, ni accessible par les utilisateurs. Dans ce cas, le système de fichiers parent sert de conteneur afin de pouvoir définir des propriétés sur le conteneur ; toutefois, le conteneur à proprement parler n'est jamais accessible.
L'exemple suivant illustre la création du système de fichiers userpool avec la propriété canmount désactivée (valeur off). Les points de montage des systèmes de fichiers utilisateur descendants sont définis sur un emplacement commun, /export/home. Les systèmes de fichiers descendants héritent des propriétés définies sur le système de fichiers parent, mais celui-ci n'est jamais monté.
# zpool create userpool mirror c0t5d0 c1t6d0 # zfs set canmount=off userpool # zfs set mountpoint=/export/home userpool # zfs set compression=on userpool # zfs create userpool/user1 # zfs create userpool/user2 # zfs mount userpool/user1 /export/home/user1 userpool/user2 /export/home/user2 |
Définir la propriété canmount sur noauto indique que le jeu de données ne peut être monté que de manière explicite, et non pas de manière automatique. Cette valeur de paramètre est utilisée par le logiciel de mise à niveau Oracle Solaris afin que seuls les jeux de données appartenant à l'environnement d'initialisation actif soient montés lors de l'initialisation.
La propriété recordsize spécifie une taille de bloc suggérée pour les fichiers du système de fichiers.
Cette propriété s'utilise uniquement pour les charges de travail de base de données accédant à des fichiers résidant dans des enregistrements à taille fixe. Le système ZFS ajuste automatiquement les tailles en fonction d'algorithmes internes optimisés pour les schémas d'accès classiques. Pour les bases de données générant des fichiers volumineux mais accédant uniquement à certains fragments de manière aléatoire, ces algorithmes peuvent se révéler inadaptés. La définition d'une valeur recordsize supérieure ou égale à la taille d'enregistrement de la base de données peut améliorer les performances du système de manière significative. Il est vivement déconseillé d'utiliser cette propriété pour les systèmes de fichiers à usage générique. En outre, elle peut affecter les performances du système. La taille spécifiée doit être une puissance de 2 supérieure ou égale à 512 octets et inférieure ou égale à 128 Ko. La modification de la valeur recordsize du système de fichiers affecte uniquement les fichiers créés ultérieurement. Cette modification n'affecte pas les fichiers existants.
L'abréviation de la propriété est recsize.
La propriété volsize spécifie la taille logique du volume. Par défaut, la création d'un volume définit une réservation de taille identique. Toute modification apportée à la valeur de la propriété volsize se répercute dans des proportions identiques au niveau de la réservation. Ce fonctionnement permet d'éviter les comportements inattendus lors de l'utilisation des volumes. L'utilisation de volumes contenant moins d'espace disponible que la valeur indiquée risque, suivant le cas, d'entraîner des comportements non valides et des corruptions de données. Ces symptômes peuvent également survenir lors de la modification et notamment de la réduction de la taille du volume en cours d'utilisation. Faites preuve de prudence lorsque vous ajustez la taille d'un volume.
Même s'il s'agit d'une opération déconseillée, vous avez la possibilité de créer des volumes fragmentés. Pour ce faire, spécifiez l'étiquette -s dans la commande zfs create -V ou modifiez la réservation, une fois le volume créé. Un volume fragmenté désigne un volume dont la réservation est différente de la taille de volume. Les modifications apportées à la propriété volsize des volumes fragmentés ne sont pas répercutées au niveau de la réservation.
Pour plus d'informations sur l'utilisation des volumes, reportez-vous à la section Volumes ZFS.
Outre les propriétés natives, le système ZFS prend en charge des propriétés définies par l'utilisateur. Les propriétés définies par l'utilisateur n'ont aucune incidence sur le comportement du système ZFS. En revanche, elles permettent d'annoter les jeux de données avec des informations adaptées à votre environnement.
Les noms de propriétés définies par l'utilisateur doivent respecter les conventions suivantes :
Elles doivent contenir le caractère ":" (deux points) afin de les distinguer des propriétés natives.
Elles doivent contenir des lettres en minuscule, des chiffres ou les signes de ponctuation suivants : ':', '+','.', '_'.
La longueur maximale du nom d'une propriété définie par l'utilisateur est de 256 caractères.
La syntaxe attendue des noms de propriétés consiste à regrouper les deux composants suivants (cet espace de noms n'est toutefois pas appliqué par les systèmes ZFS) :
module:property |
Si vous utilisez des propriétés définies par l'utilisateur dans un contexte de programmation, spécifiez un nom de domaine DNS inversé pour le composant module des noms de propriétés, afin de réduire la probabilité que deux packages développés séparément n'utilisent un nom de propriété identique à des fins différentes. Les noms de propriété commençant par sun.com. sont réservés à l'usage d'Oracle Corporation.
Les valeurs des propriétés définies par l'utilisateur doivent respecter les conventions suivantes :
Elles doivent être constituées de chaînes arbitraires systématiquement héritées et elle ne doivent jamais être validées.
La longueur maximale de la valeur d'une propriété définie par l'utilisateur est de 1024 caractères.
Exemple :
# zfs set dept:users=finance userpool/user1 # zfs set dept:users=general userpool/user2 # zfs set dept:users=itops userpool/user3 |
Toutes les commandes fonctionnant avec des propriétés (par exemple, les commandes zfs list, zfs get, zfs set, etc.) permettent d'utiliser des propriétés natives et des propriétés définies par l'utilisateur.
Exemple :
zfs get -r dept:users userpool NAME PROPERTY VALUE SOURCE userpool dept:users all local userpool/user1 dept:users finance local userpool/user2 dept:users general local userpool/user3 dept:users itops local |
Pour supprimer une propriété définie par l'utilisateur, utilisez la commande zfs inherit. Exemple :
# zfs inherit -r dept:users userpool |
Si cette propriété n'est définie dans aucun jeu de données parent, elle est définitivement supprimée.
La commande zfs list contient un mécanisme extensible permettant d'afficher et d'envoyer des requêtes sur les informations des systèmes de fichiers. Cette section décrit les requêtes de base ainsi que les requêtes plus complexes.
La commande zfs list spécifiée sans option permet de répertorier les informations de base sur les jeux de données. Cette commande affiche le nom de tous les jeux de données définis sur le système ainsi que les valeurs used, available, referenced et mountpoint correspondantes. Pour plus d'informations sur ces propriétés, reportez-vous à la section Présentation des propriétés ZFS.
Exemple :
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 476K 16.5G 21K /pool pool/clone 18K 16.5G 18K /pool/clone pool/home 296K 16.5G 19K /pool/home pool/home/marks 277K 16.5G 277K /pool/home/marks pool/home/marks@snap 0 - 277K - pool/test 18K 16.5G 18K /test |
Cette commande permet d'afficher des jeux de données spécifiques. Pour cela, spécifiez le nom du ou des jeux de données à afficher sur la ligne de commande. Vous pouvez également spécifier l'option -r pour afficher de manière récursive tous les descendants des jeux de données. Exemple :
# zfs list -r pool/home/marks NAME USED AVAIL REFER MOUNTPOINT pool/home/marks 277K 16.5G 277K /pool/home/marks pool/home/marks@snap 0 - 277K - |
Vous pouvez utiliser la commande zfs list avec le point de montage d'un système de fichiers. Exemple :
# zfs list /pool/home/marks NAME USED AVAIL REFER MOUNTPOINT pool/home/marks 277K 16.5G 277K /pool/home/marks |
L'exemple suivant illustre la manière d'afficher les informations de base sur tank/home/chua et tous ses jeux de données descendants :
# zfs list -r tank/home/chua NAME USED AVAIL REFER MOUNTPOINT tank/home/chua 26.0K 4.81G 10.0K /tank/home/chua tank/home/chua/projects 16K 4.81G 9.0K /tank/home/chua/projects tank/home/chua/projects/fs1 8K 4.81G 8K /tank/home/chua/projects/fs1 tank/home/chua/projects/fs2 8K 4.81G 8K /tank/home/chua/projects/fs2 |
Pour plus d'informations sur la commande zfs list, reportez-vous à la page de manuel zfs(1M).
Les options o, -t et -H permettent de personnaliser la sortie de la commande -zfs list.
Vous pouvez également personnaliser la sortie des valeurs de propriété en spécifiant l'option -o ainsi que la liste des propriétés souhaitées séparées par une virgule. Toute propriété de jeu de données peut être utilisée en tant qu'argument valide. Pour consulter la liste de toutes les propriétés de jeu de données prises en charge, reportez-vous à la section Présentation des propriétés ZFS. Outre les propriétés répertoriées dans cette section, la liste de l'option -o peut également contenir la valeur littérale name afin de définir l'inclusion du nom de jeu de données dans la sortie.
Les exemples suivants illustrent l'utilisation de la commande zfs list pour afficher le nom de jeu de données et des valeurs sharenfs et mountpoint.
# zfs list -o name,sharenfs,mountpoint NAME SHARENFS MOUNTPOINT tank off /tank tank/home on /tank/home tank/home/ahrens on /tank/home/ahrens tank/home/bonwick on /tank/home/bonwick tank/home/chua on /tank/home/chua tank/home/eschrock on legacy tank/home/moore on /tank/home/moore tank/home/tabriz ro /tank/home/tabriz |
L'option -t permet de spécifier le type de jeu de données à afficher. Les types corrects sont décrits dans le tableau suivant.
Tableau 6–2 Types de jeux de données ZFS
Type |
Description |
---|---|
filesystem |
Systèmes de fichiers et clones |
Volume |
Volumes |
Instantané |
Instantanés |
L'option -t permet de spécifier la liste des types de jeux de données à afficher, séparés par une virgule. L'exemple suivant illustre l'affichage du nom et de la propriété -used de l'ensemble des systèmes de fichiers via l'utilisation simultanée des options -t et o :
# zfs list -t filesystem -o name,used NAME USED pool 476K pool/clone 18K pool/home 296K pool/home/marks 277K pool/test 18K |
L'option -H permet d'exclure l'en-tête de la commande zfs list lors de la génération de la sortie. L'option -H permet de remplacer les espaces par un caractère de tabulation. Cette option permet notamment d'effectuer des analyses sur les sorties (par exemple, des scripts). L'exemple suivant illustre la sortie de la commande zfs list spécifiée avec l'option -H :
# zfs list -H -o name pool pool/clone pool/home pool/home/marks pool/home/marks@snap pool/test |
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 |
Cette section décrit le processus de gestion des points de montage et des systèmes de fichiers partagés dans ZFS.
Par défaut, un système de fichiers ZFS est automatiquement monté lors de sa création. Vous pouvez déterminer un comportement de point de montage spécifique pour un système de fichiers comme décrit dans cette section.
Vous pouvez également définir le point de montage par défaut du jeu de données du pool lors de l'exécution de la commande de création zpool create en spécifiant l'option -m. Pour plus d'informations sur la création de pools, reportez-vous à la section Création d'un pool de stockage ZFS.
Tous les systèmes de fichiers ZFS sont montés lors de l'initialisation à l'aide du service svc://system/filesystem/local SMF (Service Management Facility). Les systèmes de fichiers sont montés sous /path, où path correspond au nom du système de fichiers. Système de fichiers ZFS
Vous pouvez remplacer le point de montage par défaut à l'aide de la commande zfs set pour définir la propriété mountpoint sur un chemin spécifique. Le système de fichiers ZFS crée automatiquement le point de montage spécifié, le cas échéant. Il monte ensuite automatiquement le système de fichiers correspondant, lors de l'exécution de la commande zfs mount -a. Il n'est pas nécessaire de modifier le fichier /etc/vfstab.
La propriété mountpoint est héritée. Par exemple, si le fichier pool/home est doté d'une propriété mountpoint définie sur /export/stuff, alors pool/home/user hérite de la valeur /export/stuff/user pour sa propriété mountpoint.
Pour éviter le montage d'un système de fichiers, définissez la propriété mountpoint sur none. En outre, la propriété canmount peut être utilisée pour contrôler le montage d'un système de fichiers. Pour plus d'informations sur la propriété canmount, reportez-vous à la section Propriété canmount.
Les systèmes de fichiers peuvent également être gérés de manière explicite à l'aide d'interfaces de montage héritées en utilisant la commande zfs set pour définir la propriété mountpoint sur legacy. Dans ce cas, le montage et la gestion d'un système de fichiers ne sont pas gérés automatiquement par ZFS. Ces opérations s'effectuent alors à l'aide des outils hérités, comme les commandes mount et umount et le fichier /etc/vfstab. Pour plus d'informations sur les montages hérités, reportez-vous à la section Points de montage hérités.
Lorsque vous modifiez la propriété mountpoint de legacy à none sur un chemin spécifique, le système de fichiers ZFS est automatiquement monté.
Si le système de fichiers ZFS est géré automatiquement sans être monté et si la propriété mountpoint est modifiée, le système de fichiers reste démonté.
Les jeux de données dont la propriété mountpoint n'est pas définie sur legacy sont gérés par le système ZFS. L'exemple suivant illustre la création d'un jeu de données dont le point de montage est géré automatiquement par le système ZFS :
# zfs create pool/filesystem # zfs get mountpoint pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mountpoint /pool/filesystem default # zfs get mounted pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mounted yes - |
Vous pouvez également définir la propriété mountpoint de manière explicite, comme dans l'exemple suivant :
# zfs set mountpoint=/mnt pool/filesystem # zfs get mountpoint pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mountpoint /mnt local # zfs get mounted pool/filesystem NAME PROPERTY VALUE SOURCE pool/filesystem mounted yes - |
Si la propriété mountpoint est modifiée, le système de fichiers est automatiquement démonté de l'ancien point de montage et remonté sur le nouveau. Les répertoires de point de montage sont créés, le cas échéant. Si ZFS n'est pas en mesure de démonter un système de fichiers parce qu'il est actif, une erreur est signalée et un démontage manuel forcé doit être effectué.
La gestion des systèmes de fichiers ZFS peut s'effectuer à l'aide d'outils hérités. Pour cela, la propriété mountpoint doit être définie sur legacy. Les systèmes de fichiers hérités sont alors gérés à l'aide des commandes mount et umount et du fichier /etc/vfstab. Lors de l'initialisation, le système de fichiers ZFS ne monte pas automatiquement les systèmes de fichiers hérités et les commandes ZFS mount et umount ne fonctionnent pas sur ces types de jeu de données. Les exemples suivants illustrent les commandes de définition et de gestion d'un jeu de données ZFS hérité :
# zfs set mountpoint=legacy tank/home/eschrock # mount -F zfs tank/home/eschrock /mnt |
Pour monter automatiquement un système de fichiers hérité lors de l'initialisation, vous devez ajouter une entrée au fichier /etc/vfstab. L'exemple suivant montre l'entrée telle qu'elle peut apparaître dans le fichier /etc/vfstab :
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # tank/home/eschrock - /mnt zfs - yes - |
Les entrées device to fsck et fsck pass sont définies sur - car la commande fsck ne s'applique pas aux systèmes de fichiers ZFS. Pour plus d'informations sur l'intégrité des données ZFS, reportez-vous à la section Sémantique transactionnelle.
Le montage des systèmes de fichiers ZFS s'effectue automatiquement lors du processus de création ou lors de l'initialisation du système. Vous ne devez utiliser la commande zfs mount que lorsque vous devez modifier les options de montage ou monter/démonter explicitement les systèmes de fichiers.
Spécifiée sans argument, la commande zfs mount répertorie tous les systèmes de fichiers actuellement montés gérés par ZFS. Les points de montage hérités ne sont pas inclus. Exemple :
# zfs mount tank /tank tank/home /tank/home tank/home/bonwick /tank/home/bonwick tank/ws /tank/ws |
L'option -a permet de monter tous les systèmes de fichiers ZFS. Les systèmes de fichiers hérités ne sont pas montés. Exemple :
# zfs mount -a |
Par défaut, le système ZFS autorise uniquement le montage sur les répertoires vides. Pour forcer une opération de montage effectuée sur un répertoire non vide, spécifiez l'option -O. Exemple :
# zfs mount tank/home/lalt cannot mount '/export/home/lalt': directory is not empty use legacy mountpoint to allow this behavior, or use the -O flag # zfs mount -O tank/home/lalt |
La gestion des points de montage hérités doit s'effectuer à l'aide des outils hérités. Toute tentative d'utilisation des outils ZFS génère une erreur. Exemple :
# zfs mount pool/home/billm cannot mount 'pool/home/billm': legacy mountpoint use mount(1M) to mount this filesystem # mount -F zfs tank/home/billm |
Le montage d'un système de fichiers requiert l'utilisation d'un ensemble d'options basées sur les valeurs des propriétés associées au jeu de données. Le tableau ci-dessous illustre la corrélation entre les propriétés et les options de montage :
Tableau 6–4 Options et propriétés de montage ZFS
Propriétés |
Option de montage |
---|---|
atime |
atime/noatime |
devices |
devices/nodevices |
exec |
exec/noexec |
nbmand |
nbmand/nonbmand |
readonly |
ro/rw |
setuid |
setuid/nosetuid |
xattr |
xattr/noaxttr |
L'option de montage nosuid représente un alias de nodevices,nosetuid.
Si les options de montage décrites à la section précédente sont définies de manière explicite en spécifiant l'option -o avec la commande zfs mount, les valeurs des propriétés associées sont remplacées de manière temporaire. Ces valeurs de propriété sont désignées par la chaîne temporary dans la commande zfs get et reprennent leur valeur d'origine une fois le système de fichiers démonté. Si une valeur de propriété est modifiée alors que le jeu de données est monté, la modification prend immédiatement effet et remplace toute valeur temporaire.
L'exemple suivant illustre la définition temporaire de l'option de montage en lecture seule sur le système de fichiers tank/home/perrin. Le système de fichiers est censé être démonté.
# zfs mount -o ro tank/home/perrin |
Pour modifier temporairement une valeur de propriété sur un système de fichiers monté, vous devez utiliser l'option spécifique remount. Dans l'exemple suivant, la propriété atime est temporairement définie sur la valeur off pour un système de fichiers monté :
# zfs mount -o remount,noatime tank/home/perrin # zfs get atime tank/home/perrin NAME PROPERTY VALUE SOURCE tank/home/perrin atime off temporary |
Pour plus d'informations sur la commande zfs mount, reportez-vous à la page de manuel zfs(1M).
Le démontage des systèmes de fichiers ZFS peut s'effectuer à l'aide de la commande zfs unmount. La commande unmount peut utiliser le point de montage ou le nom du système de fichiers comme argument.
L'exemple suivant illustre le démontage d'un système de fichiers avec l'argument de nom de système de fichiers :
# zfs unmount tank/home/tabriz |
L'exemple suivant illustre le démontage d'un système de fichiers avec l'argument de point de montage :
# zfs unmount /export/home/tabriz |
Si le système de fichiers est occupé, la commande unmount échoue. L'option -f permet de forcer le démontage d'un système de fichiers. Le démontage forcé d'un système de fichiers requiert une attention particulière si le contenu de ce système est en cours d'utilisation. Ce type d'opération peut entraîner des comportements d'application imprévisibles.
# zfs unmount tank/home/eschrock cannot unmount '/export/home/eschrock': Device busy # zfs unmount -f tank/home/eschrock |
Pour garantir la compatibilité ascendante, vous pouvez démonter les systèmes de fichiers ZFS à l'aide de la commande héritée umount. Exemple :
# umount /export/home/bob |
Pour plus d'informations sur la commande zfs unmount, reportez-vous à la page de manuel zfs(1M).
Le système de fichiers ZFS permet de partager automatiquement des systèmes de fichiers en définissant la propriété sharenfs. Cette propriété évite d'avoir à modifier le fichier /etc/dfs/dfstab lors de l'ajout d'un système de fichiers. La propriété sharenfs correspond à une liste d'options séparées par une virgule spécifiée avec la commande share. La valeur on constitue un alias des options de partage par défaut, qui attribuent les droits read/write à tous les utilisateurs. La valeur off indique que le partage du système de fichiers n'est pas géré par ZFS et qu'il s'effectue à l'aide des outils classiques (par exemple, à l'aide du fichier /etc/dfs/dfstab). Tous les systèmes de fichiers dont la propriété sharenfs n'est pas définie sur off sont partagés lors de l'initialisation.
Par défaut, le partage est annulé pour tous les systèmes de fichiers. Pour partager un nouveau système de fichiers, utilisez une syntaxe de la commande zfs set similaire à celle présentée à l'exemple ci-dessous :
# zfs set sharenfs=on tank/home/eschrock |
La propriété sharenfs est héritée et les systèmes de fichiers sont automatiquement partagés lorsqu'ils sont créés (si la propriété héritée n'est pas définie sur off). Exemple :
# zfs set sharenfs=on tank/home # zfs create tank/home/bricker # zfs create tank/home/tabriz # zfs set sharenfs=ro tank/home/tabriz |
tank/home/bricker et tank/home/tabriz sont partagés en écriture dès leur création, car ils héritent de la propriété sharenfs définie pour tank/home. Une fois la propriété définie sur ro (lecture seule), tank/home/tabriz est partagé en lecture seule, quelle que soit la propriété sharenfs définie pour tank/home .
Même si la plupart des systèmes de fichiers sont automatiquement partagés ou non lors de l'initialisation, la création ou la destruction de ces derniers, il est parfois nécessaire de les définir explicitement comme non partagés. Ce type d'opération s'effectue à l'aide de la commande zfs unshare. Exemple :
# zfs unshare tank/home/tabriz |
Cette commande entraîne l'annulation du partage du système de fichiers tank/home/tabriz. Pour annuler le partage de tous les systèmes de fichiers ZFS du système, vous devez utiliser l'option - a.
# zfs unshare -a |
La plupart du temps, le comportement automatique du système de fichiers ZFS par rapport au partage de système de fichiers lors de l'initialisation et de la création de ces derniers est suffisant pour les opérations normales. Si vous êtes amené à annuler le partage d'un système de fichiers, vous pouvez réactiver le partage à l'aide de la commande zfs share. Exemple :
# zfs share tank/home/tabriz |
L'option - a permet également de partager tous les systèmes de fichiers ZFS du système.
# zfs share -a |
Si la propriété sharenfs est définie sur off, l'activation et l'annulation du partage des systèmes de fichiers ZFS sont désactivées de manière permanente. Cette valeur permet de gérer le partage des systèmes de fichiers à l'aide des outils classiques (par exemple, à l'aide du fichier /etc/dfs/dfstab).
Contrairement à la commande mount héritée, les commandes share et unshare peuvent être exécutées sur les systèmes de fichiers ZFS. Vous pouvez dès lors partager manuellement un système de fichiers en spécifiant des options différentes de celles définies pour la propriété sharenfs. Ce modèle de gestion est déconseillé. La gestion des partages NFS doit s'effectuer intégralement à l'aide du système ZFS ou intégralement à l'aide du fichier /etc/dfs/dfstab. Les modèle ZFS a été conçu pour simplifier et pour faciliter les opérations de gestion par rapport au modèle classique.
La propriété quota permet de limiter la quantité d'espace disque disponible pour un système de fichiers. La propriété reservation permet quant à elle de garantir la disponibilité d'une certaine quantité d'espace disque pour un système de fichiers. Ces deux propriétés s'appliquent au jeu de données sur lequel elles sont définies ainsi qu'à ses descendants.
Par exemple, si un quota est défini pour le jeu de données tank/home, la quantité d'espace disque totale utilisée par tank/home et par tous ses descendants ne peut pas excéder le quota défini. De même, si une réservation est définie pour le jeu de données tank/home, cette réservation s'applique à tank/home et à tous ses descendants. La quantité d'espace disque utilisée par un jeu de données et par tous ses descendants est indiquée par la propriété used.
Les propriétés refquota et refreservation vous permettent de gérer l'espace d'un système de fichiers sans prendre en compte l'espace disque utilisé par les descendants, notamment les instantanés et les clones.
Dans cette version de Solaris, vous pouvez définir un quota d'utilisateur (user) ou de groupe sur la quantité d'espace disque utilisée par les fichiers appartenant à un utilisateur ou à un groupe spécifique. Les propriétés de quota d'utilisateur et de groupe ne peuvent pas être définies sur un volume, sur un système de fichiers antérieur à la version 4, ou sur un pool antérieur à la version 15.
Considérez les points suivants pour déterminer quelles fonctions de quota et de réservation conviennent le mieux à la gestion de vos systèmes de fichiers :
Les propriétés quota et reservation conviennent à la gestion de l'espace disque utilisé par les jeux de données et leurs descendants.
Les propriétés refquota et refreservation conviennent à la gestion de l'espace disque utilisé par les jeux de données.
La définition d'une propriété refquota ou refreservation supérieure à une la propriété quota ou reservation n'a aucun effet. Lorsque vous définissez la propriété quota ou refquota, les opérations qui tentent de dépasser l'une de ces valeurs échouent. Il est possible de dépasser une valeur quota supérieure à une valeur refquota. Par exemple, si certains blocs d'instantanés sont modifiés, la valeur quota risque d'être dépassée avant la valeur refquota.
Les quotas d'utilisateurs et de groupes permettent d'augmenter plus facilement l'espace disque contenant de nombreux comptes d'utilisateur, par exemple dans une université.
Pour plus d'informations sur la définition de quotas et réservations, reportez-vous aux sections Définitions de quotas sur les systèmes de fichiers ZFS et Définition de réservations sur les systèmes de fichiers ZFS.
Les quotas des systèmes de fichiers ZFS peuvent être définis et affichés à l'aide des commandes zfs set et zfs get. Dans l'exemple suivant, un quota de 10 Go est défini pour tank/home/bonwick :
# zfs set quota=10G tank/home/bonwick # zfs get quota tank/home/bonwick NAME PROPERTY VALUE SOURCE tank/home/bonwick quota 10.0G local |
Les quotas affectent également la sortie des commandes zfs list et df. Exemple :
# zfs list NAME USED AVAIL REFER MOUNTPOINT tank/home 16.5K 33.5G 8.50K /export/home tank/home/bonwick 15.0K 10.0G 8.50K /export/home/bonwick tank/home/bonwick/ws 6.50K 10.0G 8.50K /export/home/bonwick/ws # df -h /export/home/bonwick Filesystem size used avail capacity Mounted on tank/home/bonwick 10G 8K 10G 1% /export/home/bonwick |
tank/home dispose de 33,5 Go d'espace disque disponible. Toutefois, tank/home/bonwick et tank/home/bonwick/ws disposent uniquement de 10 Go d'espace disponible, respectivement, en raison du quota défini pour tank/home/bonwick.
Vous ne pouvez pas définir un quota sur une valeur inférieure à la quantité d'espace actuellement utilisée par un jeu de données. Exemple :
# zfs set quota=10K tank/home/bonwick cannot set quota for 'tank/home/bonwick': size is less than current used or reserved space |
Vous pouvez définir une propriété refquota sur un jeu de données pour limiter l'espace disque occupé par le jeu de données. Cette limite fixe ne comprend pas l'espace disque utilisé par les descendants. Exemple :
# zfs set refquota=10g students/studentA # zfs list NAME USED AVAIL REFER MOUNTPOINT profs 106K 33.2G 18K /profs students 57.7M 33.2G 19K /students students/studentA 57.5M 9.94G 57.5M /students/studentA # zfs snapshot students/studentA@today # zfs list NAME USED AVAIL REFER MOUNTPOINT profs 106K 33.2G 18K /profs students 57.7M 33.2G 19K /students students/studentA 57.5M 9.94G 57.5M /students/studentA students/studentA@today 0 - 57.5M - |
Par souci de commodité, vous pouvez définir un autre quota pour un jeu de données afin de vous aider à gérer l'espace disque utilisé par les instantanés. Exemple :
# zfs set quota=20g students/studentA # zfs list NAME USED AVAIL REFER MOUNTPOINT profs 106K 33.2G 18K /profs students 57.7M 33.2G 19K /students students/studentA 57.5M 9.94G 57.5M /students/studentA students/studentA@today 0 - 57.5M - |
Dans ce scénario, studentA peut atteindre la limite maximale de refquota (10 Go), mais studentA peut supprimer des fichiers pour libérer de l'espace même en présence d'instantanés.
Dans l'exemple précédent, le plus petit des deux quotas (10 Go par rapport à 20 Go) s'affiche dans la sortie zfs list. Pour afficher la valeur des deux quotas, utilisez la commande zfs get. Exemple :
# zfs get refquota,quota students/studentA NAME PROPERTY VALUE SOURCE students/studentA refquota 10G local students/studentA quota 20G local |
Vous pouvez définir un quota d'utilisateurs ou de groupes en utilisant respectivement les commandes zfs userquota et zfs groupquota. Exemple :
# zfs create students/compsci # zfs set userquota@student1=10G students/compsci # zfs create students/labstaff # zfs set groupquota@staff=20GB students/labstaff |
Affichez le quota d'utilisateurs ou de groupes actuel comme suit :
# zfs get userquota@student1 students/compsci NAME PROPERTY VALUE SOURCE students/compsci userquota@student1 10G local # zfs get groupquota@staff students/labstaff NAME PROPERTY VALUE SOURCE students/labstaff groupquota@staff 20G local |
Vous pouvez afficher l'utilisation générale de l'espace disque par les utilisateurs et les groupes en interrogeant les propriétés suivantes :
# zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 227M none POSIX User student1 455M 10G # zfs groupspace students/labstaff TYPE NAME USED QUOTA POSIX Group root 217M none POSIX Group staff 217M 20G |
Pour identifier l'utilisation de l'espace disque d'un groupe ou d'un utilisateur, vous devez interroger les propriétés suivantes :
# zfs get userused@student1 students/compsci NAME PROPERTY VALUE SOURCE students/compsci userused@student1 455M local # zfs get groupused@staff students/labstaff NAME PROPERTY VALUE SOURCE students/labstaff groupused@staff 217M local |
Les propriétés de quota d'utilisateurs et de groupes ne sont pas affichées à l'aide de la commande zfs get all dataset, qui affiche une liste de toutes les autres propriétés du système de fichiers.
Vous pouvez supprimer un quota d'utilisateurs ou de groupes comme suit :
# zfs set userquota@user1=none students/compsci # zfs set groupquota@staff=none students/labstaff |
Les quotas d'utilisateurs et de groupes sur les systèmes de fichiers ZFS offrent les fonctionnalités suivantes :
Un quota d'utilisateurs ou de groupes défini sur un système de fichiers parent n'est pas automatiquement hérité par un système de fichiers descendant.
Cependant, le quota d'utilisateurs ou de groupes est appliqué lorsqu'un clone ou un instantané est créé à partir d'un système de fichiers lié à un quota d'utilisateurs ou de groupes. De même, un quota d'utilisateurs ou de groupes est inclus avec le système de fichiers lorsqu'un flux est créé à l'aide de la commande zfs send, même sans l'option -R.
Les utilisateurs dénués de privilèges peuvent uniquement disposer de leur propre utilisation d'espace disque. L'utilisateur root ou l'utilisateur qui s'est vu accorder le privilège userused ou groupused peut accéder aux informations de comptabilité de l'espace disque utilisateur ou groupe de tout le monde.
Les propriétés userquota et groupquota ne peuvent pas être définies sur les volumes ZFS, sur un système de fichiers antérieur à la version 4, ou sur un pool antérieur à la version 15.
L'application des quotas d'utilisateurs et de groupes peut être différée de quelques secondes. Ce délai signifie que les utilisateurs peuvent dépasser leurs quotas avant que le système ne le remarque et refuse d'autres écritures en affichant le message d'erreur EDQUOT .
Vous pouvez utiliser la commande quota héritée pour examiner les quotas d'utilisateurs dans un environnement NFS où un système de fichiers ZFS est monté, par exemple. Sans aucune option, la commande quota affiche uniquement la sortie en cas de dépassement du quota de l'utilisateur. Exemple :
# zfs set userquota@student1=10m students/compsci # zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 227M none POSIX User student1 455M 10M # quota student1 Block limit reached on /students/compsci |
Si vous réinitialisez le quota d'utilisateurs et que la limite du quota n'est plus dépassée, vous devez utiliser la commande quota -v pour examiner le quota de l'utilisateur. Exemple :
# zfs set userquota@student1=10GB students/compsci # zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 227M none POSIX User student1 455M 10G # quota student1 # quota -v student1 Disk quotas for student1 (uid 201): Filesystem usage quota limit timeleft files quota limit timeleft /students/compsci 466029 10485760 10485760 |
Une réservation ZFS désigne une quantité d'espace disque du pool garantie pour un jeu de données. Dès lors, pour réserver une quantité d'espace disque pour un jeu de données, cette quantité doit être actuellement disponible sur le pool. La quantité totale d'espace non utilisé des réservations ne peut pas dépasser la quantité d'espace disque non utilisé du pool. La définition et l'affichage des réservations ZFS s'effectuent respectivement à l'aide des commandes zfs set et zfs get. Exemple :
# zfs set reservation=5G tank/home/moore # zfs get reservation tank/home/moore NAME PROPERTY VALUE SOURCE tank/home/moore reservation 5G local |
Les réservations peuvent affecter la sortie de la commande zfs list. Exemple :
# zfs list NAME USED AVAIL REFER MOUNTPOINT tank/home 5.00G 33.5G 8.50K /export/home tank/home/moore 15.0K 33.5G 8.50K /export/home/moore |
Notez que tank/home utilise 5 Go d'espace bien que la quantité totale d'espace à laquelle tank/home et ses descendants font référence est bien inférieure à 5 Go. L'espace utilisé correspond à l'espace réservé pour tank/home/moore. Les réservations sont prises en compte dans le calcul de l'espace disque utilisé des jeux de données parent et non dans le quota, la réservation ou les deux.
# zfs set quota=5G pool/filesystem # zfs set reservation=10G pool/filesystem/user1 cannot set reservation for 'pool/filesystem/user1': size is greater than available space |
Un jeu de données peut utiliser davantage d'espace disque que sa réservation, du moment que le pool dispose d'un espace non réservé et disponible et que l'utilisation actuelle du jeu de données se trouve en dessous des quotas. Un jeu de données ne peut pas utiliser un espace disque réservé à un autre jeu de données.
Les réservations ne sont pas cumulatives. En d'autres termes, l'exécution d'une nouvelle commande zfs set pour un jeu de données déjà associé à une réservation n'entraîne pas l'ajout de la nouvelle réservation à la réservation existante. La seconde réservation remplace la première. Exemple :
# zfs set reservation=10G tank/home/moore # zfs set reservation=5G tank/home/moore # zfs get reservation tank/home/moore NAME PROPERTY VALUE SOURCE tank/home/moore reservation 5.00G local |
Vous pouvez définir une réservation refreservation pour garantir un espace disque ne contenant aucun instantané ou clone au jeu de données. Cette valeur est prise en compte dans le calcul de l'espace utilisé des jeux de données parent et vient en déduction des quotas et réservations des jeux de données parent. Exemple :
# zfs set refreservation=10g profs/prof1 # zfs list NAME USED AVAIL REFER MOUNTPOINT profs 10.0G 23.2G 19K /profs profs/prof1 10G 33.2G 18K /profs/prof1 |
Vous pouvez également définir une valeur de réservation pour le même jeu de données afin de garantir l'espace du jeu de données et pas de l'espace des instantanés. Exemple :
# zfs set reservation=20g profs/prof1 # zfs list NAME USED AVAIL REFER MOUNTPOINT profs 20.0G 13.2G 19K /profs profs/prof1 10G 33.2G 18K /profs/prof1 |
Les réservations régulières sont prises en compte dans le calcul de l'espace utilisé du parent.
Dans l'exemple précédent, le plus petit des deux quotas (10 Go par rapport à 20 Go) s'affiche dans la sortie zfs list. Pour afficher la valeur des deux quotas, utilisez la commande zfs get. Exemple :
# zfs get reservation,refreserv profs/prof1 NAME PROPERTY VALUE SOURCE profs/prof1 reservation 20G local profs/prof1 refreservation 10G local |
Lorsque la propriété refreservation est définie, un instantané n'est autorisé que si suffisamment d'espace non réservé est disponible dans le pool au-delà de cette réservation afin de pouvoir contenir le nombre actuel d'octets référencés dans le jeu de données.