Netværks filsystem

Network File System ( NFS ) er en protokol til netværksadgang til filsystemer , oprindeligt udviklet af Sun Microsystems i 1984 . Protokollen for fjernprocedureopkald ( ONC RPC , engelsk  Open Network Computing Remote Procedure Call [1] ) tages som grundlag . Giver dig mulighed for at montere (montere) eksterne filsystemer over et netværk.

NFS er abstraheret fra både server- og klientfilsystemtyper. Der er mange implementeringer af NFS-servere og -klienter til forskellige operativsystemer og hardwarearkitekturer. Den mest modne version af NFS er v.4 [2] , som understøtter forskellige metoder til godkendelse (især Kerberos og LIPKEY , der bruger RPCSEC GSS -protokollen ) og adgangskontrollister (både POSIX- og Windows - typer).

NFS giver klienter gennemsigtig adgang til filer og serverens filsystem. I modsætning til FTP har NFS-protokollen kun adgang til de dele af filen, der tilgås af processen, og dens største fordel er, at den gør denne adgang gennemsigtig. Det betyder, at ethvert klientprogram, der kan arbejde med en lokal fil, lige så godt kan arbejde med en NFS-fil, uden ændringer i selve programmet.

NFS-klienter får adgang til filer på en NFS-server ved at sende RPC -anmodninger til serveren. Dette kan implementeres ved hjælp af normale brugerprocesser, nemlig NFS-klienten kan være en brugerproces, der foretager specifikke RPC-kald til serveren, som også kan være en brugerproces.

En vigtig del af den seneste version af NFS-standarden (v4.1) er pNFS- specifikationen , som har til formål at give en parallel implementering af fildeling, der øger dataoverførselshastighederne i forhold til størrelsen og graden af ​​parallelitet af systemet.

Udviklingsmål

De oprindelige krav til udviklingen af ​​NFS var:

Komponenter af NFS

Implementeringen af ​​NFS består af flere komponenter. Nogle af dem er lokaliseret enten på serveren eller på klienten, og nogle bruges på begge sider af forbindelsen. Nogle komponenter er ikke nødvendige for grundlæggende funktionalitet, men er en del af den udvidede NFS-grænseflade.

NFS-protokollen definerer et sæt anmodninger (operationer), der kan sendes af en klient til en server, samt et sæt argumenter og returværdier for hver af disse anmodninger. Version 1 af denne protokol eksisterede kun i Sun Microsystems tarme og blev aldrig frigivet. Alle NFS-implementeringer (inklusive NFSv3) understøtter NFS version 2 (NFSv2), som først blev udgivet i 1985 med SunOS 2.0. Version 3 af protokollen blev offentliggjort i 1993 og implementeret af flere leverandører.

RPC -protokollen (Remote Procedure Call ) definerer formatet for al kommunikation mellem en klient og en server. Hver NFS-anmodning sendes som en RPC-pakke.

Ekstern datarepræsentation (XDR ) giver en maskinuafhængig metode til kodning af data til transmission over et netværk. Alle RPC-anmodninger bruger XDR-kodning til at overføre data. XDR og RPC bruges til at implementere mange andre tjenester udover NFS.

NFS-serverkoden er ansvarlig for at håndtere alle klientanmodninger og give adgang til eksporterede filsystemer. NFS-klientkoden implementerer al klientsystemadgang til fjernfiler ved at sende en eller flere RPC-anmodninger til serveren.

Monteringsprotokollen definerer semantikken for montering og afmontering af NFS-filsystemer. NFS bruger adskillige baggrundsdæmonprocesser . På serveren lytter et sæt nfsd-dæmoner efter og reagerer på anmodninger fra NFS-klienter. Mountd-dæmonen håndterer monteringsanmodninger. På klienten håndterer et sæt biod-dæmoner asynkron NFS-filblok I/O.

Network Lock Manager (NLM) og Network Status Monitor (NSM) giver sammen midlerne til at låse filer på netværket. Selvom disse faciliteter ikke formelt er forbundet med NFS, kan de findes i de fleste NFS-implementeringer. De leverer tjenester, der ikke er mulige i den underliggende protokol. NLM og NSM implementerer serverfunktionalitet ved hjælp af henholdsvis lockd- og statd-dæmonerne.

Versioner

Den første version [3] blev kun brugt internt hos Sun til eksperimentelle formål.

