Developpez.com - Linux
X

Choisissez d'abord la catégorieensuite la rubrique :


Administration NFS : principes de NFS (Network File System)

Date de publication : 16/01/2005 , Date de mise a jour : 16/01/2005

Par david.d (Coredump)
 


1. Montage d’un système de fichiers distants
2. Autres démons
3. Remarques


NFS fournit un accès transparent aux systèmes de fichiers d’un serveur distant. Toute application travaillant avec un fichier local, peut travailler identiquement sans aucune modification avec un fichier distant via NFS. NFS n’accède qu’aux parties du fichier que référence un processus.

Le client ainsi que le serveur sont implémentés côté noyau pour deux raisons principales :

  • les accès distants sont complètement transparents, aussi l’OS les prend en charge,
  • par souci de performance, on évite l’étape coûteuse de franchissement de la frontière user/kernel
Lorsqu’un processus client demande un accès à un fichier :

  1. il sollicite le noyau,
  2. le noyau détermine si le fichier est local ou distant,
  3. Si le fichier est distant, le noyau passe au client NFS les références du fichier distant,
  4. le client sollicite le serveur concerné,
  5. portmap sur le serveur opère la translation de ports vers l’application concernée (serveur NFS), la plupart des implémentations code en dur le port UDP 2049 comme port d’écoute du serveur NFS L’implémentation initiale de NFS utilisait UDP, il existe maintenant des implémentations TCP. On rappelle que UDP est sans états. L’inconvénient étant l’absence de gestion efficace des congestions, d’où l’intérêt d’user de TCP.
  6. le serveur NFS opère la requête via les routines d’accès aux fichiers locaux.

1. Montage d’un système de fichiers distants

Pour qu’un serveur exporte une partie de ses systèmes de fichiers, il doit :

  1. démarrer portmap (puisque mountd utilise les RPC),
  2. démarrer ensuite mountd, le démon de montage, sur un port non privilégié
  3. mountd s’enregistre alors auprès de portmap.
Pour qu’un client monte un système de fichiers distants appartenant à un serveur NFS en service :

  1. mount doit faire une requête auprès du portmap distant,
  2. le portmap distant retourne le numéro de port à contacter pour joindre mountd,
  3. mount contacte ensuite mountd pour opérer le montage,
  4. mountd retourne à mount un handle de fichier dans le cas favorable,
  5. la consultation du système de fichiers distants est maintenant possible

2. Autres démons

NFS fonctionne grâce à plusieurs démons, certains effectuant des opérations côté client, d’autres côté serveur :

  • rpc.nfsd, côté serveur, traite les requêtes d’accès aux fichiers des clients,
  • rpc.mountd, côté serveur, traite les requêtes de montage de systèmes de fichiers des clients,
  • rpc.lockd, côté serveur et client, gère les verrous sur les fichiers (les clients font des requêtes pour obtenir des verrous, le serveur traite ces requêtes),
  • rpc.statd, côté serveur et client, permet l’observation du réseau (nécessaire à rpc.lockd, traite l’initialisation des verrous après plantage),
  • rpc.rquotad, côté serveur, gère les quotas.
Note : le système de verrouillage des fichiers ne fonctionne pas très bien.


3. Remarques

Sous Linux, le noyau doit avoir été compilé avec l’option CONFIG_NFS_FS. Si tel est le cas, la commande suivante nous le confirmera :


	[root@matrox /]# grep nfs /proc/filesystems

	nodev nfs 


Cet article présente l'administration NFS sous Linux. Vous pourrez trouver comment administrer NFS sous FreeBSD sur le site Coredump



Copyright (c) 2004 david d. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Read the full license here : http://www.gnu.org/licenses/fdl.txt
Contacter le responsable de la rubrique Linux