Sistemes Telemàtics

STI-2

Pràctica 4: Servei NFS  (Sistema de fitxers distribuits per xarxa)

GNU/Linux

9-2-2010

SERVEI NFS (Network File System): SISTEMA DE FITXERS DISTRIBUITS EN XARXA

DOCUMENTACIÓ

1- Introducció

Els servei NFS (Network File System) permet accedir al sistema de  fitxers i directoris de l'ordinador que proporciona aquest servei, o sigui, el servidor NFS,  a un altre ordinador remot, el client NFS. Els usuaris que treballen a l'ordinador client podran accedir als directoris i fitxers del servidor NFS d'una manera absolutament transparent perquè es muntaran dins de l'arbre de directoris i fitxers del propi sistema client. 

Així com en Windows es diu que el servidor "comparteix" les unitats, directoris i fitxers, quan treballem amb el servei  NFS direm que el servidor "exporta" una sèrie de directoris i fitxers. El client per la seva banda, haurà de muntar amb l'ordre mount el directori exportat pel servidor, de la mateixa manera que ho faria per exemple amb un CDROM local,  per poder insertat en el seu arbre de directoris local, el directori "importat" del servidor. Un cop muntat, el usuari podrà accedir als directoris exportats pel servidor  executant simplement l'ordre cd, o podrà esborrar fitxers, copiar-los, moure'ls, etc.... amb les ordres del sistema per aquests casos, com cp, ls, mv, etc. De fet, l'usuari pot treballar sense saber que està accedint a un sistema de fitxers que es troba en el servidor. Una utilitat típica d'aquest servei és aquella que permet tenir el directori /home de tots els usuaris en el servidor NFS, de manera que quan un usuari es connecta a l'ordinador client, el directori personal al qual accedeix no es troba a l'ordinador en el qual està treballant, sino que es troba al servidor NFS.


Per poder configurar el nostre ordinador com a client i servidor nfs cal haver compilat el kenel de linux amb suport per NFS i tenir instal.lats els paquet de software nfs-utils. En el nostre cas, ja tenim tota aquesta feina feta previament.

Podeu trobar molta informació de caràcter pràctic a: http://www.linuxforum.com/linux-nfs/preamble.html

http://www.xtec.net/~vbarcelo/ASI05servidorsLliconsNFS.htm

2- El fitxers /etc/hosts

En xarxes d'àrea local en les quals volem treballar amb noms d'ordinador en comptes de fer-ho amb les seves IP, ens cal algún sistema per traduir noms a IP i viceversa. Això es pot fer de dues maneres: a) Utilitzant un servidor DNS dins de la xarxa d'àrea local; b) Utilitzant el fitxer /etc/hosts que poseix cadascún dels ordinadors. Ja veurem més endavant com configurar un servidor DNS, de manera que ara parlarem del segon mètode.

El fitxer /etc/hosts es un fitxer de tipus texte pla, on s'escriu la  llista de tots el noms i IP d'ordinador d'una xarxa. Es pot editat i manipular amb el programa joe per exemple, o qualsevol altre editor de texte pla. Només pot modificar aquest fitxer l'usuari root. Cada línia té dues columnes separades per un o més espais en blanc . La primera columna és  una adreça IP i la segona un  nom complet d'ordinador. A vegades hi ha una tercera columna, que no és necessària, indicant un álies (nom alternatiu curt) de l'ordinador. Un exemple de contingut de fitxer /etc/hosts seria:


192.168.1.1    pc1.clot.com    pc1  
192.168.1.2    pc2.clot.com    pc2  
192.168.1.3    pc3.clot.com    pc3  
192.168.1.4    pc4.clot.com    pc4  
192.168.1.5    pc5.clot.com    pc5
192.168.1.20  nfs.clot.com     nfs  
192.168.1.30  web.clot.com   web
192.168.1.50  ANETO 

Tot i que sempre és millor treballar amb un servidor DNS, utilitzar el fitxer /etc/hosts per passar d'IP a noms i viceversa és un sistema fàcil i ràpid de treballar si el número d'ordinadors és petit. Posteriorment veurem que per mitjà del servei NIS, podrem utilitzar un únic fitxer /etc/hosts que es troba en el servidor NIS i que poden utilitzar tots els ordinadors client NIS de la xarxa d'àrea local. 

Obligatòriament, el fitxer /etc/hosts té el nom del propi ordinador i la seva IP, així com l'entrada 127.0.0.1 que es tradueix per localhost.

3- Configuració d'un servidor NFS via YaST

S'han de seguir els seguents passos:

1- Executar YaST ==> Servicios de red ==> Servidor NFS

2- Escollim l'opció "Arrancar Servidor NFS

3- A l'opció "Directorios" escollirem aquells directoris que volem exportar a la resta dels ordinadors de la xarxa

4- A l'opció "Comodines para hosts" posarem la llista d'ordinadors als qual donem permís per utilitzar els nostres directoris distribuits en xarxa. La llista d'ordinadors pot fer-se tal com s'indica aquí.

