单个块设备上的 ECC

单个块设备上的 ECC

我有一个 SSD,我怀疑它时不时会出现无声故障。我已经运行过badblocks它,很明显这不是坏扇区,而是可能是电子设备中的某些竞争条件,在这种情况下重试可能会正确读取数据。

普通磁盘有一些 ECC,可以通过占用更多空间来纠正错误。 Linux 可以在块设备之上添加 ECC 层吗?

我正在考虑类似于设备映射器的东西,所以也许:

dmsetup create-ecc /dev/orig /dev/mapper/with_ecc

因此对 /dev/mapper/with_ecc 的任何读写都将转换为 /dev/orig 上的 ecc 读/写。

编辑:

似乎其他人也在寻找它: http://permalink.gmane.org/gmane.linux.kernel.device-mapper.devel/8756

答案1

BTFSzfs 专为数据完整性而设计。

默认情况下,btrfs 在单个设备配置上复制元数据。我认为你也可以复制数据,尽管我从未这样做过。

zfs 有copies=n- 我认为它是单磁盘的 RAID1。请考虑选择的冗余量将对可用设备空间以及设备性能产生负面影响。幸运的是,您可以在每个分区/卷的基础上指定复制/副本。

检查这篇博文来自 Richard Elling / Oracle 关于单个设备上的 zfs 的内容。不幸的是,没有为我加载任何图形图像。

真实证据和轶事证据都表明,当设备仍在很大程度上运行时,可能会发生不可恢复的错误。 ZFS 能够承受此类错误而不丢失数据。很酷。不过,墨菲定律最终会追上你。如果 ZFS 无法恢复数据,ZFS 会告诉您哪个文件已损坏。然后,您可以决定是否应该从备份或源介质中恢复它。

答案2

在 SSD 上运行 SMART 自检。以 root 身份执行以下命令(替换/dev/sda为您的 SSD 的设备名称):

smartctl -t long /dev/sda

这将需要几个小时。完成后,您可以通过以下方式查询结果

smartctl -a /dev/sda | less

向下滚动到该SMART Selective self-test log块。如果最上面的结果显示Completed without error,则您的 SSD 没有问题。如果报告错误,则表明它已损坏,您需要尽快保存数据。

相关内容