rename () 关于原子 NFS

我有一个过程:

记录一个新文件 .tmp.

用途

rename()

系统调用替换现有文件。

访问此文件由远程客户端执行。 NFS.

我们这样做是因为我们需要原子文件更新,以及
http://man7.org/linux/man-pages/man2/rename.2.html
spec 他说:

如果一个 newpath 已经存在,它将被原子替换,因此没有任何一个过程试图访问 newpath, 检测到它缺失。 但是,它可能是一个窗口 oldpath, 和 newpath 请参阅重命名的文件。

我们依靠这样的行为。

但这是一个障碍 - 最近,在过渡到新的后 NetApp (群集模式从模式 7), 我们有一个有时会脱落的过程

ENOENT

- 没有这样的文件或目录。

在“非常罕见”下我的意思是 - 4 或者 5 在过去的几周内,每一个过程 5 分钟左右。

我从供应商那里发现它在他们的服务器上可能是错误 NFS.

但实际上,我正试图找出这种原子质保修适用于 NFS. 如果有人可以澄清我

rename()

ATOMICITY保修适用于多层情景 NFS? 我不确定这个功能是否有效,但从来没有

保证

首先。

的:
https://tools.ietf.org/html/rfc1813#section-3.3.14
程序 RENAME 重命名指定的文件 from.name 在目录中 from.dir, 在 to.name 在目录中 to.dir. 该操作必须是客户的原子。

如果这是相关的,我们有客户 SL 6.5, 哪些吸引数据仓库 NFS 在 ONTAP-CDOT 8.3.
已邀请:

风见雨下

赞同来自:

避免比赛的条件 NFS

它始终是一个令人乐趣的任务,而在没有重写应用程序的情况下绕过应用程序的唯一方法 - 这将使用选项安装共享资源。

sync

并修改服务器 NFS 用来

no_wdelay

. 我不记得了如何安装 no_wdelay 在 NetApp.

此方法的反面是,如果您在此共享资源中有许多同时录制操作,则它们将以指数速度较慢。 你可以问 NetApp, 如何安装 no_wdelay 在这个资源上,或简单地描述它们问题。 他们可能有更好的想法。 我没有触摸 NetApp 至少 8 年。

要回复问题请先登录注册