正如上所解释的维基百科和Arch Linux 维基“Parchive”可用于生成附加数据file
,可用于验证,甚至在某种程度上用于修复/恢复所述文件,以防该文件部分损坏(即,HDD 的 4K 块变成无法阅读)。
考虑到工作量(CPU 和内存来存储额外的冗余修复数据),是否有一种方法可以在块设备上使用 parchive 的概念。我会想象
/dev/sdX
有两个分区/dev/sdX1
占存储的 90%,并且/dev/sdX2
包含par2
与 的内容相关的数据/dev/sdX1
。
考虑到牺牲一些 CPU 和存储以提高数据完整性所带来的价值,我想象甚至有一个 Linux 内核模块(例如与device mapper
功能相关)可以提供这样的功能(也许这就是software raid
功能的一部分?)
最后是与问题相关的方面。是否有任何常见的文件系统采用这种归档机制来防止数据丢失(即由于位损坏或其他块损坏)? (我知道它zfs
拥有某种保护,并且ext4
已知可以存储重要内容的多个副本,例如使其superblock
可能还具有parchive
类似功能?)
答案1
Parchive/par2 采取长的计算奇偶校验数据的时间。例如,我使用 par2 将文件刻录到蓝光,在大约 10% 的奇偶校验数据下,在一台较新的机器上大约需要一个小时。这会随着数据量和奇偶校验量而扩展(不确定是否线性或更差),因此对于合理大小的块设备来说,需要花费几天的时间。我不确定是否有一种方法,从数学上来说,可以优化更改文件,否则任何写入都将需要完全奇偶校验重新计算。
块设备上通常使用其他奇偶校验方案:RAID5 和 RAID6 都是奇偶校验方案。大多数 RAID 系统(软件和硬件)都支持它们。