我在HPC应用程序中使用flock
在通过NFS在许多计算机之间共享的文件系统上。只要所有计算机都按预期运行,锁定就可以正常工作(引自http://en.wikipedia.org/wiki/File_locking:“内核2.6.12及更高版本使用POSIX字节范围锁实现对NFS文件的flock调用。这些锁对其他NFS客户端可见实现fcntl样式的POSIX锁“)。
我想知道,如果获得某个锁定的其中一台机器意外关闭,预计会发生什么。由于停电。我不知道在哪里查看。我的猜测是,这完全取决于NFS及其处理无响应机器的NFS句柄的方式。我可以想象其他客户端仍然会看到锁定,直到发生超时并且NFS服务器声明超时的机器的所有NFS句柄都是无效的。那是对的吗?超时是什么?如果机器在超时内再次出现会发生什么?你能推荐一个明确的参考来看看所有这些吗?
谢谢!
答案 0 :(得分:1)
在O'Reilly的书中有一个很好的解释,关于NFS和NIS,chapter 11.2.快速总结一下:由于NFS是无状态的,服务器无法知道客户端是否已经崩溃。客户端负责在重新启动后清除锁定。
答案 1 :(得分:0)
当您使用NFS v4(!)时,如果服务器在一定时间内未从客户端收到任何消息,该文件将被解锁。该租约期限默认为90s。