单独购买 RAID 磁盘比批量购买更好吗?

smi*_*lli 98 raid hard-drive best-practices shipping

这听起来像是一个奇怪的问题,但它引起了我与一些同事的热烈讨论。考虑一个由八个或十二个磁盘组成的中等大小的 RAID 阵列。在购买第一批磁盘,或购买替换磁盘以扩大阵列或更新硬件时,可以采用两种广泛的方法:

  1. 从一个供应商处一次性购买所有驱动器,并收到一个包含所有磁盘的大盒子。
  2. 从各种供应商处订购一张磁盘,和/或分散(在几天或几周内)每个一张磁盘的多个订单。

显然有一些中间立场,但这些是主要的对立心态。我一直很好奇哪种方法在降低阵列灾难性故障的风险方面更明智。(让我们定义为“25% 的磁盘在等于重新同步阵列一次所需的时间窗口内发生故障。”)逻辑是,如果所有磁盘来自同一个地方,它们可能都具有相同的潜在的缺陷等待打击。如果你愿意,同样的定时炸弹与时钟上的相同初始倒计时。

我为每种方法收集了一些更常见的优缺点,但其中一些感觉像是猜测和直觉,而不是基于确凿证据的数据。

一次购买,亲们

  • 在研究/订购阶段花费的时间更少。
  • 如果供应商收取费用,则将运输成本降至最低。
  • 几乎可以保证磁盘在其操作特性(温度、振动等)方面具有相同的固件版本和相同的“怪癖”。
  • 价格上涨/库存短缺不太可能使项目中途停滞。
  • 每个下一张磁盘在需要安装的那一刻就在手边。
  • 序列号都是预先知道的,磁盘可以按序列号递增的顺序安装在机箱中。看起来过于挑剔,但有些人似乎很重视这一点。(我猜他们的管理界面按序列号而不是硬件端口顺序对磁盘进行排序......?)

一次购买,缺点

  • 所有磁盘(可能)都来自同一家工厂,同时制造,材料相同。它们储存在相同的环境中,并在运输过程中遭受相同的潜在滥用。存在于一个中的任何缺陷或损坏都可能存在于所有中。
  • 如果一次将驱动器更换到现有阵列中,并且每个新磁盘都需要单独重新同步,则可能需要几周时间才能安装订单中的最后一个磁盘并发现故障。与供应商的退货/换货窗口可能会在此期间到期。
  • 无法利用项目期间可能发生的近期价格下跌。

单独购买,优点

  • 如果一个磁盘出现故障,它与任何其他磁盘共享很少的制造/运输历史。如果故障是由制造或运输过程中的某些原因引起的,那么根本原因很可能不会发生在任何其他磁盘上。
  • 如果磁盘在到达时已损坏或在使用的最初几个小时内出现故障,则会在货物到达后不久检测到,并且退货过程可能会更加顺利。

单独购买,缺点

  • 需要花费大量时间才能找到足够多且价格合理的供应商。订单跟踪、交付失败、损坏的物品退货和其他问题可能需要很长时间才能解决。
  • 运输成本可能更高。
  • 一个非常现实的可能性是需要一个新磁盘,但手头没有磁盘,从而使项目停滞。
  • 想象的好处。无论供应商或购买日期如何,所有磁盘都来自同一个地方并且实际上是相同的。制造缺陷会被质量控制检测到,不合格的磁盘不会被出售。运输损坏必须非常严重(并且肉眼清晰可见),以至于打开包装时损坏的驱动器会很明显。

如果我们仅按要点计数,“批量购买”显然会获胜。但是一些优点很弱,而一些缺点很强。许多要点只是简单地说明了其他一些要点的逻辑逆。其中一些事情可能是荒谬的迷信。但是,如果迷信在维护阵列完整性方面做得更好,我想我会愿意接受它。

哪一组在这里最明智?

更新:我有与此讨论相关的数据。我个人构建的最后一个阵列(大约四年前)有八个磁盘。我从一个供应商处订购,但将购买分成两个订单,每个订单四个磁盘,相隔大约一个月。阵列的一个磁盘在运行的最初几个小时内发生故障。它来自第一批,并且该订单的退货窗口在所有东西都旋转起来的时间内已经关闭。

