【发布时间】: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 句柄声明为无效。那是对的吗?那个超时是什么?如果机器在超时时间内再次启动会发生什么?你能推荐一个明确的参考来查看所有这些吗?
谢谢!
【问题讨论】: