NFS w skrocie to usługa pozwalająca udostępniać zasoby dyskowe
komputerom w sieci. Serwer udostępnia katalog(i) klientom, którzy mogą
je podmontować i działać jak na lokalnym systemie plików
NFS Server
1) Instalujemy serwer NFS
sudo apt-get install nfs-kernel-server nfs-common mc portmap
2) Konfigurujemy portmap
sudo dpkg-reconfigure portmap
sudo /etc/init.d/portmap restart
3) Edytujemy plik /etc/exports aby stworzyc nowe udzialy NFS
sudo mcedit /etc/exports
W pliku /etc/exports definiuje się udostępniane katalogi, ich listę podajemy w postaci wierszy, które mają następującą składnię
$katalog $klient1($opcja1,$opcja2,...) $klient2($opcja1,$opcja2,...)
$katalog
- jest to nasz udostępniony katalog.
$klient
- podajemy tu IP lub nazwe komputera, któremu chcemy udostępnić katalog lub cala sieć za pomocą maski.
$opcje
- tutaj ustalamy m.in. czy zasób ma być udostępniony RO, czy także
RW, oraz nałożyć inne ograniczenia. Wszystkie opcje opisane są w manualu
(man exports).
Kilka przykladow co mozna tam umiescic:
#Pelne prawa odczytu i zapisu z dowolnogo komputera od ip 192.168.1.1 do 192.168.1.255
/files 192.168.1.1/24(rw,no_root_squash,async)
#Tylko odczyt z danego ip
/files 192.168.1.2 (ro,async)
4) Zapisz plik i wykonaj poniższą komende
sudo /etc/init.d/nfs-kernel-server restart
5) Po wykonaniu jakich kolwiek zmian w /etc/exports musisz
wyeksportowac katalogi. Przed tym jednak możemy sprawdzić czy nasze
wpisy są poprawne:
exportfs -v
Polecenie to wyświetli listę katalogów gotowych do wyeksportowania,
jeśli któryś z udziałów nie jest wyświetlony, to prawdopodobnie
popełniliśmy jakiś błąd w składni. Gdy jesteśmy pewni, że chcemy
udostępnić udziały NFS, to wydajemy polecenie:
exportfs -rv
NFS Client
1) Montowanie reczne Przykladowo aby zamontowac udzial /pliki z
serwera jakis.server.com w katalogu /media/pliki (oczywiście punkt
montowania musi istnieć) wykonujemy
sudo mount -t nfs jakis.server.com:/pliki /media/pliki
Oczywście zamiast jakis.server.com można używać adresów IP tak jak wspomniałem wcześniej
2) Automatyczne montowanie przystarcie systemu. Edytujemy /etc/fstab
sudo mcedit /etc/fstab
a następnie według naszego przykładu dodajemy
jakis.server.com:/pliki /media/pliki nfs rw,hard,intr
hard oznacza, że programy korzystające z zasobów NFS w momencie
awarii serwera zostaną zawieszone w oczekiwaniu na dostęp do danych i
nie będzie możliwości ich odwieszenia w postaci polecenia kill, chyba,
że dodamy opcję intr dzięki czemu będziemy mogli zabić dany proces.
Zamiast hard możemy użyć opcji soft, jednak w przypadku awarii serwera
NFS sygnalizuje błąd programom korzystającym z zasobów. Wadą tego
rozwiązania jest to, że nie wszystkie programy potrafią poradzić sobie z
takim komunikatem i może dojść do utraty danych.
Bezpieczeństwo serwera
Musimy zadbać o bezpieczeństwo naszego serwera, podstawowym sposobem
zabezpieczania zasobu jest ograniczenie dostępu. Możemy go ograniczać za
pomocą ustawień w pliku /etc/exports lub za pomocą plików
/etc/hosts.allow i /etc/hosts.deny, co zostało przedstawione poniżej.
Najpierw blokujemy wszystkim dostęp do naszych usług wpisując do pliku pliku /etc/hosts.deny
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
Następnie w /etc/hosts.allow wpisujemy komputery, którym zezwalamy na
korzystanie z wymienionych usług. Możemy zarówno wpisać adresy IP
komputerów jak i całą podsieć.
portmap: 192.168.0.0/255.255.255.0
lockd: 192.168.0.0/255.255.255.0
rquotad: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0
statd: 192.168.0.0/255.255.255.0
Dostrajanie wydajności
Wolne działanie protokołu NFS wskazuje przeważnie na brak
odpowiedniego dostrojenia połączenia, wystarczy ustawić kilka opcji by
uzyskać zaskakująco duży wzrost wydajności. Podane poniżej zalecenia
dotyczą konfiguracji klienta.
Na początek zajmiemy się opcjami rsize i wsize. Dzięki nim możemy
zwiększyć szybkość odczytu i zapisu plików na serwer. Manual systemowy
radzi by ustawić im na wartości: rsize=8192 i wsize=8192. Linijka w
pliku /etc/fstab będzie wyglądać teraz następująco:
jakis.server.com:/pliki /media/pliki nfs rw,hard,intr,rsize=8192,wsize=8192 0 0
na podstawie google, ang. forum ubuntu.
poprawki Mr Robby