NFS是否允许我取消
链接/
删除打开的
文件,就像我可以使用本地
文件系统一样?
我问的原因是我正在开发一些在多个服务器上运行的东西,并且可以作为后端访问NFS.如果我可以对打开的文件进行取消链接,它会稍微简化一些事情.
这是linux(unix?)文件系统的一个很好的功能,你可以取消链接一个打开的文件.它只是删除目录条目.只要文件处于打开状态,该文件仍然可用于保持文件打开的进程.一旦关闭,inode就会被破坏.
对于在NFS挂载上打开的文件,是否也适用相同的功能?
简短回答是肯定的.
由于NFSv3是无状态的,因此NFS客户端驱动程序使用称为“silly rename”的东西来完成此操作,其中已删除的文件被重命名为.nfsXXXXXXXXXX.这通常有效,但与本地文件系统相比,有一些注意事项.例如,如果客户端崩溃,则不会删除那些.nfsXXXX文件,您必须手动清理它们.
我认为从NFSv4.1开始,协议具有实现删除最后关闭而不需要重命名的所需功能,但我不知道是否有任何客户端/服务器实现了这一点.