Man page - nfs(5)

Packages contains this manual

Available languages:

en fr de

Manual

NFS

NOM
SYNOPSIS
DESCRIPTION
OPTIONS DE MONTAGE
Options prises en charge par toutes les versions
Options pour les versions NFS 2 et 3 uniquement
Options pour NFS version 4 uniquement
SYSTÈME DE FICHIERS DE TYPE nfs4
FICHIER DE CONFIGURATION DU MONTAGE
EXEMPLES
MÉTHODES DE TRANSPORT
Utilisation de l’option de montage mountproto
Utiliser NFS sur UDP sur des connexions haut débit
COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES
Cohérence de cache « close-to-open »
Faible cohérence de cache
Mise en cache des attributs
Entretien des horodatages de fichier
Mise en cache des entrées de répertoire
Option de montage sync
Utilisation des verrous de fichier avec NFS
Caractéristiques du cache de la version 4 de NFS.
CONSIDÉRATIONS DE SÉCURITÉ.
Traversée de systÚmes de fichiers NFS version 4
Baux de NFS version 4
Utiliser un port source non privilégié
Montage Ă  travers un pare-feu
Désactiver le traitement des ACL (Access Control List).
OPTION DE REMONTAGE
Démontage aprÚs remontage
FICHIERS
NOTES
VOIR AUSSI
TRADUCTION

NOM

nfs – Format de fstab et options pour les systùmes de fichiers nfs

SYNOPSIS

/etc/fstab

DESCRIPTION

NFS est un protocole aux normes de l’Internet créé par Sun Microsystems en 1984. NFS a Ă©tĂ© dĂ©veloppĂ© pour permettre le partage de fichiers entre des systĂšmes connectĂ©s Ă  un rĂ©seau local. Selon la configuration du noyau, le client Linux de NFS peut gĂ©rer les versions 3, 4.0, 4.1 ou 4.2.

La commande mount (8) lie un systĂšme de fichiers Ă  un point de montage donnĂ© dans la hiĂ©rarchie d’espaces de noms du systĂšme. Le fichier /etc/fstab dĂ©crit la façon dont mount (8) doit recrĂ©er la hiĂ©rarchie d’espaces de noms du systĂšme de fichiers Ă  partir de systĂšmes de fichiers indĂ©pendants (dont ceux exportĂ©s par des serveurs NFS). Chacune des lignes du fichier /etc/fstab dĂ©crit un seul systĂšme de fichiers, son point de montage et un ensemble d’options de montage par dĂ©faut pour ce point de montage.

Dans le cas des montages de systĂšmes de fichiers NFS, une ligne dans le fichier /etc/fstab indique le nom du serveur, le chemin du rĂ©pertoire exportĂ© Ă  monter, le rĂ©pertoire local qui sera le point de montage, le type de systĂšme de fichiers Ă  monter et la liste des options de montage qui indiquent la façon dont le systĂšme de fichiers sera montĂ© et quel sera le comportement du client NFS lorsqu’il accĂ©dera aux fichiers du point de montage. Les cinquiĂšme et sixiĂšme champs de chaque ligne ne sont pas utilisĂ©s par NFS et par consĂ©quent contiennent par convention le chiffre zĂ©ro. Par exemple :

serv:chemin

/pt_montage

type_sdf

option,option,...

0 0

Le nom du serveur et le chemin de partage sont séparés par un deux-points, tandis que les options de montage sont séparées par des virgules. Les champs restants sont séparés par des espaces ou des tabulations.

Le nom d’hĂŽte du serveur peut ĂȘtre un nom d’hĂŽte non qualifiĂ©, un nom de domaine pleinement qualifiĂ© (« fully qualified domain name »), une adresse IPv4 sous forme de quadruplet avec points ou une adresse IPv6 entourĂ©e par des crochets. Les adresses IPv6 de liens locaux ou de sites locaux doivent ĂȘtre accompagnĂ©es d’un identifiant d’interface. Consulter ipv6 (7) pour des dĂ©tails quant Ă  l’écriture des adresses IPv6 brutes.

Le champ type_sdf contient « nfs ». La valeur « nfs4 » est obsolÚte.

OPTIONS DE MONTAGE

Consultez mount (8) pour la description des options de montage gĂ©nĂ©riques disponibles pour tous les systĂšmes de fichiers. Si vous n’avez pas besoin d’indiquer d’options de montage particuliĂšres, utilisez l’option gĂ©nĂ©rique defaults dans /etc/fstab .

Options prises en charge par toutes les versions

Les options suivantes peuvent ĂȘtre utilisĂ©es avec n’importe quelle version de NFS.

nfsvers= n

Le numĂ©ro de version du protocole NFS utilisĂ© pour contacter le service NFS du serveur. Si le serveur ne gĂšre pas la version demandĂ©e, la requĂȘte de montage Ă©choue. Si cette option n’est pas dĂ©finie, le client essaie d’abord la version 4.2, puis essaie une version infĂ©rieure jusqu’à trouver une version prise en charge par le serveur.

vers= n

Cette option est une solution de remplacement de l’option nfsvers . Elle est incluse pour des raisons de compatibilitĂ© avec d’autres systĂšmes d’exploitation.

soft / softerr / hard

DĂ©finir le comportement de rĂ©cupĂ©ration du client NFS lorsqu’une requĂȘte NFS ne rĂ©pond pas (dĂ©lai dĂ©passĂ©). Si aucune option n’est indiquĂ©e (ou si c’est l’option hard qui est indiquĂ©e), les requĂȘtes NFS sont retentĂ©es indĂ©finiment. Si l’option soft ou l’option softerr est indiquĂ©e, le client NFS Ă©chouera aprĂšs l’envoi de retrans retransmissions, entraĂźnant le renvoi par le client NFS de soit EIO (pour l’option soft ) ou ETIMEDOUT (pour l’option softerr ) Ă  l’application appelante.

NB : Un dĂ©lai expirĂ© « soft » peut provoquer dans certains cas des erreurs de donnĂ©es non signalĂ©es. C’est pourquoi l’option soft ou l’option softerr ne doivent ĂȘtre utilisĂ©es que si la rĂ©activitĂ© du client est plus importante que l’intĂ©gritĂ© des donnĂ©es. L’utilisation de NFS avec TCP ou l’augmentation de la valeur de l’option retrans peut diminuer les risques liĂ©s Ă  l’utilisation de l’option soft ou softerr .

softreval / nosoftreval

Dans le cas oĂč le serveur NFS est hors service, il peut ĂȘtre utile de permettre au client NFS de servir des chemins et des attributs Ă  partir du cache aprĂšs retrans essais pour revalider ce que ce cache a invalidĂ©. Cela peut ĂȘtre utile, par exemple, lors d’un essai de dĂ©montage d’un arbre de systĂšme de fichiers d’un serveur hors service de maniĂšre permanente.

Il est possible de combiner softreval avec l’option de montage soft , auquel cas les opĂ©rations qui ne peuvent ĂȘtre servies Ă  partir du cache dĂ©passeront le dĂ©lai imparti et renverront une erreur aprĂšs retrans essais. La combinaison avec l’option de montage par dĂ©faut hard implique que ces opĂ©rations non mises en cache continueront d’essayer jusqu’à ce qu’une rĂ©ponse soit reçue du serveur.

Remarque : l’option de montage par dĂ©faut est nosoftreval qui ne permet pas un repli vers le cache lorsque la revalidation Ă©choue, et qui suit plutĂŽt le comportement dictĂ© par les options de montage hard ou soft .

intr / nointr

Cette option est fournie pour la rétrocompatibilité. Elle est ignorée aprÚs le noyau 2.6.25.

timeo= n

Le temps en dixiĂšmes de seconde pendant lequel le client NFS attend une rĂ©ponse avant de rĂ©essayer une requĂȘte NFS.

Pour NFS sur TCP, la valeur timeo est de 600 par dĂ©faut (60 secondes). Le client NFS effectue une progression linĂ©aire : aprĂšs chaque retransmission la temporisation est augmentĂ©e de timeo jusqu’au maximum de 600 secondes.

Cependant, dans le cas de NFS sur UDP, le client utilise un algorithme adaptatif pour estimer la valeur appropriĂ©e de dĂ©passement de temps pour les types de requĂȘtes frĂ©quemment utilisĂ©es (les requĂȘtes READ et WRITE par exemple), mais utilise le rĂ©glage timeo pour les requĂȘtes moins courantes (comme FSINFO). Si l’option timeo n’est pas dĂ©finie, les types de requĂȘtes moins courantes sont réémises aprĂšs 1,1 seconde. AprĂšs chaque retransmission, le client NFS double la valeur de dĂ©passement de temps pour cette requĂȘte, jusqu’à atteindre un maximum de 60 secondes.

Toute valeur de timeo supérieure à la valeur par défaut sera définie à la valeur par défaut. Pour TCP et RDMA, la valeur par défaut est de 600 (60 secondes). Pour UDP, la valeur par défaut est de 60 (6 secondes).

retrans= n

Nombre de tentatives de réémission de la requĂȘte avant que le client NFS n’enclenche une action de rĂ©cupĂ©ration. Si l’option retrans n’est pas dĂ©finie, le client NFS essaye chaque requĂȘte UDP trois fois et chaque requĂȘte TCP deux fois.

Le client NFS gĂ©nĂšre un message « le serveur ne rĂ©pond pas » aprĂšs retrans tentatives, puis enclenche la rĂ©cupĂ©ration (qui dĂ©pend de l’activation de l’option hard de mount).

rsize= n

Nombre maximal d’octets pour chaque requĂȘte rĂ©seau en LECTURE que peut recevoir le client NFS lorsqu’il lit les donnĂ©es d’un fichier sur le serveur NFS. La taille rĂ©elle de la charge utile de donnĂ©es pour chaque requĂȘte NFS en LECTURE est plus petite ou Ă©gale au rĂ©glage rsize . La plus grande charge utile gĂ©rĂ©e par le client NFS Linux est de 1 048 576 octets (un mĂ©gaoctet).

The allowed rsize value is a positive integral multiple of system’s page size or a power of two if it is less than system’s page size. Specified rsize values lower than 1024 are replaced with 4096; values larger than 1048576 are replaced with 1048576. If a specified value is within the supported range but not such an allowed value, it is rounded down to the nearest allowed value.

Si la valeur de rsize n’est pas dĂ©finie, ou si la valeur de rsize dĂ©passe le maximum qu’à la fois le client et le serveur peuvent gĂ©rer, le client et le serveur nĂ©gocient la plus grande valeur de rsize qu’ils peuvent gĂ©rer ensemble.

L’option rsize de mount telle qu’elle a Ă©tĂ© dĂ©finie sur la ligne de commande lors du mount (8) apparaĂźt dans le fichier /etc/mtab . Cependant, la valeur rĂ©elle de rsize nĂ©gociĂ©e entre le client et le serveur est indiquĂ©e dans le fichier /proc/mounts .

wsize= n

Nombre maximal d’octets par requĂȘte d’ÉCRITURE rĂ©seau que le client NFS peut envoyer quand il Ă©crit des donnĂ©es dans un fichier sur un serveur NFS. La taille rĂ©elle de la charge utile de donnĂ©es pour chaque requĂȘte NFS en ÉCRITURE est plus petite ou Ă©gale au rĂ©glage wsize . La plus grande charge utile gĂ©rĂ©e par le client NFS Linux est de 1 048 576 octets (un mĂ©gaoctet).

