我打算使用NFS来提供很多小文件。 他们会经常阅读,所以客户端caching是至关重要的。 NFS是否处理这个? 有什么方法来增加客户端caching在某种方式?
…或者我应该看看另一种解决scheme? 定期使用rsync或unison进行同步不是一个选项,因为这些文件在客户端不时被修改。
首先,NFS不提供caching一致性,所以如果你需要的话,你必须看别处。
NFS指定的是一个称为“近开”一致性的较弱模型。 这意味着当文件closures时,任何脏数据都会被刷新到服务器。 相反,打开文件时,会执行属性检查,这意味着如果客户端从该文件中caching了页面,则会检查这些页面是否仍然有效。
虽然不是在规范本身,大多数的NFS客户端有一些称为属性caching超时,也就是说,在客户端联系服务器重新validation它们之前,目录或打开文件的属性可能有多大。 在Linux上,请参阅actimeo =等装入选项。 更高的值允许更积极的caching,但是如果其他客户端在此期间更新了文件,则会增加使用陈旧数据的风险。