我有 2 台 Web 服务器,它们前面有一个负载均衡器。
它们都安装了 nfs 共享,以便可以共享一些公共文件,例如从 cms 上传的图像和一些运行时生成的文件。
Is nfs robust? Are there any specific weaknesses I should now about?
我知道它不支持文件锁定,但这对我来说无关紧要。我使用 memcache 来模拟运行时生成的文件的文件锁定。
谢谢
答案1
我已经发过问题与 NFS 性能相关。
你可以看一下。希望对你有帮助。
答案2
NFS 确实有一些缺点。如果网络通信中断,NFS 的行为会根据您使用的操作系统(您未指定)而有所不同。我见过一些 Linux 发行版只是默默地删除共享并恢复使用挂载点,就好像它在本地磁盘上一样。如果您突然发现根分区已满,这可能会导致问题,因为计划任务将数据复制到本地驱动器而不是远程挂载点。我还见过一些发行版尝试联系远程服务器,但从未收到响应,并且无限期地等待网络通信。因此,除其他事项外,检测断开连接的共享并自动重新连接可能会很麻烦。
答案3
您通常希望减少 NFS 网络上的操作量。检查您的挂载选项并分析是否可以增加缓存时间。这对于 Web 服务器尤其重要。我们运行一个相当密集的 NFS 环境,其中 Web 服务器通常很少进行读写操作,但会处理大量元数据(检查文件时间戳、权限、大小等)。您可以调整这些信息的缓存时间,这将提高性能。
缺点是 NFS 服务器是单点故障。如果您无法使其成为主动-主动或主动-被动集群,请确保定期进行备份并可以快速恢复。另一种方法是确保 NFS 服务器本身没有单点故障(例如,在这种情况下 RAID-0 是禁忌)。请相应地评估您的风险。
至于它是否有效或者是否是一种常见的设置:它有效并且很常见,所以你根本没有运行任何疯狂的东西。
答案4
最好在后端放置另一个 Web 服务器,而不是 NFS。通过 HTTP 提供通用组件,并在前端 Web 服务器上使用反向代理。