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


18

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

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

我可以追溯到软盘时代,在这种情况下,手动管理磁盘故障只是一种常见的活动。当然,您将尽快更换损坏的软盘,但是有时您无法立即进行更换,因此,实践是找到损坏的区域,将其分配到文件中,然后再从不删除该文件。

第一个问题是硬盘如何发生故障?我的上述假设是否正确?坏块变坏了,但是整个驱动器仍然大部分可用,这是真的吗?如果真是这样,那么似乎RAID-Z可以使用其他块(区域)的奇偶校验来修复磁盘的坏块或坏区域。

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

如果该理论在技术上没有缺陷,那么可以配置ZFS来做到这一点吗?

编辑:发布此问题之前,我看到了另一个问题。一种选择是将每个分区分组到多个单独的分区中。但是从概念上讲,可以将N个分区的块映射相互缠绕在一起,以便在逻辑上跨越N个分区的一个条带在物理上非常接近。这就是我的问题的重点:“可以配置ZFS来做到这一点吗?” 即只是ZFS ...而不是ZFS的分区诡计。


7
如果要单磁盘冗余,请考虑制作par2存档。使用ZFS,您可以设置copies=2,但是这样做会导致50%的存储罚款。另外,我不是ZFS专家,但是我的直觉(可能是错误的)告诉我ZFS对您提出的解决方案不满意。PAR2是一种成熟的灵活技术。使用它不仅可以满足您的奇偶校验要求,而且还可以让您根据需要在每个归档的基础上设置奇偶校验的数量。
EEAA


HDD上的磁道称为圆柱体(因为可能有多个盘片)。
LawrenceC

1
当驱动器出现故障时,这往往是一个加速的过程-损坏的扇区的比率会增加,直到整个驱动器无法使用为止。如果驱动器开始出现故障,并且RAID-Z默默地为您提供补偿,则可以成功写入备份,但是当您要从中恢复时,已经超出了可用性。我宁愿我的备份设备在备份时大声地出现故障,一旦它开始变坏,就可以更换它,并继续相信成功写入的内容可以自信地读取。
安东尼X

@EEAA-听起来就像我会用的。谢谢。并且,感谢所有发表评论的人。
pedz

Answers:


23

由于RAID-Z奇偶校验通过将奇偶校验块放在池中的另一台设备上而起作用,因此您需要将设备划分为N + 1,N + 2或N + 3个相等大小的分区,其中N个分区包含数据和1/2包含奇偶校验位。

在这些分区上,您将创建一个具有所选RAID-Z的zpool,然后在zpool上创建一个文件系统。

因此,从理论上讲,这是可行的。实际上,这将使文件系统的性能变得糟糕,因为文件中的后续块将位于不同分区中的不同ZPool设备中。因此,在读取一个块之后,HDD必须移动到HDD盘片的其他区域,读取下一个块,依此类推。

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


2
在SSD上如何做呢?
JFL

7
@JFL:用于SSD的NAND闪存恰恰具有该解决方案试图解决的问题,即单个块即将消失。实际上,对于NAND来说,这是一个很大的问题,所有的SSD控制器都明确地为您管理它。结果,SSD 最常见的可见故障是整个设备全部丢失,可能是随后的设备出现只读故障。这两个问题都无法从此处避免的解决方案中受益。
MSalters

6
此外,SSD对块进行重新排序。应用的损耗均衡优化之一是将写入分组在一起。对不同分区的连续写入将最终在同一擦除块中进行,因此,如果擦除块发生故障,您将完全失去多次存储相同数据的好处。
liori
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.