创立于 2008 年 · 数字版 · 2026年6月15日

SMB IT Journal

面向小型企业的信息技术资源

中文
存储

热备盘还是一团乱麻

为 RAID 增加一层安全保障的常见做法是准备好备用磁盘,从而尽量缩短故障磁盘的更换时间。这种做法最极端的形式被称为配置“热备盘”–一块实际安装在阵列中但处于闲置状态的备用磁盘,直到阵列检测到某块磁盘发生故障,此时系统会自动停用故障磁盘并启用热备盘,就如同有人刚刚从阵列中拔出一块磁盘并插入另一块一样,使重建操作(对阵列的重建)能够尽快开始。这可以将更换新磁盘所需的时间从数小时或数天缩短到数秒,理论上能够极大地提升安全性。

首先,我想谈谈我个人认为在命名约定上存在的一个错误。我认为,我们所称的热备盘其实应当被称为温备盘,因为它虽然就位待命,却并不包含可立即投入使用所需的数据。一块存放在机箱之外、需要有人介入手动更换的备用磁盘,应当算作冷备盘。要真正成为热备盘,磁盘应当装满数据,因此它会以某种方式作为 RAID 阵列的一个参与成员存在。Red Hat 有一篇很好的文章,讲述了这一术语如何应用于灾难恢复站点,可供参考。这一区分很重要,因为我们所称的热备盘本身并不包含数据,也不会立即顶替故障磁盘,而是立即介入开始恢复丢失磁盘的过程–这是一个至关重要的区别。

为了使概念保持清晰,从现在起,我会将厂商所称的热备盘称为“温备盘”。这样做的道理很快就会明朗。

温备盘有两个主要的顾虑。第一是温备盘在大多数使用场景中作用甚微,第二则是“自动化阵列毁灭”的风险。

大多数人把温备盘的概念当作一种手段,用来缓解奇偶校验 RAID 5 阵列上第二块磁盘故障的高风险。RAID 5 阵列仅能防范阵列内单块磁盘的故障。一旦有一块磁盘发生故障,阵列便不再具备任何形式的奇偶校验保护,任何额外的磁盘故障都会导致整个阵列彻底丢失。之所以选择 RAID 5,是因为它在给定容量下成本极低,而它正是以牺牲可靠性来换取这种成本效益。正因为如此,相比 RAID 6 或 RAID 10 等其他 RAID 方案,RAID 5 显得更具风险,所以人们常常采用温备盘,以尽量缩短阵列处于降级状态的时间,让阵列能够尽快开始自我重建。

所以这里更值得注意的结论是,温备盘通常被用作一种缓冲,以便作为节约成本的手段去使用可靠性较低的 RAID 阵列类型。温备盘在 RAID 5 阵列中尤为常见,其次是 RAID 6 阵列。而这两者之所以被选用而非 RAID 10,都是出于单位容量成本的考量,而非可靠性或性能。确实有一种情形下,温备盘的理念真正有助于提升可靠性,那就是带温备盘的 RAID 10,但我们稍后再谈。在这一情形之外,我认为温备盘在现实世界中意义甚微。

我们先从带温备盘的 RAID 1 开始考察。RAID 1 由两块或更多磁盘组成镜像。加入一块温备盘的好处在于,如果镜像对中的一块磁盘损坏,温备盘会立即开始镜像剩余的磁盘,你很快又会重新获得保护。这非常好。只是存在一个小小的缺陷:与其使用温备盘,不如一开始就把同一块磁盘加入 RAID 1 阵列,让它充当第三块镜像盘。在充当第三块镜像盘时,这块磁盘会提升阵列的整体性能,带来近乎百分之五十的读取性能提升,同时写入性能保持不变,并且在磁盘发生故障时提供即时保护,而不是“待其重新镜像完成后”才有的保护。从根本上说,它将成为真正的“热备盘”,而非温备盘。因此,无需多花一分钱,系统只要让这块额外的磁盘以“在阵列之中”的热态运行,而非温态闲置、等待灾难降临,就能获得更好的磁盘阵列性能和更高的可靠性。

