-------------------------------------
                 -- Le NFS, mais c'est très simple! --
                 -------------------------------------



 Remarque liminaire
 ------------------

 Si vous trouvez que ce texte est intéressant, vous pouvez le diffuser
ou l'afficher sur votre page web, à condition de ne pas en tirer profit,
et de ne pas le modifier.
 Les opérations décrites dans ce texte sont le fruit de mon expérience
personnelle, et ont parfaitement fonctionnées chez moi. Cependant, si vous
décidez de suivre mes conseils, je ne saurais être tenu responsable en
cas de dommages liés à la mise en pratique de ceux-ci.



 Vous êtes encore là ?
 Bien.


 * Le NFS signifie "Network File System", et permet d'accéder depuis
sa console aux fichier d'un ordinateur raccordé au réseau.
 * Pour faire simple (et comme je n'en connais pas beaucoup plus), je
vais vous parler de mon expérience personnelle qui consistait à faire
communiquer TOTO avec JSEB, deux PCs reliés par des cartes ethernet 
NE2000.




 1) Le réseau, il fonctionne au moins ?
 --------------------------------------

 C'est facile à vérifier. Il suffit de faire un "ping" vers la machine
distante.
 Par exemple, depuis JSEB: "ping toto".
 Si les paquets passent, c'est bon. Sinon, le réseau est mal
configuré.

 Si le réseau est bien configuré, allez à la section 2). 

 1.1 -- Configurer le réseau --

 Je ne vous ferait pas l'affront de vous faire vérifier les connexions
et les bouchons, mais vérifiez quand même, on ne sait jamais :)
 
 Il faut que vous ayez défini les adresses de vos machines dans
"/etc/hosts". Par exemple, mon "hosts" contient:

[root~]# cat /etc/hosts

 127.0.0.1   localhost   localhost.localdomain
 191.72.1.1   toto   toto.reseau.com
 191.72.1.2   jseb  jseb.reseau.com

 Les deux machines "toto" et "jseb" sont les machines qui forment le
réseau. On peut leur attribuer n'importe quelle adresse, du moment qu'elle
est de la forme IP, et qu'on ne souhaite pas se connecter à l'extérieur.
 Vous avez également besoin du fichier "networks" (toujours dans
"etc"). Il contient l'adresse du réseau proprement dit (les deux machines
toto et jseb forment ici le réseau).
 Ici, l'adresse réseau reprend l'adresse IP des machines, en remplaçant le
numéro des machines par un zéro (cela peut être différent selon la classe
de réseau choisie, ce dont vous n'avez pas à vous préoccuper tant que vous
restez en circuit fermé sur vos machines.) 

[root~]# cat /etc/networks

 reseau-net   191.72.1.0

 (Notez bien le zéro à la fin de l'adresse).


 Ensuite, essayez (sur la machine JSEB)

 [root ~]# ifconfig eth0 JSEB netmask 255.255.255.0

 Si ca marche, c'est bon, la carte NE2000 est reconnue. Sinon, il se
peut que le driver soit disponible sous forme de module (dans
/usr/lib/modules/net, regardez si il y a "ne.o". Si oui, chargez le et
recommencez le "ifconfig" ci-dessus).

 Si cela ne marche toujours pas, il ne vous reste plus qu'a recompiler
votre noyau, mais avec l'option "support NE2000" activée, cette fois.

 Une fois que JSEB est reconnu, il faut le raccorder au réseau.

[root ~]#route add reseau-net

 ("reseau-net" est le nom de mon réseau, définit dans
"/etc/networks").


 Faites l'opération symétrique avec TOTO:

[root_toto~]# ifconfig eth0 toto netmask 255.255.255.0
[root_toto~]# route add reseau-net

 Retentez le "ping". Normalement, ça devrait passer.



 1.2 -- Automatiser la config réseau --

 Maintenant que ça marche, vous voudriez bien éviter de tout retaper à
chaque boot.
 Il y a plusieurs manières de procéder:


  1.2.1 - rc.sysinit

  On peut inclure les deux commandes vues précédemment (ifconfig & route)
  à la fin du fichier "/etc/rc.d/rc.sysinit". J'ai rajouté les deux lignes
  suivantes:

  /sbin/ifconfig eth0 (nom du poste) netmask 255.255.255.0
  /sbin/route add reseau-net

  Ca marche, mais au boot, le système prend maintenant un certain temps
  de "reflexion" quand il procède au "mounting remote system". En effet,
  les deux PCs sont rarement en service en même temps, et donc le réseau
  n'est pas actif. Au bout d'un certain temps, le système affiche
  "failed", et la séquence de boot continue. 


  1.2.2 - .bashrc

  On peut aussi éditer "/root/.bashrc"
  C'est un fichier de commande qui est exécuté à chaque login du root.
  Il correspond à une sorte de profil utilisateur pour bash, vous pouvez
  donc éditer un ".bashrc" appartenant à un autre utilisateur, à condition
  que celui-ci possède des droits suffisants.
  Rajoutez simplement à la fin de ce fichier les deux lignes habituelles:

  /sbin/ifconfig eth0 (nom du poste) netmask 255.255.255.0
  /sbin/route add reseau-net

  Si vous faites cette modification, vous n'avez donc pas besoin de modifier
  "/etc/rc.d/rc.sysinit". Au boot, vous aurez un message du genre:
  "RPC PORT MAPPER FAILURE", car bien que le NFS soit activé, votre réseau
  n'est pas défini. Pas d'inquiétudes, tout se passera très bien par la
  suite.
  Personnellement, j'utilise cette méthode, afin d'éviter le long polling
  de la méthode du paragraphe 1.2.1



 2) Bon, et le NFS dans tout ça ?
 --------------------------------


 2.1 -- mountd et nfsd, êtes-vous là ? --

 Déja, vérifiez que "rpc.mountd" et "rpc.nfsd" tournent sur votre
