Man page - nfs(5)
Packages contains this manual
- nfsstat(8)
- blkmapd(8)
- nfsmount.conf(5)
- nfsidmap(8)
- showmount(8)
- mount.nfs(8)
- svcgssd(8)
- rpc.svcgssd(8)
- nfs.conf(5)
- mountstats(8)
- rpc.statd(8)
- rpc.sm-notify(8)
- statd(8)
- nfs4_uid_to_name(3)
- nfs(5)
- rpcctl(8)
- nfsiostat(8)
- rpc.idmapd(8)
- gssd(8)
- umount.nfs(8)
- nfsconf(8)
- sm-notify(8)
- nfsrahead(5)
- nfs.systemd(7)
- rpcdebug(8)
- rpc.gssd(8)
- idmapd(8)
apt-get install nfs-common
Available languages:
en fr deManual
NFS
NOMSYNOPSIS
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 .