Rozdział 43.
NFS
Tim Parker
W tym rozdziale:
Konfiguracja NFS w systemie Linux
NFS (Network File System, sieciowy system plików), stworzony przez firmę Sun Microsystems, umożliwia współużytkowanie plików i katalogów pomiędzy systemami UNIX-owymi. Katalog sieciowy udostępniany poprzez NFS widziany jest w każdym systemie tak, jakby był katalogiem lokalnym. Przykładowo, jeśli masz dostęp do systemu linuxowego, w którym zainstalowane jest mnóstwo gier, a nie masz miejsca, by je wszystkie zainstalować u siebie, możesz za pomocą NFS skonfigurować swój system tak, aby gry te były widoczne w jakimś katalogu lokalnym i używać ich bez żadnych problemów. Dzięki NFS proces łączenia się z innym komputerem i transportu danych za każdym razem, gdy uruchamiasz grę, jest niewidoczny dla użytkownika (może za wyjątkiem opóźnień wprowadzanych przez sieć).
NFS może być używany w sieciach różnego typu, choć został zaprojektowany dla sieci opartych na TCP/IP. Ze względu na jego popularność, pojawiły się implementacje dla różnych systemów operacyjnych, co pozwala na współużytkowanie plików i katalogów w sieciach niejednorodnych.
W UNIX-ie i Linuxie NFS działa w trybie peer-to-peer (równy z równym). Oznacza to, że Twój komputer może zachowywać się zarówno jako klient, jak i serwer usługi NFS, a nawet spełniać obie te funkcje równocześnie.
Wiele osób używa NFS w pracy, ale boi się skonfigurować go we własnym systemie linuxowym, ponieważ uważają, że jego konfiguracja jest złożona, trudna, i wymaga dużej wiedzy o systemie operacyjnym. Z tego powodu wiele osób rezygnuje z NFS, choć jest to jedna z najbardziej pożytecznych usług oferowanych przez TCP/IP. Jak jednak przekonasz się czytając ten rozdział, konfigurowanie NFS w systemie Linux nie jest ani takie skomplikowane, ani długotrwałe, jak się powszechnie uważa. Oczywiście abyś mógł docenić jego zalety, w skład sieci musi wchodzić więcej niż jeden komputer...
|
Niektóre nowsze produkty, takie jak VisionFS, znacznie upraszczają używanie dysków sieciowych. Wersje tych programów są dostępne również dla Linuxa, ale niestety są to produkty komercyjne. |
Konfiguracja NFS w systemie Linux
NFS intensywnie korzysta z usługi RPC (Remote Procedure Call, zdalne wywoływanie procedur). Z tego powodu przed uruchomieniem NFS trzeba sprawdzić, czy program obsługujący RPC działa poprawnie. W niektórych systemach możesz to zrobić wydając polecenie:
rpcinfo -p
Wynikiem jego działania powinna być lista wszystkich serwerów RPC działających w Twoim systemie, na przykład:
[root@linux reksio]# rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
300019 1 udp 737
100001 13 udp 791 rstatd
100001 3 udp 791 rstatd
100001 2 udp 791 rstatd
100001 1 udp 791 rstatd
100001 13 udp 796 rstatd
100001 3 udp 796 rstatd
100001 2 udp 796 rstatd
100001 1 udp 796 rstatd
Jeśli RPC działa prawidłowo, powinieneś zobaczyć przynajmniej pięć pozycji: dwie dla UDP, dwie dla TCP oraz jedną dla programu pcnfsd, obsługującego NFS. W powyższym przykładzie nie ma pozycji pcnfsd,więc wiemy, że program obsługi NFS nie jest aktywny.
Programy obsługujące NFS muszą najpierw zostać zainstalowane: Linux najczęściej pozwala na to przy instalacji systemu. Jeśli nie zainstalowałeś ich wtedy, zrób to teraz, używając programu instalacyjnego dołączonego do Twojej wersji Linuxa. W niektórych systemach (np. Caldera Linux i wiele dystrybucji Slackware) program obsługi NFS jest domyślnie instalowany i uruchamiany przy starcie systemu, bez względu na to, czy jest faktycznie używany.
Konfiguracja serwera linuxowego
W większości wersji Linuxa NFS jest uruchamiany i wyłączany za pomocą skryptu /etc/nfs. Jeśli chcesz uruchamiać go automatycznie, powinieneś utworzyć dowiązanie do tego skryptu o nazwie /etc/rc2.d/Sname. Aby prawidłowo wyłączać NFS, powinieneś również stworzyć dowiązanie /etc/rc0.d/Kname. Ręcznie możesz go uruchomić i zatrzymać poleceniami:
/etc/nfs start
/etc/nfs stop
|
W niektórych wersjach Linuxa używane są inne nazwy plików i katalogów, na przykład wspomniany wyżej skrypt /etc/nfs może być zapisany pod nazwą /etc/rc.d/init.d/nfs albo /etc/init.d/nfs. |
Po wydaniu polecenia uruchamiającego NFS na ekranie powinny zostać wyświetlone komunikaty potwierdzające uruchomienie odpowiednich programów:
$ /etc/nfs start
Starting NFS services: exportfs mountd nfsd pcnfsd biod(x4)
Starting NLM services: statd lockd
natomiast przy wyłączaniu usługi NFS, komunikaty o zakończeniu ich działania:
$ /etc/nfs stop
NFS shutdown: [NFS Shutdown Complete]
Jeśli linuxowy system plików ma być dostępny za pośrednictwem usługi NFS dla innych komputerów, musi być wymieniony w pliku /etc/exports. W niektórych systemach NFS uruchamia się automatycznie, jeśli plik /etc/exports istnieje podczas uruchamiania systemu - wywoływany jest wówczas program exportfs, pozwalający innym komputerom korzystać z systemu plików za pośrednictwem NFS. Jeśli zmodyfikujesz plik /etc/exports, powinieneś wydać polecenie exportfs jeszcze raz albo ponownie uruchomić komputer, aby uaktywnić zmiany. Składnia wpisów w pliku etc/exportfs jest następująca:
katalog [-opcja, opcja ...]
katalog to ścieżka dostępu do katalogu, który ma być udostępniany (eksportowany, według terminologii NFS) za pomocą NFS, a opcje mogą przybierać następujące wartości:
ro eksportowanie w trybie tylko do odczytu (domyślnie: do odczytu i zapisu);
rw=nazwy_komputerów zezwolenie na zapis tylko dla wymienionych komputerów, dla pozostałych - tylko odczyt;
anon=uid jeśli żądanie NFS pochodzi z nieznanego serwera, używa identyfikatora użytkownika uid dla określenia praw dostępu;
root=nazwy_komputerów nadaje uprawnienia użytkownika root użytkownikom root pochodzącym z wyszczególnionych komputerów;
access=klient umożliwia używanie NFS tylko wyszczególnionym klientom. Pole klient może zawierać nazwę komputera lub całej grupy sieciowej.
Podany niżej przykładowy plik /etc/exports ułatwi zrozumienie zastosowania tych opcji. Symbol
# oznacza początek komentarza.
/usr/stuff -ro #eksport tylko do odczytu dla wszystkich
/usr -access=clients #eksport dla grupy o nazwie clients
/usr/public #eksport do odczytu i zapisu dla każdego
Jeśli zmodyfikujesz zawartość pliku /etc/exports, powinieneś zrestartować programy obsługi NFS. Polecenie exportfs wyświetla nazwy wszystkich eksportowanych systemów plików.
|
Niektóre systemy automatycznie generują plik o nazwie /etc/xtab, zawierający informacje o systemach plików. Nie należy modyfikować tego pliku, ponieważ NFS może przestać działać prawidłowo. Plik ten jest tworzony przez program exportfs. |
W niektórych systemach linuxowych do eksportowania katalogów używa się polecenia share (wiele wersji Linuxa nie obsługuje tego polecenia, ponieważ jego funkcje pokrywają się funkcjami pliku /etc/exports). Jego składnia jest następująca:
share -F nfs -o opcje -d opis ścieżka
Parametr nfs określa, że katalog ma być eksportowany za pośrednictwem usługi NFS. opcje mogą przyjmować takie same wartości, jak opcje podawane w pliku /etc/exports. Można również podać opisową nazwę eksportowanego katalogu, używając opcji -d. Jeśli na przykład chcesz udostępnić do odczytu i zapisu katalog /usr/public, możesz wydać polecenie:
share -F nfs -d "Server public directory" /usr/public
Można również użyć jednocześnie kilku opcji, na przykład:
share -F nfs -o ro=artemis,anon=200 -d "Book material" /usr/reksio/book
Powyższe polecenie spowoduje udostępnienie katalogu /usr/reksio/book, opisanego jako Book material, dla każdego w trybie do odczytu i zapisu, za wyjątkiem komputera artemis, który będzie miał tylko możliwość odczytu. Prawa dostępu anonimowych użytkowników będą określane na podstawie praw dostępu użytkownika o identyfikatorze numerycznym 200.
Polecenie share bez parametrów zwykle wyświetla informacje o wszystkich eksportowanych katalogach.
Konfigurowanie klienta
Eksportowany przez serwer system plików można zamontować bez żadnych problemów poleceniem mount o następującej składni:
mount -F nfs [-o opcje] serwer:katalog punkt_zamontowania
Opcja -F nfs określa, że chodzi o system plików dostępny przez NFS. serwer:katalog to nazwa serwera i ścieżka dostępu do katalogu, który ma zostać zamontowany. punkt_zamontowania określa katalog, w którym zdalny system plików będzie dostępny w komputerze lokalnym (katalog ten musi istnieć). W niektórych wersjach Linuxa składnia polecenia mount może być nieco inna, na przykład czasem zamiast opcji -F nfs należy podać -f NFS. Dokładne informacje o składni znajdują się w dokumentacji.
Podane niżej przykładowe polecenie montuje system plików znajdujący się w katalogu /usr/public systemu artemis w katalogu lokalnym /usr/artemis:
mount -F nfs artemis:usr/public /usr/artemis
Katalog /usr/artemis musi zostać wcześniej utworzony.
opcje mogą być kombinacją następujących wartości:
rw montuje system plików do odczytu i zapisu (ustawienie domyślne);
ro montuje system plików tylko do odczytu;
timeo=x określa maksymalny czas, jaki należy odczekać przed daniem za wygraną, jeśli montowanie się nie powiedzie (w dziesiątych sekundy);
retry=x w razie niepowodzenia powoduje powtórzenie próby montowania x razy;
soft wymusza poddanie się, jeśli od serwera nie przychodzi potwierdzenie zamontowania;
hard powoduje, że klient kontynuuje próby montowania aż do skutku;
intr pozwala na przerwanie montowania przez naciśnięcie dowolnego klawisza; w przeciwnym przypadku próby montowania są powtarzane do skutku.
Poniższe polecenie powoduje próbę zamontowania katalogu /usr/public udostępnianego w systemie artemis w trybie tylko do odczytu, i poddanie się, jeśli komputer zdalny nie potwierdzi zamontowania systemu plików:
mount -F nfs -o soft,ro artemis:usr/public /usr/artemis
Polecenie mount bez parametrów wyświetla listę wszystkich zamontowanych systemów plików.
Istnieje jeszcze prostsza metoda montowania często używanych systemów plików. Jeśli nazwy systemów plików i punkty ich zamontowania wraz z opcjami zostaną umieszczone w pliku /etc/fstab lub /etc/vfstab (zależnie od wersji Linuxa), będzie można je zamontować wydając polecenie mount tylko z jednym parametrem - punktem zamontowania, na przykład
mount /usr/artemis
Podsumowanie
Jak widać, usługa NFS nie jest aż tak trudna w konfiguracji, jak się powszechnie uważa. W ciągu kilku minut możesz skonfigurować system tak, aby wygodnie dzielić pliki i katalogi z innymi użytkownikami. NFS to szybki i wygodny sposób dostępu do aplikacji i plików zapisanych w innych systemach. Choć szczegóły konfiguracji zależą od wersji systemu, rzut okiem na strony man pozwoli Ci ustalić odpowiednią składnię poszczególnych poleceń przedstawionych w tym rozdziale.
NIS oraz YP, pozwalające na łatwiejszy dostęp do systemu z dowolnego komputera podłączonego do sieci, opisane są w rozdziale 44. „NIS i YP”.
Rozdział 46. „cron i at”, przedstawia sposoby automatyzowania zadań, które muszą być wykonywane regularnie.
Konfigurowanie serwera internetowego omówione jest w rozdziale 47. „Konfigurowanie węzła internetowego”
670 Część VI ♦ Linux dla administratorów
670 E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\43.DOC
E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\43.DOC 669
Rozdział 43. ♦ NFS 669