NFS — Network File System, czyli pingwiny sobie rozmawiają

29 grudnia 2007, Vighter

Obecnie w niemal każdym domu znajduje się kilka komputerów. Czy jednak jesteśmy skazani na żmudne nagrywanie danych na płyty, gdy chcemy je przenieść na inny komputer? Okazuje się, że wcale tak nie musi być - wystarczy skorzystać z NFS!

Autor: Maciej Gwizdała

Network File System (z ang. Sieciowy System Plików) umożliwia udostępnianie danych pomiędzy komputerami z systemami uniksowymi. Nie ma więc problemu, jeśli w domu mamy GNU/Linuksa, BSD oraz inne systemy z tej rodziny.

Oczywiście NFS nie jest jedynym rozwiązaniem tego typu. Istnieje również SAMBA współpracująca z systemami Windows oraz SSHFS, czyli system plików wykorzystujący bezpieczne połączenie, o którym pisał szerzej michuk w swoim artykule “Sztuczki z SSH”.

Poniższy artykuł został podzielony na trzy zasadnicze części:

  • Konfiguracja serwera i klienta za pomocą trybu graficznego
  • Konfiguracja serwera i klienta za pomocą konsoli
  • Automatyczne montowanie udostępnionego zasobu

Cz. I: Instalacja i konfiguracja za pomocą konsoli

Po pierwsze musimy zainstalować serwer NFS, który będzie zajmował się udostępnianiem danych między komputerami. W Debianie i pochodnych robimy to w następujący sposób:

sudo apt-get install nfs-kernel-server nfs-common portmap

W innych dystrybucjach korzystamy z odpowiedniego menedżera pakietów, aby zainstalować NFS i portmap. Teraz powinniśmy wyedytować plik /etc/exports - ja skorzystam z konsolowego edytora nano:

sudo nano /etc/exports

Do otwartego dokumentu powinniśmy wpisać np.:

/home/pub 192.168.0.4(rw)

Może nieco przybliżę składnię w tym pliku.
/home/pub - To folder, którego zawartość chcemy udostępnić.
192.168.0.4 - Tutaj podajemy adres IP komputera, który powinien mieć dostęp do naszego udostępnianego katalogu.
(rw) - rw jest skrótem od read/write, więc komputer, któremu udostępniamy zasób może dokonywać w nim zmian. Jeśli sobie tego nie życzymy, możemy zastosować atrybut tylko do odczytu - (ro).

Zapisujemy zawartość i wykonujemy operacje:

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

Te polecenia restartują serwer NFS i pobierają konfigurację umieszczoną w /etc/exports.

Serwer jest już gotowy, warto więc zająć się konfiguracją komputera, któremu chcemy udostępnić dane. Instalujemy na nim klienta NFS poprzez:

sudo apt-get install nfs-common portmap

Należy teraz stworzyć folder, do którego zamontujemy nasz zasób:

sudo mkdir /mnt/pub

Na koniec pozostaje już tylko zamontować udostępniony folder:

sudo mount -t nfs 192.168.0.2:/home/pub /mnt/pub

192.168.0.2 to oczywiście adres serwera udostępniającego pliki.

Jeżeli już nie potrzebujemy naszego zasobu, wpisujemy polecenie:

sudo umount /mnt/pub

Cz. II: Instalacja i konfiguracja za pomocą trybu graficznego

Aby udostępnić zasób, należy kliknąć prawym przyciskiem myszy na folderze i z menu wybrać “Udostępnij Folder”. Pojawi się takie okienko:

NFS w trybie graficznym

Wciskamy przycisk “Dodaj”. W następnym oknie wpisujemy adres IP komputera, któremu chcemy udostępnić zasób, zatwierdzamy wybór.

NFS w trybie graficznym

Gdy nie mamy zainstalowanego serwera NFS, system sam zadba o jego zainstalowanie.Aby zamontować zasób na kliencie, należy już skorzystać z konsoli (co zostało opisane nieco niżej).

Cz. III: Automatyczne montowanie

Od dawna wiadomo, że człowiek jest istotą leniwą i nie chce mu się za każdym razem wpisywać tych samych komend, aby montować zasób. Warto więc sprawić, aby zajął się tym system.

W tym celu należy otworzyć plik /etc/fstab

sudo nano /etc/fstab

a następnie dopisać do niego linijkę:

192.168.0.2:/home/pub  /mnt/pub   nfs      rw,hard,intr  0     0

Myślę, że warto objaśnić dwie opcje: hard oraz intr. Pierwsza z nich odpowiada za zawieszenie dostępu do danych, gdy serwer ulegnie awarii, natomiast druga umożliwia zabicie zawieszonego procesu poprzez komendę kill.

Linki do stron o NFS:

Korekta: oZz


Komentarze (RSS)

Liczba komentarzy: 20

zwiń wątek Tomahawk  29 grudnia 2007 o godz. 20:29 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +5 [Pokaż komentarz]

Bardzo dobry artykuł, ale moim zdaniem należało jeszcze wspomnieć o wykorzystaniu NFS w Windowsie(tzn. Subsystem for UNIX-based Applications i Windows Services for UNIX). Nawet niekoniecznie opisywać krok po kroku, ale wspomnieć o takiej możliwości.

Pozdrawiam

zwiń wątek ~niedzwiedz  29 grudnia 2007 o godz. 21:21 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +2 [Pokaż komentarz]

A ja myślę, że wręcz powinno być to opisane. Bo, niestety, często jeśli choć jeden komputer w domu ma Linuksa to dobrze

zwiń wątek michuk  29 grudnia 2007 o godz. 21:29 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: 0 [Pokaż komentarz]

Do łączenia w sieć Windows i Linuksa lepsza jest chyba jednak SAMBA.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
 
 
zwiń wątek Elwis  29 grudnia 2007 o godz. 22:16 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Fakt. Windows chyba potrzebowałby cygwina(?) żeby obsłużyć NFSa. Mój brat na szczęście poznał się na potędze wolnego oprogramowania ;)

zwiń wątek pooh  30 grudnia 2007 o godz. 22:10 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Nie. Patrz - pierwszy komentarz.

 
 
zwiń wątek pawelbial  29 grudnia 2007 o godz. 22:20 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +2 [Pokaż komentarz]

U mnie w domu rozwiązane jest to jeszcze inaczej :)
Jest mój desktop i brata laptop. Na obu jest Windows i Linux i jak ktoś chce coś to łączy się poprzez sftp i nie ma problemu.

zwiń wątek tux  14 kwietnia 2008 o godz. 22:21 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: 0 [Pokaż komentarz]

wow! super! i tym sftp laczy sie do windows…

 
 
zwiń wątek lukas  30 grudnia 2007 o godz. 13:41 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +2 [Pokaż komentarz]

Dodaj jeszcze, że można udostępniać napędy CD/DVD. Nie trzeba kopiować z CD/DVD na HDD a potem na drugi komputer- można zrobić to bezpośrednio.

W części III po skonfigurowania pliku fstab, dobrze jest wczytać nowe informacje poleceniem mount -a ;]

 
zwiń wątek megaloman  30 grudnia 2007 o godz. 15:53 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +3 [Pokaż komentarz]

może warto byłoby dodać, iż podanie adresu 192.168.0.0/24 pozwala na danie praw dostępu wszystkim komputerom w sieci lokalnej…

 
zwiń wątek bunny  30 grudnia 2007 o godz. 21:17 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +11 [Pokaż komentarz]

Wydaje mi się że w artykułach powinno się raczej pisać zamiast
“sudo apt-get install nfs-kernel-server nfs-common portmap”
“potrzebujemy pakietów :nfs-kernel-server nfs-common portmap.”
A polecenia tego typu:
“sudo nano /etc/exports”
zastępowac opisem że otwieramy plik w ulubionym edytorze tekstu.
Opis graficznej konfiguracji również powinien zawierać notatkę o środowisku graficzny i uzytym distro.
W opisie powinno się znaleść,że jest to instrukcja na bazie debiana/ubuntu czy czegoś tam.
Taka tam sugestia.
Ogólnie poradnik spoczko ;)

 
zwiń wątek mkkot  1 stycznia 2008 o godz. 13:17 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Właśnie się zabierałem za konfigurację NFS. Teraz już nawet nie muszę tego szukać ;)

 
zwiń wątek zeh  1 stycznia 2008 o godz. 19:36 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +3 [Pokaż komentarz]

Żeby zadziałało należy wyedytować /etc/hosts.allow oraz hosts.deny oraz uruchomic portmap na komputerze kliencie.

 
zwiń wątek Zajec  2 stycznia 2008 o godz. 0:28 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Może komuś chciałoby się porównać wydajnośc w kopiowaniu plików przez NFS i Sambę? :)

zwiń wątek AI  2 stycznia 2008 o godz. 10:55 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +2 [Pokaż komentarz]

Wydajność zdecydowanie przemawia za nfs, u mnie przy kopiowaniu plików 700mb jest o połowę krócej. Na swich’u ma diody pokazujące obciążenie sieci to przy sambie 40% a nfs to okolo 90%…. co się przekłada na około 5-6mb/s na sambie i 10-11mb/s na nfs.

Porównanie robiłem bez jakiś specjalnych optymalizacji obu protokołów, praktycznie standardowa instalacja.

 
 
zwiń wątek Piotrek  2 stycznia 2008 o godz. 11:32 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

U mnie samba nie działa zbyt dobrze, trzeba będzie przetestować NFS

 
zwiń wątek Robert Pankowecki  3 stycznia 2008 o godz. 10:36 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +2 [Pokaż komentarz]

No wszystko fajnie, tylko może jakaś krótka informacja nt. praw dostępu jakie pojawiają się na kliencie przy tego typu najprostszej instalacji ? Czy nie jest tak, że klient interpretuje uidy plików jako lokalne i należy na to uważać. To tak na marginesie :-)

 
zwiń wątek wolvverine  15 stycznia 2008 o godz. 5:29 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: 0 [Pokaż komentarz]

SMB jest duuużo wolniejsze od NFS-a

 
zwiń wątek ptr128  22 stycznia 2008 o godz. 19:16 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: 0 [Pokaż komentarz]

NFS świetnie spisuje się przy swapie w ramdysku, udostępnionym przez sieć. Swap taki działa kilkukrotnie (nawet 10-cio krotnie) wydajniej, niż najlepiej skonfigurowana nawet macierz. Jeżeli macie maszynę z dużą ilością ramu i chcecie “udostępnić” ten ram innym maszynom, zróbcie swapa w pliku na ramdysku i udostępnijcie przez NFS.

zwiń wątek micign  4 lutego 2008 o godz. 23:52 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: 0 [Pokaż komentarz]

@ptr128: możesz rozwinąć ten pomysł odnośnie SWAP na ramdysku w sieci? Nie jestem pewien, czy dobrze wszystko rozumiem, możesz wyjaśnić krok po kroku jak miałoby to wyglądać?

 
 
zwiń wątek wolvverine  1 marca 2008 o godz. 1:27 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: 0 [Pokaż komentarz]

ramdysk działa z szybkoscia pamieci wiec przecietnie na obecnych domowych powyzej 1GB co przy kartach sieciowych 1GB pozwoli spory procent tej szybkosci wyciagnać, a co do macierzy to obecnie da sie wyciagnac jakies 2GB/s na niektorych (drogiiiich).

 
Identyfikator (wymagane)
Adres e-mail (wymagany - nie pokażemy go publicznie)
Adres URI
Rozmiar pola: zmniejsz rozmiar | zwiększ rozmiar

Literówki najlepiej zgłaszać jabberem: michuk@jakilinux.org lub kocio@jabber.org!

W komentarzach możesz używać prostych znaczników HTML. Przykłady:
  • Link: <a href="jaklinux.org">Linux dla każdego</a>,
  • Wytłuszczenie: <strong>tekst pogrubiony</strong>,
  • Kursywa: <em>tekst pochylony</em>,
  • Przekreślenie: <strike>tekst przekreślony</strike>,
  • Kod: <code>printf("blok kodu");</code>,
  • Cytat: <blockquote>cytat</blockquote>
Uwaga: jeśli dodasz nieznany znacznik, będzie on niewidoczny, gdyż system filtruje takie znaczniki.

RSS

Możesz śledzić komentarze do tego artykułu poprzez specjalny kanał; RSS 2.0 .

Konkurs!!!

Napisz lub przetłumacz artykuł i wygraj dysk USB 4GB z Mandrivą Flash! Konkurs trwa tylko do końca maja! Szczegóły na blogu.

Inne z kategorii Administracja

 więcej »

Najpopularniejsze

Porównaj dystrybucje!

vs

Oferty pracy JL

Butik JL

jakilinux butik
Obejrzyj więcej produktów i wybierz coś dla siebie.

Reklama

To jest miejsce na Twoją reklamę! Więcej informacji: Reklama w jakilinux.org