5- A l'opció "Opciones" posarem els permissos d'accés als nostres directoris distribuits en xarxa. Algunes de les moltes opcions que es poden posar  les podeu trobar aquí.

6- Si volem modificar opcions, afegir nous ordinador a la llista o esborrar-los, podem anar a la sección inferior de la pantalla que es pot controlar amb els botons virtual "Añadir Servidor", "Editar" i "Eliminar"

7- Executarem "Finalizar" i YaST farà la resta de la feina

4- Configuració d'un client NFS via YaST

S'han de seguir els seguents passos:

1- Executar YaST ==> Servicios de red ==> Cliente NFS

2- Escollim l'opció "Añadir"

3- A l'opció "Nombre del servidor NFS" posarem el nom o IP del servidor NFS al qual ens volem connectar

4- A l'opció "Sistema de archivos remoto" posarem el nom del directori a l'ordinador servidor NFS al qual hi volem accedir

5- A l'opció "Punto de anclaje (local)" posarem el nom del directori del nostre ordinador que està associat al directori remot del servidor NFS

6- A l'apartat "Opciones" deixarem el valor "defaults"

7- Executarem "Aceptar" ==> "Finalizar" i YaST farà la resta de la feina

8- Sempre podem tornar a aquest apartat para modificar opcions, i afegir o eliminar directoris


5- Configuració d'un servidor NFS per mitjà de l'interpret d'ordres

Per configurar i posar en marxa un servidor NFS amb la distribució SuSE de GNU/Linux, cal fer els següents passos:

1- Editem /etc/hosts i afegim els paràmetres de tots els ordinadors clients que podrien arribar a connectar-se


2-  Editem el fitxer /etc/exports del servidor NFS, i escrivim els noms o adreces IP dels  hosts als qual volem pemetre l'accés  al sistema d'arxius del servidor, i més concretament, a quins directoris tenen dret a accedir-hi, i amb quins permisos. Per exemple:

/home   504*.etpc(ro)  sh.domini.com(rw) linux*.clot.com(rw)
/bin       172.16.0.0/255.255.0.0(ro)  172.17.147.8(rw)
/mnt      *(ro)

Fixeu-vos que en les llistes d'ordinadors, cada ordinador (o conjunt d'ordinadors) està separat per un o més espais en blanc. Les opcions es posen entre parentesi i sense separació amb l'adreça IP o nom.


3- Editar i modificar /etc/host.conf , que en el nostre cas, com utilitzem el fitxer /etc/hosts en comptes d'un servidor DNS local per fer la resolució de noms dins de la xarxa d'àrea local, hauria de tenir l'entrada order de la següent manera:

order    hosts, bind


4- Editar i modificar /etc/nsswitch.conf , que en el nostre cas, com utilitzem el fitxer /etc/hosts en comptes d'un servidor DNS local per fer la resolució de noms dins de la xarxa d'àrea local, hauria de tenir l'entrada hosts de la següent manera:

hosts:      files mdns4_minimal [NOTFOUND=return] dns 


5- Iniciem el mapejador de serveis RPC (programa servidor rpcbind) i el servei NFS, amb els scripts rcrpcbind i rcnfsserver, de la següent manera:

rcrpcbind   start
rcnfsserver start

NOTA: El servei NFS depen del mapejador de serveis RPC. Cal iniciar primer el mapejador de serveis RPC per poder posar en marxa el servei NFS.

Si modifiquem el fitxer /etc/exports, perquè els canvis tinguim efecte haurem de reiniciar el servei NFS (el servidor portmap no cal reiniciar-lo). Per tant, haurem d'executar l'ordre:

 rcnfsserver   restart

6- Configuració d'un client NFS per mitjà de l'interpret d'ordres

Per configurar i posar en marxa un client servidor NFS amb la distribució SuSE de GNU/Linux, cal fer els següents passos:

1- Editar /etc/hosts i afegir els paràmetres del servidor NFS. Per exemple:

172.16.199.50  nfs.etpclot.net     nfs 

2- Editar i modificar /etc/host.conf , que en el nostre cas, com utilitzem el fitxer /etc/hosts en comptes d'un servidor DNS local per fer la resolució de noms dins de la xarxa d'àrea local, hauria de tenir l'entrada order de la següent manera:

order    hosts, bind

Tornarem a parlar d'aquest fitxer quan fem la pràctica del servidor DNS.

3- Editar i modificar /etc/nsswitch.conf , que en el nostre cas, com utilitzem el fitxer /etc/hosts en comptes d'un servidor DNS local per fer la resolució de noms dins de la xarxa d'àrea local, hauria de tenir l'entrada hosts de la següent manera:

hosts:      files mdns4_minimal [NOTFOUND=return] dns 

4- Posar en marxa el mapejador de serveis RPC, si no ho està, amb l'ordre rcportmap start

5- Per importar un sistema de fitxers del servidor NFS al client NFS, s'ha de fer el següent:

mount    -t    nfs    nom_servidor_NFS:/directori_remot    /directori_local

Per exemple:

mount    -t    nfs    nfs.etpclot.net:/mnt/cdrom    /mnt/cdrom_nfs

on /mnt/cdrom_nfs és un directori de l'ordinador client, que hem creat previament , de manera que quan accedim a aquest directori, realment estem anant al directori /mnt/cdrom de nfs.etpclot.net.

Per demuntar el sistema de fitxers al qual hi hem accdeit via NFS, hem de fer el segünet:

umount     /directori_local

Per exemple:

umount    /mnt/cdrom_nfs

i llavors /mnt/cdrom_nfs tornarà a ser un directori local normal de l'ordinador client.

NOTA IMPORTANT: Tant l'ordre de muntatge com l'ordre de desmuntatge es poden fer a qualsevol lloc de l'arbre de directoris de linux del client, excepte, des de dins del propi punt de muntatge.


INFORMACIÓ COMPLEMENTÀRIA

1- Les opcions del fitxer /etc/exports les podeu trobar executant man exports. De les diverses opcions d'exportació d'un sistema de fitxers existents són interessants:

2- La llista d'ordinadors amb accés a un directori exportat pel servidor NFS es pot posar en forma de noms d'ordinador, o en forma d'adreces IP. Si treballem amb noms, es posible utilitzar el caracter comodí * per donar permís a u n conjunt d'ordinadors. Si treballem amb adreces IP, es pot utilitzar una màscara de subxarxa per donar accés a tota una subxara. Les adreces IP no permeten l'us de *. Per exemple:

3- L'ordre exportfs serveix per controlar i portar el manteniment de la llista (o taula) dels sistemes de fitxers exportats. Aquesta llista es troba al fitxer /var/lib/nfs/xtab. El dimoni mountd (o rpc.mountd) llegeix xtab cada cop que rep una petició de muntage d'un sistema de fitxers des d'un ordinador remot. L'ordre exportfs utilitza per defecte el fitxer /etc/exports per realitzar la seva tasca de control i manteniment de la taula de sistemes de fitxers exportats. De les diverses opcions de l'ordre exportfs són interessants:

4- Els dimonis que implementen el servei NFS complet, i que es troben a /usr/sbin, són:

5- La distribució SuSE de GNU/Linux permet gestionar els dimonis que implementen el servei NFS de la següent manera:

6- L'ordre showmount  -e  Nom_Servidor_NFS permet preguntar a un servidor NFS remot quins sistemes de fitxers està exportant. Exemple:

root@client:~> showmount  -e  pc15.clot.edu
Export list for pc15.clot.edu:
/mnt/msdos *
/mnt/cdrom *
/mnt/floppy *

7-Per veure l'estat del servei RPC del qual depen el servei NFS, i tenir informació sobre el propi servei NFS podem utilitzar l'ordre rpcinfo  -p.

8-Informació sobre el mapejador de serveis RCP portmapper (o portmap) i el servei NFS:

a) RPC i Portmapper: http://ditec.um.es/laso/docs/tut-tcpip/3376c410.html#figrpcconc
b) NFS i Portmapper: http://ditec.um.es/laso/docs/tut-tcpip/3376c412.html#nfs

PRÀCTICA

1- Modifica el nom del teu ordinador. Fes que sigui linuxX.etpclot.net, on X representa el teu número d'ordinador.
2- Posa al teu ordinador l'adreça IP 172.16.208.X,
on X representa el teu número d'ordinador., i una màscara igual a 255.255.0.0.
3- Crea la llista amb el nom i IP de la resta d'ordinadors de l'aula. Modifica /etc/hosts per tenir la llista de la resta d'ordinadors de l'àula. Dins de la llista posa el nom del host nfs.etpclot.net  que té l'adreça IP
172.16.208.50.
4- Fes un ping a
nfs.etpclot.net utilitzant el seu nom: 1 punt.
5-
Fes un ping a l'ordinador d'un company utilitzant el nom del seu ordinador: 1 punt.
4- Configura el teu ordinador per fer de client NFS. Monta els directoris /mnt/pr4c del servidor de NFS nfs.etpclot.net, dins dels directoris locals /mnt/nfs/pr4c. Si els directori no existeixen, els hauràs de crear.  Copia el fitxer pr4.txt del servidor NFS en el teu escriptori. Mostra'm el contingut del fitxer: 3 punts

5- Crea una carpeta de nom /mnt/pr4s dins del teu ordinador, i exporta (amb drets de només lectura) aquesta carpeta a la resta d'ordinadors de l'àula i també al servidor nfs.etpclot.net. Dins de la carpeta deixa un fitxer amb el teu nom i número d'ordinador: 2 punts.
6- Elimina la configuració del teu ordinador com a client NFS i desmunta la connexió  amb el servidor que has fet a l'apartat 4: 2 punts
7-
Elimina la configuració del teu ordinador com a servidor NFS: 1 punt.