machine. Pour cela:

[root~]# ps -aux

 (sur les deux machines)
 Si ils n'apparaissent pas dans la liste des processus, il faut les
installer. Avec les RPMs, il suffit de chercher un peu (cherchez du
coté de "network", avec glint on les trouve tout de suite. Il y a deux
packages à installer).



 2.2 -- exporter un système de fichiers --

 Si les démons tournent, c'est pratiquement du tout cuit:
dans le fichier "/etc/exports", le poste indique le système de fichier
qui sera exporté (disponible) vers les autres consoles.
 Par exemple, on veut, pour la machine JSEB, rendre visible toute son
arborescence sur TOTO.

 Il faut pour cela écrire (dans "/etc/exports" de JSEB)

 /   toto(rw)


 Si on veut juste exporter "/home", il faut écrire:

 /home toto(rw)


Une fois la modif faite, relancez les démons:

[root~]# killall -HUP /usr/sbin/rpc.mountd
[root~]# killall -HUP /usr/sbin/rpc.nfsd


 Vous pouvez maintenant (en reprenant l'exemple de "exports" ci
dessus) mounter l'arborescence de JSEB sur TOTO:

[root_toto~]# mount jseb:/ /mnt


et pour mounter uniquement le répertoire "/home" de JSEB sur toto:

[root_toto~]# mount jseb:/home /mnt


 Notez bien que pour moi, rien à faire, même en relançant les démons.
Finalement, je l'ai fait "à la windows": reboot, et re-tentative de
mount sans rien faire d'autre. Et là, ça a marché!



 2.3 -- la fichier FSTAB --

 Dans l'exemple précédent, je me suis contenté de monter le système
de fichier distant avec les options de mountage par défaut.
 Vous pouvez définir une configuration avec le fichier FSTAB, ce qui
permet d'affiner les paramètres tout en réduisant la ligne de commande.
 Comme tous les fichiers de configuration du système, FSTAB se trouve
dans "/etc".

 Voici sa syntaxe:

 nom_du_point_de_montage   endroit_ou_monter  systeme_de_fichier  options


 Par exemple, quand on veut monter "toto" depuis "jseb", on édite le
fichier "/etc/fstab" sur la machine "jseb", et on rajoute:

 toto:/   /mnt  nfs

 Par la suite, il suffit de taper:
[root~]# mount toto:/

 et "toto" se retrouvera monté dans "/mnt".

 Bien sûr, ces paramètres seuls ne sont pas très intéressants, car ils
correspondent à la configuration NFS par défaut.
 Un fstab plus intéressant pour jseb serait:

 toto:/   /mnt  nfs  rsize=8192,wsize=8192 


 Ensuite, quand vous taperez:
[root~]# mount toto:/

 Vous vous retrouverez avec le système de fichier de "toto" dans le "/mnt"
de "jseb", comme dans l'exemple précédent. Mais en plus, vous avez maintenant
une taille de paquets émis (wsize) et reçus (rsize) de 8192 octets, au lieu
de 1024 par défaut.
 Le gain de vitesse est très sensible (sur ma machine, le temps de copie d'un
fichier de 2mo est divisé par 2.5).



 3) Conclusion
 -------------

 Je sais, "conclusion", ça fait pompeux, mais tant pis :)
 Voila c'est fini! N'oubliez pas de me contacter si j'ai écrit des
bêtises, à l'adresse suivante:

 jseb@linux-france.org


 Et maintenant, au lit les enfants: il vous reste tous les Hows-To liés
au sujet à lire! Sans oublier l'excellent "Network Administrator Guide"
d'Olaf Kirch (disponible en français par ftp, traduction de René Cougnenc).
 Bonne nuit les gars :)


 

Retour Au Menu Linux