![当启用 BTRFS 存储的主机的文件夹由其他主机远程安装时,BTRFS 自我修复机制是否适用?](https://linux22.com/image/780153/%E5%BD%93%E5%90%AF%E7%94%A8%20BTRFS%20%E5%AD%98%E5%82%A8%E7%9A%84%E4%B8%BB%E6%9C%BA%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E7%94%B1%E5%85%B6%E4%BB%96%E4%B8%BB%E6%9C%BA%E8%BF%9C%E7%A8%8B%E5%AE%89%E8%A3%85%E6%97%B6%EF%BC%8CBTRFS%20%E8%87%AA%E6%88%91%E4%BF%AE%E5%A4%8D%E6%9C%BA%E5%88%B6%E6%98%AF%E5%90%A6%E9%80%82%E7%94%A8%EF%BC%9F.png)
文件系统 BTRFS 具有一些有关数据一致性/错误检测和纠正的有用功能(我们称之为自我修复机制)。在以下情况下,这些机制是否适用?
具有 BTRFS 存储的服务器 <--> WebDAV <--> 客户端 PC
客户端电脑使用 WebDAV 挂载(或借助任何其他协议的其他远程挂载类型)来访问服务器上的文件。
现在:当在客户端打开一个文件并在没有更改的情况下关闭它并且在此期间发生位翻转时会发生什么?到目前为止,我假设如下:
在处理挂载中的文件时,服务器端发生的位翻转不会有问题,因为 BTRFS 会覆盖这一点。客户端的位翻转将不会被服务器的 BTRFS 机制处理,因为底层 BTRFS 的服务器不知道翻转的位是否实际上是对文件的所需更改。远程挂载使 BTRFS 成为黑匣子,不是吗?
到目前为止,从高层次来看这是否正确?
答案1
btrfs 提供的保护是在内核文件系统代码中在服务器上本地发生的写入磁盘和读取磁盘之间进行的。一旦文件进入服务器、网络或客户端的内存中,就需要其他机制来防止(非常罕见的)位翻转损坏。