可以在打开文件的NFS挂载卷上取消打开文件的链接吗?


9

NFS是否允许我像本地文件系统一样取消链接/删除打开的文件?

我问的原因是我正在开发可以在多台服务器上运行并且可以作为后端访问NFS的东西。如果我可以对打开的文件进行取消链接,则可以在某种程度上简化事情。

这是linux(unix?)文件系统的一个不错的功能,您可以取消链接打开的文件。它只是删除目录条目。只要打开该文件,该文件仍可用于使其保持打开状态的进程。一旦关闭,inode就被销毁。

对于在NFS挂载上打开的文件,同样的功能是否成立?


您不妨重新措辞(以防止投票失败),乍一看似乎是您在询问是否可以使用NFS删除文件,这让我很困惑,为什么您会问这样一个基本的问题?有。:-)
Red Tux

Answers:


9

简短的回答是肯定的带警告。

由于NFSv3是无状态的,因此NFS客户端驱动程序通过称为“傻重命名”的方式来完成此操作,其中,已删除的文件被重命名为.nfsXXXXXXXXXX。通常这是可行的,但是与本地文件系统相比有一些警告。例如,如果客户端崩溃,则不会删除这些.nfsXXXX文件,而您必须手动清理它们。

我认为从NFSv4.1开始,该协议具有实现无须重命名的“最后关闭删除”所需的功能,但是我不知道是否有任何客户端/服务器还实现了该功能。


应该注意的是,这仅在取消链接的同一客户端上打开文件时有效,因为NFS是无状态的。
昆汀·卡萨诺瓦斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.