Nätverksfilsystem

Network File System ( NFS ) är ett protokoll för nätverksåtkomst till filsystem , ursprungligen utvecklat av Sun Microsystems 1984 . Fjärrproceduranropsprotokollet ( ONC RPC , engelska  Open Network Computing Remote Procedure Call [1] ) tas som grund . Låter dig montera (montera) fjärrfilsystem över ett nätverk.

NFS är abstraherat från både server- och klientfilsystemtyper. Det finns många implementeringar av NFS-servrar och klienter för olika operativsystem och hårdvaruarkitekturer. Den mest mogna versionen av NFS är v.4 [2] , som stöder olika metoder för autentisering (särskilt Kerberos och LIPKEY som använder RPCSEC GSS- protokollet ) och åtkomstkontrollistor (både POSIX- och Windows - typer).

NFS ger klienter transparent åtkomst till filer och serverns filsystem. Till skillnad från FTP har NFS-protokollet endast åtkomst till de delar av filen som processen kommer åt, och dess främsta fördel är att det gör denna åtkomst transparent. Det betyder att vilken klientapplikation som helst som kan arbeta med en lokal fil lika väl kan arbeta med en NFS-fil, utan några modifieringar av själva programmet.

NFS-klienter kommer åt filer på en NFS-server genom att skicka RPC -förfrågningar till servern. Detta kan implementeras med hjälp av vanliga användarprocesser, nämligen NFS-klienten kan vara en användarprocess som gör specifika RPC-anrop till servern, vilket också kan vara en användarprocess.

En viktig del av den senaste versionen av NFS-standarden (v4.1) är pNFS- specifikationen , som syftar till att tillhandahålla en parallell implementering av fildelning som ökar dataöverföringshastigheterna i proportion till storleken och graden av parallellitet i systemet.

Utvecklingsmål

De initiala kraven för utvecklingen av NFS var:

Komponenter av NFS

Implementeringen av NFS består av flera komponenter. Vissa av dem är lokaliserade antingen på servern eller på klienten, och några används på båda sidor av anslutningen. Vissa komponenter krävs inte för grundläggande funktionalitet, men är en del av det utökade NFS-gränssnittet.

NFS-protokollet definierar en uppsättning förfrågningar (operationer) som kan skickas av en klient till en server, såväl som en uppsättning argument och returvärden för var och en av dessa förfrågningar. Version 1 av detta protokoll existerade endast i Sun Microsystems tarmar och släpptes aldrig. Alla NFS-implementeringar (inklusive NFSv3) stöder NFS version 2 (NFSv2), som först släpptes 1985 med SunOS 2.0. Version 3 av protokollet publicerades 1993 och implementerades av flera leverantörer.

Remote Procedure Call ( RPC )-protokollet definierar formatet för all kommunikation mellan en klient och en server. Varje NFS-begäran skickas som ett RPC-paket.

External Data Representation (XDR ) tillhandahåller en maskinoberoende metod för att koda data för överföring över ett nätverk. Alla RPC-förfrågningar använder XDR-kodning för att överföra data. XDR och RPC används för att implementera många andra tjänster förutom NFS.

NFS-serverkoden är ansvarig för att hantera alla klientförfrågningar och ge åtkomst till exporterade filsystem. NFS-klientkoden implementerar all klientsystemåtkomst till fjärrfiler genom att skicka en eller flera RPC-förfrågningar till servern.

Monteringsprotokollet definierar semantiken för montering och avmontering av NFS-filsystem. NFS använder flera bakgrundsdemonprocesser . På servern lyssnar en uppsättning nfsd-demoner efter och svarar på förfrågningar från NFS-klienter. Demonen mountd hanterar monteringsförfrågningar. På klienten hanterar en uppsättning biod-demoner asynkrona NFS-filblock I/O.

Network Lock Manager (NLM) och Network Status Monitor (NSM) ger tillsammans möjligheten att låsa filer på nätverket. Dessa faciliteter, även om de inte formellt är associerade med NFS, finns i de flesta NFS-implementeringar. De tillhandahåller tjänster som inte är möjliga i det underliggande protokollet. NLM och NSM implementerar serverfunktioner med hjälp av lockd- respektive statd-demonerna.

Versioner

Den första versionen [3] användes endast internt hos Sun för experimentändamål.

Version 2 [3] (NFSv2) släpptes i mars 1989, körde ursprungligen helt över UDP-protokollet . Utvecklarna har valt att inte lagra interna tillståndsdata i protokollet, såsom låsning implementerad utanför det underliggande protokollet. Personerna som är involverade i skapandet av NFS version 2 är Rusty Sandberg , Bob Lyon , Bill Joy och Steve Kleiman .

NFSv3 [4] släpptes i juni 1995, den lade till stöd för filbeskrivningar med variabel storlek upp till 64 byte (i version 2 - en fast storleksuppsättning på 32 byte), tog bort gränsen på 8192 byte i RPC-läs- och skrivanrop (därmed, storleken på det överförda blocket i samtal begränsas endast av UDP-datagramgränsen - 65535 byte), stöd för stora filer implementeras, asynkrona anrop till skrivoperationer stöds, ACCESS (kontrollera filåtkomsträttigheter), MKNOD (skapa en speciell Unix fil) läggs till i READ- och WRITE-procedurerna ), READDIRPLUS (returnerar namnen på filer i en katalog tillsammans med deras attribut), FSINFO (returnerar statistisk information om filsystemet), FSSTAT (returnerar dynamisk information om filsystemet), PATHCONF (returnerar POSIX.1-information om en fil) och COMMIT (bekräftar tidigare gjorda asynkrona skrivningar till permanent lagring).

Vid tidpunkten för introduktionen av version 3 ökade populariteten bland utvecklarna av TCP- protokollet . Vissa oberoende utvecklare har självständigt lagt till stöd för TCP till NFS version 2 som en transport, Sun Microsystems har lagt till TCP-stöd till NFS i ett av tilläggen till version 3. Med TCP-stöd blev det möjligt att använda NFS över WAN .

NFSv4 [2] släpptes i december 2000, påverkad av AFS och CIFS , och inkluderar prestanda- och säkerhetsförbättringar. Version 4 var den första versionen som utvecklades i samarbete med Internet Engineering Task Force ( IETF ). NFS version v4.1 godkändes av IESG i januari 2010 [5] (den nya specifikationen på 612 sidor har blivit känt som det längsta dokumentet som godkänts av IETF). En viktig innovation i version 4.1 är specifikationen pNFS - Parallel NFS, en mekanism för NFS-klienter parallell åtkomst till data från flera distribuerade NFS-servrar. Närvaron av en sådan mekanism i nätverkets filsystemstandard kommer att hjälpa till att bygga distribuerade molnlagrings- och informationssystem.

NFS version 4.2 RFC 7862 publicerades i november 2016 och innehåller nya funktioner: kloning och kopiering på serversidan, applikations-I/O-rekommendationer, glesa filer , utrymmesreservation, applikationsdatablock (ADB) märkt NFS med sec_label-attribut som anpassar sig till alla MAC säkerhetssystem och två nya operationer för pNFS (LAYOUTERROR och LAYOUTSTATS).

Andra moduler

WebNFS är ett tillägg till NFS version 2 och 3 som möjliggör enklare integration i webbläsare och ger möjlighet att arbeta genom en brandvägg . Olika tredjepartsprotokoll har blivit associerade med NFS, inklusive:

Network Lock Manager (NLM) och Network Status Monitor (NSM) ger tillsammans möjligheten att låsa filer på nätverket. Dessa faciliteter, även om de inte formellt är associerade med NFS, finns i de flesta NFS-implementeringar. De tillhandahåller tjänster som inte är möjliga i det underliggande protokollet. NLM och NSM implementerar serverfunktioner med hjälp av lockd- respektive statd-demonerna.

Remote Quota Information Protocol (RQUOTAD) (NFS tillåter användare att se diskkvoten på en fjärransluten NFS-server).

Plattformar

Även om NFS oftast används på Unix-liknande system, kan det också användas på andra operativsystem som Mac OS Classic , OpenVMS , Microsoft Windows , Novell NetWare och IBM i .

Typiska NFS-klient- och NFS-serverinställningar

Alternativ till NFS

Alternativa filåtkomstprotokoll inkluderar SMB ( Server Message Block , även känd som Samba och CIFS ), Apple Filing Protocol (AFP), NetWare Core Protocol (NCP). Under operativsystemet Microsoft Windows används SMB och NetWare Core Protocol (NCP) oftare än NFS. På Macintosh-system är AFP vanligare än NFS.

Se även

Anteckningar

  1. RFC 1057 ; RFC 1831
  2. 12 RFC 3010 ; RFC 3530
  3. 12 RFC 1094
  4. RFC 1813
  5. RFC 5661

Länkar

Standarder