alphaspirit——Fotolia

NFS与CIFS/SMB的区别是什么?

网络文件系统和公共互联网文件系统/服务器消息块被设计用于任何操作系统,但NFS在Linux和SMB在Windows中仍然占主导地位。

NFS和CIFS的区别是什么?您能解释一下什么时候应该使用NFS和CIFS吗?

NFS(网络文件系统)及CIFS (通用互联网文档系统)协议设计为允许客户端系统查看和访问存储在远程计算设备(如服务器或PC)上的文件。CIFS是服务器消息块的方言(SMB)大多数当前存储系统使用的协议。

从Windows 2000的实现开始,微软停止使用CIFS这个术语,转而使用Server Message Block Version 1.0 (SMB1)。Microsoft在CIFS和SMB1之间做了一些更改,并使用相同的方言标识符,Windows NT LAN Manager (NTLM) 0.12。

版本2的SMB是一个全新的文件共享协议,微软基于SMB的概念,随后的Microsoft SMB更新建立在这个修订版之上。CIFS仍然是SMB的一种实现方式,但目前存储系统很少使用CIFS。

在典型场景中,基于客户端的应用程序或系统向服务器发出访问文件或向服务器中运行的程序传递消息的请求。文件服务器执行请求的操作并返回响应。然后,用户就可以在远程计算或存储设备上查看、存储和更新文件,就像他们在自己的计算机上一样。

NFS和CIFS/SMB协议被开发用于任何操作系统和硬件。然而,在实践中,NFS最常在Linux和Unix系统上实现,而CIFS/SMB通常用于Windows,部分原因是为这些操作系统开发的应用程序需要一组特定的文件系统属性。

NFS / CIFS应用

在各自的协议存在的大部分生命周期中,一个显著的区别是NFS长期以来都与关键任务企业应用程序的部署相关联,例如Oracle数据库和VMware虚拟化基础设施,因为它允许客户端在为服务器维护或故障转移而重新启动后不中断地重新连接。

CIFS/SMB最初倾向于关注小型LAN中使用的共享文件和打印服务以及应用程序。直到后来,Microsoft才使用第三版SMB协议添加对透明重新连接的支持。

Microsoft提供NFS version 2 (NFSv2)和NFSv3客户端,支持从Windows Server 2012开始的所有Windows和NFSv4.1服务器版本。同样,Linux支持SMB客户端,开源Samba软件早就可以在Linux和Unix上启用SMB/CIFS。苹果的macos目前主要使用SMB,但也支持NFS。企业存储系统通常同时支持NFS和SMB两种文件访问方式。

NFS与CIFS/SMB的历史记录

Sun Microsystems在20世纪80年代中期开发了NFS,其目标是以与本地文件访问相当的速度在网络上共享文件系统资源。NFSv2是Sun以外发布的第一个版本。使用NFS,用户或系统管理员可以装载全部或部分文件系统的。

Sun在1989年发布了NFS协议规范供免费使用征求意见(RFC) 1094可从互联网工程任务组(IETF)获得。Sun还从1985年开始向大量供应商提供NFS源代码的参考实现的商业许可。一些供应商,如IBM,基于RFC1094编写了自己的NFS版本。NFS的开放源代码版本最初出现在FreeBSD中,后来出现在Linux中,Linux是当前主要的NFS实现。

1998年,Sun Microsystems将NFS维护的控制权交给了IETF。隶属于众多供应商的技术人员为正在进行的NFS协议开发做出了贡献。

巴里·费根鲍姆(Barry Feigenbaum)在20世纪80年代早期在IBM工作时创建了SMB,最初被称为BAF协议。该协议最初用于DOS、OS/2和早期版本的Windows,以实现跨网络的文件和设备共享。致力于增强SMB功能的供应商包括英特尔、3Com和微软(Microsoft)。

微软开始使用这个词通用互联网文档系统在1990年代,描述了基于Windows NT操作系统的SMB协议版本。Microsoft将CIFS定义为SMB协议的NTLM方言,用于Windows NT Server 3.51、Windows NT Server 4.0、Windows NT Workstation 4.0和Windows 98操作系统。术语CIFS有时也用来指SMB协议的所有方言。


这段来自itfreetraining的视频解释了
NFS和SMB的区别。

CIFS设计的目的不仅是为客户机提供对服务器系统上托管的文件和目录的托管并发访问,而且还为通过网络访问打印队列和进程间通信服务提供便利。相比之下,NFS将其域限制为文件共享。

对于NFS和CIFS,这两种协议都是独立于传输的,但CIFS最常用于直接托管和基于NetBIOS的传输,例如TCP/IP上的NetBIOS。

为什么CIFS/SMB1过时了

CIFS这个术语已经过时,因为它只适用于Microsoft不再支持的操作系统。自从微软停止支持Windows 2000以来,SMB1就没有被使用过。

CIFS/SMB1在通信方面往往比NFS更健谈,有时需要在WAN上优化文件协议。SMB1是20世纪80年代和90年代为在小型局域网中访问文件和应用程序的用户而设计的。从Windows Vista和Windows Server 2008开始,Microsoft对大多数SMB代码库进行了更新和重写。

SMB2是为更安全的用户访问文件和应用程序而设计的,与该协议的早期版本相比,它在广域网和大型局域网中具有更高的效率和性能。SMB3是为在现代数据中心规模之上运行的块基础架构工作负载而开发的远程直接内存访问网络,以及高度安全的文件访问方案。

随着时间的推移,NFS不断发展,在许多方面变得与SMB更加相似,它增加了一些特性,比如服务器上的异步写以提高性能、访问控制列表和新版本的文件锁。与早期的NFS版本相比,NFSv4.2是完全有状态的,早期的NFS版本设计用于服务器不需要维护任何客户机的状态就能运行的实现中。但是NFS仍然处理服务器重新引导和恢复状态,以使其能够继续用于持久数据关键型应用程序。

随着协议的各自发展,NFSv4和SMB3在功能上变得比以往更加相似。但是对于NFS和CIFS, NFS很可能继续主要用于Linux环境,而SMB仍将是Windows的主要选择。

深入研究NAS设备

搜索灾难复苏
搜索数据备份
搜索汇聚基础设施
Baidu