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