Loading AI tools
来自维基百科,自由的百科全书
网络文件系统(英語:Network File System,縮寫作 NFS)是一种分布式文件系统,力求客户端主机可以访问服务器端文件,并且其过程与访问本地存储时一样,它由昇陽電腦(已被甲骨文公司收购)开发,于1984年发布[1]。
此條目需要补充更多来源。 (2015年11月3日) |
它基于開放網路運算遠端程序呼叫(ONC RPC)系統:一个开放、标准的RFC系統,任何人或组织都可以依据标准实现它。
NFSv1 只在SUN公司内部用作实验目的。开发团队在NFSv1的基础上做了重大改进之后将其对外发布,版本NFSv2由此产生。[2]
NFSv2最初在SunOS 2.0上面实现,1985年发布[3]。
参与NFSv2设计实现的人包括羅素·桑德柏格(Russel Sandberg)、鮑伯·里昂(Bob Lyon)、比爾·喬伊、史提夫·克萊曼(Steve Kleiman)等。[1][4] NFSv2 的定义RFC 1094,于1989年3月发布。
NFSv2 最初只是基于 UDP。设计者旨在保持伺服器端是无状态的,而将「锁」等机制的实现独立于核心协议之外。[1] 这是一个关键决定,它使服务器從故障恢复变得简单:当一个服务器变得不可用时,所有的网络客户端冻结,但一旦服务器恢复,每一个尝试重传的状态都包含在每个RPC里面,这是由客户端存根发起的。这样的设计决策允许UNIX应用程序可以忽视服务器端的问题。
虛擬檔案系統接口很容易模块化地实现一个简单的协议。在1986年2月,诸多操作系统实现了对NFSv2的支持,例如 System V release 2、DOS,以及使用Eunice的VAX/VMS。[4]
由于 32-bit 的限制,NFSv2 只允读写文件起始2G大小的内容。
Version 3(RFC 1813,1995年6月)添加如下功能:
在NFSv2发布后不久,NFSv3协议提案就在Sun Microsystems内部被提出,其主要目的是解决NFSv2进行同步写操作的性能问题[5]。1992年7月的实现版本已经解决了NFSv2的许多不足之处,但是大文件支持(64位元文件大小和偏移量)这一紧迫的问题还没有解决。这成为迪吉多公司的一个痛点,他们当时推出64位版本的Ultrix,以支持其新推出的64位RISC处理器Alpha 21064。在引入NFSv3时厂商们正在越来越多的支持TCP作为传输层协议。当时有些厂商已经在NFS version 2支持TCP做为传输层,Sun Microsystems 在发布NFSv3时也增加了将TCP作为传输层的支持。使用TCP做传输层使得NFS跨越 WAN 成为可能,并且可以突破 UDP 傳輸大小8K的限制,使用更大的读写数据单元。
NFSv4协议(RFC 3010,2000年12月;更新版 RFC 3530,2003年4月),借鉴了AFS(Andrew File System)和SMB/CIFS(Server Message Block)的特性,主要做了如下改进:性能提升,强制安全策略,引入有状态的协议。[6]从NFSv4开始,协议的实现/开发工作不再是由SUN公司主导开发,而是改为由網際網路工程任務組(IETF)开发。
NFSv4.1(RFC 5661,2010年1月)旨在为并行访问可横向扩展的集群服务(pNFS扩展)提供协议支持。
NFSv4.2 于2016年发布。
WebNFS,一个NFSv2 v3的扩展,使得用户可以方便的通过网页浏览器与NFS服务端交互,且不受防火墙限制。在2007年,SUN公司开源了WebNFS客户端的实现[7]
各种NFS相关的外挂/捆绑协议:
NFS over RDMA 是NFS对遠端直接記憶體存取(RDMA)协议的适配[8][9],就是将默认的传输层协议TCP替换为RDMA。
NFS 通常用在 Unix 操作系统上(比如 Solaris、AIX及HP-UX)和其他 類Unix 的操作系统(例如 Linux 及 FreeBSD)。同时在其他一些操作系统也提供了NFS实现,例如经典的 Mac OS、OpenVMS、Microsoft Windows[10]、OS/2[11]、Novell NetWare 还有 IBM AS/400。可选的远程文件访问协议还有伺服器訊息區塊(SMB, 或 CIFS)、 蘋果歸檔協定(AFP)、NetWare核心協定(NCP)和 OS/400 檔案伺服器檔案系統(QFileSvr.400)。
在Microsoft Windows系统上 SMB 和 NetWare核心協定(NCP)的使用比 NFS 更广泛;在Apple Macintosh 操作系统上则 AFP 的使用更广泛;而在 AS/400 系统上 QFileSvr.400 更为常用。Haiku 在2013年3月添加了 NFSv4 支援(作为Google 編碼夏季計畫的一部分)[12]。
假设一个Unix风格的场景,其中一台计算机(客户端)需要访问存储在其他机器上的数据(NFS 服务器):
nfsd
,用来使得数据可以被客户端访问。/etc/exports
配置文件 和 exportfs
命令。mount
命令。提醒:NFS自动挂载可以通过—可能是 /etc/fstab
或者自動安裝管理進程。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.