Co to jest NFS? Sieciowy system plików. Protokół dostępu do plików sieciowych

27.02.2019

Jeśli chodzi o sieci komputerowe, często można usłyszeć wzmiankę o NFS. Co oznacza ten skrót?

nfs, co jest

To jest protokół rozproszony system plików, pierwotnie opracowany przez firmę Sun Microsystems w 1984 roku, umożliwiający użytkownikowi na komputerze klienckim dostęp do plików przez sieć, podobnie jak w przypadku dostępu do lokalnej pamięci masowej. NFS, podobnie jak wiele innych protokołów, oparty jest na systemie zdalnego wywoływania procedur Open Network Computing (ONC RPC).

Innymi słowy, czym jest NFS? Jest to otwarty standard zdefiniowany w Request for Comments (RFC), który pozwala każdemu wdrożyć protokół.

Wersje i wariacje

Wynalazca użył tylko pierwszej wersji do własnych celów eksperymentalnych. Kiedy zespół programistów dodał znaczące zmiany do oryginalnego systemu plików NFS i opublikował je poza autorstwem firmy Sun, wyznaczyli nową wersję jako v2, aby przetestować interakcję między dystrybucjami i utworzyć wersję kopii zapasowej.

system plików

NFS v2

Wersja 2 początkowo działała tylko na User Datagram Protocol (UDP). Jego twórcy chcieli utrzymać stronę serwera bez blokowania, zaimplementowaną poza głównym protokołem.

Interfejs wirtualnego systemu plików umożliwia wykonanie modułowej implementacji, co odzwierciedla prosty protokół. W lutym 1986 r. Zaprezentowano rozwiązania dla systemów operacyjnych, takich jak system V, wersja 2, DOS i VAX / VMS z wykorzystaniem Eunice. NFS v2 może tylko odczytać pierwsze 2 GB pliku z powodu ograniczeń 32-bitowych.

sieciowy system plików

NFS v3

Pierwsza propozycja rozwoju wersji 3 systemu NFS w Sun Microsystems została ogłoszona wkrótce po wydaniu drugiej dystrybucji. Główną motywacją była próba złagodzenia problemu synchronicznej wydajności nagrywania. Do lipca 1992 r. Praktyczne usprawnienia pozwoliły rozwiązać wiele niedociągnięć systemu plików NFS w wersji 2, pozostawiając jedynie niewystarczającą obsługę plików (64-bitowe rozmiary plików i zmiany plików).

Wersja 3 dodała:

  • obsługa 64-bitowych rozmiarów plików i offsetów do przetwarzania danych większych niż 2 gigabajty (GB);
  • obsługa asynchronicznego zapisu na serwerze w celu zwiększenia wydajności;
  • dodatkowe atrybuty plików w wielu odpowiedziach, aby uniknąć konieczności ich ponownego rozpakowywania;
  • Operacja READDIRPLUS do pobierania danych i atrybutów wraz z nazwami plików podczas skanowania katalogu;
  • wiele innych ulepszeń.

Podczas wprowadzania wersji 3 zaczęto zwiększać obsługę TCP dla protokołu warstwy transportowej. Używanie TCP jako środka transfer danych wykonywane przy użyciu NFS w sieci WAN, stało się możliwe przesyłanie dużych plików do oglądania i nagrywania. Dzięki temu programiści byli w stanie pokonać ograniczenia o wartości 8 KB narzucone przez protokół UDP (User Datagram Protocol).

Co to jest NFS v4?

Wersja 4, opracowana pod wpływem systemu plików Endrese (AFS) i bloku komunikatów serwera (SMB, zwanego także CIFS), obejmuje lepszą wydajność, zapewnia większe bezpieczeństwo i wprowadza protokół zgodnie z ustalonymi warunkami.

protokół dostępu do systemu plików

Wersja 4 była pierwszą dystrybucją opracowaną przez Internet Engineering Task Force (IETF) po tym, jak Sun Microsystems przekazał rozwój protokołów zewnętrznym specjalistom.

Wersja 4.1 systemu NFS została zaprojektowana w celu zapewnienia obsługi protokołów dla wdrożeń serwerów klastrowych, w tym możliwości zapewnienia skalowalnego, równoległego dostępu do plików rozproszonych na wielu serwerach (rozszerzenie pNFS).

Najnowszy protokół systemu plików, NFS 4.2 (RFC 7862), został oficjalnie wydany w listopadzie 2016 r.

Inne rozszerzenia

Wraz z rozwojem standardu pojawiły się odpowiednie narzędzia do pracy z nim. Na przykład WebNFS, rozszerzenie dla wersji 2 i 3, umożliwia protokołowi dostępu do sieci system plików w celu łatwiejszej integracji z przeglądarkami internetowymi i aktywowania pracy za pośrednictwem zapór ogniowych.

serwer nfs

Z NFS powiązane są również różne protokoły z grup stron trzecich. Spośród nich najbardziej znane to:

  • Network Lock Manager (NLM) z obsługą protokołu bajtowego (dodano do obsługi blokowania API systemu plików UNIX);
  • limit zdalny (RQUOTAD), który umożliwia użytkownikom NFS przeglądanie przydziałów do przechowywania danych na serwerach NFS;
  • NFS przez RDMA to adaptacja NFS, która używa zdalnego dostępu do pamięci (RDMA) jako medium transferowego;
  • NFS-Ganesha to serwer NFS działający w przestrzeni użytkownika i obsługujący CALFS FSAL (warstwa abstrakcji systemu plików) przy użyciu bibliotek libcephfs.

Platformy

Network File System jest często używany w systemach operacyjnych Unix (takich jak Solaris, AIX, HP-UX), MacOS firmy Apple i systemach operacyjnych podobnych do Unix (takich jak Linux i FreeBSD).

Jest również dostępny na platformach takich jak Acorn RISC OS, OpenVMS, MS-DOS, Microsoft Windows, Novell NetWare i IBM AS / 400.

Wymagania nfs

Inne podobne standardy

Alternatywne protokoły zdalnego dostępu do plików obejmują blok komunikatów serwera (SMB, zwany również CIFS), protokół przesyłania Apple (AFP), protokół NetWare Base Protocol (NCP) i system plików serwera OS / 400 (QFileSvr.400).

Wynika to z wymagań systemu plików NFS, które koncentrują się głównie na "powłokach" typu Unix.

W tym przypadku protokoły SMB i NetWare (NCP) są używane częściej niż NFS w systemach z systemem Microsoft Windows. AFP jest najczęściej używany na platformach Apple Macintosh, a QFileSvr.400 najczęściej znajduje się na OS / 400.

Typowa implementacja

Zakładając typowy skrypt w stylu Unix, w którym jeden komputer (klient) potrzebuje dostępu do danych przechowywanych na innym serwerze (NFS):

  • Serwer wdraża procesy systemu plików sieciowych, które domyślnie działają jako nfsd, aby ich dane były publicznie dostępne dla klientów. Administrator serwera definiuje sposób eksportowania nazw katalogów i parametrów, zwykle za pomocą pliku konfiguracyjnego / etc / exports i polecenia exportfs.
  • Administrowanie bezpieczeństwem serwera zapewnia rozpoznawanie i sprawdzanie poprawności zaufanego klienta. Jego konfiguracja sieci zapewnia, że ​​odpowiedni klienci mogą negocjować z nim za pośrednictwem dowolnego systemu zapory ogniowej.
  • Komputer kliencki żąda dostępu do wyeksportowanych danych, zwykle za pomocą odpowiedniego polecenia. Żąda serwera (rpcbind), który używa portu NFS, a następnie łączy się z nim.
  • Jeśli wszystko dzieje się bezbłędnie, użytkownicy na komputerze klienckim będą mogli wyświetlać i współpracować z zainstalowanymi systemami plików na serwerze w ramach dozwolonych parametrów.

Należy również zwrócić uwagę na fakt, że automatyzacja procesu sieciowego systemu plików może również mieć miejsce - być może przy użyciu etc / fstab i / lub innych podobnych środków.

Rozwój do tej pory

Do 21 wieku, konkurujące protokoły DFS i AFS nie osiągnęły żadnego dużego sukcesu komercyjnego w porównaniu z Network File System. IBM, który wcześniej nabył wszystkie prawa komercyjne do powyższych technologii, przekazał większość kodu źródłowego AFS społeczności wolnego oprogramowania w 2000 roku. Project Open AFS istnieje w naszych czasach. Na początku 2005 r. IBM ogłosił zakończenie sprzedaży AFS i DFS.

Z kolei w styczniu 2010 r. Panas zaproponował NFS w wersji 4.1 w oparciu o technologię, która pozwala na lepsze możliwości dostępu do danych. Protokół Network File System v 4.1 definiuje metodę oddzielania metadanych systemu plików od położenia określonych plików. W ten sposób wykracza poza proste rozdzielenie nazw / danych.

Co to jest NFS tej wersji w praktyce? Powyższa cecha odróżnia ją od tradycyjnego protokołu, który zawiera nazwy plików i ich danych w ramach jednego powiązania z serwerem. Podczas implementacji Network File System v 4.1 niektóre pliki mogą być dystrybuowane między serwerami z wieloma lokalizacjami, ale udział klienta w rozdzielaniu metadanych i danych jest ograniczony.

Podczas implementacji dystrybucji czwartego protokołu serwer NFS jest zbiorem zasobów lub komponentów serwera; zakłada się, że są kontrolowane przez serwer metadanych.

Klient nadal uzyskuje dostęp do tego samego serwera metadanych w celu przeszukiwania lub interakcji z przestrzenią nazw. Gdy przenosi pliki na serwer i z serwera, może bezpośrednio wchodzić w interakcje z zestawem danych należącym do grupy NFS.