Similar to rsize , the allowed wsize value is a positive integral multiple of system’s page size or a power of two if it is less than system’s page size. Specified wsize values lower than 1024 are replaced with 4096; values larger than 1048576 are replaced with 1048576. If a specified value is within the supported range but not such an allowed value, it is rounded down to the nearest allowed value.

Si la valeur de wsize n’est pas dĂ©finie, ou si la valeur wsize indiquĂ©e est supĂ©rieure au maximum que soit le client, soit le serveur peuvent gĂ©rer, le client et le serveur nĂ©gocient la plus grande valeur de wsize qu’ils peuvent tous les deux gĂ©rer.

L’option wsize de mount telle qu’elle a Ă©tĂ© indiquĂ©e sur la ligne de commande de mount (8) apparaĂźt dans le fichier /etc/mtab . Cependant, la valeur rĂ©elle de wsize nĂ©gociĂ©e par le client et le serveur est indiquĂ©e dans le fichier /proc/mounts .

ac / noac

DĂ©finir si le client peut mettre en cache les attributs des fichiers. Si aucune option n’est indiquĂ©e (ou si c’est ac qui est indiquĂ©), le client met en cache les attributs des fichiers.

Afin d’amĂ©liorer les performances, les clients NFS mettent en cache les attributs des fichiers. À intervalles de quelques secondes, un client NFS vĂ©rifie la version du serveur de chaque attribut de fichier pour rechercher des mises Ă  jour. Les modifications qui interviennent pendant ces petits intervalles restent inaperçues tant que le client n’a pas consultĂ© de nouveau le serveur. L’option noac empĂȘche la mise en cache des attributs de fichiers par le client, ce qui permet aux applications de dĂ©tecter plus rapidement les modifications des fichiers sur le serveur.

En plus d’empĂȘcher le client de mettre en cache les attributs des fichiers, l’option noac force l’écriture synchronisĂ©e pour les applications afin que les modifications sur un fichier soient immĂ©diatement visibles sur le serveur. De cette façon, les autres clients peuvent rapidement dĂ©tecter les nouvelles Ă©critures lors de la vĂ©rification des attributs du fichier.

L’usage de l’option noac offre une plus grande cohĂ©rence du cache aux clients NFS qui accĂšdent aux mĂȘmes fichiers, mais au prix d’une pĂ©nalisation significative des performances. C’est pour cette raison qu’une utilisation judicieuse des verrouillages (« locking ») de fichiers est prĂ©fĂ©rable. La section COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES contient une prĂ©sentation dĂ©taillĂ©e de ces approches.

acregmin= n

DurĂ©e minimale (en seconde) de mise en cache des attributs d’un fichier normal par un client NFS avant leur actualisation depuis le serveur. La valeur par dĂ©faut est de 3 secondes si cette option n’est pas dĂ©finie. Consulter la section COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES pour des explications complĂštes sur la mise en cache des attributs.

acregmax= n

DurĂ©e maximale (en seconde) de mise en cache des attributs d’un fichier normal par un client NFS avant leur actualisation depuis le serveur. La valeur par dĂ©faut est de 60 secondes si cette option n’est pas dĂ©finie. Consulter la section COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES pour des explications complĂštes sur la mise en cache des attributs.

acdirmin= n

DurĂ©e minimale (en seconde) de mise en cache des attributs d’un rĂ©pertoire par un client NFS avant leur actualisation depuis le serveur. La valeur par dĂ©faut est de 30 secondes si cette option n’est pas dĂ©finie. Consulter la section COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES pour des explications complĂštes sur la mise en cache des attributs.

acdirmax= n

DurĂ©e maximale (en seconde) de mise en cache des attributs d’un rĂ©pertoire par un client NFS avant leur actualisation depuis le serveur. La valeur par dĂ©faut est de 60 secondes si cette option n’est pas dĂ©finie. Consulter la section COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES pour des explications complĂštes sur la mise en cache des attributs.

actimeo= n

L’utilisation de actimeo configure toutes les durĂ©es acregmin , acregmax , acdirmin et acdirmax Ă  la mĂȘme valeur. Si cette option n’est pas dĂ©finie, le client NFS utilisera les valeurs par dĂ©faut de chacune des options dĂ©crites ci-dessus.

bg / fg

DĂ©terminer le comportement de la commande mount (8) dans le cas d’un Ă©chec d’une tentative de montage d’une exportation. L’option fg entraĂźne l’arrĂȘt de mount (8) avec un Ă©tat d’erreur si la moindre partie de la requĂȘte de montage dĂ©passe le temps allouĂ© ou Ă©choue complĂštement. C’est ce qui est appelĂ© un montage en « premier plan » (pas en mode dĂ©mon) et c’est le comportement par dĂ©faut si ni fg ni bg ne sont indiquĂ©s.

Si l’option bg est indiquĂ©e, un dĂ©passement du temps allouĂ© ou un Ă©chec entraĂźnera la crĂ©ation d’un enfant (fork) qui continuera Ă  essayer de monter le partage. Le parent s’interrompt immĂ©diatement en renvoyant un code de sortie Ă  zĂ©ro. C’est ce qui est appelĂ© un montage en « arriĂšre-plan » (en mode dĂ©mon).

Si le rĂ©pertoire servant de point de montage local n’existe pas, la commande mount (8) se comporte comme si la requĂȘte Ă©tait restĂ©e sans rĂ©ponse (dĂ©lai dĂ©passĂ©). Cela permet aux montages NFS imbriquĂ©s dĂ©finis dans /etc/fstab d’ĂȘtre exĂ©cutĂ©s dans n’importe quel ordre lors de l’initialisation du systĂšme, mĂȘme si certains serveurs NFS ne sont pas encore disponibles. On peut aussi gĂ©rer ces problĂšmes grĂące Ă  un automonteur (consulter automount (8) pour plus de dĂ©tails).

nconnect= n

Lors de l’utilisation d’un protocole orientĂ© connexion tel que TCP, il peut parfois ĂȘtre avantageux d’établir plusieurs connexions entre le client et le serveur. Par exemple, si les clients ou les serveurs sont Ă©quipĂ©s de plusieurs cartes d’interface rĂ©seau (NIC), l’utilisation de plusieurs connexions pour rĂ©partir la charge peut amĂ©liorer les performances gĂ©nĂ©rales. Dans de tels cas, l’option nconnect permet Ă  l’utilisateur de prĂ©ciser le nombre de connexions Ă  Ă©tablir entre le client et le serveur jusqu’à un maximum de 16.

Il est Ă  remarquer que l’option nconnect peut aussi ĂȘtre utilisĂ©e par quelques pilotes pNFS pour dĂ©cider combien de connexions vers les serveurs de donnĂ©es sont Ă  utiliser.

rdirplus / nordirplus

Selects whether to use NFS v3 or v4 READDIRPLUS requests. If this option is not specified, the NFS client uses a heuristic to optimize performance by choosing READDIR vs READDIRPLUS based on how often the calling process uses the additional attributes returned from READDIRPLUS. Some applications perform better if the client uses only READDIR requests for all directories.

rdirplus={none|force}

If set to "force", the NFS client always attempts to use READDIRPLUS requests. If set to "none", the behavior is the same as nordirplus.

retry= n

Nombre de minutes pendant lequel le montage NFS sera retentĂ© par la commande mount (8), en arriĂšre-plan ou au premier plan, avant d’abandonner. Si cette option n’est pas dĂ©finie, la valeur par dĂ©faut pour le premier plan est de 2 minutes et celle pour l’arriĂšre-plan est 10 000 minutes, soit environ une semaine Ă  80 minutes prĂšs. La commande mount (8) s’arrĂȘtera dĂšs le premier Ă©chec si on lui passe la valeur 0.

Il est Ă  remarquer que cela affecte le nombre d’essais effectuĂ©s, mais n’affecte pas le dĂ©lai causĂ© par chaque nouvel essai. Pour UDP, chaque essai prend le temps dĂ©terminĂ© par les options timeo et retrans qui par dĂ©faut est Ă  peu prĂšs de 7 secondes. Pour TCP il est de 3 minutes, mais les dĂ©lais d’expiration TCP du systĂšme peuvent parfois limiter le dĂ©lai d’expiration de chaque retransmission aux environs de 2 minutes.

sec= types

Une liste de types de sĂ©curitĂ©, sĂ©parĂ©s pas des deux-points, Ă  utiliser pour accĂ©der aux fichiers de l’exportation montĂ©e. Si le serveur ne prend en charge aucun de ces types, l’opĂ©ration de montage Ă©choue. Si l’option sec= n’est pas indiquĂ©e, le client essaie de trouver un type de sĂ©curitĂ© pris en charge Ă  la fois par le client et le serveur. Les types de sĂ©curitĂ© pris en charge sont none , sys , krb5 , krb5i et krb5p . Consulter la section CONSIDÉRATIONS DE SÉCURITÉ pour les dĂ©tails.

sharecache / nosharecache

DĂ©terminer comment le client partage ses caches de donnĂ©es et d’attributs de fichiers lorsqu’une mĂȘme exportation est montĂ©e plus d’une fois en mĂȘme temps. L’utilisation d’un seul cache rĂ©duit les besoins en mĂ©moire sur le client et prĂ©sente aux applications un contenu identique lorsque l’on accĂšde au mĂȘme fichier distant par diffĂ©rents points de montage.

Si aucune des options n’est indiquĂ©e, ou si l’option sharecache est demandĂ©e, un seul cache est utilisĂ© pour tous les points de montage qui accĂšdent Ă  la mĂȘme exportation. Si l’option nosharecache est indiquĂ©e, ce point de montage utilise un cache unique. Notez que lorsque les caches des donnĂ©es et des attributs sont partagĂ©s, les options de montage du premier point de montage s’appliquent pour les futurs montages simultanĂ©s de cette mĂȘme exportation.

En ce qui concerne le noyau 2.6.18, le comportement dĂ©fini par nosharecache est le comportement traditionnel normal. Cela est considĂ©rĂ© comme dangereux pour les donnĂ©es puisque de multiples copies mises en cache du mĂȘme fichier sur le mĂȘme client peuvent se dĂ©synchroniser suite Ă  une mise Ă  jour locale d’une des copies.

resvport / noresvport

Indiquer si le client NFS doit utiliser un port source privilĂ©giĂ© quand il communique avec un serveur NFS pour ce point de montage. Si cette option n’est pas prĂ©cisĂ©e, ou si l’option resvport est prĂ©cisĂ©e, le client NFS utilise un port source privilĂ©giĂ©. Si l’option noresvport est activĂ©e, le client NFS utilise un port source non privilĂ©giĂ©. Cette option est permise par les noyaux 2.6.28 et suivants.

Utiliser un port source non privilĂ©giĂ© permet d’augmenter le nombre maximal de points de montage permis par client, mais les serveurs NFS doivent ĂȘtre configurĂ©s pour permettre la connexion de clients par des ports source non privilĂ©giĂ©s.

Veuillez consulter la section CONSIDÉRATIONS DE SÉCURITÉ pour d’importantes prĂ©cisions.

lookupcache= mode

PrĂ©ciser comment le noyau gĂšre son cache d’entrĂ©es de rĂ©pertoire pour un point de montage donnĂ©. mode peut ĂȘtre all , none , pos ou positive . Cette option est prise en charge par les noyaux 2.6.28 et suivants.

