我如何检测(并纠正)静默数据损坏?

我如何检测(并纠正)静默数据损坏?

我的问题是,如何检测家用电脑(Windows + Linux)上的静默数据损坏。我使用 rsync 等自动备份(带有版本历史记录)。但我如何知道几个月/几年后长期未使用的文件(如论文或我的银行历史记录)仍然完好无损?也许我只是在备份损坏的文件。

如果只有一个文件,我可以每隔几周检查一次它是否仍然有效(散列或直接打开它),但对数百个文件执行此操作很普通。即使我发现文件已损坏,我如何知道它何时损坏的?

此时,我需要在备份中找到文件仍然正常的日期。如果其中有一个工作副本!并且也没有损坏。

欧洲核子研究中心 (CERN) 数据完整性研究

答案1

如果您想纠正这些丢失的数据,您必须使用某种数据复制。要么是 RAID,要么是备份。
备份是首选方法,因为它们可以保护您免受文件被删除、文件系统崩溃等的影响。RAID 只能防止部分和完全磁盘故障。您必须查看系统日志才能查看任何故障。
在 Linux 上,您可以使用 ZFS。每组数据都有自己的校验和,文件系统驱动程序会处理它,并进行实时更正。我认为这是目前最好的方法。

如何检测它们?
嗯,对于 Linux 来说非常简单:除了 ZFS,只需使用软件 RAID,默认配置每月进行一次数据清理(Debian 和 Ubuntu,其他系统可能也一样)。
对于 Windows... 你必须使用一些技巧。例如,每月读取一次每个文件(使用脚本)并查看系统日志是否有任何报告。
如果你有一个硬件 RAID 控制器(不是假 RAID,而是真正的 RAID 卡),它们中的大多数都包含执行自动清理的软件。

另一种方法是存储文件校验和,并定期根据校验和检查文件。Tripwire 在 Unix 上就是这么做的。您必须支持修改后的文件具有不同校验和的事实。我不知道 Windows 上有什么软件,但其他人可能知道。

相关内容