Ceci est une ancienne révision du document !



NFS : Network File System - le partage réseau sous Linux

NFS est l'abréviation de Network File System, c'est-à-dire système de fichiers réseau.

Ce système de fichiers en réseau permet de partager des données principalement entre systèmes de type UNIX mais des versions existent également pour Microsoft Windows™ et Mac.
NFS est compatible avec IPv6 sur la plupart des systèmes.

L'intérêt de NFS est de permettre l'utilisation d'un répertoire ou de tout le système de fichiers d'un ordinateur de manière totalement transparente, comme s'il s'agissait d'un disque dur connecté directement à votre ordinateur.

Deux ordinateurs au moins

  • Un serveur sous GNU/Linux (ici Ubuntu) où se trouvent les fichiers à partager.
  • Un client qui doit pouvoir accéder aux fichiers du Serveur.

Ne pas avoir peur de la ligne de commande

Avoir les droits d'administration sur les deux machines

C'est-à-dire de pouvoir installer des paquets et utiliser la commande sudo

Voir ici de quoi il est question et en particulier la commande « sudo ».

Être sur un réseau de confiance

NFS surtout avant la version 4 (incompatible avec les précédentes) ne doit être déployé que des réseaux surs.
Quelle que soit la version, NFS est a déployer dans un réseau local et n'a de pas vocation à être ouvert sur internet.
On peut utiliser par exemple NFS sur son réseau local derrière une Box assurant le rôle de routeur NAT.

Connaître les adresses IP locales de Serveur et de Client

Dans le terminal lancer « ifconfig », l'adresse est à la ligne « inet adr: », paragraphe « eth » si vous êtes connecté en ethernet, « wlan » pour une connexion Wi-Fi.

Vous pouvez aussi connaître l'IP de vos PC via l'applet network-manager.

Pour la suite de cet exemple, on considérera que Serveur et Client ont une adresse locale fixe :

  • Serveur : 192.168.1.10
  • Client : 192.168.1.20
Il peut être important de fixer l'IP de vos ordinateurs pour être sûr qu'elles ne changerons pas :
  • Soit à partir de l'interface du routeur / de la *box. Ouvrez Firefox, et tapez dans la barre d'adresse celle donnée dans le mode d'emploi du routeur / de la *box (le login et le mot de passe y sont aussi). Plus d'infos.
  • Soit directement à partir d'Ubuntu via Network-Manager ou par la configuration fixe

Se faire un aide-mémoire

Les machines IP locales Points de montage des fichiers
Serveur 192.168.1.10 /Fichiers_à_partager_sur_Serveur
Votre serveur IP de votre serveur Exemple : /home/Votre_Nom_d'Utilisateur_sur_Votre_Serveur
Client 192.168.1.20 /Point_de_montage_sur_Client
Votre client IP de votre client Exemple : /home/Nom_d'Utilisateur_sur_le_Client/Partage
Vous n'êtes pas obligé de connaître les IP de tous vos clients si vous en avez beaucoup ou si leurs IP sont amenés à changer
En effet avec cette méthode, les ordinateurs de tout votre réseau local pourront sans distinction utiliser NFS.
D'autres méthodes décrites dans les Exemples concrets vous demanderons de les connaître.

Installez sur le ou les serveurs NFS le paquet nfs-kernel-server

Le serveur NFS ne doit pas voir son IP changer, essayez si vous le pouvez de fixer son IP comme expliqué dans les Pré-requis.

Sur Serveur donc, il faut modifier le fichier /etc/exports et y saisir cette ligne:

# Dossier partagé :
/Dossier/à/partager/ 192.168.0.0/255.255.0.0(rw,all_squash,anonuid=1000,anongid=1000,sync)
  • Bien entendu modifiez au début de cette ligne le répertoire par celui que vous voulez partager.
  • Vous devez aussi changer 192.168.0.0 par le début des IPs de votre réseau. Par exemple si votre serveur est à 10.42.43.1 vous devez mettre 10.42.0.0.
  • Si vous voulez que le répertoire ne soit disponible qu'en lecture, enlevez rw, de cette ligne.

Vous pouvez empêcher client par client quel ou quel PC peut écrire ou non dans le NFS, mais ceci est plus simple en le paramétrant au niveau du Client.

  • Vous pouvez ajouter autant de dossiers à partager que vous voulez de cette manière, vous n'êtes pas limité à un seul.
Optimisation possible:
Vous pouvez remplacer l'option sync passée au partage par l'option async pour plus de performances.
async signifie asynchrone, le serveur NFS mentira au client pour lui dire que les opérations ont été inscrites sur le disque avant même que l'opération soit réellement terminée.
Le problème est que si le serveur plante ou est éteint pendant une opération d'écriture, vous perdrez les donnés en cours d'écriture. Ceci n'est rarement un problème, mais pour cette raison je vous déconseille grandement cette option si le PC que vous utilisez comme serveur peut être éteint à tout moment !

Explications sur les options d'export de NFS.