Le client NFS Linux garde en cache tous les rĂ©sultats des requĂȘtes NFS LOOKUP. Si l’entrĂ©e de rĂ©pertoire recherchĂ©e existe sur le serveur, le rĂ©sultat est considĂ©rĂ© comme positif , sinon il est considĂ©rĂ© comme nĂ©gatif .

Si cette option n’est pas prĂ©cisĂ©e, ou si all est prĂ©cisĂ©, le client suppose que les deux types d’entrĂ©es ( positif ou nĂ©gatif ) du cache de rĂ©pertoire sont valables jusqu’à ce que les attributs mis en cache de leur rĂ©pertoire parent expirent.

Si pos ou positive est prĂ©cisĂ©, le client suppose que les entrĂ©es positives sont valables jusqu’à ce que les attributs mis en cache de leur rĂ©pertoire parent expirent, mais revalide toujours les entrĂ©es nĂ©gatives avant qu’une application puisse les utiliser.

Si none est prĂ©cisĂ©, le client revalide les deux types d’entrĂ©es mises en cache de rĂ©pertoire avant qu’une application puisse les utiliser. Cela permet une dĂ©tection rapide des fichiers qui ont Ă©tĂ© créés ou supprimĂ©s par d’autres clients, mais peut avoir des rĂ©percussions sur ces applications et les performances du serveur.

La partie COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES contient des explications dĂ©taillĂ©es sur ces arbitrages.

fsc / nofsc

Activer ou dĂ©sactiver le cache des pages de donnĂ©es (en lecture seule) du disque local en utilisant l’outil FS-Cache. Consultez cachefilesd (8) et Documentation/filesystems/caching dans le code source du noyau pour plus de dĂ©tails sur la configuration de l’outil FS-Cache. La valeur par dĂ©faut est nofsc .

sloppy

L’option sloppy est une solution de remplacement pour l’option -s de mount.nfs

xprtsec= politique

Indiquer l’utilisation d’une sĂ©curitĂ© de la couche transport pour protĂ©ger le trafic rĂ©seau NFS pour ce point de montage. politique peut ĂȘtre none , tls ou mtls .

Si none est indiquĂ©, la sĂ©curitĂ© de la couche transport est dĂ©sactivĂ©e, mĂȘme si le serveur NFS la gĂšre.

Si tls est indiqué, le client utilise RPC avec TLS pour la confidentialité au cours du transport.

Si mtls est indiquĂ©, le client utilise RPC avec TLS pour s’authentifier lui-mĂȘme et pour assurer la confidentialitĂ© au cours du transport.

Si soit tls ou mtls est indiquĂ© et que le serveur ne prend pas en charge RPC avec TLS ou que l’authentification de pair Ă©choue, l’essai de montage Ă©choue.

Si l’option xprtsec= n’est pas indiquĂ©e, le comportement par dĂ©faut dĂ©pend de la version du noyau, mais habituellement est Ă©quivalent Ă  xprtsec=none .

noalignwrite

This option disables the default behavior of extending buffered write operations to full page boundaries.

Normally, the NFS client rounds non-aligned buffered writes up to the system page size, which can lead to "lost writes" when multiple clients write concurrently to distinct non-overlapping regions. Use this option when your applications perform non-aligned buffered writes and you can guarantee that file regions do not overlap, thus avoiding the need for file locking.

Options pour les versions NFS 2 et 3 uniquement

Utilisez ces options ainsi que les options de la sous-section précédente uniquement pour les systÚmes de fichiers de type NFS version 2 et 3.

proto= idreseau

L’identifiant rĂ©seau idreseau dĂ©termine le transport utilisĂ© pour communiquer avec le serveur NFS. Les options possibles sont udp , udp6 , tcp , tcp6 , rdma et rdma6 . Les valeurs qui se terminent par 6 utilisent des adresses IPv6 et ne sont disponibles que si la prise en charge de TI-RPC est intĂ©grĂ©e. Les autres utilisent des adresses IPv4.

Chaque protocole de transport utilise différents réglages de retrans et de timeo (se référer à la description de ces deux options de montage).

En plus de contrĂŽler la façon dont le client NFS transmet les requĂȘtes au serveur, cette option de montage gĂšre aussi la façon dont la commande mount (8) communique avec les services rpcbind et mountd du serveur. Indiquer un ID rĂ©seau qui utilise TCP entraĂźne l’utilisation de TCP par tout le trafic passant par la commande mount (8) ou le client NFS. Indiquer un ID rĂ©seau qui utilise UDP entraĂźne l’utilisation d’UDP par tous les trafics.

Avant d’utiliser NFS sur UDP, consultez la section MÉTHODES DE TRANSPORT.

Si l’option proto de montage n’est pas dĂ©finie, la commande mount (8) dĂ©couvrira quels protocoles sont acceptĂ©s par le serveur et choisira un transport appropriĂ© pour chacun des services. Consultez la section MÉTHODES DE TRANSPORT pour plus de dĂ©tails.

udp

L’option udp est une solution de remplacement pour proto=udp , incluse pour la compatibilitĂ© avec d’autres systĂšmes d’exploitation.

Avant d’utiliser NFS sur UDP, consultez la section MÉTHODES DE TRANSPORT.

tcp

L’option tcp est une solution de remplacement pour proto=tcp , incluse pour la compatibilitĂ© avec d’autres systĂšmes d’exploitation.

rdma

L’option rdma est une solution de remplacement pour proto=rdma .

port= n

Valeur numĂ©rique du port du service NFS sur le serveur. Si le service NFS du serveur n’est pas accessible sur le port indiquĂ©, la requĂȘte de montage Ă©choue.

Si cette option n’est pas dĂ©finie, ou si le port indiquĂ© est 0, le client NFS utilise le numĂ©ro du port du service NFS publiĂ© par le service rpcbind du serveur. La requĂȘte de montage Ă©choue si le service rpcbind du serveur n’est pas accessible, si le service NFS du serveur n’est pas enregistrĂ© dans son service rpcbind, ou si le service NFS du serveur n’est pas accessible sur le port publiĂ©.

mountport= n

Valeur numĂ©rique du port de mountd sur le serveur. Si le service mountd du serveur n’est pas prĂ©sent sur le port indiquĂ©, la requĂȘte de montage Ă©choue.

Si cette option n’est pas dĂ©finie, ou si le port indiquĂ© est 0, la commande mount (8) utilise le numĂ©ro du port du service mountd publiĂ© par le service rpcbind du serveur. La requĂȘte de montage Ă©choue si le service rpcbind du serveur n’est pas accessible, si le service mountd du serveur n’est pas enregistrĂ© dans son service rpcbind ou si le service mountd du serveur n’est pas accessible sur le port publiĂ©.

Cette option peut ĂȘtre utilisĂ©e pour les montages sur un serveur NFS Ă  travers un pare-feu qui bloque le protocole rpcbind.

mountproto= idreseau

Le transport utilisĂ© par le client NFS pour transmettre ses requĂȘtes au service mountd d’un serveur NFS quand il lance cette requĂȘte de montage, puis quand il dĂ©montera ensuite ce montage.

idreseau peut valoir udp ou tcp qui utilisent des adresses IPv4, ou bien, si TI-RPC est intégré dans la commande mount.nfs , udp6 ou tcp6 qui utilisent des adresses IPv6.

Cette option peut ĂȘtre utilisĂ©e pour monter un serveur NFS Ă  travers un pare-feu qui bloque des transferts spĂ©cifiques. Lorsqu’elle est utilisĂ©e avec l’option proto , diffĂ©rents modes de transfert peuvent ĂȘtre choisis pour les requĂȘtes vers mountd et NFS. Si le serveur ne propose pas de service mountd pour le transfert indiquĂ©, la requĂȘte de montage Ă©choue.

Veuillez consulter la section MÉTHODES DE TRANSPORT pour plus de renseignements sur la maniùre dont l’option de montage mountproto interagit avec l’option proto .

mounthost= nom

Le nom d’hĂŽte de la machine qui exĂ©cute le mountd. Si cette option n’est pas dĂ©finie, la commande mount (8) considĂšre que le service mountd est assurĂ© par la machine qui offre le service NFS.

mountvers= n

NumĂ©ro de version des RPC utilisĂ© pour contacter le dĂ©mon mountd du serveur. Si cette option n’est pas dĂ©finie, le client utilise un numĂ©ro de version appropriĂ© Ă  la version de NFS requise. Cette option est utile quand de nombreux services NFS sont offerts par un seul et mĂȘme serveur distant.

namlen= n

La taille maximale d’un composant du nom de chemin de ce montage. Si cette option n’est pas dĂ©finie, la taille maximale est nĂ©gociĂ©e avec le serveur. Dans la plupart des cas, cette taille maximale est 255 caractĂšres.

Des versions prĂ©cĂ©dentes de NFS ne gĂšrent pas cette nĂ©gociation. L’utilisation de cette option garantit que pathconf (3) donnera bien la longueur maximale aux applications pour ces versions.

lock / nolock

Indiquer s’il faut utiliser le protocole auxiliaire NLM pour verrouiller les fichiers sur le serveur. Si aucune option n’est indiquĂ©e (ou si c’est lock qui est choisi), le verrouillage NLM est activĂ© pour ce point de montage. Si on utilise l’option nolock , les applications peuvent verrouiller les fichiers, mais ces verrous n’excluent que les autres applications qui tournent sur ce mĂȘme client. Les applications distantes ne sont pas affectĂ©es par ces verrous.

Le verrouillage NLM doit ĂȘtre dĂ©sactivĂ© avec l’utilisation de l’option nolock si /var est montĂ© Ă  l’aide de NFS parce que /var contient des fichiers utilisĂ©s par l’implĂ©mentation de NLM sous Linux. L’usage de nolock est aussi requis lors des montages des exportations de serveurs NFS ne gĂ©rant pas le protocole NLM.

cto / nocto

Indiquer s’il faut utiliser la sĂ©mantique de cohĂ©rence de cache close-to-open. Si aucune option n’est indiquĂ©e (ou si c’est cto qui est indiquĂ©e), le client utilise la sĂ©mantique de cohĂ©rence de cache close-to-open. Si c’est l’option nocto qui est indiquĂ©e, le client utilise une heuristique non standard pour savoir quand les fichiers ont changĂ© sur le serveur.

L’utilisation de l’option nocto peut amĂ©liorer les performances des montages en lecture seule, mais devrait ĂȘtre limitĂ©e au cas oĂč les donnĂ©es sur le serveur ne changent qu’occasionnellement. La section COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES expose le comportement de cette option en dĂ©tails.

acl / noacl

Indiquer s’il faut utiliser le protocole auxiliaire NFSACL sur ce point de montage. Le protocole auxiliaire NFSACL est un protocole propriĂ©taire mis en Ɠuvre dans Solaris et qui gĂšre les listes de contrĂŽle d’accĂšs (ACL). NSFACL n’est jamais devenu un Ă©lĂ©ment standard de la spĂ©cification du protocole NFS.

Si ni acl ni noacl ne sont prĂ©cisĂ©es, le client NFS nĂ©gocie avec le serveur afin de savoir si le protocole NFSACL est gĂ©rĂ© et l’utilise dans ce cas. La dĂ©sactivation du protocole auxiliaire NFSACL est parfois rendue nĂ©cessaire quand la nĂ©gociation pose des problĂšmes sur le client ou sur le serveur. Consultez la section CONSIDÉRATIONS DE SÉCURITÉ pour plus de dĂ©tails.

local_lock= mécanisme

Indiquer si le verrouillage local doit ĂȘtre utilisĂ© pour les mĂ©canismes de verrouillage flock, POSIX ou pour les deux. mĂ©canisme peut ĂȘtre all , flock , posix ou none . Cette option est prise en charge par les noyaux 2.6.37 et suivants.

Le client Linux NFS fournit un moyen de poser des verrous locaux. Les applications peuvent donc verrouiller des fichiers, mais ces verrous n’excluent que les autres applications qui tournent sur ce mĂȘme client. Les applications distantes ne sont pas affectĂ©es par ces verrous.

Si cette option n’est pas prĂ©cisĂ©e, ou si none est prĂ©cisĂ©, le client suppose que les verrous ne sont pas locaux.

Si all est spécifié, le client suppose que les deux types de verrous flock et POSIX sont locaux.

Si flock est spécifié, le client suppose que seuls les verrous flock sont locaux, et utilise le protocole NLM auxiliaire pour verrouiller les fichiers quand les verrous POSIX sont utilisés.

Si posix est spécifié, le client suppose que les verrous POSIX sont locaux, et utilise le protocole NLM auxiliaire pour verrouiller les fichiers quand les verrous flock sont utilisés.

Pour prendre en charge le comportement patrimonial de flock de façon semblable Ă  celui des clients NFS < 2.6.12, il faut utiliser « local_lock=flock ». Cette option est requise lors de l’exportation des montages NFS Ă  l’aide de Samba car Samba mappe les verrous du mode partage de Windows comme flock. Puisque les clients NFS > 2.6.12 implĂ©mentent flock en Ă©mulant les verrous POSIX, cela aboutira Ă  un conflit de verrous.

NOTE : quand elles sont utilisĂ©es ensemble, l’option de montage « local_lock » sera Ă©crasĂ©e par les options de montage « nolock »/« lock ».

Options pour NFS version 4 uniquement

Ces options sont à utiliser ainsi que les options de la premiÚre sous-section ci-dessus pour les systÚmes de fichiers de type NFS version 4 et plus récents.

proto= idreseau

L’identifiant rĂ©seau idreseau dĂ©termine le transport utilisĂ© pour communiquer avec le serveur NFS. Les options possibles sont tcp , tcp6 , rdma et rdma6 . L’option tcp6 utilise des adresses IPv6 et n’est disponible que si la prise en charge de TI-RPC est intĂ©grĂ©e. Les autres options utilisent des adresses IPv4.

Les serveurs NFS version 4 doivent prendre en charge TCP, donc si cette option de montage n’est pas prĂ©cisĂ©e, le client NFS version 4 utilise le protocole TCP. Veuillez vous rĂ©fĂ©rer Ă  la section MÉTHODES DE TRANSPORT pour plus de dĂ©tails.

minorversion= n

Indiquer le numĂ©ro mineur de version du protocole. NFS 4 a introduit le « versionnage mineur » oĂč des amĂ©liorations du protocole NFS peuvent ĂȘtre introduites sans toucher son numĂ©ro de version. Avant le noyau 2.6.38, la version mineure Ă©tait toujours zĂ©ro et cette option n’est par reconnue. AprĂšs ce noyau, indiquer « minorversion=1 » active des fonctions avancĂ©es comme les sessions NFSv4.

Les noyaux rĂ©cents permettent d’indiquer une version mineure en utilisant l’option vers= . Par exemple, indiquer vers=4.1 a le mĂȘme effet que vers=4,minorversion=1 .

port= n

Valeur numĂ©rique du port du service NFS sur le serveur. Si le service NFS du serveur n’est pas accessible sur le port indiquĂ©, la requĂȘte de montage Ă©choue.

Si cette option de montage n’est pas dĂ©finie, le client NFS utilisera le numĂ©ro de port standard de NFS (2049) sans vĂ©rifier de prime abord le service rpcbind du serveur. Cette option permet Ă  un client NFS version 4 de contacter un serveur NFS version 4 Ă  travers un pare-feu qui bloquerait les requĂȘtes rpcbind.

Si la valeur du port indiquĂ©e est 0, le client NFS utilisera le numĂ©ro de port du service NFS publiĂ© par le service rpcbind du serveur. La requĂȘte de montage Ă©chouera si le service rpcbind du serveur n’est pas disponible, si le service NFS du serveur n’est pas enregistrĂ© dans son service rpcbind ou si le service NFS du serveur n’est pas accessible sur le port publiĂ©.

cto / nocto

Indiquer s’il faut utiliser la sĂ©mantique de cohĂ©rence du cache close-to-open pour les rĂ©pertoires NFS de ce point de montage. Si ni cto ni nocto ne sont indiquĂ©es, la sĂ©mantique de cohĂ©rence du cache close-to-open sera utilisĂ©e par dĂ©faut pour les rĂ©pertoires.

La politique de mise en cache des donnĂ©es des fichiers n’est pas concernĂ©e par cette option. La section COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES dĂ©crit le comportement de cette option en dĂ©tails.

clientaddr= n.n.n.n
clientaddr=
n:n: ... :n

Indiquer une seule adresse IPv4 (quadruplet sĂ©parĂ© par des points) ou une adresse IPv6 qui n’est pas un lien local que le client NFS signalera pour permettre aux serveurs d’envoyer des requĂȘtes de rappel NFS version 4.0 sur les fichiers de ce point de montage. Si le serveur ne peut pas Ă©tablir de connexion de rappel (« callback ») sur ces clients, les performances peuvent ĂȘtre dĂ©gradĂ©es ou les accĂšs Ă  ces fichiers temporairement suspendus. Une valeur IPv4_ANY (0.0.0.0) ou n’importe quelle adresse IPv6 Ă©quivalente peut ĂȘtre indiquĂ©e qui signalera au serveur NFS que ce client NFS ne veut pas de dĂ©lĂ©gations.

Si cette option n’est pas indiquĂ©e, la commande mount (8) essaie de dĂ©couvrir automatiquement une adresse de rappel (« callback ») appropriĂ©e. La procĂ©dure de dĂ©couverte automatique n’est cependant pas parfaite. Dans le cas d’interfaces rĂ©seau multiples, de directives de routages spĂ©ciales ou de typologie rĂ©seau atypique, l’adresse exacte Ă  utiliser pour les rappels peut ne pas ĂȘtre triviale Ă  dĂ©terminer.

Les versions 4.1 et 4.2 du protocole NFS utilisent la connexion TCP Ă©tablie par le client pour les requĂȘtes de rappel, donc ne requiĂšrent pas au serveur de se connecter au client. Cette option affecte par consĂ©quent seulement les montages NFS version 4.0.

migration / nomigration

Choisir si le client utilise une chaĂźne d’authentification qui est compatible avec TSM (Transparent State Migration) pour NFSv4. Si le serveur montĂ© prend en charge la migration de NFSv4 avec TSM, indiquer l’option migration .

Certaines fonctions de serveur se comportent mal face Ă  la chaĂźne d’authentification compatible avec la migration. L’option nomigration conserve l’utilisation de la chaĂźne d’authentification traditionnelle qui est compatible avec les serveurs NFS patrimoniaux. C’est aussi le comportement si aucune option n’est indiquĂ©e. Un Ă©tat ouvert et verrouillĂ© d’un client ne peut ĂȘtre migrĂ© de maniĂšre transparente quand il s’identifie lui-mĂȘme avec une chaĂźne d’identification traditionnelle.

Cette option de montage n’a aucun effet avec les versions mineures de NFSv4 plus rĂ©centes que zĂ©ro, qui utilisent des chaĂźnes d’identification compatibles avec TSM.

max_connect= n

Alors que l’option nconnect dĂ©finit une limite du nombre de connexions pouvant ĂȘtre Ă©tablies sur une adresse IP de serveur donnĂ©e, l’option max_connect permet Ă  l’utilisateur d’indiquer le nombre maximal de connexions vers des adresses IP de serveur diffĂ©rentes qui appartiennent au mĂȘme serveur NFSv4.1+ (connexions de session simultanĂ©es) jusqu’à une limite de 16. Quand le client dĂ©couvre que cela Ă©tablit un ID de client Ă  un serveur dĂ©jĂ  existant, au lieu d’abandonner le transport rĂ©seau nouvellement créé, le client ajoute cette nouvelle connexion Ă  la liste des transports disponibles pour ce client RPC.

trunkdiscovery / notrunkdiscovery

Quand un client dĂ©couvre un nouveau systĂšme de fichiers sur un serveur NFSv4.1+, l’option de montage trunkdiscovery fera qu’il enverra un GETATTR pour l’attribut fs_locations. S’il reçoit une rĂ©ponse de longueur non nulle, il itĂ©rera Ă  travers la rĂ©ponse et pour chaque emplacement de serveur il Ă©tablira une connexion, enverra un EXCHANGE_ID et testera le « trunking » de session. Si le test de « trunking » rĂ©ussit, la connexion sera ajoutĂ©e Ă  l’ensemble existant des transports pour le serveur, en respectant la limite indiquĂ©e par l’option max_connect . La valeur par dĂ©faut est notrunkdiscovery .

SYSTÈME DE FICHIERS DE TYPE nfs4

Le type nfs4 de systĂšme de fichiers est une ancienne syntaxe prĂ©cisant l’utilisation de NFSv4. Il peut toujours ĂȘtre utilisĂ© avec toutes les options communes et avec celles spĂ©cifiques Ă  NFSv4, Ă  l’exception de l’option de montage nfsvers

FICHIER DE CONFIGURATION DU MONTAGE

Si la commande de montage est configurĂ©e en ce sens, toutes les options de montage dĂ©crites dans la section prĂ©cĂ©dente peuvent ĂȘtre configurĂ©es dans le fichier /etc/nfsmount.conf . RĂ©fĂ©rez-vous Ă  nfsmount.conf(5) pour plus de dĂ©tails.

EXEMPLES

Pour rĂ©aliser un montage NFS version 3, le type de systĂšme de fichiers Ă  utiliser est nfs et l’option de montage nfsvers=3 doit ĂȘtre indiquĂ©e. Pour rĂ©aliser un montage NFS version 4, le type de systĂšme de fichiers Ă  utiliser est soit nfs avec l’option de montage nfsvers=4 ou le type nfs4 .

L’exemple de fichier /etc/fstab suivant permet Ă  la commande de montage de nĂ©gocier des valeurs par dĂ©faut convenables pour le comportement de NFS.

serveur:/export /mnt nfs defaults 0 0

Cet exemple montre comment rĂ©aliser un montage NFS version 4 Ă  travers TCP, utilisant l’authentification mutuelle avec Kerberos 5.

serveur:/export /mnt nfs4 sec=krb5 0 0

Cet exemple montre comment rĂ©aliser un montage NFS version 4 Ă  travers TCP, avec le mode privĂ© de Kerberos 5 ou celui d’intĂ©gritĂ© des donnĂ©es.

serveur:/export /mnt nfs4 sec=krb5p:krb5i 0 0

Cet exemple peut servir à réaliser le montage de /usr par NFS.

serveur:/export /usr nfs ro,nolock,nocto,actimeo=3600 0 0

Cet exemple montre comment monter un serveur NFS en utilisant une adresse brute link-local IPv6.

[fe80::215:c5ff:fb3e:e2b1%eth0]:/export /mnt nfs defaults 0 0

MÉTHODES DE TRANSPORT

Les clients NFS envoient leurs requĂȘtes aux serveurs NFS grĂące aux appels de procĂ©dures distantes (« Remote Procedure Calls »), les RPC s. Le client RPC dĂ©couvre automatiquement les terminaisons d’accĂšs du service distant, gĂšre l’authentification par requĂȘte, ajuste les paramĂštres des requĂȘtes afin de gĂ©rer l’ordre des octets sur le client et le serveur (« endianness ») et se charge de la retransmission des requĂȘtes qui pourraient s’ĂȘtre perdues dans le rĂ©seau ou sur le serveur. Les requĂȘtes et les rĂ©ponses RPC circulent sur un transport rĂ©seau.

Dans la plupart des cas, la commande mount (8), le client NFS et le serveur NFS peuvent nĂ©gocier automatiquement les transports adaptĂ©s et la taille de donnĂ©es adĂ©quate pour les transferts pour un point de montage. Cependant, dans certains cas, il peut ĂȘtre bĂ©nĂ©fique d’indiquer explicitement ces rĂ©glages grĂące aux options de montage.

Traditionnellement, les clients NFS se servaient uniquement du transport UDP pour transmettre des requĂȘtes aux serveurs. Bien que son implĂ©mentation soit simple, NFS sur UDP a de nombreuses limitations qui l’empĂȘchent d’obtenir de bonnes performances et un fonctionnement fluide dans certains environnements de dĂ©ploiement courants. Un taux de paquets perdus mĂȘme insignifiant entraĂźne la perte de requĂȘtes NFS complĂštes. On rĂšgle alors gĂ©nĂ©ralement le dĂ©lai de dĂ©passement (« timeout ») Ă  une valeur infĂ©rieure Ă  la seconde afin que les clients puissent rĂ©cupĂ©rer rapidement en cas de requĂȘtes rejetĂ©es. Cela peut entraĂźner une surcharge du trafic rĂ©seau et du serveur.

Cependant, UDP peut ĂȘtre assez efficace grĂące Ă  des rĂ©glages spĂ©cifiques lorsque le MTU du rĂ©seau dĂ©passe la taille de transfert de donnĂ©es de NFS (par exemple dans les environnements rĂ©seau qui utilisent les trames Ethernet Jumbo). Dans ces cas, il est judicieux d’adapter les rĂ©glages rsize et wsize de façon Ă  ce que chaque requĂȘte de lecture ou d’écriture NFS soit contenue dans quelques trames du rĂ©seau (voire mĂȘme dans une seule trame). Cela rĂ©duit la probabilitĂ© qu’une perte d’une simple trame rĂ©seau de la taille de la MTU entraĂźne la perte complĂšte d’un grande requĂȘte en lecture ou Ă©criture.

TCP est le protocole de transport utilisĂ© par dĂ©faut dans toutes les implĂ©mentations modernes de NFS. Il est efficace dans pratiquement tous les environnements rĂ©seau concevables et offre d’excellentes garanties contre la corruption de donnĂ©es que pourrait entraĂźner un incident rĂ©seau. TCP est souvent obligatoire pour accĂ©der Ă  un serveur Ă  travers un pare-feu.

Dans des conditions normales, les rĂ©seaux rejettent des paquets bien plus souvent que les serveurs NFS ne rejettent de requĂȘtes. C’est pourquoi un rĂ©glage agressif de dĂ©lai de dĂ©passement (« time-out ») de retransmission pour NFS sur TCP est inutile. Les rĂ©glages habituels de dĂ©lai de dĂ©passement pour NFS sur TCP varient entre une et dix minutes. AprĂšs qu’un client a terminĂ© ses retransmissions (la valeur de l’option retrans de montage), il considĂšre que le rĂ©seau a subi un cloisonnement et tente de se reconnecter au serveur sur un nouveau socket. Puisque TCP rend fiable le transport de donnĂ©es sur le rĂ©seau, rsize et wsize peuvent en toute sĂ©curitĂ© prendre pour valeur par dĂ©faut la plus grande valeur gĂ©rĂ©e Ă  la fois par le client et par le serveur, indĂ©pendamment de la taille du MTU du rĂ©seau.

Utilisation de l’option de montage mountproto

Cette section s’applique uniquement aux versions 2 et 3 de montages NFS car NFS 4 n’utilise pas un protocole diffĂ©rent pour les requĂȘtes de montage.

Le client Linux de NFS peut utiliser diffĂ©rents modes de transport pour contacter le service rpcbind d’un serveur NFS, son service mountd, son gestionnaire de verrous rĂ©seau (NLM – Network Lock Manager) et son service NFS. Le mode exact de transport utilisĂ© par le client Linux de NFS pour chaque point de montage dĂ©pend des rĂ©glages des options de transport de montage, qui incluent proto , mountproto udp et tcp .

Le client envoie des notifications au gestionnaire d’état rĂ©seau (NSM : Network Status Manager) Ă  l’aide d’UDP, quel que soit le mode de transport prĂ©cisĂ©. Il Ă©coute cependant les notifications NSM du serveur Ă  la fois sur UDP et TCP. Le protocole gĂ©rant la liste de contrĂŽles d’accĂšs Ă  NFACL (NFS Access Control List) utilise le mĂȘme mode de transport que le service NFS principal.

Si aucune option n’est prĂ©cisĂ©e quant au mode de transport, le client Linux de NFS utilise UDP pour contacter le service mountd du serveur et TCP pour contacter ses services NLM et NFS par dĂ©faut.

Si le serveur ne gĂšre pas ces modes de transfert pour ces services, la commande mount (8) essaye de trouver quel mode est pris en charge par le serveur et essaye une fois de se reconnecter avec ce mode. Si le serveur ne propose aucun mode gĂ©rĂ© par le client ou est mal configurĂ©, la requĂȘte de montage Ă©choue. Si l’option bg a Ă©tĂ© passĂ©e, la commande de montage passe en arriĂšre-plan et continue d’essayer la requĂȘte de montage demandĂ©e.

Quand l’une des options proto , udp ou tcp est passĂ©e mais que mountproto ne l’est pas, le mode de transfert demandĂ© est utilisĂ© Ă  la fois pour contacter le service mountd du serveur et ses services NLM et NFS.

Si l’option mountproto est passĂ©e mais que ni proto , ni udp et ni tcp n’est passĂ©e alors le mode demandĂ© est utilisĂ© pour la requĂȘte de montage initiale, mais la commande de montage essaye de dĂ©couvrir quel mode de transfert est pris en charge pour le protocole NFS, et prĂ©fĂ©rera TCP si les deux modes sont implĂ©mentĂ©s.

Si mountproto et proto (ou udp ou tcp ) sont passĂ©s en mĂȘme temps, le mode de transport indiquĂ© par l’option mountproto est utilisĂ© pour la requĂȘte initiale de mountd et le mode indiquĂ© par l’option proto (ou udp ou tcp ) est utilisĂ© pour NFS quel que soit l’ordre de ces options. Aucune dĂ©couverte automatique de service n’est faite si ces options sont passĂ©es.

Si l’une des options proto , udp , tcp ou mountproto est passĂ©e plus d’une fois dans une mĂȘme ligne de commande de montage, l’instance la plus Ă  droite de chacune de ces options prendra effet.

Utiliser NFS sur UDP sur des connexions haut débit

Utiliser NFS sur UDP avec des connexions haut débit comme Gigabit peut causer silencieusement des corruptions de données .

Le problĂšme peut ĂȘtre dĂ©clenchĂ© lors de fortes charges et est causĂ© par des difficultĂ©s dans le rĂ©assemblage de fragments IP. Les lectures et Ă©critures par NFS transmettent typiquement des paquets UDP de 4 kilooctets ou plus, qui doivent ĂȘtre cassĂ©s en plusieurs fragments pour ĂȘtre envoyĂ©s sur le lien Ethernet pour lequel la taille des paquets est limitĂ©e Ă  1 500 octets par dĂ©faut. Ce processus a lieu au niveau de la couche rĂ©seau IP et est appelĂ© fragmentation.

Afin d’identifier les fragments qui proviennent du mĂȘme paquet, IP attribue un identifiant IP ( IP ID ) sur 16 bits Ă  chaque paquet. Les fragments gĂ©nĂ©rĂ©s Ă  partir du mĂȘme paquet UDP auront le mĂȘme identifiant IP. Le systĂšme destinataire rĂ©cupĂšre ces fragments et les combine pour reformer les paquets UDP originaux. Ce processus est appelĂ© rĂ©assemblage. Le dĂ©lai d’expiration par dĂ©faut pour le rĂ©assemblage de paquets est de 30 secondes. Si la pile rĂ©seau ne reçoit pas tous les fragments d’un paquet donnĂ© pendant cet intervalle de temps, elle suppose que les fragments manquants se sont perdus et rejette ceux qui ont dĂ©jĂ  Ă©tĂ© reçus.

Le problĂšme que cela crĂ©e sur des connexions Ă  haut dĂ©bit est dĂ» au fait qu’il est possible d’envoyer plus de 655 356 paquets en 30 secondes. En fait, avec un trafic dense NFS, les identifiants IP se rĂ©pĂštent au bout d’environ 5 secondes.

Cela a de sĂ©rieux effets sur le rĂ©assemblage : si un fragment se perd, un autre fragment d’un paquet diffĂ©rent mais avec le mĂȘme identifiant IP arrivera avant l’expiration au bout de 30 secondes et la pile rĂ©seau combinera ces fragments pour former un nouveau paquet. La plupart du temps, les couches rĂ©seau au-dessus d’IP dĂ©tecteront ce rĂ©assemblage non assorti — dans le cas d’UDP, la somme de contrĂŽle UDP sur 16 bits sur la charge utile complĂšte du paquet ne correspondra pas et UDP rejettera le mauvais paquet.

Cependant, comme la somme de contrĂŽle UDP est seulement sur 16 bits, il y a une chance sur 65 536 qu’elle coĂŻncide mĂȘme si la charge utile du paquet est complĂštement alĂ©atoire (ce qui trĂšs souvent n’est pas vrai). Si tel est le cas, une corruption de donnĂ©es silencieuse sera produite.

Cette possibilitĂ© doit ĂȘtre prise au sĂ©rieux, au moins sur Gigabit Ethernet. Les dĂ©bits rĂ©seau de 100 Mbit/s peuvent ĂȘtre considĂ©rĂ©s comme moins problĂ©matiques, car dans la plupart des situations, la rĂ©initialisation des identifiants IP prendra bien plus que 30 secondes.

Il est donc fortement recommandĂ© d’utiliser NFS sur TCP lĂ  oĂč c’est possible car TCP n’effectue pas de fragmentation.

Si vous devez absolument utiliser NFS sur UDP sur un rĂ©seau Gigabit Ethernet, quelques actions peuvent ĂȘtre effectuĂ©es pour limiter le problĂšme et rĂ©duire la probabilitĂ© de corruption :

trames Jumbo

De nombreuses cartes rĂ©seau Gigabit sont capables de transmettre des trames plus grandes que la limite traditionnelle sur Ethernet de 1 500 octets (typiquement 9 000 octets). Utiliser ces grandes trames (Jumbo) vous permettra de faire fonctionner NFS sur UDP avec une taille de page de 8 ko sans fragmentation. Bien sĂ»r, cela n’est possible que si toutes les stations impliquĂ©es gĂšrent les trames Jumbo.

Pour activer l’envoi de trames Jumbo sur une machine avec une carte rĂ©seau qui les gĂšre, il suffit de configurer l’interface avec une valeur MTU de 9000.

