我在使用 NFS v3 安装主目录的两个系统(Solaris 客户端和 Linux 服务器)上遇到了问题。(NFS v4 根本不起作用,因为这里的另一位系统管理员告诉我这是一个“已知问题”。)NFS v2 似乎工作正常。
我的问题是:使用 NFS v2 和 NFS v3 之间的权衡是什么?我需要决定是否继续尝试调试此问题,还是仅决定为这一个客户端使用 NFS v2。
我知道 v2 有文件大小限制,但我看到了相互矛盾的信息——是 2 GB 还是 4GB 的限制?v2 的性能也会受到影响;是否可以用一般方法量化 v2 的速度限制,还是这过于依赖于所涉及的特定系统和网络?(不管怎么说,我的系统之间有千兆以太网。)两者之间还有哪些其他权衡?我应该注意哪些安全问题?
答案1
除了现有的答案。
NFSv3 具有 READDIRPLUS 操作,允许一次性获取带有文件属性的目录列表 - 目录列表的性能得到了很大的改进。此外,V3 的缓存一致性较弱,这可以保持客户端缓存的良好状态,并允许客户端不通过 aswk 获取太多信息。另外,TCP 用作传输。使用 UDP 时,如果读写 IO 缓冲区大小较大,则可能会丢失数据。ACCESS 调用允许客户端在其他用户想要访问同一文件时重新使用缓存的数据。
答案2
根据维基百科NFSv2 使用 32 位文件大小值,这将其限制为 4GiB 文件,但显然一个常见的错误是使值有符号,这将其限制为 2GiB。NFSv3 还具有异步操作和许多优化的操作,因此需要执行的操作更少。这确实对性能有很大影响,即使在 LAN 上也是如此,因为网络延迟与本地机器延迟完全不同。仅当某些设备不支持 NFSv3 时才应使用 NFSv2。尝试找出 NFSv4 无法正常工作的原因。也许这是您可以修复的问题。