43, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta


Rozdział 43.
NFS


Tim Parker

W tym rozdziale:

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...

0x01 graphic

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

0x01 graphic

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.

0x01 graphic

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



Wyszukiwarka