我在使用NFS v3挂载主目录的两个系统(Solaris客户端和Linux服务器)出现问题。 (NFS v4完全不起作用,因为另一个系统pipe理员告诉我这是一个“已知问题”)。NFS v2似乎正常工作。
我的问题是:使用NFS v2和NFS v3之间的折衷是什么? 我需要决定是否继续尝试debugging这个问题,或者决定为这个客户端使用NFS v2。
我知道有v2的文件大小限制,虽然我看到了冲突的信息 – 这是一个2 GB或4GB的限制? 对v2也有性能损失; 是否有可能以一般的方式量化v2的速度限制,还是这太依赖于特定的系统和networking? (对于它的价值,我已经在系统之间获得了千兆以太网。)两者之间还有什么其他的折衷? 我应该知道有什么安全问题吗?
除了现有的答案。
NFSv3具有READDIRPLUS操作,它允许一次获得具有文件属性的目录列表 – 在目录列表上性能得到很大改善。 另外,V3的caching一致性很弱,使客户端caching开心,并允许客户端不要求太多的信息。 另外,TCP作为一种传输方式。 使用UDP,可能会导致读写IO缓冲区大小的数据丢失。 ACCESS调用,允许客户端重新使用caching的数据,如果其他用户想要访问同一个文件。
根据维基百科 NFSv2使用32位文件大小的值,这限制了4GiB文件,但显然一个常见的错误是使值签名,这限制了2GiB。 NFSv3还具有asynchronous操作和更多的优化操作,因此需要执行的操作更less。 由于networking延迟与本地机器延迟完全不同,所以即使在局域网上,这对性能也有很大的影响。 只有在不支持NFSv3的情况下才能使用NFSv2。 尝试找出为什么NFSv4不起作用。 也许这是你可以修复的东西。