单个硬盘驱动器上的 RAID-Z 是愚蠢的吗?

ped*_*edz 18 zfs raidz

显然,如果整个驱动器都死了,那么单个磁盘上的 RAID-Z 将无济于事。但是其他类型的错误呢?

根据我的经验,我有时会遇到无法读取的文件。在 Mac OS X 上,系统会挂起一段时间,然后返回错误。我将文件移到某处,并假设该文件有坏扇区或坏块,甚至可能是整个坏道。

我可以追溯到软盘时代,手动管理磁盘故障只是一项常见活动。当然你会尽快更换坏软盘,但有时你不能立即这样做,所以做法是找到坏区,将其分配给一个文件,然后永远不要删除该文件。

第一个问题是硬盘如何失效?我上面的假设有效吗?坏块坏了但整个驱动器仍然大部分可用是真的吗?如果是这种情况,那么 RAID-Z 似乎可以使用其他块(区域)的奇偶校验来修复磁盘的坏块或坏区域。

用例用于备份。如果我每周将数据推送到 8 TB 驱动器一次,将其视为 7 TB 数据驱动器加上 1 TB 奇偶校验是否有意义,希望额外的奇偶校验将帮助我从位腐烂、坏扇区或其他本地化驱动器故障?

如果该理论在技术上没有缺陷,那么可以配置 ZFS 来执行此操作吗?

编辑:我在发布这个问题之前看到了另一个问题。拆分为单独的分区,其中每个分区都组合在一起是一种选择。但在概念上,有可能让 N 个分区的块映射相互交织,这样一个条带,而逻辑上跨越 N 个分区的物理上会非常靠近。这是我的问题的要点“ZFS 可以配置为这样做吗?” 即只是 ZFS ...不是带有分区技巧的 ZFS。

Ter*_*nen 23

由于 RAID-Z 奇偶校验的工作原理是将奇偶校验块放在池中的另一台设备上,因此您需要将设备分区为 N+1、N+2 或 N+3 个相同大小的分区,其中 N 个分区包含数据和 1 / 2包含奇偶校验位。

在这些分区之上,您将创建一个 zpool,使用您选择的 RAID-Z,然后在 zpool 上创建一个文件系统。

所以,理论上这是有效的。在实践中,这会使文件系统性能变得很糟糕,因为文件中的后续块将位于不同的 ZPool 设备中,这些设备位于不同的分区中。因此,在读取一个块后,HDD 必须移动到 HDD 盘片的不同区域,读取下一个块等。

答案是:是的,这将是愚蠢的。

  • @JFL:SSD 中使用的 NAND 闪存正是该解决方案试图解决的问题,即单个块死亡。事实上,对于 NAND,这是一个大问题,以至于所有 SSD 控制器都明确地为您管理它。因此,SSD 最常见的 _visible_ 故障是整个设备完全丢失,其次可能是设备出现只读故障。这两个问题都不会从这里阻止的解决方案中受益。 (7认同)
  • 此外,SSD 会重新排序块。应用的磨损均衡优化之一是将写入分组在一起。对不同分区的连续写入最终会出现在同一个擦除块中,因此如果擦除块发生故障,您将失去多次存储相同数据的好处。 (6认同)
  • 在 SSD 上执行此操作怎么样? (2认同)