如何测试Snapraid数据损坏?

如何测试Snapraid数据损坏?

我在硬盘上运行 Snapraid。但是,我想测试它的数据完整性功能,看看它们是否真的有效。

但我真的不明白如何“破坏”我的数据。我只能手动更改文件内容。但是,Snapraid 会正常同步此更改。Snapraid 修复会自动将文件恢复到更改之前的状态。

但是我如何测试实际的数据损坏,以及如何知道 Snapraid 是否真的修复了它?

答案1

也许这个有用。首先同步你的数据:

snapraid sync

现在检查文件的大小和时间戳

stat foo.txt

现在创建时间戳的备份:

touch -r foo.txt foo.timestamps

下一步是foo.txt通过文件编辑器(如vi/)进行更改nano,而不改变文件大小(替换一个字符)。

之后恢复时间戳:

touch -r foo.timestamps foo.txt

删除时间戳备份文件:

rm foo.timestamps

检查并比较结果

stat foo.txt

检查新文件

snapraid diff

由于我们没有改变 foo.txt 的文件大小和时间戳,因此它不应该返回任何内容。

最后开始全面清理:

snapraid scrub full

现在 snapraid 创建所有文件的校验和并将它们与元数据进行比较,并且 foo.txt 应该被列为可修复文件。

答案2

看起来 snapraid 备份了 raid 阵列的奇偶校验信息。如果您使用支持热插拔的硬件 raid 控制器,并且使用除 raid 0 以外的任何设备,请拔下驱动器然后重新插入。重建将在虚拟磁盘上开始。重建开始后,在虚拟磁盘上运行 chkdsk 或 fsck。这将导致奇偶校验位和文件系统变得混乱,从而损坏您的阵列。Snap 驱动器文档说它无法处理大量奇偶校验损坏,因此可能不是最好的方法。

相关内容