通过分区不同大小的磁盘来提高可靠性?


8

我知道ZFS更喜欢所有具有相同大小的磁盘。但是,如果我有两个大小不同的磁盘(1TB和1.5TB),我希望具有一定的冗余性,但不能进行镜像。因此,我将两个磁盘分成5个分区,每个分区大约500GB,并创建一个“ raidz”池... zfs很高兴。它的设置实际上增加了可靠性吗?想法是,如果磁盘没有完全崩溃,而只有一部分发生故障,我仍然可以访问数据吗?


5
这不会增加可靠性并降低性能。
迈克尔·汉普顿

1
我收到的大多数答案/评论都不够深入,无法解释原因。简单的“反对最佳实践”或“相等的磁盘只是常识”实际上对我来说意义不大。显然,鉴于我拥有的这些特殊磁盘,我在可靠性和性能方面并没有追求最好的。我问有什么我可以做的。同样,情况也发生了变化:在“ Master FreeBSD ZFS”一书中……作者清楚地指出,在过去/ solaris时代,整个磁盘配置被认为是至关重要的,但现在不是。基于分区的置备同样好,甚至受到鼓励。
python152 2013年

特别是对于基于奇偶校验的冗余,并没有对大小相等的绝对要求(我模糊地记得zfs书中还说过,来自不同供应商的相同容量驱动器最终会具有不同的大小)。由ZFS数据放置算法选择如何处理,以平衡扩展奇偶校验位和平衡性能。
python152

@ python152它始终取决于您是否可以承受不利因素(ZFS确实非常灵活,最佳实践是建议,而不是规则)。例如,如果您可以接受停机时间并对分区管理有信心,那么更换部分故障的磁盘就没有那么重要了。我仍然会警惕RAID5写入漏洞,无论您的支持硬件是磁盘,分区还是文件,该漏洞都存在。
user121391 '16

1

Answers:


3

想法是,如果磁盘没有完全崩溃,而只有一部分发生故障,我仍然可以访问数据吗?

从理论上讲,这种想法是正确的。只要您在RAIDZ1 vdev的单个设备上遇到错误,假定其他设备都没有错误,ZFS就能并且将通知您并纠正错误。

现实中可能有所不同的几件事:

  • 错误可能会跨越分区,因此将影响两个或多个设备,这可能导致无法恢复的错误,甚至导致整个池丢失(取决于位置和错误数量)。您可以使用RAIDZ2或Z3减轻这种情况,但是问题始终存在。
  • 重新分区分区时,磁盘需要同时(随机)读取(2次)和写入(1次)同一磁盘。除非您使用Solaris 11.3进行顺序重新同步,否则这将非常慢。在完成重新同步过程之前,您很容易受到其他分区上的错误的影响。如果重新同步时间较长,则遇到额外的URE的机会会增加。它还会在驱动器上增加额外的负载,增加了驱动器完全故障的机会。
  • 想象一下,您的第三个分区(1.5TB磁盘上的最后一个分区)显示了足够的错误,导致池降级并要求更换。如果您无法添加其他磁盘,则无法在没有关机/导出的情况下进行替换,即使这样,它也比平时更为复杂。

基于这些观点,如果可靠性是您的主要目标,我建议不要这样做。假设硬件固定,我将执行以下操作之一:

  1. 使用镜像会丢失500GB,但将来会获得简单的设置并具有易于扩展的功能
  2. 使用两个单独的池,并且copies = 2如果您想对较小的错误具有一定的弹性(与设置相比,整个磁盘故障只会杀死2/5或3/5的数据)
  3. 如果您也想吃蛋糕,请使用ZFS以外的其他文件系统

5

您所描述的有点俗气。

ZFS希望具有相同大小和功能的完整磁盘。出于多种原因,这很关键,但这只是常识。

在概述的情况下,您要做的只是增加环境的复杂性并增加风险。


1
更不用说降低性能了。
迈克尔·汉普顿

@MichaelHampton怎么样?

2
@cat因为ZFS认为您有五个主轴,而实际上却有两个。
迈克尔·汉普顿

4

让我们这样说:

  • 如果磁盘1上有1 TB的数据,则可以将其复制到磁盘2上,并且可以承受丢失任一磁盘的负担。

  • 如果磁盘2上有1.5 TB的数据,则只能将前1 TB的数据复制到磁盘1上。在这种情况下,如果磁盘2出现故障,您将丢失数据。

ZFS非常有能力,但是作为一般规则,根据上述两点,混合磁盘设置很愚蠢并且没有超级用处。如果您关心可靠性和冗余性,则假装第二个磁盘也只有1TB。


4
我在此发表评论,是因为我不觉得它真的适合“答案”,但是如果您真的想使用磁盘上的所有空间,则可以设置一个1TB的镜像,并且然后将最后500GB用作常规的,非复制的卷,用于存放我不太在意的临时空间和临时文件(例如我的浏览器下载文件夹-很高兴将旧内容缓存在其中,但是我什么也没有如果我丢了我想念)。
Benny Mackney
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.