Vous pouvez donner le droit d’accès à votre dossier à seulement un ou quelques ordinateurs de votre réseau en spécifiant IP par IP les différents postes. Ceci vous oblige à avoir des IP fixes pour TOUS les ordinateurs avec lesquels vous voulez partager. Et ne vous leurrez pas ceci n'offre pas plus de sécurité car si un de vos PC accédant au NFS est à l'arrêt, n'importe qui sur ce même réseau peut usurper cet IP.
Par contre, si la personne voulant accéder à votre NFS n'est pas dans 192.168.0.0/255.255.0.0 il ne pourra de toute façon PAS y accéder.
Enfin bref, si vous ne comprenez pas, n'y portez pas trop d'importance.

Vous pouvez voir de telles configurations dans les Exemples concrets ci dessous.

Après avoir modifié le fichier /etc/exports il suffit de lancer dans un terminal :

sudo service nfs-kernel-server reload

Cette commande ne coupe pas les transferts en cours si la nouvelle configuration permet toujours leur accès au serveur. Vous pouvez donc la lancer plus ou moins à n'importe quel moment.

Exemples concrets

  • Exemple de partage avec NFS : Exemple de réseau entre 3 ordinateurs qui permet l'échange et le partage de fichiers avec le minimum de contraintes via nfs-kernel-server.
  • Un simple partage NFS : Tutoriel expliquant pas à pas comment accéder à distance aux documents enregistrés sur un ordinateur à partir d'un autre. Nécessite de saisir quelques lignes de commandes, mais permet de comprendre tout en faisant.
  • D'autres méthodes, parfois obsolètes, sont également disponible sur l'ancienne version de la page NFS.

Pour accéder à un NFS, il faut le "monter". En gros il s'agit de dire au service qui s'occupe des disques durs que ce serveur NFS est comme un disque dur et qu'il serait bête de ne pas s'en servir !

Il n'existe pas d'autoconfiguration pour NFS, il faudra donc le faire manuellement.

Ubuntu GNU/Linux

Le paquet nécessaire pour accéder à un NFS est nfs-common

Après avoir installé ce paquet, il existe deux solutions pour monter son NFS sur un ordinateur.
La première est plus adaptée à un Serveur allumé en permanence (ou presque), la seconde via autoFS est peut être plus tolérante à l'arrêt inopiné du serveur.

Modifier /etc/fstab

Il faut tout d'abord créer un dossier dans lequel le NFS viendra se loger. Ouvrez donc un terminal sur vos clients puis tapez:

sudo mkdir /media/NFS

Vous pouvez bien entendu créer un répertoire du nom de votre choix.

Pour ce faire, il suffit de modifier le fichier /etc/fstab pour y ajouter la ligne:

  192.168.1.10:/<Dossier_à_partager>/ /media/NFS nfs defaults,user,auto,noatime,intr 0 0
  • 192.168.1.10 étant l'IP de votre serveur
  • <Dossier_à_partager> étant le dossier sur votre serveur que vous voulez recevoir (doit correspondre à celui que le serveur veut envoyer)
  • /media/NFS étant le dossier que vous avez créé juste avant dans lequel vous souhaitez mettre le NFS
  • nfs étant le protocol NFS … Bah ouai, il faut dire à Linux ce que c'est pour qu'il s'en serve.
  • defaults,user,auto,noatime,intr sont des options de montage, vous pouvez ajouter ,ro à la fin pour ne pas autoriser l'écriture.
  • 0 0 dit à Linux ne ne pas vérifier si le disque contient des erreurs (le serveur s'en occupera)
Optimisation possible:
Si votre serveur est très peu puissant (un Pentium 2 ou 3 par exemple plus de 12 ans d'age, bon millésime) vous pouvez augmenter les performances en ajoutant en "options de montage" (voir plus haut) ,nfsvers=3,udp ceci aura pour effet d'utiliser la version 3 de NFS ainsi que le protocol UDP. Vous devrez utiliser moins de processeur mais ceci peut ne pas marcher très bien si votre liaison réseau est de mauvaise qualité (ne surtout pas utiliser ces options sur les clients en Wifi !)

Utiliser Autofs

  • Autofs : Logiciel pour monter facilement votre partage NFS.

Windows

Sachez qu'un firewall ne vous servira à rien si vous êtes (comme ce tutoriel l'exige très important) derrière un routeur.
Si vous faites un partage de connexion via NetworkManager un routage sera en place automatiquement, les ordinateurs dans le partage n'ont donc rien à craindre.
Si vous utilisez un pare-feu entre le modem et le PC qui partage la connexion internet, n'ouvrez surtout pas le port NFS vers le modem ! Il faut l'ouvrir dans le sens inverse, c'est-à-dire vers le partage de connexion ! Ne vous trompez pas !
Le seul intérêt d'un pare-feu dans ce cas précis est seulement si vous avez un nombre très important de postes informatiques chez vous et que ces postes risquent d'être utilisés par des personnes malveillantes.

Si vous utilisez tout de même un pare-feu sur vos serveurs et/ou clients NFS, il vous faudra le configurer pour ne pas filtrer NFS et donc pouvoir y accéder :

  • nfs.1337085219.txt.gz
  • Dernière modification: Le 15/05/2012, 14:33
  • par 62.129.24.203