Î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
:
root@storage1:~# apt-get install nfs-kernel-server
Vom crea un director /nfs
cu un fișier test-nfs
în acesta:
root@storage1:~# mkdir /nfs root@storage1:~# echo test > /nfs/test-nfs
Toate directoarele exportate către clienți vor fi configurate în fișierul /etc/exports
. Vom exporta directorul /nfs
creat anterior:
root@storage1:~# cat /etc/exports |grep /nfs /nfs 192.168.1.2(rw,sync,no_subtree_check)
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:
După configurarea fișierului /etc/exports
trebuie resetat serviciul NFS:
root@storage1:~# /etc/init.d/nfs-kernel-server restart
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
):
root@storage2:~# apt-get install nfs-common nfs-common is already the newest version. root@storage2:~# mkdir /nfs root@storage2:~# mount -t nfs storage1:/nfs /nfs root@storage2:~# ls -l /nfs/ total 4 -rw-r--r-- 1 root root 5 Mar 29 16:52 test-nfs
Î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.
Încercați să creați un nou fișier sau să scrieți în fișierul existent:
root@storage2:~# touch /nfs/test-nfs2 touch: cannot touch ‘/nfs/test-nfs2’: Permission denied
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:
root@storage1:~# cat /etc/exports |grep squash /nfs 192.168.1.2(rw,sync,no_subtree_check,no_root_squash) root@storage1:~# /etc/init.d/nfs-kernel-server restart
Observați faptul că acum putem modifica ierarhia de directoare:
root@storage2:~# touch /nfs/test-nfs2 root@storage2:~# ls -l /nfs/ total 4 -rw-r--r-- 1 root root 5 Mar 29 16:52 test-nfs -rw-r--r-- 1 root root 0 Mar 29 17:14 test-nfs2
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
).