Differences

This shows you the differences between two versions of the page.

Link to this comparison view

saisp:labs:06:contents:01 [2014/03/29 17:21]
mihai.carabas [01. Partajarea de fișiere folosind protocolul NFS]
saisp:labs:06:contents:01 [2014/03/30 15:51] (current)
alexandru.carp
Line 1: Line 1:
-==== 01. Partajarea de fișiere folosind protocolul NFS ====+==== 01. [10p] Partajarea de fișiere folosind protocolul NFS ====
  
 În general, în centrele de date, dezvoltarea puterii de calcul a fost realizată pe orizontală (scale-out),​ preferându-se achiziționarea mai multor sisteme cu putere de calcul medie decât super-calculatoare integrate. S-a pus problema ca datele stocate să fie accesibile din orice nod al rețelei. Un serviciu ce poate oferi această facilitate este NFS (Network File System). În arhitectura ''​NFS''​ există un server de stocare care va pune la dispoziție un subset al ierarhiei sale de directoare altor stații numite în continuare clienți. În general, în centrele de date, dezvoltarea puterii de calcul a fost realizată pe orizontală (scale-out),​ preferându-se achiziționarea mai multor sisteme cu putere de calcul medie decât super-calculatoare integrate. S-a pus problema ca datele stocate să fie accesibile din orice nod al rețelei. Un serviciu ce poate oferi această facilitate este NFS (Network File System). În arhitectura ''​NFS''​ există un server de stocare care va pune la dispoziție un subset al ierarhiei sale de directoare altor stații numite în continuare clienți.
  