四年后,七个原始磁盘加上一个替换磁盘仍然没有错误地运行。(敲木头。)

eww*_*ite 56

实际上,从企业供应商(HPE、Dell 等)处购买的人并不担心这一点

这些供应商采购的驱动器已经分布在多个制造商的相同部件号下。

特定 SKU 下的 HP 磁盘可能是 HGST、希捷或西部数据。

相同的 HP 部件号、制造商、批号和固件的变化 在此处输入图片说明

但是,您不应该试图智胜/智胜批处理失败的可能性。如果它能让您安心,欢迎您尝试,但可能不值得付出努力。

集群、复制和可靠备份等良好实践是批量故障的真正保护措施。添加冷热备件。密切监视您的系统。利用像 ZFS 这样的智能文件系统 :)

请记住,硬盘驱动器故障并不总是机械故障...

  • 然而,存储/运输方面仍在发挥作用。如果 HP 或 FedEx 仓库中的某个人丢下一盒装满磁盘的盒子,可能会影响整个收到的批次。 (13认同)
  • @smitelli 好的。备份、RAID、复制、DR、备件。您的所有驱动器同时发生故障的可能性很小,大多数人都应该准备好遇到这个问题。 (6认同)
  • 需要注意的是,我从亚马逊上一次性订购了 5 个用于 SW RAID 盒的消费级存档驱动器。第一个在 48 个月后失败了。第二个,53个月。第三个和第四个在第 55 个月的 2 周内失败,最后一个在第 57 个月失败。幸运的是,我使用了 3 路冗余,但仍然......不是我所期望的。我不知道序列号是否是连续的,但驱动器本身本质上是相同的。 (3认同)
  • @ewwhite 是的,*但是*如果您一次性订购 10 个相同的 SKU,与您每月订购 1 个的情况相比,它们来自多个供应商的可能性更小。这就是我要说的重点。 (3认同)
  • 这个答案似乎有点自以为是,似乎没有给出任何理由来说明为什么它可能是真的……您是否与所有订购戴尔的人交谈过?战胜批处理失败的“智能”是什么?人们做你认为他们做的事情真的*好*吗? (2认同)

Wol*_*ish 43

根据 ewwhite 的回答,一些系统管理员会批量订购。我自己永远不会单独订购驱动器,但我以这种能力工作的最后一个地方的标准操作是批量订购驱动器。对于十二个驱动器的机器,SOP 规定将驱动器分成三批,为机器提供三层冗余配置文件。

然而,我咨询过的其他小型机构遵循了不同的协议,有些不关心批次,有些则将批次分成两个或四个阵列。简短的回答是做适合您需要达到的服务水平的事情。

旁注:我最后工作的地方当然是做正确的事。应用程序存储机器决定在整批驱动器上出现故障,我们发现这一特定批次都有相同的故障。如果我们不遵循批处理协议,我们将遭受灾难性的数据丢失。

  • 我会考虑预先做那个旁注! (7认同)

Kai*_*har 39

一个花了很多时间处理即将消失的RAID阵列和硬盘驱动器的人的诚实回答:如果可以避免,不要将所有驱动器都来自同一批次。

我的经验仅适用于旋转磁盘,SSD 在批量订购时有其自身的问题和优势需要考虑。

处理事情的最佳方法主要取决于您使用的阵列有多大,如果您使用的是 6 个驱动器阵列和 2 个驱动器冗余,您可能可以安全地从 3 个制造商那里购买类似的驱动器并拆分阵列像那样。

如果您使用的是奇怪的驱动器,或者您正在使用无法像这样轻松分区的阵列,您可以尝试其他方法,例如从不同供应商处购买相同的驱动器,或者如果您批量购买,则可以查看并尝试根据一起制造的可能性来分离驱动器。

如果您使用正确的底层技术运行足够小的阵列,那么从异构磁盘供应中逐步构建它甚至可能值得您花时间。从您可以摆脱的最少驱动器数量开始,并在一两个月后或在您填充系统时购买下一个驱动器。这也让您了解您选择的特定模型可能存在的任何问题。

这个建议背后的原因是驱动器的两种怪癖的组合。

  1. 当您有许多具有相似来源的驱动器时,MTBF 会明显受损。在统计学中,我们将其称为抽样偏差,因为您的样本之间存在相似性,平均效应往往不太有用。如果批次甚至设计本身存在故障,并且发生的频率比您想象的要高,那么该批次的驱动器将比 MTBF 建议的更早发生故障。

    如果驱动器分散开,您可能会获得 [50%、90%、120%、200%] 的 MTBF,但如果所有驱动器都来自那 50% 的批次,您的手就会一团糟。

  2. Raid 阵列重组会杀死磁盘。不完全是。如果您遇到驱动器故障并且阵列重建,它会在扫描其他驱动器的数据时给其他驱动器带来额外的负载。如果您有一个接近故障的驱动器,重建可能会将其删除,或者它可能已经有一个您不知道的故障位置,因为该部分最近没有被阅读。

    如果您有很多来自同一批次的驱动器,那么发生这种级联故障的几率要比它们不同的几率高得多。您可以通过定期巡逻扫描、清理、重新同步来缓解这种情况,无论推荐的做法是针对您使用的阵列类型,但缺点是它会影响性能并且可能需要数小时才能完成。

对于驱动器寿命变化如此之大的某些背景,Backblaze 会定期进行驱动器故障统计报告......我与该公司没有任何关系,但他们应该知道他们在谈论驱动器可靠性问题. 一个例子是https://www.backblaze.com/blog/hard-drive-failure-rates-q1-2017/ ...你的样本集可能会更小,所以外围数据可能会扰乱你自己的体验,它仍然是一个很好的参考。

  • 这应该是公认的答案。具有相似(来自相同固件/批次,或一起购买并在某些时候处理不当)磁盘的 raid 发生灾难性故障的风险要高得多 (2认同)

小智 9

几年前,我不得不为客户考虑这个问题。我结合了实践经验和研究来支持多源推荐。

暂时搁置您的优点和缺点,以及ewwhite 的出色回答,谨慎建议如果您自己购买驱动器,则可以进行多源采购。快速浏览一下维基百科关于 RAID 弱点的讨论,可以找到两个有趣的参考资料。

第一个参考是 ACM 论文RAID:高性能、可靠的二级存储(Chen、Lee、Gibson、Katz 和 Patterson。ACM 计算调查。26:145-185)。在 3.4.4 节中,作者指出硬件故障并不总是统计上独立的事件,并给出了原因。在我写这个答案的时候,这篇论文可以在网上找到;第 19-22 页讨论可靠性(http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.3889)。

第二个参考是现实世界中的磁盘故障:1,000,000 小时的 MTTF 对您意味着什么?(Schroeder, Gibson。第 5 届 USENIX 文件和存储技术会议。)作者提供了统计数据来支持以下断言,即驱动器故障可能以高于独立事件预测的速率及时聚集。在我写这个答案的时候,这篇论文也可以在线获得(https://www.usenix.org/legacy/events/fast07/tech/schroeder/schroeder_html/index.html)。

由于大型磁盘环境中的相关磁盘故障,戴尔在 2012 年明确建议不要使用 RAID 5;RAID 6 预计将在 2019 年左右因类似原因变得不可靠(ZDNet 一篇名为“why-raid-6-stops-working-in-2019”的文章:http : //www.zdnet.com/article/why-raid-6 -stops-working-in-2019/)。虽然这两者的一个关键因素是磁盘大小和重建时间,但建议使用较小的驱动器大小和多源作为 RAID 5 问题的缓解措施。

所以是的,如果可以的话,多源驱动器;如果您从ewwhite 的回答中描述的企业供应商处购买,这可能会透明地发生在您身上。但是……我的客户从企业供应商那里购买了 16 个 2TB 驱动器。它们恰好来自同一制造商,并且似乎是同时制造的。在配置 RAID01 阵列后的两周内,其中两个驱动器发生故障。因此,当您拿到驱动器时​​,请检查它们。(反正你已经检查过了,对吧?)