Version 2 [3] (NFSv2) udgivet i marts 1989, kørte oprindeligt fuldstændig over UDP-protokollen . Udviklerne har valgt ikke at gemme interne tilstandsdata inde i protokollen, såsom låsning implementeret uden for den underliggende protokol. De involverede i skabelsen af ​​NFS version 2 er Rusty Sandberg , Bob Lyon , Bill Joy og Steve Kleiman .

NFSv3 [4] blev udgivet i juni 1995, den tilføjede understøttelse af fildeskriptorer med variabel størrelse op til 64 bytes (i version 2 - en fast størrelse array på 32 bytes), fjernede grænsen på 8192 bytes i RPC læse- og skriveopkald (således, størrelsen af ​​den overførte blok i opkald er kun begrænset af UDP-datagramgrænsen - 65535 bytes), understøttelse af store filer er implementeret, asynkrone opkald til skriveoperationer understøttes, ACCESS (kontrol af filadgangsrettigheder), MKNOD (oprettelse af en speciel Unix fil) tilføjes til READ- og WRITE-procedurerne ), READDIRPLUS (returnerer navnene på filer i en mappe sammen med deres attributter), FSINFO (returnerer statistisk information om filsystemet), FSSTAT (returnerer dynamisk information om filsystemet), PATHCONF (returnerer POSIX.1-information om en fil) og COMMIT (forpligter tidligere lavet asynkrone skrivninger til permanent lager).

På tidspunktet for introduktionen af ​​version 3 var der en stigning i popularitet blandt udviklerne af TCP -protokollen . Nogle uafhængige udviklere har uafhængigt tilføjet understøttelse af TCP til NFS version 2 som en transport, Sun Microsystems har tilføjet TCP-understøttelse til NFS i en af ​​tilføjelserne til version 3. Med TCP-understøttelse blev det muligt at bruge NFS over WAN'er .

NFSv4 [2] blev udgivet i december 2000, påvirket af AFS og CIFS , og inkluderer ydeevne- og sikkerhedsforbedringer. Version 4 var den første version udviklet i samarbejde med Internet Engineering Task Force ( IETF ). NFS version v4.1 blev godkendt af IESG i januar 2010 [5] (den nye specifikation på 612 sider er blevet kendt som det længste dokument godkendt af IETF). En vigtig nyskabelse i version 4.1 er specifikationen pNFS - Parallel NFS, en mekanisme til NFS klient parallel adgang til data fra flere distribuerede NFS-servere. Tilstedeværelsen af ​​en sådan mekanisme i netværksfilsystemstandarden vil hjælpe med at opbygge distribuerede cloud -lagrings- og informationssystemer.

NFS version 4.2 RFC 7862 blev udgivet i november 2016 og inkluderer nye funktioner: kloning og kopiering på serversiden, applikations-I/O-anbefalinger, sparse filer , pladsreservation, applikationsdatablok (ADB) mærket NFS med sec_label-attribut, der tilpasser sig til enhver MAC sikkerhedssystem og to nye operationer til pNFS (LAYOUTERROR og LAYOUTSTATS).

Andre moduler

WebNFS er en udvidelse til NFS version 2 og 3, der muliggør lettere integration i webbrowsere og giver mulighed for at arbejde gennem en firewall . Forskellige tredjepartsprotokoller er blevet forbundet med NFS, herunder:

Network Lock Manager (NLM) og Network Status Monitor (NSM) giver sammen midlerne til at låse filer på netværket. Selvom disse faciliteter ikke formelt er forbundet med NFS, kan de findes i de fleste NFS-implementeringer. De leverer tjenester, der ikke er mulige i den underliggende protokol. NLM og NSM implementerer serverfunktionalitet ved hjælp af henholdsvis lockd- og statd-dæmonerne.

Remote Quota Information Protocol (RQUOTAD) (NFS giver brugerne mulighed for at se diskkvoten på en ekstern NFS-server).

Platforme

Selvom NFS er mest almindeligt brugt på Unix-lignende systemer, kan det også bruges på andre operativsystemer såsom Mac OS Classic , OpenVMS , Microsoft Windows , Novell NetWare og IBM i .

Typiske NFS-klient- og NFS-serverindstillinger

Alternativer til NFS

Alternative filadgangsprotokoller omfatter SMB ( Server Message Block , også kendt som Samba og CIFS ), Apple Filing Protocol (AFP), NetWare Core Protocol (NCP). Under Microsoft Windows-operativsystemet bruges SMB og NetWare Core Protocol (NCP) hyppigere end NFS. På Macintosh-systemer er AFP mere almindeligt end NFS.

Se også

Noter

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

Links

Standarder