NFS (Network File System)

Contents

Co to jest NFS

NFS czyli sieciowy system plików jest to sposób na współdzielenie zasobów jednego komputera przez kilka innych. Można go wykorzystać do udostępniania katalogów (np. domowych użytkowników) będących na jednym komputerze pozostałym komputerom w sieci. Jest to co w rodzaju odpowiednika udostępniania katalogów w Windowsie.

Przygotowanie serwera do udostępnienia zasobów

Aby serwer mógł udostępniać zasoby muszą być spełnione dwa warunki: jądro musi mieć możliwość obsługi systemu nfs (network file system) oraz muszą być uruchomione demony kontrolujące proces ekportu systemu plików (nfsd,portmap, rpc.mountd, rpc.rquotad, rpciod).

W dystrybucjach mających systemy pakietów łatwo to zapewnić kompilując jądro (lub tylko moduły do niego) oraz instalując odpowiednie pakiety (nfsd).

Aby móc udostępniać usługę NFS innym hostom trzeba uruchomić na serwerze demony rpc.nfsd i rpc.mountd. Nie są one zarządzane przez inetd czy xinted, gdyż są oparte na RPC, ale uruchamianie osobno (czy to podczas startu systemu, czy ręcznie) i rejestrują się w portmaperze.

Plik /etc/exports

Plik exports okrela które zasoby którym hostom można udostępnić. Jego składnia jest prosta, omówię go na przykładowym pliku:

#plik /etc/export mojego serwera
/home workus1(rw) workus2(rw)
/dyski/mp3 workus?(ro)
/dyski/filmy workus*(ro)

Jak widać każda linia pliku określa prawa do jednego zasobu (katalogu).Pierwsza kolumna określa który katalog eksportujemy, druga określa które komputery mogą je montować i na jakich prawach (tutaj: rw – odczyt i zapis, ro – tylko odczyt).

Pamiętaj iż podając adresy serwerów, które mogą montować udostępnione zasoby demon sprawdza jego nazwę domenową, długi czas uruchamiania serwera nfs może właśnie wynikać z nie możności odnalezienia adresu IP lub nazwy domenowej.

Showmount

Przydatnym programem w codziennej pracy z nfs jest polecenie showmount. Służy ono do informowania jakie pliki są udostępnianie przez system, które hosty mają prawo montować jakie zasoby oraz kto obecnie korzysta z zasobów. Po wydaniu polecenia showmount uzyskamy następujące dane:

[root@duzy ziutus]# showmount
Hosts on duzy:
192.168.1.2

Czyli dowiemy się kto montuje nasze zasoby. Jeżeli chcemy wiedzieć kto co montuje z naszego komputera to wydajemy polcenie showmount -a

[root@duzy ziutus]# showmount -a
All mount points on duzy:
192.168.1.2:/home

Jezeli chcemy zobaczyć które katalogi udostępniamy możemy to zrobić tak:

[root@duzy ziutus]# showmount -e
Export list for duzy:
/home 192.168.1.2

Natomiast jeżeli interesuje nas tylko jakie katalogi są zamontowane przez inne komputery to wydajemy polecenie showmount -d:

[root@duzy ziutus]# showmount -d
Directories on duzy:
/home

Mountowanie zasobów

Zasoby mountowane są poleceniem mount:

mount serwer:katalog /gdzie_zamountowac

np.

mount 192.168.2.1:/nfs_export/filmy /filmy

Problemy

Zamontowanie systemu plików jako nfs nie rozwiązuje oczywiście problemu z przestrzenią UID/GID. Należy więc zadbać o to aby można było ją współdzielić ( NIS, NIS+, LDAP) albo uruchomić demona rpc.ugidd pozwalającego na ujednolicenie tych danych (należy wtedy pamiętać o opcji map_deamon) albo ręcznie pilnować tej zgodności.

Pamiętaj iż możesz dzielić przestrzeń UID/GID użytkowników ale nie administratorów (użytkowników z UID/GID równym 0)! Można to domyślne zachowanie zmienić dodając opcje no_root_squash.

W Internecie

Dodaj komentarz