Ignorer les liens de navigation | |
Quitter l'aperu | |
![]() |
Administration d'Oracle Solaris 11.1 : Systèmes de fichiers ZFS Oracle Solaris 11.1 Information Library (Français) |
1. Système de fichiers Oracle Solaris ZFS (introduction)
2. Mise en route d'Oracle Solaris ZFS
3. Gestion des pools de stockage Oracle Solaris ZFS
4. Gestion des composants du pool root ZFS
5. 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 de système 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
Syntaxe de partage ZFS héritée
Nouvelle syntaxe de partage ZFS
Partage ZFS avec héritage par propriété
Héritage de partage ZFS dans les anciens pools
Affichage d'informations de partage ZFS
Modification des valeurs de propriété d'un partage ZFS
Publication et annulation de publication de partages ZFS
Partage de fichiers ZFS au sein d'une zone non globale
Problèmes de migration/transition de partage ZFS
Dépannage des problèmes de partage de système de fichiers ZFS
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
Chiffrement des systèmes de fichiers ZFS
Modification des clés d'un système de fichiers ZFS chiffré
Gestion des clés de chiffrement ZFS
Autorisations de délégation d'opérations sur les clés ZFS
Montage d'un système de fichiers ZFS chiffré
Mise à niveau des systèmes de fichiers ZFS chiffrés
Interactions entre les propriétés de compression, de suppression des doublons et de chiffrement ZFS
Exemples de chiffrement de systèmes de fichiers ZFS
Migration de systèmes de fichiers ZFS
Migration d'un système de fichiers vers un système de fichiers ZFS
Dépannage des migrations de systèmes de fichiers ZFS
Mise à niveau des systèmes de fichiers ZFS
6. Utilisation des instantanés et des clones ZFS Oracle Solaris
7. Utilisation des ACL et des attributs pour protéger les fichiers Oracle Solaris ZFS
8. Administration déléguée de ZFS dans Oracle Solaris
9. Rubriques avancées Oracle Solaris ZFS
10. Dépannage d'Oracle Solaris ZFS et récupération de pool
11. Archivage des instantanés et récupération du pool root
12. Pratiques recommandées pour Oracle Solaris 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 jeux 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 de fournir des statistiques internes ou de contrôler le comportement du système 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 héritables sont des propriétés qui, une fois définies sur un système de fichiers parent, s'appliquent à l'ensemble de ses descendants.
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 5-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 est mentionné dans la description figurant dans le Tableau 5-1.
Les propriétés natives en lecture seule sont répertoriées dans cette section et décrites dans le Tableau 5-1.
available
compressratio
creation
keystatus
mounted
origin
referenced
rekeydate
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 5-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. A 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 5-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 5-1.
aclinherit
Pour obtenir une description détaillée, reportez-vous à la section Propriétés ACL.
atime
canmount
casesensitivity
checksum
compression
copies
devices
dedup
encryption
exec
keysource
logbias
mlslabel
mountpoint
nbmand
normalization
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
rstchown
secondarycache
share.smb
share.nfs
setuid
snapdir
version
vscan
utf8only
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 équivaut à définir la propriété mountpoint sur none, à la différence près que le système de fichiers conserve une propriété mountpoint normale pouvant ê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
Lorsque la propriété canmount est définie sur noauto, le système de fichiers peut uniquement être monté de façon explicite et pas automatique.
Cette propriété indique si l'algorithme de correspondance de nom de fichiers utilisé par le système de fichiers doit être casesensitive (respecter la casse), caseinsensitive (ne pas tenir compte de la casse) ou autoriser une combinaison des deux styles de correspondance (mixed).
Lorsqu'une demande de correspondance ne tenant pas compte de la casse est effectuée sur un système de fichiers défini sur mixed, le comportement est généralement identique à ce qu'il serait sur un système de fichiers ne tenant pas compte de la casse. Toutefois, un système de fichiers doté d'une sensibilité à la casse "mixte" peut contenir des répertoires portant des noms uniques en cas de respect de la casse, mais qui ne sont pas uniques lorsque la casse n'est pas prise en compte.
Par exemple, un répertoire peut contenir des fichiers nommés foo, Foo et FOO. Si une demande de correspondance ne tenant pas compte de la casse est effectuée pour l'une des formes possibles de foo (par exemple foo, FOO, FoO, fOo, etc.), l'algorithme de correspondance sélectionne en tant que correspondance l'un des trois fichiers existants. Il est impossible de prévoir avec certitude quel fichier sera choisi comme correspondance par l'algorithme ; en revanche, il est certain que le même fichier sera choisi comme correspondance pour toutes les formes de foo. Le fichier choisi comme correspondance ne tenant pas compte de la casse pour foo, FOO , foO, Foo, et ainsi de suite, est toujours le même, tant que le répertoire n'est pas modifié.
Les propriétés utf8only, normalization et casesensitivity fournissent également de nouvelles autorisations qui peuvent être attribuées à des utilisateurs non privilégiés par le biais de l'administration déléguée de ZFS. Pour plus d'informations, reportez-vous à la section Délégation d'autorisations ZFS.
A des fins de fiabilité, les métadonnées d'un système de fichiers ZFS sont automatiquement stockées plusieurs fois sur différents disques, lorsque cela est possible. Cette fonction est connue sous le terme anglais de ditto blocks.
Cette version vous permet également de stocker plusieurs copies des données utilisateur par système de fichiers à l'aide de la commande zfs set copies. Par exemple :
# zfs set copies=2 users/home # zfs get copies users/home NAME PROPERTY VALUE SOURCE users/home copies 2 local
Les valeurs disponibles sont 1, 2 et 3. La valeur par défaut est 1. Ces copies constituent un ajout à toute redondance de niveau pool, par exemple dans une configuration en miroir ou RAID-Z.
Stocker plusieurs copies des données utilisateur ZFS présente les avantages suivants :
Cela améliore la rétention des données en autorisant leur récupération à partir d'erreurs de lecture de blocs irrécupérables, comme par exemple des défaillances de média (plus connues sous le nom de bit rot) pour l'ensemble des configurations ZFS.
Cela garantit la sécurité des données, même lorsqu'un seul disque est disponible.
Cela permet de choisir les stratégies de protection des données par système de fichiers et de dépasser les capacités du pool de stockage.
Remarque - Selon l'allocation des blocs "ditto" dans le pool de stockage, plusieurs copies peuvent être placées sur un seul disque. La saturation ultérieure d'un disque peut engendrer l'indisponibilité de tous les blocs "ditto".
Vous pouvez envisager l'utilisation des blocs "ditto" lorsque vous créez accidentellement un pool non redondant et lorsque vous avez besoin de définir des stratégies de conservation de données.
La propriété dedup détermine si les données en double sont supprimées d'un système de fichiers. Si la propriété dedup est activée pour un système de fichiers, les blocs de données dupliquées sont supprimés de façon synchrone. Par conséquent, seules les données uniques sont stockées et les composants communs sont partagés entre les fichiers.
N'activez pas la propriété dedup sur des systèmes de fichiers résidant sur des systèmes de production avant d'avoir passé en revue les points suivants :
Déterminez si vous pouvez économiser de l'espace grâce à la suppression des doublons. Si la suppression des doublons ne s'appliquent pas à vos données, inutile d'activer cette propriété. Par exemple :
# zdb -S tank Simulated DDT histogram: bucket allocated referenced ______ ______________________________ ______________________________ refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE ------ ------ ----- ----- ----- ------ ----- ----- ----- 1 2.27M 239G 188G 194G 2.27M 239G 188G 194G 2 327K 34.3G 27.8G 28.1G 698K 73.3G 59.2G 59.9G 4 30.1K 2.91G 2.10G 2.11G 152K 14.9G 10.6G 10.6G 8 7.73K 691M 529M 529M 74.5K 6.25G 4.79G 4.80G 16 673 43.7M 25.8M 25.9M 13.1K 822M 492M 494M 32 197 12.3M 7.02M 7.03M 7.66K 480M 269M 270M 64 47 1.27M 626K 626K 3.86K 103M 51.2M 51.2M 128 22 908K 250K 251K 3.71K 150M 40.3M 40.3M 256 7 302K 48K 53.7K 2.27K 88.6M 17.3M 19.5M 512 4 131K 7.50K 7.75K 2.74K 102M 5.62M 5.79M 2K 1 2K 2K 2K 3.23K 6.47M 6.47M 6.47M 8K 1 128K 5K 5K 13.9K 1.74G 69.5M 69.5M Total 2.63M 277G 218G 225G 3.22M 337G 263G 270G dedup = 1.20, compress = 1.28, copies = 1.03, dedup * compress / copies = 1.50
Si le ratio estimé est supérieur à 2, la suppression des doublons est susceptible de vous faire gagner de la place.
Dans l'exemple ci-dessus, le ratio de suppression des doublons est inférieur à 2, si bien que l'activation de dedup n'est pas recommandée.
Assurez-vous que votre système dispose de suffisamment de mémoire pour prendre en charge dedup.
Chaque entrée de table dedup interne a une taille d'environ 320 octets.
Multipliez le nombre de blocs alloués par 320. Par exemple :
in-core DDT size = 2.63M x 320 = 841.60M
Les performances de la propriété dedup sont optimisées lorsque le tableau de suppression des doublons tient en mémoire. Si ce tableau doit être écrit sur le disque, les performances diminuent. Par exemple, la suppression d'un système de fichiers volumineux lorsque l'option de dépuplication est activée entrave considérablement les performances du système si les conditions relatives à la mémoire évoquées plus haut ne sont pas satisfaites.
Quand dedup est activé, l'algorithme de somme de contrôle dedup écrase la propriété checksum. Définir la valeur de propriété sur verify équivaut à spécifier sha256,verify. Si la propriété est définie sur verify et que deux blocs ont la même signature, ZFS effectue une vérification octet par octet avec le bloc existant afin de garantir que les contenus sont identiques.
Cette propriété peut être activée pour chaque système de fichiers. Par exemple :
# zfs set dedup=on tank/home
Vous pouvez utiliser la commande zfs get pour déterminer si la propriété dedup est définie.
Bien que la suppression des doublons soit définie en tant que propriété du système de fichiers, elle s'étend à l'échelle du pool. Par exemple, vous pouvez identifier le ratio de suppression des doublons. Par exemple :
# zpool list tank NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 136G 55.2G 80.8G 40% 2.30x ONLINE -
La colonne DEDUP indique le nombre de suppressions de doublons effectuées. Si la propriété dedup n'est activée sur aucun système de fichiers ou si la propriété dedup vient d'être activée sur le système de fichiers, le ratio DEDUP est 1.00x.
Vous pouvez utiliser la commande zpool get pour déterminer la valeur de la propriété dedupratio. Par exemple :
# zpool get dedupratio export NAME PROPERTY VALUE SOURCE rpool dedupratio 3.00x -
Cette propriété du pool illustre le nombre de suppressions de doublons de données effectuées dans ce pool.
Vous pouvez utiliser la propriété encryption pour chiffrer les systèmes de fichiers ZFS. Pour plus d'informations, reportez-vous à la section Chiffrement des systèmes de fichiers ZFS.
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.
Cette propriété permet de partager des systèmes de fichiers ZFS avec le service Oracle Solaris SMB et d'identifier les options à utiliser.
Quand la propriété est activée, tous les partages qui héritent de la propriété sont repartagés avec leurs options actuelles. Quand la propriété est désactivée, les partages qui héritent de la propriété cessent d'être partagés.Pour obtenir des exemples d'utilisation de la propriété share.smb, reportez-vous à la section Activation et annulation du partage des systèmes de fichiers ZFS.
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 altérations 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 com.oracle. 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.
Par 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.
Par 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. Par 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.