【问题标题】:flock and NFS -- what happens upon unexpected shutdown?群和 NFS——意外关闭时会发生什么?
【发布时间】:2013-12-12 14:15:01
【问题描述】:

我在一个 HPC 应用程序中使用flock,它是通过 NFS 在多台机器之间共享的文件系统上的。只要所有机器都按预期运行,锁定就可以正常工作(来自http://en.wikipedia.org/wiki/File_locking 的引用:“内核2.6.12 及更高版本使用POSIX 字节范围锁对NFS 文件实现flock 调用。这些锁将对实现fcntl 的其他NFS 客户端可见-style POSIX 锁”)。

我想知道如果其中一台获得特定锁的机器意外关闭会发生什么,例如由于停电。我不确定在哪里查找。我的猜测是,这完全取决于 NFS 及其处理非响应机器的 NFS 句柄的方式。我可以想象其他客户端仍然会看到锁定,直到发生超时并且 NFS 服务器将超时的机器的所有 NFS 句柄声明为无效。那是对的吗?那个超时是什么?如果机器在超时时间内再次启动会发生什么?你能推荐一个明确的参考来查看所有这些吗?

谢谢!

【问题讨论】:

    标签: linux locking nfs


    【解决方案1】:

    当您使用 NFS v4 (!) 时,当服务器在一定时间内没有收到客户端的消息时,文件将被解锁。此租期默认为 90 秒。

    【讨论】:

      【解决方案2】:

      O'Reilly 关于 NFS 和 NIS 的书中有一个很好的解释,chapter 11.2. 快速总结:由于 NFS 是无状态的,服务器无法知道客户端已崩溃。客户端在重启后负责清除锁。

      【讨论】:

      • 这仅适用于 NFSv3,不适用于 NFSv4。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 2020-05-05
      • 2014-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多