在 RAID 5 中,我们看到对温备盘理念更为强烈的警示,而这里恰恰是温备盘比任何其他情形都更常见的地方。RAID 5 是单奇偶校验 RAID,能够利用奇偶校验重建阵列中发生故障的任何一块磁盘。真正的问题正是从这里开始。与 RAID 1 中重新镜像操作可能相当迅速不同,RAID 5 的重建有可能耗费相当长的时间。在这一重建过程成功完成之前,温备盘都无助于保护阵列–这通常需要许多小时,达到数天也是寻常事,视阵列大小及其繁忙程度,甚至可能长达数周或数月。如果我们把同一块温备盘转而委派为阵列的一个成员,并增加一条额外的奇偶校验条带,我们就能得到 RAID 6。用我们为 RAID 5 加温备盘所准备的同一组磁盘,可以组建出容量完全相同的 RAID 6 阵列。同样,正如上面 RAID 1 的例子一样,这非常类似于拥有一块热备盘——磁盘携带着实时数据参与阵列,而不是闲置一旁,等到另一块磁盘故障后才启动接管的过程。在这一配置下,阵列在发生故障时会降级为相当于 RAID 5 的状态,但不需要任何重建时间,因此这块额外的磁盘可以立即发挥作用,而不是只有在可能极为漫长的重建过程之后才有用。所以,在花费相同、容量相同的前提下,选择将磁盘配置为 RAID 6 而非 RAID 5 加温备盘,是一个全面的胜利。

我们可以将这一例子延伸到 RAID 6 加温备盘。这个例子稍微难以界定,因为在大多数 RAID 系统中,除了 ZFS 中并不太常见的 RAIDZ3 之外,在 RAID 6 之上并没有更高一级的三重奇偶校验系统可用(设想一下,比方说,假如存在 RAID 7。)如果存在这样的系统,那么针对 RAID 5 加温备盘所作的完全相同的论证也会适用于 RAID 6 加温备盘。在大多数情况下,带温备盘的 RAID 6 必须与 RAID 10 阵列相权衡才能证明其合理性。RAID 10 比 RAID 6 阵列性能更好、可靠性也高得多,但人们选择 RAID 6 通常是为了相对 RAID 10 而节省成本。然而,为了抵消 RAID 6 的脆弱性,有时会动用温备盘。在某些情况下,例如一个带温备盘的小型五盘 RAID 6 阵列,其花费与一个不带温备盘的六盘 RAID 10 阵列是分文不差地相当的。在更大的阵列中,RAID 6 的成本优势确实会显现出来,但成本节省越大,风险差距也就越大,因为奇偶校验 RAID 系统的风险随阵列规模增长的速度,远快于像 RAID 10 这样基于镜像的 RAID 系统。今天省下的每一分钱,都是以明天发生停机或数据丢失的风险为代价的。

温备盘真正能够有效发挥作用的场合,是在 RAID 10 阵列中,那里温备盘的重建是一次镜像重建,就像在 RAID 1 中一样,不会带来奇偶校验风险;并且在 RAID 10 之上不存在一个合乎逻辑的扩展型 RAID 系统,让我们去为了省钱而选择一个更脆弱的系统。在这里,为关键阵列加入温备盘也许是合理的,因为没有更具成本效益的方式来获得同等的额外可靠性。然而,RAID 10 即便不带温备盘也已经非常可靠,以至于任何正在考虑 RAID 5 或 RAID 6 加温备盘的机构,从逻辑上讲都会止步于简单的 RAID 10,因为它早已超越了他们原本打算退而求其次接受的可靠性水平。因此,只有那些根本不考虑这些更脆弱系统、并且追求尽可能稳健方案的机构,才会从逻辑上把 RAID 10 加温备盘视为他们的解决方案。

仅为技术上的严谨起见,RAID 10 可以通过在其 RAID 0 条带中采用三盘 RAID 1 镜像(而非标准的两盘 RAID 1 镜像)来扩展,以获得更好的读取性能和可靠性的显著提升(但代价是成本增加百分之五十),这正如我们在 RAID 1 例子中所展示的那样。这是一种在现实世界中很少被追求的可靠性水平,但它确实可以存在,并且是一种选项。通常情况下,这会受到物理阵列机箱中磁盘数量上限的制约,而且与在另一个机箱中构建一个完全独立的第二套 RAID 10 阵列、然后在更高层次上对二者进行镜像(从而有效地构成 RAID 101)相比,前者在竞争中处于劣势–而后者正是当今常见的高端存储阵列集群所达成的实际效果。

我们的第二个顾虑是“自动化阵列毁灭”。这仅适用于 RAID 5 和 RAID 6 这类奇偶校验 RAID 情形(或者少见的 RAID 2、RAID 3、RAID 4 以及 RAIDZ3。)按照温备盘的理念,当一块磁盘发生故障时,阵列控制器会自动、即时地将温备盘换入,重建阵列的过程随即开始。如果重建是一个完全可靠的过程,这显然会大受欢迎。可惜,现实情况却大相径庭。

