多年来,硬盘厂商们一直在说大多数在保修期内返厂维修的硬盘其实都没有问题。作为一名IT专业人士,我猜想造成这种现象的真正原因在于键盘和座椅。 LSI的洛布欧泊尔(Rob Ober)最近发表了一篇博客文章,披露了硬盘假故障现象背后的原因。这也让我不禁想搞清楚为什么这个问题会一直存在下去。
欧泊尔指出,硬盘假故障这个问题不但对于购买单件硬盘的计算机业余爱好者来说是个大问题,而且对于数据中心的管理员来说也是个大问题。象你我这样的数据中心管理员都明白,如果一块硬盘发生故障,会造成什么样的成本。 例如:
•系统性能会下降,而且经常要持续很多天,因为需要在备用硬盘上重建RAID系统和大约4TB的数据。在使用scale-out存储设备的分布式环境下,这个问题也会对网络流通量造成影响,因为重建数据必须通过多个存储结点合并在一起。
•必须派人去更换硬盘。
•因为硬盘上存储着敏感的企业机密信息,因此它必须被保密处理或是销毁。如果你所服务的公司不够大,不能与存储厂商签订更换硬盘的协议的话,那就意味着你必须自己承担更换硬盘而发生的成本。
问题是,如今的硬盘是由配备了固件的内部微控制器来运行的。就象你的个人电脑或Mac电脑一样,软件偶尔也会出点小错,处理器就会停止运行。 硬盘在使用过程中会遇到很多在开发过程中并未完全调试过的指令和状态,硬盘的处理器可能会因为那些指令和状态而停止对主机或RAID控制器发出的指令作出响应。
主机或RAID控制器就会发出报告称这块硬盘出现故障,但是工作人员将这块硬盘换下来之后拿到其它系统中测试时,它又是可以正常工作的。(我们都知道,开关电源可以解决很多计算方面的故障。) 实际上,很多研究表明遇到过这类假故障的硬盘仍然是可靠的,只要对它们进行重新设置一下,它们就会跟刚刚出厂的新硬盘一样。
欧泊尔实际上找了一位大型数据中心的管理员与他一起进行研究,负责向他提供硬盘故障方面的统计数据。 虽然按照谷歌或Facebook的标准来说这个数据中心的规模并不大,但是它里面也配置了20多万台服务器。
他们发现:
•30%以上的SAS硬盘故障都是假故障,这也造成了每天出现故障的硬盘数增加了10块到15块,以及每年千分之一的硬盘假故障率。
•直接与服务器主板相连的SATA硬盘的假故障率更高,几乎达到了硬盘厂商们所说的出现假故障的硬盘总数的50%,每年的假故障率达到了惊人的1%。
一些厂商曾经试着去解决这个问题。5年前,Xiotech和Atrato提出了“自我恢复”磁盘阵列的概念,即硬盘停止对指令作出响应时先执行修理任务而不是启动RAID重建工作。 与希捷保持着密切合作关系的Xiotech甚至可以通过映射通路的方式让一块表明受损或出现故障的硬盘继续运转。当然,这个恢复过程的第一步是在硬盘上执行硬复位。
随着整个硬盘行业开始将重心转向闪存硬盘,自我恢复的阵列不再吸引人了。Atrato已经不复存在了,Xiotech现在也更名为X-IO,随着它最后的一批独立竞争对手Compellent、3PAR和Nexsan纷纷被收购而失去了头顶的光环。
由于硬盘市场实际上已经变成由希捷和西部数据垄断的市场,我认为这两家硬盘厂商都不可能在硬盘产品中加入能够检测假故障和重新设置硬盘的备用电路板。但是业内其他厂商如LSI在这个领域还是能够有所作为的。
SAS控制器厂商比如LSI可以开发假故障检测和硬盘重新设置技术并将它们整合到控制器之中。当一块硬盘停止响应的时候,控制器在启动RAID重建工作之前可以先检测一下硬盘是否出现了假故障。 这在SATA硬盘上比较难实现,因为它们缺乏所需的连接。但是控制着SATA规范的人可以在未来几年的6-12Gbps升级中添加一个硬复位的功能。只要还没升级,阵列厂商们就可以加上那个功能,切断单块硬盘的电源来强制它重新设置。
不管如何,1%的假故障率都是客户们不愿接受的。硬盘行业应该研究出一些切实的解决方案,而不是加快故障硬盘的重建速度。