是否值得使用 vdmfec 备份到外部 SATA/IDE 硬盘?

是否值得使用 vdmfec 备份到外部 SATA/IDE 硬盘?

我有一些用于备份的 SATA/IDE 硬盘盒。使用 VFAT 格式化驱动器,因为我需要能够与 Windows 和 OS/X 计算机共享它们。

备份脚本通过管道传输输出弗德姆菲克为文件提供错误纠正。 (当我发现一些旧的备份文件已损坏时,我开始这样做。)

上的例子联机帮助页指 1.44MB“软盘”。

所以我的问题是:是否值得对硬盘使用 vdmfec(因为我听说较新的硬盘具有内置的纠错功能)?如果是这样,我应该使用与默认设置不同的设置吗?

另外:Linux 是否有比 vdmfec 更好的纠错工具?

答案1

在备份中添加纠错码 (ECC) 绝对是一件好事。您需要牺牲一些额外空间来以数据冗余的形式获得一定的稳健性。

vdmfec看起来是一个不错的小工具。默认情况下,它假定块大小为 b=1024 字节,并且为每 K=14 个输入块写出 N=18 个块。这意味着默认情况下,输出大小每 14 个块增加 NK=4 个块,大小增加约 29%。您可以使用参数 K 和 N 来获得或多或少的冗余,尽管我的感觉是默认值可能适合大多数用途。

不过,您需要注意一些潜在的问题。首先,根据手册页:

请注意,N、K 和块大小参数不会写入输出!运行解码器时必须指定相同的参数。 (实际上,解码器能够显式检测无效的 K 值,但不正确的块大小或 N 值将导致坏块和解码失败。)

因此,请记住记录每个备份使用的特定参数。即使您始终使用默认值,显式记录这些值也可能是个好主意,因为默认值可能会在程序的新版本中发生更改。

其次,手册页是这样说的:

解码器能够从不可查找的介质(例如管道)中读取数据,但是不会检测到缓冲区欠载,从而导致失败。此外,从管道读取时,必须读取整个文件。从可查找流中读取数据会更快,因为只需读取 N 个块中的 K 个好块。

这意味着vdmfec创建备份时最好(也是最安全)将其放在命令管道的最后。例如:

tar -cf - /data | gzip | vdmfec > /backups/data.tgz.vdm

vdmfec通过在备份时最后进行编码,这意味着您可以vdmfec在恢复时对可查找文件而不是不可查找管道使用解码器,从而避免使用管道时可能出现的潜在问题。例如:

vdmfec_decode /backups/data.tgz.vdm | zcat | tar -xf -

总之,我想说这vdmfec是一个很好的工具,可以使您的备份更加强大,防止由于介质退化引起的错误而导致数据丢失。当今的硬盘驱动器正在使用越来越高的位密度来实现不断增加的多 TB 容量,因此我认为为了安全起见,绝对值得在备份中添加一些额外的冗余。

最后:另一个具有类似功能的工具vdmfecpar2手册页),但它的工作方式完全不同。par2如果您发现需要split归档文件,可能是一个更合适的工具,因为它par2的开发目的是将 ECC 添加到分割成许多较小文件的大文件中(例如,用于发布到 USENET 二进制文件组)。

相关内容