gpt4 book ai didi

raid - 是什么导致 HDD 上的静默数据损坏?

转载 作者:行者123 更新时间:2023-12-04 23:20:25 32 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

上个月关门。




Improve this question




一些地标studies几年前的现在表明silent corruption在大型数据集中比以前预期的要广泛得多(今天我猜你会说它是 more than commonly realized )。

假设应用程序和操作系统编写了一个扇区并且有时间让所有内容刷新,没有崩溃或异常关闭,也没有会命令保存错误数据的软件错误。

稍后,一个扇区被读回,并且没有从 HDD 读取错误。但它包含错误的数据。

由于 HDD 数据编码包含纠错码,我认为任何神秘的状态更改通常都会被检查注意到。即使检查不是很严格,因此会出现一些错误,但仍然会检测到更多的错误,这些错误会告诉您驱动器有问题。但这并没有发生:显然,数据被发现是错误的,没有任何症状。

怎么会这样?

我在台式机上的经验是,有时曾经好的文件后来发现是坏的,但这可能是由于在写入过程中没有注意到的问题,无论是移动扇区还是文件系统跟踪数据。关键是,在写入时可能会引入错误,其中 HDD(或 RAID 硬件)内部的数据已损坏,因此写入错误的数据与其纠错码相匹配。如果这是(唯一的)原因,那么一次验证应该足以表明它确实写得很好。

或者,数据在磁盘上显示正常后是否会变坏?即验证一次,一切正常;稍后验证并发现错误,此时该扇区尚未在中间写入。我认为这就是意思,因为通过改进的刷新检查可以很容易地处理写入时错误。

那么,如何在不触发数据附带的纠错码的情况下发生这种情况呢?

最佳答案

可能会发生静默数据损坏的某些方式:

  • 数据写入前内存损坏(在这种情况下,如果校验和是在损坏后计算的,即使是文件系统级别的校验和也无济于事)
  • 偶然匹配校验和的 SATA 电缆错误
  • 磁盘驱动器缓存内存中的位翻转(不确定是否已校验和,可能取决于品牌和型号)
  • 写入前损坏数据的驱动器固件中的错误(校验和与损坏的数据匹配)
  • 偶然匹配校验和的磁盘 block 损坏
  • 读取将损坏的数据返回到驱动器 Controller ,该数据偶然匹配校验和
  • 验证校验和后损坏数据的固件错误
  • 将数据移到那里后主内存损坏
  • 处理数据的软件中的错误(尽管这通常不被视为此列表的一部分,但被归类为软件错误)

  • 偶然匹配其错误代码的腐败本身是非常不可能的,但大量数据和生日悖论确保它们确实发生。今天的驱动器一直存在内部读取错误,并且严重依赖校验和来捕获它们。如果是这样,他们只是重新读取该扇区,直到读取良好,如果扇区变得太糟糕,他们会默默地将其与备用扇区交换。如果在从 SATA 电缆读取数据时发生校验和错误,SATA Controller 也可能会静默地重新发送数据。

    通过使用更长的校验和,可以任意减小仍然匹配校验和的随机损坏的机会,但这涉及更多的存储和处理开销。对于 SATA 等标准化协议(protocol),您不能只更改校验和大小而不破坏兼容性。并且没有协议(protocol)或磁盘级别的校验和可以使您免受固件错误或其他软件错误的影响。

    像 ZFS/Btrfs 这样的文件系统级校验和的一大优势是它们可以捕获所有这些错误,除了主内存损坏(使用 ECC 内存来防止这种情况)和软件错误。他们可以使用比单个磁盘 block 更大的校验和 block 大小,以减少较长校验和的存储开销。

    关于raid - 是什么导致 HDD 上的静默数据损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28535021/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com