NFS – ala samba, ale dla pingwina

Za niedługo rozpoczną się u mnie pewne radykalne zmiany na serwerze, ogólnie w oprogramowaniu, na którym pracuje. Dojdzie czwarty HDD do serwera, na nim wylądują wszystkie dyski do wirtualnych maszyn więc pasuje jakoś to wszystko połączyć i zgrać. Samba pod Ubuntu mnie denerwowała. Trzeba było latać pomiędzy katalogami aby wejść w zasób, fstab coś nie chciał jej montować. Pod Windą elegancko wszystko chodziło. Postanowiłem nie wywalać Samby, ale dołożyć kolejną usługę na serwer. Wybór padł na NFS.

Porada wykonywana jest na systemach Debian oraz Ubuntu. Można ją jednak wykonać na każdej innej dystrybucji Linuksa. Będą się jedynie różniły polecenia do instalacji odpowiednich pakietów.

NFS czyli Network File System jest to usługa udostępniania systemu plików. Coś jak Samba, ale lepiej współpracuje z pingwinami. Próbowałem podłączyć Windows 7 Ultimate do serwera poprzez NFS, ale niestety nie wyszło. Stawianie prostego serwera NFS nie jest wcale trudne, ba jest nawet prostsze od Samby. Pokaże jak na przykładzie pary Ubuntu + Debian uruchomić NFS-A (nie mylić z Need for Speed :-)).

Konfiguracja serwera

Zakładamy że Debian to serwer, a Ubuntu to klient. Na Debianie musimy zainstalować serwer NFS. Domyślnie jest on zainstalowany, ale jakby czasami się gdzieś zapodział. Wpisujemy w terminalu jako root:

aptitude install install nfs-kernel-server nfs-common portmap

Gdy sieciówka pobierze pakiety a dysk je przemieli to w terminalu wydajemy następną komendę:

nano /etc/exports

Jest to jeden z plików konfiguracyjnych NFS-a.

Gdy chcemy udostępnić dany zasób to w pliku wpisujemy:

katalog ip (flagi)

a konkretniej

/mnt/hdc1/ 192.168.0.15 (rw)

Pierwsza wartość oznacza katalog, który będziemy udostępniać. IP oznacza, który komputer będzie miał dostęp do niego. Flaga rw informuje, że na zasobie można zapisywać dane. Jest jeszcze oczywiście wiele innych flag, my na razie skupiamy się na najprostszej konfiguracji.

Jeżeli korzystamy z edytora nano, to naciskamy F2, T i ENTER.

Zmiany zostały zapisane. Teraz musimy wykonać 3 polecenia:

 /etc/init.d/nfs-kernel-server restart
 /etc/init.d/portmap restart
 exportfs -a

Pierwsza restartuje serwer NFS, druga portmap, czyli tak jakby nasłuch, a trzecia opcja eksportuje ustawienia z pliku exports do serwera. OK serwer działa.

Musimy jeszcze jedną ważną rzecz wykonać. U mnie na serwerze katalog NFS-a jest współdzielony z Sambą. Ale to nie istotne. Ważne jest, aby katalogi i pliki znajdujące się w udostępnianym folderze na NFS miały chmody 777. Dlaczego ? Jeżeli będą miały inne uprawnienia, klient nie będzie mógł ich usuwać, edytować itd. Jeżeli w naszym udostępnianym katalogu znajdują się pliki i chcemy im szybko nadać prawa 777 to wykonujemy polecenie

chmod -R ścieżka

Teraz przechodzimy do Ubuntu.

Konfiguracja klienta

Na Ubuntu musimy zainstalować klienta NFS. Wpisujemy w terminalu:

sudo apt-get install nfs-common portmap

Ok. Zainstalowane. Nie będziemy ręcznie montować zasobu, tylko posłużymy się plikiem fstab, aby automatycznie podczas startu systemu montował na zasób do odpowiedniego katalogu. Właśnie. Katalog jest nam potrzebny. Niech to będzie katalog serwer w folderze media. W terminalu wpisujemy polecenie:

cd /media

Przeniesie nas to do katalogu media. Teraz tworzymy folder o nazwie serwer jako root

sudo mkdir serwer

Ok. Gotowe. Teraz klepiemy kolejne polecenie:

sudo gedit /etc/fstab

Uruchomi nam się edytor gedit i pojawi się nam zawartość pliku fstab. Jedziemy na sam dół i dopisujemy następujące linie:

192.168.0.2:/media/serwer  /mnt/hdc1   nfs      rw,hard,intr  0     0

Jako IP podajemy IP serwera na którym udostępniamy zasób

mnt/hdc1 – zasób na serwerze, który jest udostępniany

nfs – system plików

rw,hard,intr 0 0 – niezbędne flagi

Jeżeli nigdzie nie strzelimy byka, to po ponownym uruchomieniu komputera zasób serwera NFS zostanie automatycznie zamontowany.