linux – 在NFS原子上重命名()
我有一个过程:
>写一个新的’.tmp’文件. 我们这样做,因为我们想要原子文件更新,而
我们依赖这种行为. 但是最近,由于迁移到新的NetApp(群集模式,从7模式) – 我们有一个过程偶尔会因ENOENT而崩溃 – 没有这样的文件或目录. “非常偶然”,我的意思是 – 在过去几周里,每5分钟左右就会发生4到5次. 我正在与供应商一起调查这是否可能是他们的NFS服务器的错误. 但我实际上想弄清楚的是,原子性保证是否实际适用于NFS.有人能够为我澄清rename()的原子保证是否适用于多客户端NFS场景?我不确定这个功能是否已经起作用,但从一开始就无法保证. 来自:RFC1813
如果它是相关的,我们已经让SL 6.5客户端在ONTAP-CDOT 8.3上访问NFS数据存储区. 解决方法
避免NFS中的竞争条件
这总是一个有趣的挑战,我知道没有重写应用程序的唯一工作是使用选项sync挂载共享并更改NFS服务器以使用no_wdelay.我不记得如何在NetApp中设置no_wdelay. 这种方法的缺点是,如果你对这个共享有很多同时写入,它们会以指数方式变慢.您可能想要询问NetApp如何在该共享上设置no_wdelay,或者只是向他们描述问题.他们可能有更好的想法.我至少8年没有接触过NetApp. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |