是否有文件系统可以自动镜像数据并重新分配避免坏块?

Wag*_*ior -2 raid hard-drive bad-blocks

让我在这里更好地解释一下...我有一个带有坏块的 1 TB HDD,我知道它会降级直到停止,但我仍然想继续使用它。所以,我的问题是:是否有任何文件系统能够对此驱动器进行分区,例如两个 500GB,在分区上镜像数据并自动执行以下操作:

  1. 尝试从磁盘读取数据。
  2. 发现一个分区有一个坏块。
  3. 将此有风险的数据(现在只能从一个分区读取)复制到同一分区(坏块)上的另一个块。
  4. 减少磁盘上的总空间(减少一个块?),因为您不能再完全镜像 500GB。

我不是基础设施方面的专家,我是一名开发人员,所以,也许有一些非常了解的东西,比如 RAID os 可以为我做到这一点,但我真的不知道。我尝试过一次 RAID,但是当我失败 1 次时,Windows 会自动提醒我,并且分区再也不会“同步”了。

任何操作系统上的任何解决方案对我来说都可以。

谢谢!

rnx*_*xrx 5

这实际上并不可用,因为它在现代硬盘驱动器上是一个糟糕的主意(......现代是过去 15 年左右的任何东西)。了解操作系统和文件系统用于在磁盘上查找数据的地址实际上并不直接对应于磁盘上的字面物理地址,而是对应于驱动器控制器上的分配表,这一点非常重要。驱动器本身不断地对磁盘执行错误检查,并在必要时安静地移动数据块以响应错误的读取和写入。您将磁盘分成几块以执行纠错的想法基本上被打破了,因为不能保证这些块本身会相互完全隔离。

另一点是,如果驱动器已经到了实际上失败到足以在尝试读/写时返回错误代码的地步,那么它已经比您意识到的要糟糕得多 - 因为,实际上,您重新看到是确认驱动器的固件无法再纠正错误。也就是说,如果您看到来自 SMART 诊断的信息告诉您有关可纠正错误数量的增加,那么您就可以预览事情正在发展(即订购更换驱动器)。但是,如果操作系统出现错误?事情已经非常非常糟糕了,你上周应该已经更换了它。

所以有几点建议:

  1. 看看一些写时复制文件系统(例如 btrfs 和 ZFS),它们实际上采取措施来验证磁盘数据的状态。但是,这仅在多驱动器设置的上下文中才有意义,因为您需要至少为文件系统提供一个找到数据的干净副本的机会。

  2. 1TB 磁盘在这一点上非常便宜,而且肯定比您几乎肯定会遇到的计划外崩溃的潜在后果便宜得多。说真的 - 你问的问题类似于要求找到一种方法来继续驾驶一个光秃的轮胎并且侧面有一个巨大的凸起。我们不能说正是时候它会结束不好只是它会的。