在重建过程中,奇偶校验 RAID 阵列面临着出现不可恢复读取错误(URE)的风险。如果在单奇偶校验 RAID 重建(即 RAID 2–5)过程中发生了 URE,那么重建过程就会失败,阵列也将彻底丢失。理解这一点至关重要,因为此时并没有任何额外的磁盘发生故障。所以,如果当初没有配置温备盘,重建就不会启动,数据也仍会完好可用–只是不会像平常那样迅速,并且要承担第二块磁盘故障的微小风险。如今的大容量磁盘 URE 发生率非常高,而对于大型阵列,这种风险可能高到从“有可能发生”变成在一次标准重建操作期间“预料之中会发生”。

因此,在许多情况下,温备盘本身实际上可能成为数据丢失的诱因,而非人们所期望的数据拯救者。一个本可幸存下来的阵列,也许会在管理它的人甚至还没收到第一块磁盘发生故障的告警之前,就已经被重建过程摧毁了。倘若有人参与其中,他们至少可以采取这样一个步骤:在启动重建之前先为阵列制作一份全新的备份,因为知道一旦重建过程不成功,至少还有数据的最新副本可用。这也能让人来安排重建应当何时开始,比如可以等到下班之后或周末到来,那时阵列不太可能承受沉重负载。

双重和三重奇偶校验 RAID(分别为 RAID 6 和 RAIDZ3)同样存在 URE 风险,因为它们也基于奇偶校验。它们通过额外层级的奇偶校验来缓解这一风险,并且在大多数情况下成功地做到了这一点。风险依然存在,尤其是在非常大的 RAID 6 阵列中,但在未来几年内,对绝大多数存储阵列而言,这种风险通常仍然相当低,直到市场上出现容量大得多的盘片式存储介质为止。

奇偶校验 RAID 与 URE 风险之间最大的问题在于,驱使人们走向奇偶校验 RAID 的因素(甘愿面对额外的数据完整性风险以降低成本),与引入更高 URE 风险的因素(购买成本较低的非企业级 SATA 硬盘)是同一个因素。面对奇偶校验 RAID 的机构通常会采用大容量、低成本的 SATA 磁盘,从而将两个非常危险的因素汇聚到一起,形成一种一触即爆的组合。使用非奇偶校验的 RAID 1 或 RAID 10 将彻底消除这个问题,而使用高可靠性的企业级 SAS 磁盘会将风险因素大幅降低一个数量级(这不是一种夸张的说法,它确确实实是一个数量级的变化。)

此外,在重建操作期间,奇偶校验系统的性能有可能严重下降,以至于等同于一次长时间的停机。重建过程,尤其是在大型阵列上,可能繁重到让最终用户根本无法区分一个彻底故障的阵列和一个正在重建的阵列。事实上,极端情况下的重建可能耗时如此之久、干扰如此之大,以至于给企业带来的代价可能高于阵列干脆彻底故障、转而从备份中恢复的情形。这一重建问题不会影响 RAID 1 和 RAID 10,原因还是在于它们是镜像 RAID 系统,而非奇偶校验 RAID 系统,其重建过程微不足道,系统的性能下降幅度很小且持续时间短暂。在最极端的情况下,奇偶校验重建可能耗时数周或数月,在此期间系统的表现就如同已经下线–而在这一过程中的任何时刻,都有可能出现前面提到的 URE 错误,从而终止重建,并迫使最终仍要从备份中恢复。(典型的重建不会耗时数周,但确实需要许多小时,耗时数天也并不罕见。)

我们最终的总览可以归纳为以下几点(这里再次使用约定俗成的术语“热备盘”):不带“热备盘”的 RAID 10 几乎总是比带“热备盘”的 RAID 6 更好的选择。不带“热备盘”的 RAID 6 总是优于带“热备盘”的 RAID 5。带额外镜像成员的 RAID 1 总是优于带“热备盘”的 RAID 1。因此,无论你决定采用哪一级带热备盘的 RAID,只需向上提升一级 RAID 可靠性并舍弃那块“热备盘”,就能在成本相等或几乎相等的前提下,将性能和可靠性同时最大化。

温备盘,正如奇偶校验 RAID 一样,曾有过它们的辉煌时光。事实上,正是在奇偶校验 RAID 仍适合广泛使用之时–当 URE 错误还不太可能发生、磁盘成本仍然高昂之时–温备盘也同样是合理的。它们是天作之合,当其中一个合理时,另一个往往也合理。人们常常忽视的是,随着奇偶校验 RAID(尤其是 RAID 5)逐渐失去效用,它也以出人意料的方式把温备盘一同拖了下来。

标签disk drive hard disk raid storage

广告

SMB IT Journal — the IT resource for small business