1. Système de fichiers Oracle Solaris ZFS (introduction)
2. Mise en route d'Oracle Solaris ZFS
3. Différences entre les systèmes de fichiers Oracle Solaris ZFS et classiques
4. Gestion des pools de stockage Oracle Solaris ZFS
5. Installation et initialisation d'un système de fichiers racine ZFS Oracle Solaris
6. Gestion des systèmes de fichiers Oracle Solaris ZFS
Gestion des systèmes de fichiers ZFS (présentation)
Création, destruction et renommage de systèmes de fichiers ZFS
Création d'un système de fichiers ZFS
Destruction d'un système de fichiers ZFS
Modification du nom d'un système de fichiers ZFS
Présentation des propriétés ZFS
Propriétés ZFS natives en lecture seule
Envoi de requêtes sur les informations des systèmes de fichiers ZFS
Affichage des informations de base des systèmes ZFS
Création de requêtes ZFS complexes
Envoi de requêtes sur les propriétés ZFS
Envoi de requête sur les propriétés ZFS pour l'exécution de scripts
Montage et partage des systèmes de fichiers ZFS
Gestion des points de montage ZFS
Points de montage automatiques
Montage de système de fichiers ZFS
Utilisation de propriétés de montage temporaires
Démontage des systèmes de fichiers ZFS
Activation et annulation du partage des systèmes de fichiers ZFS
Contrôle de la sémantique de partage
Annulation du partage des systèmes de fichiers ZFS
Partage des systèmes de fichiers ZFS
Comportement de partage hérité
Définition des quotas et réservations ZFS
Définitions de quotas sur les systèmes de fichiers ZFS
Définition de quotas d'utilisateurs et de groupes sur un système de fichiers ZFS
Définition de réservations sur les systèmes de fichiers ZFS
Mise à niveau des systèmes de fichiers ZFS
7. Utilisation des instantanés et des clones ZFS Oracle Solaris
8. Utilisation des ACL et des attributs pour protéger les fichiers Oracle Solaris ZFS
9. Administration déléguée de ZFS dans Oracle Solaris
10. Rubriques avancées Oracle Solaris ZFS
11. Dépannage d'Oracle Solaris ZFS et récupération de pool
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
|
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é ACL (aclinherit).
aclmode
Pour obtenir une description détaillée, reportez-vous à la section Propriété ACL (aclinherit).
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.