效果如何绑定文件系统当用户直接(即不通过bindfs)对下层目录进行一些修改时,行为如何?
(动机:我认为在写入目录时用 bindfs 包装目录不是一个好主意。但这让我很好奇。
理论上,如果有另一种 FUSE 文件系统或基于一般 FUSE 原则的答案,我也会感兴趣,但我想不出在这里提出问题的好方法)。
内核绑定挂载——mount --bind
以某种方式共享VFS缓存。据我所知,这是一个完全支持并发修改的示例。
修改支持文件系统的示例是不支持根本就是内核overlayfs
文件系统。
不允许在已安装的覆盖文件系统的一部分时更改底层文件系统。如果底层文件系统发生更改,则覆盖层的行为是未定义的,尽管它不会导致崩溃或死锁。
答案1
看起来,bindfs 的问题比 overlayfs 的问题要少。
它基本上意味着除了 MacFuse 的一些限制之外,有完全支持。
MacFuse 默认情况下会缓存文件内容。这意味着源文件中的更改并不总是在安装点下立即可见。
-o nolocalcaches
可用于禁用缓存。
https://bindfs.org/docs/bindfs.1.html
我强烈怀疑这是忽略提及某些事情,因为还有文件属性的缓存(例如权限)。 FUSE 还缓存目录查找。也就是说,FUSE 上这些缓存的默认生命周期,例如attr_timeout
,似乎是非常短,例如1秒。