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
Propriétés ZFS natives définies
Propriétés ZFS définies par l'utilisateur
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
Oracle Solaris 11.1 simplifie l'administration de partage ZFS en utilisant l'héritage de propriété ZFS. La nouvelle syntaxe de partage est activée sur les pools exécutant la version de pool 34.
Il est possible de définir plusieurs partages par système de fichiers. Chaque partage est identifié par un nom unique. Vous pouvez définir les propriétés utilisées pour partager un chemin particulier dans un système de fichiers. Par défaut, aucun système de fichier n'est partagé. En général, les services de serveur NFS ne sont pas démarrés tant qu'un partage n'est pas créé. Si vous créez un partage valide, les services NFS sont démarrés automatiquement. Si la propriété mountpoint d'un système de fichiers ZFS est définie sur legacy, ce système de fichiers peut être partagé à l'aide de la commande héritée share.
La propriété share.nfs remplace la propriété sharenfs des versions précédentes pour définir et publier un partage NFS.
La propriété share.smb remplace la propriété sharesmb des versions précédentes pour définir et publier un partage SMB.
Les propriétés sharenfs et sharesmb sont des alias des propriétés share.nfs et sharenfs.
Le fichier /etc/dfs/dfstab n'est plus utilisé pour partager les systèmes de fichiers à l'initialisation du système. La configuration de ces propriétés partage les systèmes de fichiers automatiquement. SMF gère les informations de partage ZFS ou UFS de telle sorte que les systèmes de fichiers sont partagés automatiquement au redémarrage du système. Cette fonction signifie que tous les systèmes de fichiers dont la propriété sharenfs ou sharesmb n'est pas définie ne sont pas partagés à l'initialisation.
L'interface sharemgr n'est plus disponible. La commande share héritée est toujours disponible pour créer un partage hérité. Voir les exemples ci-dessous.
La commande share -a est similaire à la commande share -ap précédente et donc le système de fichier est persistant. L'option share -p n'est plus disponible.
Par exemple, si vous voulez partager le système de fichiers tank/home, utilisez une syntaxe similaire à la suivante :
# zfs set share.nfs=on tank/home
Vous pouvez également spécifier des valeurs de propriétés supplémentaires ou modifier des valeurs existantes sur des partages de système de fichiers existant. Par exemple :
# zfs set share.nfs.nosuid=on tank/home/userA
Dans l'exemple précédent, où la propriété share.nfs est définie sur le système de fichiers tank/home, la valeur de propriété share.nfs est héritée par tous les systèmes de fichiers descendants. Par exemple :
# zfs create tank/home/userA # zfs create tank/home/userB
La syntaxe d'Oracle Solaris 11 est toujours prise en charge et vous pouvez donc partager des systèmes de fichiers en deux étapes. Cette syntaxe est prise en charge dans toutes les versions de pool.
Tout d'abord, utilisez la commande zfs set share pour créer un partage NFS ou SMB pour un système de fichiers ZFS.
# zfs create rpool/fs1 # zfs set share=name=fs1,path=/rpool/fs1,prot=nfs rpool/fs1 name=fs1,path=/rpool/fs1,prot=nfs
Ensuite, activez la propriété sharenfs ou sharesmb pour publier le partage. Par exemple :
# zfs set sharenfs=on rpool/fs1 # grep fs1 /etc/dfs/sharetab /rpool/fs1 fs1 nfs sec=sys,rw
Les partages de système de fichiers peuvent être affichés grâce à la commande héritée zfs get share.
# zfs get share rpool/fs1 NAME PROPERTY VALUE SOURCE rpool/fs1 share name=fs1,path=/rpool/fs1,prot=nfs local
De plus, la commande share, pour partager un système de fichiers, similaire à la syntaxe d'Oracle Solaris 10, est toujours prise en charge pour partager tout répertoire au sein d'un système de fichiers. Par exemple, pour partager un système de fichiers ZFS :
# share -F nfs /tank/zfsfs # grep zfsfs /etc/dfs/sharetab /tank/zfsfs tank_zfsfs nfs sec=sys,rw
La syntaxe ci-dessus équivaut à partager un système de fichiers UFS :
# share -F nfs /ufsfs # grep ufsfs /etc/dfs/sharetab /ufsfs - nfs rw /tank/zfsfs tank_zfsfs nfs rw
La commande zfs set permet de partager et de publier un système de fichiers ZFS via les protocoles NFS ou SMB. Vous pouvez également définir les propriétés share.nfs ou share.smb quand le système de fichiers est créé.
Par exemple, le système de fichiers tank/sales est créé et partagé. Les autorisations de partage en lecture et écriture s'applique par défaut à tout le monde. Le système de fichiers descendant tank/sales/logs est aussi partagé automatiquement, car la propriété share.nfs est héritée par les systèmes de fichiers descendants et l'accès du système de fichiers tank/sales/log est défini en lecture seule.
# zfs create -o share.nfs=on tank/sales # zfs create -o share.nfs.ro=\* tank/sales/logs # zfs get -r share.nfs tank/sales NAME PROPERTY VALUE SOURCE tank/sales share.nfs on local tank/sales% share.nfs on inherited from tank/sales tank/sales/log share.nfs on inherited from tank/sales tank/sales/log% share.nfs on inherited from tank/sales
Vous pouvez fournir un accès root à un système spécifique pour un système de fichiers partagé comme suit :
# zfs set share.nfs=on tank/home/data # zfs set share.nfs.sec.default.root=neo tank/home/data
Dans les pools mis à niveau à la version 34, une nouvelle syntaxe de partage simplifie la gestion des partages à l'aide de l'héritage de propriétés ZFS. Chaque caractéristique de partage devient une propriété share distincte. Les propriétés share sont identifiées par les noms comportant le préfixe share.. Exemples de propriétés share : share.desc, share.nfs.nosuid et share.smb.guestok.
La propriété share.nfs contrôle l'activation du partage NFS. La propriété share.smb contrôle l'activation du partage SMB. Les noms des propriétés héritées sharenfs et sharesmb peuvent toujours être utilisés, car dans les nouveaux pools, sharenfs est un alias pour share.nfs et sharesmb est un alias pour share.smb. Si vous voulez partager le système de fichiers tank/home, utilisez une syntaxe similaire à la suivante :
# zfs set share.nfs=on tank/home
Dans cet exemple, la valeur de propriété share.nfs est héritée par tous les systèmes de fichiers descendants. Par exemple :
# zfs create tank/home/userA # zfs create tank/home/userB # grep tank/home /etc/dfs/sharetab /tank/home tank_home nfs sec=sys,rw /tank/home/userA tank_home_userA nfs sec=sys,rw /tank/home/userB tank_home_userB nfs sec=sys,rw
Dans les anciens pools, seules les propriétés sharenfs et sharesmb sont héritées par les systèmes de fichiers descendants. D'autres caractéristiques de partage sont stockées dans le fichier .zfs/shares pour chaque partage et ne sont pas héritées.
Une règle spéciale établit que quand un système de fichiers créé hérite de sharenfs ou sharesmb de son parent, un partage par défaut est créé pour ce système de fichiers à partir de la valeur sharenfs ou sharesmb. Notez que quand sharenfs est simplement activée, le partage par défaut créé dans un système de fichiers descendant possède uniquement les caractéristiques NFS par défaut. Par exemple :
# zpool get version tank NAME PROPERTY VALUE SOURCE tank version 33 default # zfs create -o sharenfs=on tank/home # zfs create tank/home/userA # grep tank/home /etc/dfs/sharetab /tank/home tank_home nfs sec=sys,rw /tank/home/userA tank_home_userA nfs sec=sys,r
Vous pouvez aussi créer un partage nommé, qui offre plus de flexibilité dans la définition des autorisations et des propriétés dans un environnement SMB. Par exemple :
# zfs share -o share.smb=on tank/workspace%myshare
Dans l'exemple précédent, la commande zfs share crée un partage SMB nommé myshare du système de fichiers tank/workspace. Vous pouvez accéder au partage SMB et afficher ou définir des autorisations ou ACL spécifiques via le répertoire .zfs/shares du système de fichiers. Chaque partage SMB est représenté par un fichier .zfs/shares distinct. Par exemple :
# ls -lv /tank/workspace/.zfs/shares -rwxrwxrwx+ 1 root root 0 May 15 10:31 myshare 0:everyone@:read_data/write_data/append_data/read_xattr/write_xattr /execute/delete_child/read_attributes/write_attributes/delete /read_acl/write_acl/write_owner/synchronize:allow
Les partages nommés héritent des propriétés de partage du système de fichiers parent. Si vous ajoutez la propriété share.smb.guestok au système de fichiers parent dans l'exemple précédent, la propriété est héritée par le partage nommé. Par exemple :
# zfs get -r share.smb.guestok tank/workspace NAME PROPERTY VALUE SOURCE tank/workspace share.smb.guestok on inherited from tank tank/workspace%myshare share.smb.guestok on inherited from tank
Les partages nommés peuvent être utilisés dans l'environnement NFS lors de la définition de partages pour un sous-répertoire du système de fichiers. Par exemple :
# zfs create -o share.nfs=on -o share.nfs.anon=99 -o share.auto=off tank/home # mkdir /tank/home/userA # mkdir /tank/home/userB # zfs share -o share.path=/tank/home/userA tank/home%userA # zfs share -o share.path=/tank/home/userB tank/home%userB # grep tank/home /etc/dfs/sharetab /tank/home/userA userA nfs anon=99,sec=sys,rw /tank/home/userB userB nfs anon=99,sec=sys,rw
L'exemple ci-dessus illustre que la désactivation de share.auto pour un système de fichiers désactive le partage automatique pour ce dernier tout en laissant toutes les autres propriétés d'héritage intactes. Contrairement à la plupart des propriétés de partage, share.auto n'est pas héritable.
Les partages nommés servent également dans la création d'un partage NFS public. Un partage public peut uniquement être créé sur un partage NFS nommé. Par exemple :
# zfs create -o mountpoint=/pub tank/public # zfs share -o share.nfs=on -o share.nfs.public=on tank/public%pubshare # grep pub /etc/dfs/sharetab /pub pubshare nfs public,sec=sys,rw
Reportez-vous aux pages de manuel share_nfs(1M) et share_smb(1M) pour une description détaillée des propriétés de partages NFS et SMB.
Quand un partage automatique est créé, un nom de ressource unique est construit à partir du nom du système de fichiers. Le nom construit est une copie du nom du système de fichiers, à ceci près que les caractères du nom du système de fichiers qui ne sont pas autorisés dans un nom de ressource sont remplacés par des traits de soulignement (_). Par exemple, le nom de ressource de data/home/john est data_home_john.
La configuration d'un nom de propriété share.autoname permet de remplacer le nom de système de fichiers par un nom spécifique lors de la création du partage automatique. Le nom spécifique sert aussi à remplacer le nom de système de fichiers de préfixe en cas d'héritage. Par exemple :
# zfs create -o share.smb=on -o share.autoname=john data/home/john # zfs create data/home/john/backups # grep john /etc/dfs/sharetab /data/home/john john smb /data/home/john/backups john_backups smb
Si une commande share ou zfs set share est utilisée sur un système de fichiers qui n'a pas encore été partagé, sa valeur share.auto est automatiquement définie sur off. Les commandes héritées créent toujours des partages nommés. Cette règle spéciale empêche le partage automatique d'interférer avec le partage nommé qui est créé.
Affichez la valeur des propriétés de partage de fichier à l'aide de la commande zfs get. L'exemple suivant illustre comment afficher la propriété share.nfs pour un système de fichiers :
# zfs get share.nfs tank/sales NAME PROPERTY VALUE SOURCE tank/sales share.nfs on local
L'exemple suivant illustre comment afficher la propriété share.nfs pour des systèmes de fichiers descendants :
# zfs get -r share.nfs tank/sales NAME PROPERTY VALUE SOURCE tank/sales share.nfs on local tank/sales% share.nfs on inherited from tank/sales tank/sales/log share.nfs on inherited from tank/sales tank/sales/log% share.nfs on inherited from tank/sales
Les informations de propriétés de partage étendues ne sont pas disponibles dans la syntaxe de la commande zfs get all.
Vous pouvez afficher des détails spécifiques concernant des informations de partage NFS ou SMB à l'aide de la syntaxe suivante :
# zfs get share.nfs.all tank/sales NAME PROPERTY VALUE SOURCE tank/sales share.nfs.aclok off default tank/sales share.nfs.anon default tank/sales share.nfs.charset.* ... default tank/sales share.nfs.cksum default tank/sales share.nfs.index default tank/sales share.nfs.log default tank/sales share.nfs.noaclfab off default tank/sales share.nfs.nosub off default tank/sales share.nfs.nosuid off default tank/sales share.nfs.public - - tank/sales share.nfs.sec default tank/sales share.nfs.sec.* ... default
Comme il existe de nombreuses propriétés de partage, envisagez de les afficher avec une valeur autre que par défaut. Par exemple :
# zfs get -e -s local,received,inherited share.all tank/home NAME PROPERTY VALUE SOURCE tank/home share.auto off local tank/home share.nfs on local tank/home share.nfs.anon 99 local tank/home share.protocols nfs local tank/home share.smb.guestok on inherited from tank
Vous pouvez modifier les valeurs de propriété d'un partage en spécifiant des propriétés nouvelles ou modifiées sur un partage de système de fichiers. Par exemple, si la propriété lecture seule est définie quand le système de fichiers est créé, la propriété ne peut pas être désactivée.
# zfs create -o share.nfs.ro=\* tank/data # zfs get share.nfs.ro tank/data NAME PROPERTY VALUE SOURCE tank/data share.nfs.sec.sys.ro on local # zfs set share.nfs.ro=none tank/data # zfs get share.nfs.ro tank/data NAME PROPERTY VALUE SOURCE tank/data share.nfs.sec.sys.ro off local
Si vous créez un partage SMB, vous pouvez aussi ajouter le protocole de transfert NFS. Par exemple :
# zfs set share.smb=on tank/multifs # zfs set share.nfs=on tank/multifs # grep multifs /etc/dfs/sharetab /tank/multifs tank_multifs nfs sec=sys,rw /tank/multifs tank_multifs smb -
Supprimez le protocole SMB :
# zfs set share.smb=off tank/multifs # grep multifs /etc/dfs/sharetab /tank/multifs tank_multifs nfs sec=sys,rw
Il est possible de renommer un partage nommé. Par exemple :
# zfs share -o share.smb=on tank/home/abc%abcshare # grep abc /etc/dfs/sharetab /tank/home/abc abcshare smb - # zfs rename tank/home/abc%abcshare tank/home/abc%a1share # grep abc /etc/dfs/sharetab /tank/home/abc a1share smb -
Vous pouvez temporairement arrêter un partage nommé sans le détruire à l'aide de la commande zfs unshare. Par exemple :
# zfs unshare tank/home/abc%a1share # grep abc /etc/dfs/sharetab # # zfs share tank/home/abc%a1share # grep abc /etc/dfs/sharetab /tank/home/abc a1share smb -
Quand la commande zfs unshare est utilisée, tous les partages de système de fichiers sont arrêtés. Ces partages restent ainsi jusqu'à ce que la commande zfs share soit émise pour le système de fichiers ou que les propriétés share.nfs ou share.smb soient définies pour le système de fichiers.
Les partages définis ne sont pas supprimés quand la commande zfs unshare est émise et sont de nouveau actifs à l'émission suivante de la commande zfs share pour le système de fichiers ou quand la propriété share.nfs ou share.smb est définie pour le système de fichiers.
Vous pouvez arrêter un partage de système de fichiers en définissant la propriété share.nfs ou share.smb sur off. Par exemple :
# zfs set share.nfs=off tank/multifs # grep multifs /etc/dfs/sharetab #
Vous pouvez supprimer définitivement un partage nommé avec la commande zfs destroy. Par exemple :
# zfs destroy tank/home/abc%a1share
Depuis Oracle Solaris 11, vous pouvez créer et publier des partages NFS dans une zone non globale d'Oracle Solaris.
Lorsqu'un système de fichiers ZFS est monté et disponible dans une zone non globale, il peut être partagé dans cette zone.
Un système de fichiers peut être partagé dans la zone globale à condition de ne pas être délégué à ou monté dans une zone non globale. Si un système de fichiers est ajouté à une zone non globale, il peut être partagé à l'aide de la commande héritée share.
Par exemple, les systèmes de fichiers /export/home/data et export/home/data1 sont disponibles dans zfszone.
zfszone# share -F nfs /export/home/data zfszone# cat /etc/dfs/sharetab
zfszone# zfs set share.nfs=on tank/zones/export/home/data1 zfszone# cat /etc/dfs/sharetab
Cette section présente tous les problèmes de transition.
Importation de système de fichiers avec d'anciennes propriétés de partage - Lors de l'importation d'un pool ou de la réception d'un flux de système de fichiers créé avant Oracle Solaris 11, les propriétés sharenfs et sharesmb incluent toutes les propriétés de partage directement dans la valeur de propriété. Dans la plupart des cas, ces propriétés de partage sont converties en un ensemble équivalent de partages nommés dès que chaque système de fichiers est partagé. Etant donné que les opérations d'importation déclenchent un montage et un partage dans la plupart des cas, la conversion en partages nommés se produit directement pendant le processus d'importation.
Mise à niveau à partir d'Oracle Solaris 11 - Le premier partage de système de fichiers après une mise à niveau vers le pool version 34 peut prendre beaucoup de temps, car les partages nommés sont convertis au nouveau format. Les partages nommés créés par le processus de mise à niveau sont corrects mais ne peuvent pas profiter de l'héritage de propriétés de partage.
Afficher des valeurs de propriétés de partage :
# zfs get share.nfs filesystem # zfs get share.smb filesystem
Si vous réinitialisez sur un ancien environnement d'initialisation, rétablissez les propriétés sharenfs et sharesmb à leur valeur d'origine.
Mise à niveau à partir d'Oracle Solaris 11 Express - Dans Oracle Solaris 11 et 11.1, les propriétés sharenfs et sharesmb peuvent uniquement avoir les valeurs off et on. Ces propriétés ne sont plus utilisées pour définir des caractéristiques de partage.
Le fichier /etc/dfs/dfstab n'est plus utilisé pour partager les systèmes de fichiers à l'initialisation du système. Lors de l'initialisation, tous les systèmes de fichiers ZFS montés qui incluent des partages de système de fichiers sont automatiquement partagés. Un partage est activé quand sharenfs ou sharesmb sont définies sur on.
L'interface sharemgr n'est plus disponible. La commande share héritée est toujours disponible pour créer un partage hérité. La commande share -a est similaire à la commande share -ap précédente et donc le système de fichier est persistant. L'option share -p n'est plus disponible.
Mise à niveau de votre système : les partages ZFS seront incorrects si vous revenez à un environnement d'initialisation Oracle Solaris 11 Express en raison de modifications apportées aux propriétés dans cette version. Les partages non ZFS ne sont pas concernés. Si vous avez l'intention de revenir à un environnement d'initialisation antérieur, enregistrez tout d'abord une copie de la configuration du partage existante avant l'opération pkg update afin de pouvoir restaurer la configuration du partage sur les jeux de données ZFS.
Dans l'environnement d'initialisation antérieur, utilisez la commande sharemgr show -vp pour répertorier tous les partages et leur configuration.
Utilisez les commandes suivantes pour afficher les valeurs de propriété de partage :
# zfs get sharenfs filesystem # zfs get sharesmb filesystem
Si vous revenez à un ancien environnement de démarrage, réinitialisez les propriétés sharenfs et sharesmb, et tous les partages définis avec sharemgr à leurs valeurs d'origine.
Comportement hérité d'annulation de partage – Les commandes unshare -a ou unshareall permettent d'annuler le partage d'un système de fichiers, mais ne mettent pas à jour le référentiel de partages SMF. Si vous tentez de republier le partage existant, les conflits sont recherchés dans le référentiel de partages et un message d'erreur s'affiche.
Consultez les scénarios et considérations de comportement suivants :
Les propriétés de partage et les fichiers .zfs/shares sont traités différemment dans les opérations zfs clone et zfs send. Les fichiers .zfs/shares sont inclus dans des clichés et préservés dans les opérations zfs clone et zfs send. Les propriétés de partage incluant des partages nommés ne sont pas incluent dans les clichés. Pour une description du comportement des propriétés pendant les opérations zfs send et zfs receive, reportez-vous à la section Application de différentes valeurs de propriété à un flux d'instantané ZFS. Après une opération de clonage, tous les fichiers proviennent du cliché pré-clonage, alors que les propriétés sont héritées de la nouvelle position du clone dans la hiérarchie du système de fichiers ZFS.
Certaines opérations de partage héritées désactivent automatiquement le partage automatique ou convertissent un partage automatique existant en partage nommé équivalent. Si un système de fichiers n'est pas partagé comme prévu, vérifiez si sa valeur share.auto a été définie sur off.
Si une demande de création de partage nommé échoue car le partage serait en conflit avec le partage automatique, il peut s'avérer nécessaire de désactiver le partage automatique pour continuer.
Quand un pool est importé en lecture seule, ses propriétés et ses fichiers ne peuvent pas être modifiés. Il peut s'avérer impossible d'introduire de nouveaux partages dans cette situation. Si un partage était déjà établi avant l'exportation du pool, les caractéristiques de partage existantes sont utilisées, dans la mesure du possible.
Le tableau suivant identifie les états de partage connus et la manière de les résoudre, si nécessaire.
|