-Vom instala serverul de NFS pe stația ''​storage1''​ (pe distribuții Debian-based pachetul poartă numele ''​nfs-kernel-server'':<​code>​+Vom instala serverul de NFS pe stația ''​storage1''​ (pe distribuții Debian-based pachetul poartă numele ''​nfs-kernel-server'':<​code ​bash>
 root@storage1:​~#​ apt-get install nfs-kernel-server root@storage1:​~#​ apt-get install nfs-kernel-server
 </​code>​ </​code>​
  
-Vom crea un director ''/​nfs''​ cu un fișier ''​test-nfs''​ în acesta:<​code>​+Vom crea un director ''/​nfs''​ cu un fișier ''​test-nfs''​ în acesta:<​code ​bash>
 root@storage1:​~#​ mkdir /nfs root@storage1:​~#​ mkdir /nfs
 root@storage1:​~#​ echo test > /​nfs/​test-nfs root@storage1:​~#​ echo test > /​nfs/​test-nfs
 </​code>​ </​code>​
  
-Toate directoarele exportate către clienți vor fi configurate în fișierul ''/​etc/​exports''​. Vom exporta directorul ''/​nfs''​ creat anterior:<​code>​+Toate directoarele exportate către clienți vor fi configurate în fișierul ''/​etc/​exports''​. Vom exporta directorul ''/​nfs''​ creat anterior:<​code ​bash>
 root@storage1:​~#​ cat /​etc/​exports |grep /nfs root@storage1:​~#​ cat /​etc/​exports |grep /nfs
 /nfs    192.168.1.2(rw,​sync,​no_subtree_check) /nfs    192.168.1.2(rw,​sync,​no_subtree_check)
 </​code>​ </​code>​
-Pe prima poziție se află directorul care va fi exportat (''/​nfs''​),​ pe a doua poziție se află adresa IP a clientului care v-a putea accesa acest director, iar în paranteză se află diferite atribute:+Pe prima poziție se află directorul care va fi exportat (''/​nfs''​),​ pe a doua poziție se află adresa IP a clientului care va putea accesa acest director, iar în paranteză se află diferite atribute:
    * rw (read/​write) - ierarhia de directoare va putea fi citită și scrisă    * rw (read/​write) - ierarhia de directoare va putea fi citită și scrisă
    * sync - toate datele scrise de către clienți vor ajunge la server în momentul apelului de sistem. Nu se va stoca informația în buffere. Acest lucru este necesar în momentul în care mai multe entități folosesc același director exportat pentru a asigura consistența    * sync - toate datele scrise de către clienți vor ajunge la server în momentul apelului de sistem. Nu se va stoca informația în buffere. Acest lucru este necesar în momentul în care mai multe entități folosesc același director exportat pentru a asigura consistența
    * no_subtree_check - la accesarea oricărui fișier din sistemul de directoare nu se face nici o verificare asupra existenței acelei căi de acces. Acest lucru crește performanța serviciului NFS, dar poate cauza probleme în situații în care un client accesează un anume fișier, iar altul îl redenumește    * no_subtree_check - la accesarea oricărui fișier din sistemul de directoare nu se face nici o verificare asupra existenței acelei căi de acces. Acest lucru crește performanța serviciului NFS, dar poate cauza probleme în situații în care un client accesează un anume fișier, iar altul îl redenumește
  
-După configurarea fișierului ''/​etc/​exports''​ trebuie resetat serviciul NFS:<​code>​+După configurarea fișierului ''/​etc/​exports''​ trebuie resetat serviciul NFS:<​code ​bash>
 root@storage1:​~#​ /​etc/​init.d/​nfs-kernel-server restart root@storage1:​~#​ /​etc/​init.d/​nfs-kernel-server restart
 </​code>​ </​code>​
  
-Pentru a testa funcționalitatea vom crea directorul ''/​nfs''​ pe stația ''​storage2''​ și vom monta directorul exportat de ''​storage1''​ (este necesar să aveți instalat pachetul ''​nfs-common''​):<​code>​+Pentru a testa funcționalitatea vom crea directorul ''/​nfs''​ pe stația ''​storage2''​ și vom monta directorul exportat de ''​storage1''​ (este necesar să aveți instalat pachetul ''​nfs-common''​):<​code ​bash>
 root@storage2:​~#​ apt-get install nfs-common root@storage2:​~#​ apt-get install nfs-common
 nfs-common is already the newest version. nfs-common is already the newest version.
Line 34: Line 34:
 -rw-r--r-- 1 root root 5 Mar 29 16:52 test-nfs -rw-r--r-- 1 root root 5 Mar 29 16:52 test-nfs
 </​code>​ </​code>​
-În general este o bună practică să montăm directorul exportat în aceeași ierarhie și pe client pentru ca sistemul de stocare să fie transparent utilizatorilor indiferent de nodul folosit.+În generaleste o bună practică să montăm directorul exportat în aceeași ierarhie și pe clientpentru ca sistemul de stocare să fie transparent utilizatorilorindiferent de nodul folosit.
  
-Încercați să creați un nou fișier sau să scrieți în fișierul existent:<​code>​+Încercați să creați un nou fișier sau să scrieți în fișierul existent:<​code ​bash>
 root@storage2:​~#​ touch /​nfs/​test-nfs2 root@storage2:​~#​ touch /​nfs/​test-nfs2
 touch: cannot touch ‘/​nfs/​test-nfs2’:​ Permission denied touch: cannot touch ‘/​nfs/​test-nfs2’:​ Permission denied
 </​code>​ </​code>​
-Implicit serverul de NFS nu permite modificarea ierarhiei de directoare exportate dacă aceasta aparține utilizatorului privilegiat ''​root''​. Pentru a permite acest lucru trebuie adăugată opțiunea ''​no_root_squash''​ la exportarea directorului și resetarea serverului de NFS:<​code>​+Implicit serverul de NFS nu permite modificarea ierarhiei de directoare exportate dacă aceasta aparține utilizatorului privilegiat ''​root''​. Pentru a permite acest lucru trebuie adăugată opțiunea ''​no_root_squash''​ la exportarea directorului și resetarea serverului de NFS:<​code ​bash>
 root@storage1:​~#​ cat /​etc/​exports |grep squash root@storage1:​~#​ cat /​etc/​exports |grep squash
 /nfs    192.168.1.2(rw,​sync,​no_subtree_check,​no_root_squash) /nfs    192.168.1.2(rw,​sync,​no_subtree_check,​no_root_squash)
 root@storage1:​~#​ /​etc/​init.d/​nfs-kernel-server restart root@storage1:​~#​ /​etc/​init.d/​nfs-kernel-server restart
 </​code>​ </​code>​
-Observați faptul că acum putem modifica ierarhia de directoare:<​code>​+Observați faptul că acum putem modifica ierarhia de directoare:<​code ​bash>
 root@storage2:​~#​ touch /​nfs/​test-nfs2 root@storage2:​~#​ touch /​nfs/​test-nfs2
 root@storage2:​~#​ ls -l /nfs/ root@storage2:​~#​ ls -l /nfs/
Line 53: Line 53:
 </​code>​ </​code>​
  
-Montați directorul ''/​nfs''​ și pe stația ''​storage3''​. Nu uitați să adăugați adresa IP a acesteia în fișierul de configurare al serverului NFS și să îl resetați pe acesta(Hint:​ ''​man exports; /IP networks''​).+Montați directorul ''/​nfs''​ și pe stația ''​storage3''​. Nu uitați să adăugați adresa IP a acesteia în fișierul de configurare al serverului NFS și să îl resetați pe acesta (Hint: ''​man exports; /IP networks''​).
 <​solution -hidden> <​solution -hidden>
-<​code>​+<​code ​bash>
 root@storage1:​~#​ cat /​etc/​exports root@storage1:​~#​ cat /​etc/​exports
 /nfs    192.168.1.0/​24(rw,​sync,​no_subtree_check,​no_root_squash) /nfs    192.168.1.0/​24(rw,​sync,​no_subtree_check,​no_root_squash)
saisp/labs/06/contents/01.1396106502.txt.gz · Last modified: 2014/03/29 17:21 by mihai.carabas
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0