NFS是网络文件系统。随着网络的不断发展,这个协议版本也逐渐增多。现在已经有了4.1的***版本了。那么对于这些版本信息,你是否有点不知所措呢?没关系,这里我们来对NFS版本内容进行一下解读吧。
1、NFS—Network File System
2、由Sun Microsystems公司在1985年推出
3、是一种通用的文件共享方案
4、linux从1.2系列内核开始支持NFS版本2,在2.2.18版内核后支持NFS版本3 (我最近使用的2.14.3内核,发现已经支持NFS版本4了)
NFS协议从诞生到现在为止,已经有多个版本,如NFS V2(rfc1094),NFS V3(rfc1813)(***的版本是V4(rfc3010)
5、NFS版本3比NFS版本2运行速度更快,版本3的软件一定能与版本2实现互操作
6、V3相对V2的主要区别:
1>文件尺寸
V2***只支持32BIT的文件大小(4G),而NFS V3新增加了支持64BIT文件大小的技术.
2>文件传输尺寸
V3没有限定传输尺寸,V2最多只能设定为8k,可以使用-rsize and -wsize 来进行设定.
3>完整的信息返回
V3增加和完善了许多错误和成功信息的返回,对于服务器的设置和管理能带来很大好处.
4>增加了对TCP传输协议的支持
V2只提供了对UDP协议的支持,在一些高要求的网络环境中有很大限制,V3增加了对TCP协议的支持
5>异步写入特性
异步写入特性(v3新增加)介绍:
NFS版本3 能否使用异步写入,这是可选择的一种特性.NFS V3客户端发发送一个异步写入请求到服务器,在给客户端答复之前服务器并不是必须要将数据写入到存储器中(稳定的).服务器能确定何时去写入数据或者将多 个写入请求聚合到一起并加以处理,然后写入.客户端能保持一个数据的copy以防万一服务器不能完整的将数据写入.当客户端希望释放这个copy的时候, 它会向服务器通过这个操作过程,以确保每个操作步骤的完整.异步写入能够使服务器去确定***的同步数据的策略.使数据能尽可能的同步的提交何到达.与V2 比较来看,这样的机制能更好的实现数据缓冲和更多的平行(平衡).而NFS V2的SERVER在将数据写入存储器之前不能再相应任何的写入请求.
6>改进了SERVER的mount性能
7>有更好的I/O WRITES 性能.
9>更强网络运行效能,使得网络运作更为有效.
10>更强的灾难恢复功能.
7、V4相对V3的改进:
1>改进了INTERNET上的存取和执行效能
2>在协议中增强了安全方面的特性
3>增强的跨平台特性
8、NFS运行在Sun的RPC协议之上,因此既可使用UDP也可用TCP作为下层的传输协议,但TCP具有更多的优势,由客户机决定选择TCP还是UDP
linux上的大多数NFS版本服务器不支持用TCP来传输
9、NFS文件上锁是个棘手问题,NFS服务器是无状态的,它们不知道哪台机器正在使用某个特定的文件
10、rquotad磁盘配额的方法已经过时
11、cookies与无状态安装
12、共享文件系统命名规则:***提供一种深层次的结构(如:/home/share1),保证客户机的根目录下不会混乱
13、安全:禁止访问NFS使用的TCP和UDP 2049端口
阻止对portmap(该进程监听TCP和UDP的111端口)守护进程的访问
14、NFS版本的服务器启动脚本名字
RedHat /etc/init.d/nfs
SuSE /etc/init.d/nfsserver
Debian /etc/init.d/nfs-kernel-server /etc/init.d/nfs-common
15、mountd服务用于安装请求
nfsd是NFS运行的守护进程(如果客户机要导出自身文件系统,也必须运行nfsd)
通过uptime查看平均负载,调整nfsd线程的数目
通过nfsstat检查nfsd线程数量可能引发的性能问题
通过netstat -s监测UDP套接口溢出数目,增加nsfd线程数量使溢出数目降为0,再适当增加几个
可以编辑启动脚本来改变nfsd进程的数量
16、客户机安装文件系统和访问文件的过程是完全不同的,使用不同的协议,由不同的守护进程来提供服务:
nfsd(或rpc.nfsd) 用于文件服务
mountd(或rpc.mountd) 用于安装请求
portmap 使用SUN的RPC协议