Skip to main content
 首页 » 编程设计

linux之flock 和 NFS——意外关机时会发生什么

2023年11月22日20unruledboy

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

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

谢谢!

请您参考如下方法:

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