ext4 元数据校验和在验证文件数据完整性方面意味着什么?

ext4 元数据校验和在验证文件数据完整性方面意味着什么?

在研究 BTRFS 时我遇到了2017 年的帖子,回复如下:

套用上游的观点,btrfs 多年来一直“几乎准备好生产”,但从未达到真正准备好的阶段。
与此同时,btrfs 提供的许多功能现在可以通过其他更成熟和稳定的存储技术(如 ext4、XFS、LVM 等)获得。我们投入了大量精力来改进这些技术,目前的红帽产品已经达到了这样的程度。几乎覆盖了整个 btrfs 功能集。

所以我在谷歌上搜索了“ext4 checksum”,发现 ext4 可以进行(元数据)校验和(自 2012 年以来也是如此),根据,与 btrfs(和 zfs?)的做法类似。
ext4 文档还说:

为了防止这种非恶意损坏,需要在文件系统上存储元数据对象的校验和,以防止损坏的元数据破坏文件系统。

尽管如此,它的后面是:

理论上,btrfs 具有更强的防止腐败的保证(统一校验和)全部元数据块、所有元数据的冗余副本等。

现在,据我所知,元数据校验和并不能真正帮助防止实际文件数据损坏?但是 ext4 文档中的这一行,加上上面的一行,暗示它还有助于防止数据损坏,这确实让我烦恼:

磁盘上的数据仍然很可能被损坏

所以,我的问题是,仅仅元数据校验和不足以帮助保护我的驱动器上的数据不被损坏吗?

附:我绝不认为或暗示 ext4(如 zfs 或 btrfs)会自动修复损坏的数据。我只是想知道它是否会通知我我的数据是否以及何时损坏。毕竟我将在离线外部驱动器中使用它。谢谢。

答案1

据我所知,校验和通过比较两端以相同方式生成的校验和(可能是加密哈希函数),有助于确保“发送”的数据是“接收”的数据。

正如文档所解释的,它只能检测损坏。例如,随机位翻转导致存储中的数据损坏。但是,它无法防止由于错误而导致的数据损坏。

相关内容