![]() |
1
11
这就是正常的NFS行为。
这是不可能手动完成的,因为NFS假装是一个正常的符合POSIX的文件系统。 我曾经尝试过编写close()/open()代码,试图以某种方式减轻NFS客户端缓存的影响。在我的情况下,我需要读取写入其他服务器上文件的信息。但即使是重开的把戏也几乎没有效果。我不能将fdatasync()添加到写入端,因为这会减慢整个应用程序的速度。 到目前为止,我在NFS方面的经验是,您无能为力。在关键代码路径中,我简单地进行了编码,以重试返回estale的文件操作。
把我变成你想要的一切,但是如果你的客户想要可靠性,那么他们就不应该使用NFS。 例如,我的公司在广告中宣称,如果客户想要可靠性,就使用适当的分布式文件系统(我故意省略了这个品牌)。我们的核心软件不能保证在NFS上运行,而且我们不支持这种配置。但在我们的例子中,我们确实需要保证,一旦数据写入到FS,它们就可以在所有其他节点上访问。 可以实现NFS中的一致性,但以性能为代价,使NFS几乎不可用。(检查它的挂载选项。)NFS正在疯狂地缓存,以隐藏它是一个服务器文件系统的事实。为了使所有操作一致,对于每一个小操作,NFS客户机都必须同步地转到NFS服务器,绕过本地缓存。这永远不会很快。 但是,既然我们在这里讨论Linux,我们可以建议软件的客户评估可用的集群文件系统。例如,Redhat现在正式支持 GFS . 我听说有人使用可待因,但没有关于它的硬信息。 |
![]() |
2
4
您可以尝试“noac”安装选项 来自人类NFS:
您可以有两个装载,一个用于需要同步的关键快速更改数据,另一个装载用于其他数据。 此外,查看 NFS locking and its limitations . 关于一般建议:
截断同时从多个主机读取的文件的一种方法是将内容写入临时文件,然后
在同一个文件系统上,此操作应该是原子操作。 |
![]() |
3
2
我做得很成功
|
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 5 月前 |
![]() |
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 6 月前 |
![]() |
Marco · PyCharm Linux系统文件上os.stat异常 7 月前 |