Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Network File System
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Versions and variations == Sun used version 1 only for in-house experimental purposes. When the development team added substantial changes to NFS version 1 and released it outside of Sun, they decided to release the new version as v2, so that version interoperation and RPC version fallback could be tested.<ref>''NFS Illustrated'' (2000) by Brent Callaghan β {{ISBN|0-201-32570-5}}</ref><ref name="NFSforVMS"/> ===NFSv2=== Version 2 of the protocol (defined in {{IETF RFC|1094|link=no}}, March 1989) originally operated only over [[User Datagram Protocol]] (UDP). Its designers meant to keep the server side [[Stateless server|stateless]], with [[lock (computer science)|locking]] (for example) implemented outside of the core protocol. People involved in the creation of NFS version 2 include [[Russel Sandberg]], [[Bob Lyon (engineer)|Bob Lyon]], [[Bill Joy]], [[Steve Kleiman]], and others.<ref name="sun85" /><ref name="Rusty">{{Cite journal |title= The Sun Network Filesystem: Design, Implementation and Experience |journal= Technical Report |author= Russel Sandberg |publisher= Sun Microsystems |url= http://www.cse.buffalo.edu/faculty/tkosar/cse710_spring13/papers/nfs.pdf }}</ref> The [[Virtual File System]] interface allows a modular implementation, reflected in a simple protocol. By February 1986, implementations were demonstrated for operating systems such as [[System V]] release 2, [[DOS]], and VAX/VMS using [[Eunice (software)|Eunice]].<ref name="Rusty" /> NFSv2 only allows the first 2 GB of a file to be read due to [[32-bit]] limitations. ===NFSv3=== Version 3 ({{IETF RFC|1813|link=no}}, June 1995) added: * support for 64-bit file sizes and offsets, to handle files larger than 2 gigabytes (GB); * support for asynchronous writes on the server, to improve write performance; * additional file attributes in many replies, to avoid the need to re-fetch them; * a READDIRPLUS operation, to get file handles<ref>{{cite book|last1=Arpaci-Dusseau|first1=Remzi|last2=Arpaci-Dusseau|first2=Andrea|title=Operating Systems: Three Easy Pieces|date=March 2015|publisher=Arpaci-Dusseau Books|edition=.9|page=5|url=http://pages.cs.wisc.edu/~remzi/OSTEP/dist-nfs.pdf|access-date=8 November 2017}}</ref> and attributes along with file names when scanning a directory; * assorted other improvements. The first NFS Version 3 proposal within Sun Microsystems was created not long after the release of NFS Version 2. The principal motivation was an attempt to mitigate the performance issue of the synchronous write operation in NFS Version 2.<ref name="usenix94">{{cite web |url= https://www.usenix.org/legacy/publications/library/proceedings/bos94/full_papers/pawlowski.ps |title=NFS Version 3 Design and Implementation |year=1994 |publisher=[[USENIX]] |author1=Brian Pawlowski |author2=Chet Juszczak |author3=Peter Staubach |author4=Carl Smith |author5=Diane Lebel |author6=David Hitz }}</ref> By July 1992, implementation practice had solved many shortcomings of NFS Version 2, leaving only lack of large file support (64-bit file sizes and offsets) a pressing issue. At the time of introduction of Version 3, vendor support for [[Transmission Control Protocol|TCP]] as a [[transport layer|transport-layer]] protocol began increasing. While several vendors had already added support for NFS Version 2 with TCP as a transport, Sun Microsystems added support for TCP as a transport for NFS at the same time it added support for Version 3. Using TCP as a transport made using NFS over a [[Wide area network|WAN]] more feasible, and allowed the use of larger read and write transfer sizes beyond the 8 KB limit imposed by [[User Datagram Protocol]]. ====YANFS/WebNFS==== {{anchor|WebNFS|reason=Old section name; could have incoming links, though they should probably go to the main article.}} {{Main|WebNFS}} YANFS (Yet Another NFS), formerly [[WebNFS]], is an extension to NFSv2 and NFSv3 allowing it to function behind restrictive firewalls without the complexity of Portmap and MOUNT protocols. YANFS/WebNFS has a fixed [[List of TCP and UDP port numbers|TCP/UDP port number]] (2049), and instead of requiring the client to contact the MOUNT RPC service to determine the initial filehandle of every filesystem, it introduced the concept of a ''public filehandle'' (null for NFSv2, zero-length for NFSv3) which could be used as the starting point. Both of those changes were later incorporated into NFSv4. YANFS's post-WebNFS development has also included server-side integration. ===NFSv4=== Version 4 ({{IETF RFC|3010|link=no}}, December 2000; revised in {{IETF RFC|3530|link=no}}, April 2003 and again in {{IETF RFC|7530|link=no}}, March 2015), influenced by [[Andrew File System]] (AFS) and [[Server Message Block]] (SMB), includes performance improvements, mandates strong security, and introduces a [[State (computer science)|stateful]] protocol.<ref>{{cite web|url=http://www.usenix.org/events/usenix05/tech/italks.html#nFSv4|title=NFS Version 4|date=2005-04-14|publisher=[[USENIX]]}}</ref><ref name="sane2000">{{cite web |url= http://www.sane.nl/events/sane2000/papers/pawlowski.pdf |title=The NFS Version 4 Protocol |year=2000 |publisher=[[System Administration and Network Engineering|SANE]] |author1=Brian Pawlowski |author2=Spencer Shepler |author3=Carl Beame |author4=Brent Callaghan |author5=Michael Eisler |author6=David Noveck |author7=David Robinson |author8=Robert Thurlow }}</ref> Version 4 became the first version developed with the [[Internet Engineering Task Force]] (IETF) after [[Sun Microsystems]] handed over the development of the NFS protocols. NFS version 4.1 ({{IETF RFC|5661|link=no}}, January 2010; revised in {{IETF RFC|8881|link=no}}, August 2020) aims to provide protocol support to take advantage of clustered server deployments including the ability to provide scalable parallel access to files distributed among multiple servers (pNFS extension). Version 4.1 includes Session trunking mechanism (Also known as NFS Multipathing) and is available in some enterprise solutions as [[VMware ESXi]]. NFS version 4.2 ({{IETF RFC|7862|link=no}}) was published in November 2016 with new features including: server-side clone and copy, application I/O advise, sparse files, space reservation, application data block (ADB), labeled NFS with sec_label that accommodates any MAC security system, and two new operations for pNFS (LAYOUTERROR and LAYOUTSTATS). One big advantage of NFSv4 over its predecessors is that only one UDP or TCP port, 2049, is used to run the service, which simplifies using the protocol across firewalls.<ref>{{cite tech report|url=https://www.netapp.com/media/10720-tr-4067.pdf|title=NFS in NetApp ONTAP, Best practice and implementation guide|author1=Justin Parisi|author2= Elliott Ecton|date=June 2023|publisher=NetApp}}</ref> ===Other extensions=== [[WebNFS]], an extension to Version 2 and Version 3, allows NFS to integrate more easily into Web-browsers and to enable operation through firewalls. In 2007 Sun Microsystems open-sourced their client-side WebNFS implementation.<ref>{{cite web|url=https://github.com/raisercostin/yanfs|title=yanfs|website=Github.com}}</ref> Various side-band protocols have become associated with NFS. Note: * the byte-range advisory Network Lock Manager (NLM) protocol (added to support [[UNIX System V]] [[file locking]] APIs) * the remote quota-reporting (RQUOTAD) protocol, which allows NFS users to view their data-storage quotas on NFS servers * NFS over RDMA, an adaptation of NFS that uses [[remote direct memory access]] (RDMA) as a transport<ref>{{cite web|url= http://www.connectathon.org/talks06/talpey-cthon06-nfs-rdma.pdf|title= NFS/RDMA Implementation(s) Update|author= Tom Talpey|publisher= Network Appliance, Inc.|date= February 28, 2006|archive-url= https://web.archive.org/web/20110512180716/http://www.connectathon.org/talks06/talpey-cthon06-nfs-rdma.pdf|archive-date= May 12, 2011}}</ref><ref>{{cite web|url= http://www.usenix.org/events/fast02/wips/callaghan.pdf|title= NFS over RDMA|author= Brent Callaghan|publisher= Sun Microsystems|date= January 28, 2002}}</ref> * NFS-Ganesha, an NFS server, running in user-space and supporting various file systems like [[GPFS|GPFS/Spectrum Scale]], CephFS via respective FSAL (File System Abstraction Layer) modules. The [[Ceph (software)|CephFS]] FSAL is supported using libcephfs<ref> {{cite book | last1 = Singh | first1 = Karan | chapter = 4: Working with the Ceph Filesystem | title = Ceph Cookbook | url = https://books.google.com/books?id=C2xLDAAAQBAJ | location = Birmingham | publisher = Packt Publishing Ltd | date = 2016 | page = 110 | isbn = 978-1-78439-736-4 | access-date = 2017-03-21 | quote = NFS-Ganesha is an NFS server that runs in user space and supports the CephFS FSAL (File System Abstraction Layer) using libcephfs. }} </ref> *Trusted NFS (TNFS)<ref>{{cite journal|url=https://tools.ietf.org/html/draft-ietf-tnfs-spec-01.html|title=A Specification of Trusted NFS (TNFS) Protocol Extensions|first=Fred|last=Glover|date=28 May 1994|website=datatracker.ietf.org}}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Network File System
(section)
Add topic