并发 NFS 访问

并发 NFS 访问

如同并发 FTP 访问

NFS 如何处理并发文件访问?假设一个客户端正在更新/覆盖 NFS 服务器上的文件,而服务器上的一个进程同时直接从文件系统读取同一个文件。NFS/Linux 中是否存在某种文件读/写的原子处理,还是我必须使用 tmp 文件来确保数据一致性?

我担心读取文件的过程会得到损坏的数据。

答案1

NFS 通常与姊妹协议 NLM(网络锁监视器)一起提供,但它仅适用于咨询性(即非强制)锁。

对于这个问题以及与您的问题相关的其他问题,您主要想阅读“NFS 被认为有害

答案2

这些冲突通常通过锁来解决。应用程序需要确保锁定正确。话虽如此,需要注意的是,大多数应用程序确实倾向于锁定文件,尤其是在写入期间。

答案3

这个问题在任何多任务操作系统文件系统上都是一样的。什么可以阻止一个进程更改另一个进程正在使用的文件?锁。默认情况下没有任何东西可以阻止这种情况。

您可以信任 NLM 或其他系统,但它们可能存在缺陷。我们倾向于创建软链接。如果创建失败,其他人就会拥有该文件。请记住,当您使用完该文件后删除该链接。

当网络上的一台机器或一个应用程序死机时,由于存在更多的错误状态,删除死锁总是会出现问题,我发现必须相信任何类似 NLM 的系统也能 100% 正确完成这项工作。

如果您想保证访问,那么您需要一个特殊的守门服务器,该服务器只允许对整个文件进行原子读写。

相关内容