diminution du délai avant expiration du réassemblage

Le rĂ©assemblage incorrect de fragments peut ĂȘtre aussi Ă©vitĂ© en diminuant ce dĂ©lai sous le temps nĂ©cessaire Ă  la rĂ©initialisation des identifiants IP. Pour ce faire, Ă©crivez simplement la nouvelle valeur du dĂ©lai (en seconde) dans le fichier /proc/sys/net/ipv4/ipfrag_time .

Une valeur de 2 secondes diminuera fortement la probabilitĂ© d’une collision d’identifiants IP sur une seule liaison Gigabit, tout en permettant un dĂ©lai d’expiration raisonnable lors de la rĂ©ception d’un trafic fragmentĂ© depuis des serveurs distants.

COHÉRENCE DES DONNÉES ET DES MÉTADONNÉES

Certains systÚmes de fichiers modernes pour les grappes (cluster) offrent une cohérence absolue du cache à leurs clients. La cohérence parfaite de cache pour des clients NFS hétérogÚnes est difficile à obtenir, surtout sur les réseaux de grandes tailles. Dans ce cas, NFS adopte une cohérence de cache plus faible qui satisfait les contraintes de la plupart des types de partage de fichiers.

Cohérence de cache « close-to-open »

Classiquement, le partage de fichier est complĂštement sĂ©quentiel. Le client A ouvre d’abord un fichier, y Ă©crit quelque chose et le referme. Puis le client B ouvre le mĂȘme fichier et lit les modifications.

Quand une application ouvre un fichier stockĂ© sur un serveur NFS version 3, le client NFS vĂ©rifie que le fichier existe sur le serveur et est accessible Ă  cette application en envoyant une requĂȘte GETATTR ou ACCESS. Le client NFS envoie ces requĂȘtes sans tenir compte de l’anciennetĂ© des attributs de fichier mis en cache.

Quand l’application ferme le fichier, le client NFS y Ă©crit toutes les modifications en attente afin que le prochain client ouvrant ce fichier puisse en voir les changements. Cela donne l’opportunitĂ© au client NFS de prĂ©venir l’application de toute erreur en Ă©criture sur le serveur grĂące au code de retour de close (2).

Le comportement consistant Ă  vĂ©rifier au moment de l’ouverture et Ă  vider Ă  la fermeture est appelĂ© close-to-open cache consistency (consistance de cache close-to-open) ou CTO . Il peut ĂȘtre dĂ©sactivĂ© en entier pour un point de montage en utilisant l’option de montage nocto .

Faible cohérence de cache

Il y a toujours des cas dans lesquels le cache de donnĂ©es du client contient des donnĂ©es incohĂ©rentes. Dans la version 3 du protocole NFS est apparue la « faible cohĂ©rence de cache » (appelĂ©e aussi WCC – weak cache consistency), offrant une mĂ©thode efficace de vĂ©rification des attributs d’un fichier avant et aprĂšs une requĂȘte unique. Cela permet Ă  un client une meilleure perception des modifications qui ont pu ĂȘtre rĂ©alisĂ©es par les autres clients.

Quand un client gĂ©nĂšre de nombreuses opĂ©rations concomitantes qui modifient le mĂȘme fichier au mĂȘme moment (par exemple lors d’écritures asynchrones en arriĂšre-plan), il est difficile de savoir si le fichier a Ă©tĂ© modifiĂ© par ce client ou par un autre.

Mise en cache des attributs

L’utilisation de l’option de montage noac permet de rĂ©aliser la cohĂ©rence de la mise en cache des attributs pour de multiples clients. Pratiquement toutes les opĂ©rations de systĂšme de fichiers vĂ©rifient les informations d’attributs de fichiers. Le client garde cette information en cache pendant un certain temps afin de rĂ©duire la charge du serveur et du rĂ©seau. Quand noac est activĂ©e, le cache des attributs de fichier est dĂ©sactivĂ© sur le client et chaque opĂ©ration qui doit vĂ©rifier les attributs des fichiers doit impĂ©rativement s’adresser au serveur. Cela permet au client de voir rapidement les modifications sur un fichier, en contrepartie d’une augmentation importante des opĂ©rations sur le rĂ©seau.

Soyez attentif Ă  ne pas confondre l’option noac avec « pas de mise en cache des donnĂ©es ». L’option de montage noac empĂȘche la mise en cache par le client des mĂ©tadonnĂ©es du fichier, mais il existe toujours des cas dans lesquels des incohĂ©rences de donnĂ©es en cache peuvent survenir entre le client et le serveur.

Le protocole NFS n’a pas Ă©tĂ© conçu pour gĂ©rer la cohĂ©rence absolue des caches de systĂšmes de fichiers dans des grappes sans qu’il soit nĂ©cessaire d’utiliser des types particuliers de sĂ©rialisation au niveau applicatif. Si la cohĂ©rence absolue du cache est nĂ©cessaire aux clients, les applications devront utiliser le verrouillage de fichiers. Comme solution de remplacement, les applications pourront aussi utiliser le drapeau O_DIRECT lors de l’ouverture des fichiers afin de dĂ©sactiver totalement la mise en cache des donnĂ©es.

Entretien des horodatages de fichier

Les serveurs NFS sont responsables de la gestion des horodatages de fichier et de répertoire ( atime , ctime et mtime ). Quand un fichier est accédé ou mis à jour sur un serveur NFS, ses horodatages sont mis à jour comme ils le seraient sur un systÚme de fichiers local pour une application.

Les clients NFS mettent en cache les attributs de fichier, horodatages inclus. Les horodatages de fichier sont mis Ă  jour quand les attributs sont rĂ©cupĂ©rĂ©s Ă  partir du serveur NFS. Par consĂ©quent, un certain dĂ©lai peut exister avant que les mises Ă  jour d’horodatage sur un serveur NFS apparaissent aux applications sur les clients NFS.

Pour se conformer aux normes de systĂšme de fichiers POSIX, le client Linux NFS se fie aux serveurs NFS pour conserver correctement Ă  jour les horodatages mtime et ctime . Il rĂ©alise cela en vidant les changements locaux de donnĂ©es sur le serveur avant de rapporter mtime aux applications Ă  l’aide d’appels systĂšme tels que stat (2).

Le client Linux gĂšre les mises Ă  jour de atime plus grossiĂšrement. Les clients NFS entretiennent des bonnes performances en mettant en cache les donnĂ©es, mais cela signifie que les lectures d’application, qui normalement mettent Ă  jour atime , ne sont pas reportĂ©es sur le serveur oĂč l’ atime du fichier est rĂ©ellement entretenu.

À cause de ce comportement de mise en cache, le client Linux de NFS ne prend pas en charge les options gĂ©nĂ©riques de montage relatives Ă  atime. Consulter mount (8) pour plus de dĂ©tails sur ces options.

En particulier, les options de montage atime / noatime , diratime / nodiratime , relatime / norelatime et strictatime / nostrictatime n’ont aucun effet sur les montages NFS.

/proc/mounts peut rapporter que l’option de montage relatime est dĂ©finie sur les montages NFS, mais en fait les sĂ©mantiques de atime sont toujours comme dĂ©crit ici et ne sont pas comme les sĂ©mantiques de relatime .

Mise en cache des entrées de répertoire

Le client Linux de NFS garde en cache le rĂ©sultat de toutes les requĂȘtes NFS LOOKUP. Si l’entrĂ©e de rĂ©pertoire demandĂ©e existe sur le serveur, le rĂ©sultat de recherche est considĂ©rĂ© comme positif . Sinon, si l’entrĂ©e n’existe pas (c’est-Ă -dire si le serveur retourne ENOENT), le rĂ©sultat de recherche sera considĂ©rĂ© comme nĂ©gatif .

Afin de dĂ©tecter l’ajout ou la suppression d’entrĂ©es de rĂ©pertoire sur le serveur, le client Linux de NFS regarde la date de modification (« mtime ») du rĂ©pertoire. Si le client dĂ©tecte un changement dans cette date, le client supprime tous les rĂ©sultats LOOKUP encore en cache concernant ce rĂ©pertoire. Comme la date de modification est un attribut conservĂ© en cache, il est possible qu’un peu de temps se passe avant que le client remarque le changement. RĂ©fĂ©rez-vous aux descriptions des options de montage acdirmin , acdirmax et noac pour plus d’informations quant Ă  la maniĂšre dont la date de modification est mise en cache.

Mettre en cache les entrĂ©es de rĂ©pertoire amĂ©liore les performances des applications qui ne partagent pas de fichiers avec des applications sur d’autres clients. Cependant, l’utilisation d’informations en cache sur des rĂ©pertoires peut interfĂ©rer avec des applications qui tournent simultanĂ©ment sur de nombreux clients et qui doivent dĂ©tecter rapidement la crĂ©ation ou la suppression de fichiers. L’option de montage lookupcache permet de personnaliser certains comportements de mise en cache d’entrĂ©e de rĂ©pertoire.

Avant la version 2.6.28 du noyau, le client Linux de NFS cherchait uniquement les rĂ©sultats de recherche positifs. Cela permettait aux applications de dĂ©tecter rapidement de nouvelles entrĂ©es de rĂ©pertoire créées par d’autres clients, tout en conservant une partie des bĂ©nĂ©fices dus Ă  la mise en cache. Si une application dĂ©pend de cet ancien comportement, vous pouvez utiliser l’option lookupcache=positive .

Si le client ignore son cache et valide toutes les requĂȘtes de recherche d’application avec le serveur, il peut alors dĂ©tecter immĂ©diatement toute crĂ©ation ou suppression d’entrĂ©e de rĂ©pertoire par un autre client. Vous pouvez forcer ce comportement avec l’option lookupcache=none . L’absence de mise en cache d’entrĂ©es de rĂ©pertoire exige une augmentation du nombre de requĂȘtes NFS, et donc une perte de performances. EmpĂȘcher la recherche sur le cache devrait permettre une moindre perte au niveau des performances que d’utiliser noac , et n’a aucun effet sur la maniĂšre dont le client NFS met en cache les attributs d’un fichier.

Option de montage sync

Le client NFS gĂšre l’option de montage sync diffĂ©remment d’autres systĂšmes de fichiers (consulter mount (8) pour une description gĂ©nĂ©rique des options de montage sync et async ). Si ni sync ni async ne sont indiquĂ©es (ou si l’option async est indiquĂ©e), le client NFS retarde l’envoi au serveur des ordres d’écriture des applications jusqu’à ce que l’un de ces Ă©vĂ©nements survienne :

La saturation en mémoire entraßne une demande de ressources mémoire au systÚme.

Une application met Ă  jour (« flush ») les donnĂ©es d’un fichier de maniĂšre explicite avec sync (2), msync (2) ou fsync (3).

Une application ferme un fichier avec close (2).

Le fichier est verrouillé/déverrouillé grùce à fcntl (2).

Autrement dit, dans les conditions normales d’utilisation, des donnĂ©es Ă©crites par une application peuvent ne pas apparaĂźtre instantanĂ©ment sur le serveur qui hĂ©berge le fichier.

Si l’option sync est prĂ©cisĂ©e pour un point de montage, tout appel systĂšme qui Ă©crit des donnĂ©es dans des fichiers de ce point de montage entraĂźne le vidage des donnĂ©es sur le serveur avant de revenir en espace utilisateur. Cela offre une meilleure cohĂ©rence du cache des donnĂ©es entre les clients, mais a un impact certain sur les performances.

Les applications peuvent utiliser le drapeau d’ouverture O_SYNC afin que les applications Ă©crivent dans des fichiers individuels pour ĂȘtre immĂ©diatement pris en compte par le serveur sans avoir Ă  utiliser l’option de montage sync .

Utilisation des verrous de fichier avec NFS

Le Gestionnaire de Verrous RĂ©seaux (NLM, Network Lock Manager) est un protocole auxiliaire distinct servant Ă  gĂ©rer les verrous sur les fichiers dans la versions 3 de NFS. Pour gĂ©rer la rĂ©cupĂ©ration des verrous aprĂšs le redĂ©marrage d’un client ou du serveur, un second protocole (connu sous le nom de protocole Network Status Manager) est nĂ©cessaire. Dans la version 4 de NFS, le verrouillage des fichiers est directement pris en charge dans le protocole NFS et les protocoles NLM et NSM ne sont plus utilisĂ©s.

Dans la plupart des cas, les services NLM et NSM sont dĂ©marrĂ©s automatiquement et aucune configuration additionnelle n’est requise. La configuration en noms de domaine pleinement qualifiĂ©s (FQDN) de tous les clients NFS est nĂ©cessaire pour permettre aux serveurs NFS de retrouver leurs clients pour les informer des redĂ©marrages de serveur.

NLM ne gÚre que les verrous partagés de fichier. Pour verrouiller les fichiers NFS, il faut utiliser fcntl (2) avec les commandes F_GETLK et F_SETLK. Le client NFS convertit les verrous de fichiers obtenus grùce à flock (2) en verrous partagés.

Lors du montage de serveurs ne gĂ©rant pas le protocole NLM ou lorsqu’on monte un serveur NFS Ă  travers un pare-feu qui bloque le port du service NLM, il faut utiliser l’option nolock de montage. Le verrouillage NLM doit ĂȘtre dĂ©sactivĂ© grĂące Ă  l’option nolock lorsqu’on utilise NFS pour monter /var , puisque /var contient les fichiers utilisĂ©s par NLM dans son implĂ©mentation sous Linux.

L’utilisation de l’option nolock est parfois conseillĂ©e pour amĂ©liorer les performances d’une application propriĂ©taire qui ne tourne que sur un seul client, mais qui utilise intensĂ©ment les verrous de fichiers.

Caractéristiques du cache de la version 4 de NFS.

Le comportement du cache des données et des métadonnées des clients NFS version 4 est identique à celui des versions précédentes. Toutefois, la version 4 de NFS offre deux nouveaux dispositifs pour améliorer le comportement du cache : attributs de changement et délégation de fichier .

L’ attribut de changement est un nouvel Ă©lĂ©ment des mĂ©tadonnĂ©es de fichiers et de rĂ©pertoires NFS qui enregistre les modifications des donnĂ©es. Il se substitue Ă  l’utilisation de l’horodatage des modifications et changements du fichier pour permettre aux clients de valider le contenu de leurs caches. Cependant, ces attributs de changement ne sont pas liĂ©s Ă  la gestion de l’horodatage ni sur le client ni sur le serveur.

La dĂ©lĂ©gation de fichier est un contrat qui lie un client NFS version 4 et le serveur, permettant temporairement au client de traiter un fichier comme s’il Ă©tait le seul Ă  y accĂ©der. Le serveur s’engage Ă  prĂ©venir le client (grĂące Ă  une requĂȘte de rappel, ou « callback ») si un autre client tente d’accĂ©der Ă  ce mĂȘme fichier. Lorsqu’un fichier a Ă©tĂ© dĂ©lĂ©guĂ© Ă  un client, ce client peut mĂ©moriser (mettre en cache) les donnĂ©es et les mĂ©tadonnĂ©es de ce fichier de façon agressive sans avoir Ă  contacter le serveur.

Il y a deux types de dĂ©lĂ©gations : lecture et Ă©criture . Une dĂ©lĂ©gation en lecture indique que le serveur avertira le client si d’autres clients veulent Ă©crire dans ce fichier. Une dĂ©lĂ©gation en Ă©criture indique que le client sera prĂ©venu des tentatives de lecture ou d’écriture.

Les serveurs accordent les dĂ©lĂ©gations de fichier sitĂŽt qu’un fichier est ouvert et peuvent annuler ces dĂ©lĂ©gations n’importe quand dĂšs lors qu’un autre client dĂ©sire accĂ©der Ă  un fichier d’une maniĂšre qui entre en conflit avec les dĂ©lĂ©gations dĂ©jĂ  attribuĂ©es. Les dĂ©lĂ©gations de rĂ©pertoire ne sont pas gĂ©rĂ©es.

Afin de pouvoir gĂ©rer les alertes de dĂ©lĂ©gations (« delegation callback »), le serveur vĂ©rifie le chemin retour vers le client au moment du contact initial de celui-ci avec le serveur. Si le contact avec le client ne peut pas ĂȘtre Ă©tabli, le serveur n’attribue purement et simplement aucune dĂ©lĂ©gation Ă  ce client.

CONSIDÉRATIONS DE SÉCURITÉ.

Les serveurs NFS contrĂŽlent l’accĂšs aux donnĂ©es des fichiers, mais leur offre de gestion de l’authentification des requĂȘtes NFS dĂ©pend de leur implĂ©mentation des RPC. Les contrĂŽles d’accĂšs NFS traditionnels imitent les contrĂŽles d’accĂšs binaires standards offerts par les systĂšmes de fichiers locaux. L’authentification RPC traditionnelle utilise un nombre pour reprĂ©senter chaque utilisateur (normalement l’UID propre Ă  cet utilisateur), un nombre pour reprĂ©senter le groupe de cet utilisateur (le GID de l’utilisateur) et un ensemble d’au maximum 16 nombres de groupes additionnels pour reprĂ©senter les autres groupes auxquels cet utilisateur peut appartenir.

Traditionnellement, les donnĂ©es du fichier et l’ID de l’utilisateur ne sont pas chiffrĂ©s sur le rĂ©seau (c’est-Ă -dire apparaissent en clair). Qui plus est, les versions 2 et 3 de NFS utilisent des protocoles auxiliaires diffĂ©rents pour le montage, le verrouillage et le dĂ©verrouillage des fichiers et pour renvoyer les valeurs de retour systĂšme des clients et serveurs. Ces protocoles auxiliaires n’utilisent pas d’authentification.

En plus d’avoir intĂ©grĂ© ces deux protocoles auxiliaires dans le protocole NFS principal, la version 4 de NFS offre des formes plus avancĂ©es de contrĂŽle d’accĂšs, d’authentification et de protection lors du transfert des donnĂ©es. La spĂ©cification de la version 4 de NFS requiert une prise en charge de l’authentification renforcĂ©e et de types de sĂ©curitĂ© permettant le contrĂŽle d’intĂ©gritĂ© et le chiffrement par appel RPC. Puisque la version 4 de NFS ajoute les fonctionnalitĂ©s de ces protocoles auxiliaires au cƓur du protocole NFS, les nouvelles caractĂ©ristiques de sĂ©curitĂ© s’appliquent Ă  toutes les opĂ©rations de NFS version 4, incluant donc le montage, le verrouillage des fichiers, etc. L’authentification RPCGSS peut aussi ĂȘtre utilisĂ©e avec les versions 2 et 3 de NFS, mais ne protĂšge pas leurs protocoles auxiliaires.

L’option de montage sec indique quel type de sĂ©curitĂ© est utilisĂ© sur ce point de montage NFS pour un utilisateur. L’ajout de sec=krb5 fournit la vĂ©rification par chiffrement de l’identitĂ© de l’utilisateur pour chaque requĂȘte RPC. Ce dispositif offre une vĂ©rification forte de l’identitĂ© des utilisateurs qui accĂšdent aux donnĂ©es du serveur. Notez qu’une configuration supplĂ©mentaire Ă  cet ajout d’option de montage est nĂ©cessaire pour activer la sĂ©curitĂ© Kerberos. Consulter la page de manuel de rpc.gssd (8) pour plus de dĂ©tails.

Deux types supplĂ©mentaires de sĂ©curitĂ© Kerberos sont pris en charge : krb5i et krb5p . Le dispositif de sĂ©curitĂ© krb5i offre une garantie de chiffrement fort contre la falsification des donnĂ©es pour chaque requĂȘte RPC. Le dispositif de sĂ©curitĂ© krb5p chiffre chaque requĂȘte RPC afin d’éviter qu’elle soit exposĂ©e pendant son transfert sur le rĂ©seau. Toutefois, le chiffrement ou la vĂ©rification de l’intĂ©gritĂ© entraĂźnent des baisses de performance. D’autres formes de sĂ©curitĂ© par chiffrement sont aussi prises en charge.

Traversée de systÚmes de fichiers NFS version 4

Le protocole de la version 4 de NFS permet Ă  un client de renĂ©gocier le type de sĂ©curitĂ© lorsqu’un client passe sur un nouveau systĂšme de fichiers sur le serveur. Le type nouvellement nĂ©gociĂ© ne concerne que le nouveau systĂšme de fichiers.

Une telle nĂ©gociation se produit typiquement lorsqu’un client passe d’un pseudo-systĂšme de fichiers du serveur Ă  un des systĂšmes de fichiers physiques exportĂ©s par le serveur, qui ont souvent des paramĂštres de sĂ©curitĂ© plus restrictifs que les pseudo-systĂšmes de fichiers.

Baux de NFS version 4

Dans NFS version 4, un bail est une période pendant laquelle un serveur accorde irrévocablement à un client des verrous de fichier. Une fois le bail expiré, le serveur peut révoquer ces verrous. Les clients renouvellent périodiquement leurs baux pour éviter la révocation du verrou.

AprĂšs redĂ©marrage d’un serveur NFS version 4, chaque client indique au serveur l’état d’ouverture et de verrouillage du fichier existant sous son bail avant que l’opĂ©ration puisse continuer. Si un client redĂ©marre, le serveur libĂšre tous les Ă©tats ouvert et verrouillĂ© associĂ©s au bail du client.

Par consĂ©quent, lors de l’établissement d’un bail, un client doit s’authentifier de lui-mĂȘme auprĂšs d’un serveur. Chaque client prĂ©sente une chaĂźne arbitraire pour se distinguer des autres clients. L’administrateur de clients peut complĂ©ter la chaĂźne d’identitĂ© par dĂ©faut en utilisant le paramĂštre de module nfs4.nfs4_unique_id pour Ă©viter des collisions avec des chaĂźnes d’identitĂ© d’autres clients.

Un client utilise aussi un type unique de sĂ©curitĂ© et un commettant quand il Ă©tablit son bail. Si deux clients prĂ©sentent deux chaĂźnes d’identitĂ© identiques, un serveur peut utiliser les commettants de client pour faire la distinction, donc empĂȘchant de maniĂšre sĂ©curisĂ©e qu’un client interfĂšre avec un autre bail.

Le client Ă©tablit un bail sur chaque serveur NFS version 4. Les opĂ©rations de gestion de bail, telles que le renouvellement de bail, ne sont pas faites pour le compte d’un fichier, d’un verrou, d’un utilisateur ou d’un point de montage particuliers, mais pour le compte du client titulaire de ce bail. Un client utilise une chaĂźne d’identitĂ©, un type de sĂ©curitĂ© et un commettant cohĂ©rents Ă  travers les redĂ©marrages de client pour assurer que le serveur puisse promptement connaĂźtre l’état d’expiration des baux.

Quand Kerberos est configurĂ© sur un client Linux NFS (c’est-Ă -dire qu’il existe un /etc/krb5.keytab sur ce client), le client essaie d’utiliser le type Kerberos de sĂ©curitĂ© pour les opĂ©rations de gestion de bail. Kerberos fournit l’authentification sĂ©curisĂ©e pour chaque client. Par dĂ©faut, le client utilise host/ ou le commettant du service nfs/ dans son /etc/krb5.keytab dans ce but comme dĂ©crit dans rpc.gssd (8).

Si le client a Kerberos configurĂ©, mais pas le serveur, ou si le client n’a pas de fichier keytab ou les commettants du service requis, le client utilise AUTH_SYS et l’UID 0 pour la gestion des baux.

Utiliser un port source non privilégié

Le client NFS communique normalement avec les serveurs NFS par des sockets de rĂ©seau. À chaque extrĂ©mitĂ© d’un socket est associĂ©e une valeur de port qui est un simple nombre entre 1 et 65 535 qui permettent de distinguer ces terminaisons d’accĂšs de socket pour la mĂȘme adresse IP. Un socket est identifiĂ© de maniĂšre unique par un n-uplet comprenant le protocole de transport (TCP ou UDP) et les valeurs de port et d’adresse IP de chaque terminaison d’accĂšs.

Le client NFS peut choisir n’importe quelle valeur de port source pour ses sockets, mais il choisit en gĂ©nĂ©ral un port privilĂ©giĂ© (c’est-Ă -dire avec une valeur infĂ©rieure Ă  1024). Seul un processus tournant avec des droits du superutilisateur peut crĂ©er un socket Ă  partir d’un port source privilĂ©giĂ©.

La plage des ports source privilĂ©giĂ©s pouvant ĂȘtre choisis est dĂ©finie par une paire de « sysctl »s pour Ă©viter l’utilisation d’un port bien connu, tel celui de SSH. Cela signifie que le nombre de ports source disponibles pour le client NFS, et donc le nombre de connexions de socket disponibles Ă  un moment donnĂ©, est en pratique limitĂ© Ă  quelques centaines.

Comme dĂ©crit plus haut, le schĂ©ma d’authentification NFS traditionnel par dĂ©faut (connu sous le nom d’AUTH_SYS) repose sur l’envoi d’UID et de GID locaux pour identifier les utilisateurs Ă  l’origine de requĂȘtes. Un serveur NFS suppose que si une connexion provient d’un port privilĂ©giĂ©, les numĂ©ros d’UID et de GID des requĂȘtes NFS sur cette connexion ont dĂ©jĂ  Ă©tĂ© vĂ©rifiĂ©s par le noyau du client ou toute autre autoritĂ© locale. Ce systĂšme est facile Ă  usurper, mais sur un rĂ©seau physique sĂ©curisĂ© entre hĂŽtes vĂ©rifiĂ©s, c’est parfaitement adaptĂ©.

En gros, un socket est utilisé pour chaque point de montage NFS. Si un client peut aussi utiliser un port source non privilégié, le nombre de sockets autorisés (et donc le nombre maximal de points de montage simultanés) sera beaucoup plus important.

Utiliser un port source non privilĂ©giĂ© peut quelque peu compromettre la sĂ©curitĂ© du serveur, car n’importe quel utilisateur d’un point de montage AUTH_SYS peut maintenant se faire passer pour un autre comme source de la requĂȘte. C’est pourquoi les serveurs NFS ne le prennent pas en charge par dĂ©faut. En rĂšgle gĂ©nĂ©rale, ils l’autorisent explicitement Ă  l’aide d’une option d’exportation.

Pour garder un bon niveau de sĂ©curitĂ© tout en permettant un maximum de points de montage, il est prĂ©fĂ©rable de n’autoriser les connexions clientes sur un port non privilĂ©giĂ© que si le serveur et le client utilisent tous deux une authentification forte, comme celle fournie par Kerberos.

Montage Ă  travers un pare-feu

Un pare-feu peut exister entre un client NFS et le serveur, mais le client ou le serveur peuvent bloquer certains de leurs propres ports grĂące Ă  des rĂšgles de filtrage d’IP. Il est toujours possible de monter un serveur NFS Ă  travers un pare-feu, bien que les mĂ©canismes de dĂ©couverte automatique des terminaisons d’accĂšs (endpoint) de la commande mount (8) peuvent ne pas fonctionner. Il faudra alors fournir les dĂ©tails spĂ©cifiques Ă  ces terminaisons d’accĂšs grĂące aux options de montage.

Les serveurs NFS lancent habituellement un dĂ©mon portmapper ou rpcbind pour annoncer aux clients les terminaisons d’accĂšs aux services. Les clients se servent du dĂ©mon rpcbind pour dĂ©terminer :

le port réseau utilisé par chaque service basé sur les RPC,

les protocoles de transport pris en charge par chaque service basé sur les RPC.

Le dĂ©mon rpcbind utilise un port bien connu (111) afin d’aider les clients Ă  trouver la terminaison d’accĂšs Ă  un service. Bien que NFS utilise souvent un numĂ©ro de port standard (2049), des services auxiliaires tels que NLM peuvent choisir alĂ©atoirement des numĂ©ros de port inutilisĂ©s.

Les configurations habituelles des pare-feu bloquent le port bien connu de rpcbind. En l’absence du service rpcbind, l’administrateur du serveur dĂ©finit un numĂ©ro de port pour les services liĂ©s Ă  NFS afin que le pare-feu puisse permettre l’accĂšs aux ports des services spĂ©cifiques NFS. Les administrateurs des clients pourront alors indiquer le numĂ©ro du port du service mountd grĂące Ă  l’option mountport de la commande mount (8). Il peut ĂȘtre nĂ©cessaire d’imposer l’utilisation de TCP ou d’UDP si le pare-feu bloque l’un de ces transports.

Désactiver le traitement des ACL (Access Control List).

Solaris permet aux clients NFS version 3 l’accĂšs direct aux ACL (Access Control Lists) POSIX stockĂ©es dans son systĂšme de fichiers local. Ce protocole auxiliaire propriĂ©taire, connu sous le nom de NFSACL, offre un contrĂŽle d’accĂšs plus riche que le mode par bits. Linux implĂ©mente ce protocole dans un but de compatibilitĂ© avec l’implĂ©mentation NFS de Solaris. Cependant, le protocole NFSACL n’est jamais devenu une partie standard de la spĂ©cification NFS version 3.

La spécification de NFS version 4 impose une nouvelle version des Access Control Lists qui sont sémantiquement plus riches que les ACL POSIX. Les ACL de NFS version 4 ne sont pas totalement compatibles avec les ACL POSIX. De ce fait, des traductions entre les deux sont obligatoires dans un environnement qui mélange les ACL POSIX et NFS version 4.

OPTION DE REMONTAGE

Les options de montage gĂ©nĂ©rique comme rw et sync peuvent ĂȘtre modifiĂ©es par les points de montage NFS en utilisant l’option remount . Consulter mount (8) pour plus d’informations sur les options gĂ©nĂ©riques de montage.

Sauf quelques exceptions, les options spĂ©cifiques Ă  NFS ne peuvent pas ĂȘtre modifiĂ©es pendant un remontage. Par exemple, le transport sous-jacent ou la version NFS ne peuvent pas ĂȘtre changĂ©s par un remontage.

Effectuer un remontage sur un systĂšme de fichiers NFS montĂ© avec l’option noac peut avoir des consĂ©quences inattendues. L’option noac est une combinaison de l’option gĂ©nĂ©rique sync et de l’option spĂ©cifique NFS actimeo=0 .

Démontage aprÚs remontage

Pour les points de montage qui utilisent NFS versions 2 ou 3, la sous-commande de dĂ©montage NFS dĂ©pend de la connaissance de l’ensemble initial des options de montage utilisĂ©es pour effectuer l’opĂ©ration MNT. Ces options sont stockĂ©es sur le disque par la sous-commande de montage NFS, et peuvent ĂȘtre effacĂ©es par un remontage.

Afin de s’assurer que les options de montage enregistrĂ©es ne sont pas effacĂ©es lors d’un remontage, il faut spĂ©cifier au remontage soit le rĂ©pertoire de montage local, soit le serveur hĂŽte et le chemin d’exportation, mais pas les deux. Par exemple,

mount -o remount,ro /mnt

fusionne l’option de montage ro avec les options de montage dĂ©jĂ  enregistrĂ©es sur le disque pour le serveur NFS montĂ© dans /mnt.

FICHIERS

/etc/fstab

Table des systĂšmes de fichiers

/etc/nfsmount.conf

Fichier de configuration pour les montages NFS

NOTES

Le client Linux NFS antérieur à 2.4.7 ne gérait pas NFS sur TCP.

Le client Linux NFS antĂ©rieur Ă  2.4.20 utilisait une heuristique pour savoir si les donnĂ©es en cache d’un fichier Ă©taient toujours valables plutĂŽt que d’utiliser la mĂ©thode standard de cohĂ©rence de cache close-to-open dĂ©crite ci-dessus.

Depuis la version 2.4.22, le client Linux NFS utilise une estimation RTT (Round Trip Time) de type Van Jacobsen pour dĂ©finir les dĂ©lais de dĂ©passement de temps lorsqu’il utilise NFS sur UDP.

Le client Linux NFS antérieur à 2.6.0 ne gérait pas NFS version 4.

Le client Linux NFS antĂ©rieur Ă  2.6.8 n’utilisait les lectures et Ă©critures synchrones que lorsque les rĂ©glages de rsize et wsize Ă©taient infĂ©rieurs Ă  la taille des pages du systĂšme.

La prise en charge d’un client Linux pour les versions de protocole dĂ©pend de l’activation des options CONFIG_NFS_V2, CONFIG_NFS_V3, CONFIG_NFS_V4, CONFIG_NFS_V4_1 et CONFIG_NFS_V4_2 lors de la construction du noyau.

VOIR AUSSI

fstab (5), mount (8), umount (8), mount.nfs (5), umount.nfs (5), exports (5), nfsmount.conf (5), netconfig (5), ipv6 (7), nfsd (8), sm-notify (8), rpc.statd (8), rpc.idmapd (8), rpc.gssd (8), rpc.svcgssd (8), kerberos (1)

RFC 768 concernant la spécification UDP.
RFC 793 concernant la spécification TCP.
RFC 1813 concernant la spécification de NFS version 3.
RFC 1832 concernant la spécification XDR.
RFC 1833 concernant la spécification RPC bind.
RFC 2203 concernant la spĂ©cification du protocole de l’API GSS RPCSEC.
RFC 7530 concernant la spécification de NFS version 4.0
RFC 5661 concernant la spécification de NFS version 4.1.
RFC 7862 concernant la spécification de NFS version 4.2.

TRADUCTION

La traduction française de cette page de manuel a été créée par Valéry Perrin <valery.perrin.debian@free.fr>, Sylvain Cherrier <sylvain.cherrier@free.fr>, Thomas Huriaux <thomas.huriaux@gmail.com>, Dominique Simen <dominiquesimen@hotmail.com>, Nicolas SauzÚde <nsauzede@free.fr>, Romain Doumenc <rd6137@gmail.com>, David Prévot <david@tilapin.org>, Denis Mugnier <myou72@orange.fr>, Cédric Boutillier <cedric.boutillier@gmail.com> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .