nfsv4 linux c中的并发文件访问
使用C,在
Linux下运行,我试图弄清楚如何让2个不同的进程访问位于NFSv4文件系统上的同一文件.具体来说,我想让一个程序打开一个文件进行读取,然后让第二个程序打开该文件进行写入.我打算使用AWS的新EFS(弹性文件系统),而EFS只是NFSv4.
程序的本质是这样的,作者本质上只会附加到文件中.在作者完成并调用fflush之前,读者永远不会访问新添加的信息. NFSv4是否支持这种情况? 或者是否有更好的方法来实现这种并发NFSv4文件访问? 解决方法
NFS v4确实支持文件的字节范围锁定(如
RFC 3530 “NFS version 4 protocol”摘录中所述):
有关锁定和基于租约的模型的更多详细信息,请参阅同一RFC的第8节. 您的程序需要使用fcntl来管理锁定.我的建议是编写一个测试来检查EFS提供的NFS v4的实际实现是否支持按预期进行锁定(某些方面在规范中是可选的).您可以参考this lock testing suite的源代码,它支持多客户端测试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |