Netzwerkdateisystem
Netzwerkdateisystem (NFS) ist ein verteiltes Dateisystem Protokoll ursprünglich entwickelt von Sun Microsystems (Sonne) 1984,[1] Erlaube einem Benutzer auf einem Client Computer So greifen Sie über a auf Dateien zu Computernetzwerk Ähnlich wie auf lokaler Speicher wird zugegriffen. NFS baut wie viele andere Protokolle auf dem auf Offen (ONC RPC) System. NFS ist ein offener IETF -Standard, der in a definiert ist Anfrage für Kommentare (RFC), damit jeder das Protokoll implementieren kann.
Versionen und Variationen
Sonne verwendete Version 1 nur für interne experimentelle Zwecke. Als das Entwicklungsteam die NFS -Version 1 erhebliche Änderungen hinzufügte und es außerhalb von Sun veröffentlichte, beschlossen es, die neue Version als V2 zu veröffentlichen, so dass die Interoperation und die RPC -Version Fallback getestet werden konnten.[2][3]
NFSV2
Version 2 des Protokolls (definiert in RFC 1094, März 1989), die ursprünglich nur over operiert war User Datagram Protocol (UDP). Die Designer wollten die Serverseite behalten staatenlos, mit Sperren (zum Beispiel) außerhalb des Kernprotokolls implementiert. Zu den Personen, die an der Schaffung von NFS Version 2 beteiligt sind, gehören Russel Sandberg, Bob Lyon, Bill JoySteve Kleiman und andere.[1][4]
Das Virtuelles Dateisystem Die Schnittstelle ermöglicht eine modulare Implementierung, die sich in einem einfachen Protokoll widerspiegelt. Bis Februar 1986 wurden Implementierungen für Betriebssysteme wie z. System v Release 2,, DOSund vax/vms verwenden Eunice.[4] NFSV2 ermöglicht es nur, dass die ersten 2 GB einer Datei zu lesen sind 32-Bit Einschränkungen.
NFSV3
Version 3 (RFC 1813, Juni 1995) hinzugefügt:
- Unterstützung für 64-Bit-Dateigrößen und Offsets, um Dateien zu verarbeiten, die größer als 2 Gigabyte (GB) sind;
- Unterstützung für asynchrone Schreibvorgänge auf dem Server, um die Schreibleistung zu verbessern.
- Zusätzliche Dateiattribute in vielen Antworten, um die Notwendigkeit zu vermeiden, sie erneut abzuheben;
- Ein Readdirplus -Operation, um Dateigriffe zu erhalten[5] und Attribute zusammen mit Dateinamen beim Scannen eines Verzeichnisses;
- verschiedene andere Verbesserungen.
Der erste Vorschlag von NFS Version 3 in Sun Microsystems wurde nicht lange nach der Veröffentlichung von NFS -Version 2 erstellt. Die Hauptmotivation war ein Versuch, das Leistungsproblem des Synchron -Schreibvorgangs in NFS Version 2 zu mildern.[6] Bis Juli 1992 hatte die Implementierungspraxis viele Mängel der NFS-Version 2 gelöst, so dass nur eine große Dateiunterstützung (64-Bit-Dateigrößen und Offsets) ein dringendes Problem geblieben war. Dies wurde zu einem akuten Schmerzpunkt für Digital Equipment Corporation mit der Einführung einer 64-Bit-Version von Ultrix um ihre neu veröffentlichte 64-Bit zu unterstützen RISC Prozessor, die Alpha 21064. Zum Zeitpunkt der Einführung von Version 3, Lieferantenunterstützung für TCP Als ein Transportschicht Das Protokoll nahm zu. Während mehrere Anbieter bereits Unterstützung für NFS Version 2 mit TCP als Transport hinzugefügt hatten, fügte Sun Microsystems die Unterstützung für TCP als Transport für NFS hinzu, während sie gleichzeitig Unterstützung für Version 3. mit TCP als Transport mit NFS über A erhöhte Wan machbarer und ermöglichte die Verwendung größerer Lese- und Schreibübertragungsgrößen über die 8 -kb -Grenze hinaus durch User Datagram Protocol.
Webnfs
Webnfs war eine Erweiterung auf NFSV2 und NFSV3, die es ermöglichte, hinter restriktiven Firewalls ohne die Komplexität von PortMap- und Mount -Protokollen zu funktionieren. WebNFs hatte eine feste TCP/UDP -Portnummer (2049), und anstatt den Client den RPC -Dienst des Mount zu wenden, um den ersten Dateihandel jedes Dateisystems zu bestimmen, wurde das Konzept von a eingeführt öffentlicher Dateihandle (NULL für NFSV2, Nulllänge für NFSV3), die als Ausgangspunkt verwendet werden konnten. Beide Änderungen wurden später in NFSV4 aufgenommen.
NFSV4
Version 4 (RFC 3010, Dezember 2000; überarbeitet in RFC 3530, April 2003 und erneut in RFC 7530, März 2015), beeinflusst von Andrew -Dateisystem (AFS) und Server -Nachrichtenblock (SMB, auch CIFS bezeichnet), umfasst Leistungsverbesserungen, meist eine starke Sicherheit und führt a ein Staatsbürgerlich Protokoll.[7] Version 4 wurde die erste Version, die mit dem entwickelt wurde Internettechnik-Arbeitsgruppe (Ietf) danach Sun Microsystems übergeben die Entwicklung der NFS -Protokolle.
NFS Version 4.1 (RFC 5661, Januar 2010; überarbeitet in RFC 8881, August 2020) ist es, Protokollunterstützung zu bieten, um Cluster -Server -Bereitstellungen zu nutzen, einschließlich der Möglichkeit, skalierbaren parallelen Zugriff auf Dateien zu gewähren, die zwischen mehreren Servern verteilt sind (PNFS -Erweiterung). Version 4.1 enthält Sitzungsmechanismus (auch als NFS -Multipathing bezeichnet) und in einigen Enterprise -Lösungen als verfügbar VMware ESXI.
NFS Version 4.2 (RFC 7862) wurde im November 2016 veröffentlicht[8] Mit neuen Funktionen, einschließlich: Server-Seite Klon und Kopie, Anwendungs-E/A-Beratung, spärlichen Dateien, Speicherreservierung, Anwendungsdatenblock (ADB), mit SEC_LABEL gekennzeichnet und Layoutstats).
Ein großer Vorteil von NFSV4 gegenüber seinen Vorgängern ist, dass nur ein UDP- oder TCP -Anschluss, 2049, zum Ausführen des Dienstes verwendet wird, was die Verwendung des Protokolls über Firewalls vereinfacht.
Andere Erweiterungen
WebnfsEine Erweiterung von Version 2 und Version 3 ermöglicht es NFS, sich leichter in Webbrowser zu integrieren und den Betrieb durch Firewalls zu ermöglichen. 2007 hat Sun Microsystems ihre clientseitige WebNFS-Implementierung geöffnet.[9]
Verschiedene Seitenbandprotokolle sind mit NFS in Verbindung gebracht. Notiz:
- Das NLM-Protokoll (Byte-Range Advisory Network Lock Manager Manager) (hinzugefügt zu Support hinzugefügt UNIX -System v Dateisperrung APIs)
- Das Remote-Quota-Berichterstattungsprotokoll (Rquotad)
- NFS über RDMA, eine Anpassung von NFS, die verwendet Remote direkter Speicherzugriff (RDMA) als Transport[10][11]
- NFS-Ganesha, ein NFS-Server, der im Benutzerraum ausgeführt wird und verschiedene Dateisysteme unterstützt GPFS/Spektrumskala, Cephfs über die jeweiligen FSAL -Module (Dateisystemabstraktionschicht). Das Cephfs FSAL mit libcephfs unterstützt[12]
- Vertrauenswürdige NFS (TNFs)[13]
Plattformen
NFS wird oft mit verwendet Unix Betriebssysteme (wie z. Solaris, AIX, HP-UX), Äpfel Mac OS, und Unix-artig Betriebssysteme (wie z. Linux und Freebsd). Es steht auch Betriebssystemen wie Acorn zur Verfügung RISC OS,[14] Amigaos, das Klassischer Mac OS, OpenVMS,[3] MS-DOS,[15] Microsoft Windows,[16] OS/2,[17] Arcaos,[18] Novell Netware,[19] und Ibm i.[20] Alternative Remotedateizugriffsprotokolle umfassen die Server -Nachrichtenblock (SMB, auch CIFS bezeichnet), Apple -Einreichungsprotokoll (AFP), Netware -Kernprotokoll (NCP) und OS/400 -Dateiserver -Dateisystem (QFILESVR.400).
SMB und Netware -Kernprotokoll (NCP) treten häufiger als NFS auf Systemen auf, die Microsoft Windows ausführen. AFP tritt häufiger als NFS in Apple auf Macintosh Systeme; und QFILESVR.400 tritt häufiger in IBM I -Systemen auf. Haiku 2012 fügte der NFSV4 -Support im Rahmen eines Google Summer of Code -Projekts hinzu.
Typische Implementierung
Angenommen ein Szenario im Unix-Stil, in dem eine Maschine (die Klient) Benötigt Zugriff auf Daten, die auf einer anderen Maschine gespeichert sind (dem NFS Server):
- Der Server implementiert NFS Dämon Prozesse, die standardmäßig ausgeführt werden als
NFSD
, um seine Daten generell für Clients zur Verfügung zu stellen. - Der Serveradministrator bestimmt, was zur Verfügung gestellt werden soll, und exportiert die Namen und Parameter von Verzeichnissetypischerweise mit dem
/etc/Exporte
Konfigurationsdatei und dieExportfs
Befehl. - Der Kellner Sicherheit-Verabreichung stellt sicher, dass sie validierte Kunden anerkennen und genehmigen kann.
- Die Server -Netzwerkkonfiguration stellt sicher, dass geeignete Clients über jeden mit ihr verhandeln können Firewall System.
- Der Client -Computer fordert den Zugriff auf exportierte Daten an, in der Regel durch Ausgabe von a
montieren
Befehl. (Der Client fragt den Server (RPCBind), den der NFS -Server verwendet, der Client stellt eine Verbindung zum NFS -Server (NFSD) her, NFSD über die Anforderung an das Mountd.) - Wenn alles gut geht, können Benutzer auf dem Client -Computer ansehen und mit dem montierten interagieren Dateisysteme auf dem Server innerhalb der zulässigen Parameter.
Beachten Sie, dass die Automatisierung des NFS -Montageprozesses stattfinden kann - möglicherweise mit Verwendung /etc/fstab
und/oder Automounting Einrichtungen.
Protokollentwicklung
Während der Entwicklung des ONC -Protokolls (genannt Sunrpc damals) nur Apollo's Netzwerk -Computersystem (NCS) bot eine vergleichbare Funktionalität. Zwei konkurrierende Gruppen entwickelten sich über grundlegende Unterschiede in den beiden Remote -Verfahrensanrufsystemen. Argumente konzentrierten sich auf die Methode für die Datenkodierung-ONCs Externe Datenrepräsentation (Xdr) immer Ganzzahlen in den Big-Endian Ordnung, auch wenn beide Kollegen der Verbindung hatten Little-Endian Maschinenarchitekturen, während die Methode von NCS versuchte, Byte-Swap zu vermeiden, wenn zwei Kollegen eine gemeinsame Endiangess in ihren Maschinenarchitekturen. Eine Branchengruppe namens Network Computing Forum (März 1987) in einem (letztendlich erfolglosen) Versuch, die beiden Netzwerkkomputationsumgebungen in Einklang zu bringen.
1987 kündigten Sun und AT & T an, gemeinsam die UNIX -System V Release 4 von AT & T zu entwickeln.[21] Dies führte dazu, dass viele der anderen Lizenznehmer des UNIX -Systems von AT & T besorgt waren, dass dies die Sonne in eine positive Position versetzen würde, und führte letztendlich zu digitalen Geräten, HP, IBM und anderen, die die bildeten Open Software Foundation (OSF) 1988. Ironischerweise hatten Sun und AT & T früher gegen Suns NFS gegen AT & Ts teilgenommen Remote -Dateisystem (RFS) und die schnelle Einführung von NFS gegenüber RFS durch digitale Geräte, HP, IBM und viele andere Computeranbieter tippten die Mehrheit der Benutzer zugunsten von NFS. NFS Interoperabilität wurde ab 1986 durch Ereignisse als "Connectathons" unterstützt, die den Anbieter-neutralen Test von Implementierungen miteinander ermöglichten.[22] OSF übernahm die Verteilte Computerumgebung (DCE) und die DCE verteiltes Dateisystem (DFS) Über Sonnen/ONC -RPC und NFS. DFS verwendete DCE als RPC und dfs, die aus dem abgeleitet sind Andrew -Dateisystem (AFS); DCE selbst stammt aus einer Reihe von Technologien, einschließlich Apollos NCS und Kerberos.
1990er Jahre
Sun Microsystems und die Internetgesellschaft (ISOC) erzielte eine Vereinbarung, die "Veränderungskontrolle" von ONC RPC abzusetzen, damit die Körperschaft der ISOC-Ständer des ISOC, die Körper Internettechnik-Arbeitsgruppe (IETF) könnte Standards (RFCs) veröffentlichen, die sich auf ONC -RPC -Protokolle beziehen und ONC RPC erweitern können. OSF versuchte, DCE RPC zu einem IETF -Standard zu machen, erwies sich jedoch letztendlich nicht bereit, die Veränderungskontrolle aufzugeben. Später entschied sich das IETF, ONC RPC zu erweitern, indem ein neuer Authentifizierungsgeschmack basiert Genera Security Services Application Program Interface (GSSAPI), RPCSEC GSS, um die IETF -Anforderungen zu erfüllen, die Protokollstandards angemessen sind.
Später erzielten Sun und ISOC eine ähnliche Vereinbarung, um die Kontrolle der ISOC -Änderung über NFS zu ermöglichen, obwohl das Schreiben des Vertrags sorgfältig geschrieben wurde, um NFS Version 2 und Version 3 auszuschließen. Stattdessen erlangte ISOC das Recht, dem NFS -Protokoll neue Versionen hinzuzufügen Angabe von NFS Version 4 im Jahr 2003.
2000er Jahre
Bis zum 21. Jahrhundert hatten weder DFS noch AFS im Vergleich zu SMB-CIFs oder NFS einen großen kommerziellen Erfolg erzielt. IBM, der früher den primären kommerziellen Anbieter von DFS und AFS erworben hatte, Transarc, spendete den größten Teil des AFS -Quellcodes an den Kostenlose Software -Community im Jahr 2000. Die Openafs Projekt lebt weiter. Anfang 2005 kündigte IBM das Verkaufsende für AFS und DFS an.
Im Januar 2010, Panasas schlug ein NFSV4.1 vor, basierend auf ihrem Parallele NFS (PNFS) -Technologie, die behauptet, die Parallelität der Datenzugriff zu verbessern[23] Fähigkeit. Das NFSV4.1 -Protokoll definiert eine Methode zur Trennung der Dateisystem Meta-Daten vom Dateidatenspeicherort; Es geht über den einfachen Namen/die Datentrennung hinaus, indem die Daten unter einer Reihe von Datenservern gestreift werden. Dies unterscheidet sich vom herkömmlichen NFS -Server, der die Namen von Dateien und deren Daten unter dem einzigen Dach des Servers enthält. Einige Produkte sind Multi-Knoten-NFS-Server, aber die Teilnahme des Kunden an der Trennung von Meta-Daten und Daten ist begrenzt.
Der NFSV4.1 PNFS -Server ist eine Reihe von Serverressourcen oder Komponenten. Es wird angenommen, dass diese vom Meta-Daten-Server gesteuert werden.
Der PNFS-Client greift weiterhin auf einen Meta-Daten-Server für die Durchquerung oder Interaktion mit dem Namespace zu. Wenn der Client Daten auf und vom Server verschiebt, kann er direkt mit dem Satz von Datenservern zur PNFS -Serversammlung interagieren. Der NFSV4.1 -Client kann aktiviert werden, um ein direkter Teilnehmer am genauen Speicherort der Dateidaten zu sein und beim Verschieben von Daten eine Einzelinteraktion mit einem NFS -Server zu vermeiden.
Zusätzlich zu PNFs bietet NFSV4.1:
- Sitzungen
- Verzeichnisdelegation und Benachrichtigungen
- Multi-Server-Namespace
- Zugriffskontrolllisten und Diskretionäre Zugangskontrolle
- Aufbewahrungsbeschreibung
- SecInfo_no_Name
Siehe auch
- 9p (Protokoll) - Plan 9 Dateisystemprotokoll
- Aluxio
- Andrew -Dateisystem
- Beegfs, das parallele Dateisystem
- Cachefs - Ein Caching -Mechanismus für Linux -NFS -Clients
- Hadoop verteiltes Dateisystem (HDFS)
- Kerberos (Protokoll)
- Netzwerkinformationsdienst
- Remote -Dateisystem
- Wurzelkürbis
- Samba (Software)
- Sichern Sie Shell -Dateisystem - Remote -Verzeichnis mit nur einer SSH -Anmeldung auf dem Remote -Computer montieren
- Server -Nachrichtenblock
- Gemeinsame Ressource
- TCP -Wrapper
Verweise
- ^ a b Russel Sandberg; David Goldberg; Steve Kleiman; Dan Walsh; Bob Lyon (1985). "Design und Implementierung des Sun -Netzwerks -Dateisystems". Usenix. Citeseerx 10.1.1.14.473.
{{}}
: Journal zitieren erfordert|journal=
(Hilfe) - ^ NFS illustriert (2000) von Brent Callaghan - ISBN0-201-32570-5
- ^ a b "HP TCP/IP -Dienste für OpenVMS -Management". h41379.www4.hpe.com. HP. Abgerufen 24. September 2016.
- ^ a b Russel Sandberg. "Das Sun Network -Dateisystem: Design, Implementierung und Erfahrung" (PDF). Technischer Bericht. Sun Microsystems.
- ^ Arpaci-Dusseau, Remzi; Arpaci-Dusseau, Andrea (März 2015). Betriebssysteme: drei einfache Stücke (PDF) (.9 ed.). Arpaci-Dusseau-Bücher. p. 5. Abgerufen 8. November 2017.
- ^ Brian Pawlowski; Chet Juszczak; Peter Staubach; Carl Smith; Diane Lebel; David Hitz (1994). "NFS Version 3 Design und Implementierung". Usenix.
- ^ "NFS Version 4". Usenix. 2005-04-14.
- ^ Haynes, Thomas (2016-11-01). "NFS Version 4 Minor Version 2".
- ^ yanfs.dev.java.net[Permanent Dead Link]
- ^ Tom Talpey (28. Februar 2006). "NFS/RDMA -Implementierung (s) Update" (PDF). Netzwerk Appliance, Inc. archiviert aus das Original (PDF) am 12. Mai 2011.
- ^ Brent Callaghan (28. Januar 2002). "NFS über RDMA" (PDF). Sun Microsystems.
- ^ Singh, Karan (2016). "4: Arbeiten mit dem Ceph -Dateisystem". CEPH -Kochbuch. Birmingham: Packt Publishing Ltd. p. 110. ISBN 9781784397364. Abgerufen 2017-03-21.
NFS-Ganesha ist ein NFS-Server, der im Benutzerbereich ausgeführt wird und die CEPHFS-FSAL (Dateisystemabstraktionschicht) unter Verwendung von libcePhfs unterstützt.
- ^ Glover <[email protected]>, Fred. "Eine Spezifikation der vertrauenswürdigen NFS (TNFS) -Protokollverlängerungen". Tools.ietf.org.
- ^ "Networking -Programme".
- ^ "Andere Software von Sun Microsystems". www.computinghistory.org.uk. Das Zentrum für die Computerhistorie. Abgerufen 24. September 2016.
- ^ "Einführung in Microsoft Windows Services für UNIX 3.5". technet.microsoft.com. Microsoft. Abgerufen 24. September 2016.
- ^ "NTFS -Plugin für NetDrive". ecsoft2.org. Abgerufen 2020-09-22.
- ^ "NetDrive für OS/2". arcanoae.com. Abgerufen 2020-09-22.
- ^ "NFS Gateway für NetWare 6.5". www.novell.com. Novell. Abgerufen 24. September 2016.
- ^ "OS/400 -Network -Dateisystem -Unterstützung" (PDF). Publib.boulder.ibm.com. IBM. Abgerufen 24. September 2016.[Permanent Dead Link]
- ^ Carole Patton (1987-10-26). "AT & T, um Sun Microsystems 'Sparc Chip zu lizenzieren". InfoWorld. p. 37. Abgerufen 2019-07-16.
- ^ "Was ist Connectathon?". Original Connectathon.org -Website. Archiviert von das Original Am 28. Januar 1999.
- ^ "PNFs". Panasas. Abgerufen 4. August, 2013.
Externe Links
- RFCs:
- RFC5661 - Netzwerkdateisystem (NFS) Version 4 Minor Version 1 Protocol
- RFC5403 - RPCSEC_GSS Version 2
- RFC3530 - NFS Version 4 Protokollspezifikation
- RFC2054 - WebNFS -Spezifikation
- RFC2339 - Sonnen-/ISOC -NFS -Änderungskontrollvereinbarung
- RFC2203 - RPCSEC_GSS -Spezifikation
- RFC1813 - NFS Version 3 Protokollspezifikation
- RFC1790 - Sun/ISOC ONC RPC Change Control -Vereinbarung
- RFC1094 - NFS Version 2 Protokollspezifikation
- Verschiedene Ressourcen:
- Überprüfung von "Why NFS Sucks" -Papier aus dem Linux -Symposium 2006 von Mike Eisler, 27. Oktober 2006