IPFS存储机械硬盘服务器可靠性分析

2019-05-23 11:17:15 GDIDC

    在企业级存储市场中,结构化数据的存储很快就会是SSD的天下,机械硬盘(HDD)会逐步退出;非结构化数据因为其巨大的容量,从成本的角度来看,会长时间存在。但不论怎么说,SSD代替HDD是趋势。

    生产HDD的厂家很少,就WD、希捷、HGST等,其中,HGST也是WD的子公司。看似他们垄断了市场,但他们的日子却不好过。因为HDD大势已去,在SSD领域,领先的却是Intel、三星等玩家。HDD越做越大,价格也越来越低。

    但IPFS等存储挖矿项目却让HDD市场又看到了一点希望。今年,10TB以及以上的硬盘大幅度缺货,价格比去年的最低点已经上涨了30%。疯狂的玩家囤矿机(存储服务器)、囤硬盘。我从好几个地方,都听到了有人批量买几万块硬盘的事情。

   【注:只是听说,不一定代表事实】也冒出来了各种各样的IPFS矿机,大多数都像最低端的群晖NAS一样,插了一块硬盘,扩展性不是特别好,放在家里,等待文件币发布就挖矿。

    如果这个矿机能做一个家用NAS,也挺好的。许多人也在对比各种矿机。但大家容易忽视的是,同是机械硬盘,其可靠性也千差万别。我们不能光看硬盘容量,而要看洞察更多的硬盘参数。好在这些参数不多,非常容易理解。


我们就以希捷的硬盘为例来进行讲解。型号太多,就说说几种典型的。

    1. 桌面级硬盘。这是消费级电脑中最常用的硬盘,基本都是采用SATA接口。比如希捷BarraCuda系列的8TB硬盘ST8000DM004。官方的参数请见:https://www.seagate.com/www-content/datasheets/pdfs/3-5-barracudaDS1900-10-1802CN-zh_CN.pdf。

其中里面有几点大家比较感兴趣。

    1.1最大值持续数据传输率OD(MB/秒):190MB/秒。 看上去这个值挺高的。但它只是硬盘外圈的顺序读写性能。较小的文件读写,基本都达不到这个性能。

    1.2每年运行小时数(24×7) :2,400。 如果24x7开机,每年能运行2400小时。也就是能每年持续运行100天。每天上班8小时的办公室文员,用这个硬盘不错;但用来挖矿,就有点悲催了。所以……存储挖矿,肯定不能选择桌面级硬盘。

    1.3工作负载评级限制(TB/年):55。 一每年读写55TB数据以下,故障率较低。以前的HDD参数没有这个值。SSD因为Flash的磨损次数有限制,有一个TBW值。HDD理论上读写次数没有限制,但因为机械部件多,可靠性并不高,所以,也可以理解厂商为什么需要加这个参数。

    1.4有限质保(年):2 桌面级硬盘保修2年。

    1.5最大不可恢复错误/被读数据(位):1/10E14。 这个是大多数人不了解的参数。我认为是评估硬盘稳定性的最重要的参数之一。HDD运行过程因为受到振动等影响,是非常容易出错的。但因为纠错手段完善,大多数错误可以被纠正。但仍然会存在一定概率,在工作环境正常的情况下,错误无法纠正。通常我们就把它认为是ECC算法也无法纠正的错误,所以叫做Uncorrectable ECC Count。

    1.6这个桌面硬盘对应的值为10的14次方分之一,其含义为,从硬盘上读10的14次方个bit,就可能出现一次无法被纠正的错误,导致数据出错。10的14次方个bit,其实大概就是11TB的数据。从概率上来讲,全盘读写1次大容量硬盘,就很可能出现这样的错误。


    2. 监控级硬盘。这是在安防系统中最常用的硬盘。基本都是采用SATA接口。SkyHawk监控盘系列其官方参数请见:https://www.seagate.com/www-content/datasheets/pdfs/skyhawk-3-5-hdd-DS1902-8-1803CN-zh_CN.pdf

    2.1最大值持续数据传输率OD(MB/秒):根据容量的不同,该值从180MB/秒到210MB/秒,和桌面级硬盘差不多。

    2.2每年运行小时数(24×7):清一色的是8760。说明可以一年365天不间断运行。这和桌面级硬盘有非常大的区别。

    2.3额定工作负载限制(WRL):180TB。 相对于桌面级硬盘的工作负载评级限制,该值要高不少。

    2.4MTBF(平均故障间隔时间) :1,000,000 hr。 桌面级硬盘的参数中,就没有写这个值。1百万小时,是理论上可以用114年吗?显然不是。大概可以这么算,1/114约等于0.9%,说明年坏盘率理论上为0.9%。当然,这个只是理论值,实际的坏盘率受到多种因素的影响。

    2.5有限质保(年):3 显然,3年的质保,也是厂商对这种硬盘更有信心。

    2.6最大不可恢复错误/被读数据(位):ST4000VX007这块4TB的硬盘为1/10E14,其他型号为1/10E15。前几年的较老型号监控级硬盘其值均为1/10E14,显然是非常容易坏的。如果为1/10E15,需要写入将近113TB数据,从概率上才会出现一次不可恢复的错误,自然可靠性会增大很多。

(注:希捷还有充氦气的监控硬盘,但从型号和参数来看,完全是企业级硬盘的范畴了。)


    3. 企业级硬盘。这是企业级存储系统和数据中心最常用的硬盘。可靠性自然比前面两种硬盘要高很多。接口有SATA和SATA,其中SAS又分NL-SAS(近线SAS)和高转速SAS(1万转或1.5万转)。

    NL-SAS盘和企业级SATA盘的主要差别在于接口采用SAS,可以支持双端口(用于双控存储系统,可以两个主机同时连接),其他参数基本一致。高转速SAS盘的转速高于我们常用7200转,性能更好,可靠性也更高,但容量相对较小,价格也比较昂贵。

    大容量企业级SATA硬盘(8TB及以上)一般在内部充氦气,利用氦气的惰性,可以全面提升硬盘容量,从数据中心的坏盘率统计来看,其可靠性也更高。这里我们讨论希捷的企业级SATA硬盘,以常用的10TB充氦气硬盘ST10000NM0016为例。,其官方参数见: https://www.seagate.com/files/www-content/datasheets/pdfs/exos-x-10DS1948-1-1709CN-zh_CN.pdf

    3.1最大值持续数据传输率OD(MB/秒):249MB/秒。 这个值比前面的硬盘略微高一点点,但也高不到哪里去。

    3.2随机读取/写入4K QD16 WCD (IOPS) :170, 138。 这是4KB随机读和写的IOPS值,表示每秒最大的I/O请求个数。算成带宽,就是680KB/秒和552KB/秒。我去,这个值和前面的传输速度差了好几个数量级!

    3.3对于HDD来说,因为机械部件的寻道时间很难缩短,所以这个值是很正常的,这也是为什么SSD会受到追捧的重要因素之一——SSD的随机性能远高于HDD。

    前面的桌面级硬盘和监控级硬盘都没有写这个参数呢,它们的实际IOPS值比企业级硬盘更差。这也是为什么专业的存储系统,需要复杂的算法,通过CACHE等手段,尽可能变随机的读写为有点点顺序的读写,来提升系统的整体性能。

    3.4每年运行小时数(24×7):8760。因为一年只有365天,所以这个值也不会更大了。

    3.5平均故障间隔时间(MTBF,小时) :2,500,000。理论上,年坏盘率为0.35%。

    3.6有限质保(年) :5。 显然,希捷对于企业级硬盘更有信心。

    3.7不可恢复错误/被读数据(位) :1 扇区/10E15。从概率上讲,每读写10的15次方个bit,会有一个扇区出现不可恢复的bit。 10TB的硬盘,从头到尾读写超过11遍,平均会遇到一次这样的情况。比起桌面级硬盘,还是要稳定许多。

(注:没有看到额定工作负载限制或类似的参数。看来企业级硬盘直接取消了这个读写数据量的限制。)

    回过头再来看看“不可恢复错误/被读数据(位)”这个参数。企业级SATA盘和较新的监控级硬盘,比较老的监控级硬盘和桌面级硬盘要高一个数量级,自然要稳定许多。

    桌面级硬盘和监控级硬盘的对应参数名字前加了一个“最大”,企业级硬盘没有写“最大”,不知道是否希捷有意为之。

    如果是,证明企业级硬盘的读写错误更低。以前问过硬盘厂商的工程师,他们回复说,桌面级硬盘和监控级硬盘没有防震芯片,所以错误率高;企业级硬盘,和较新的监控级硬盘,都加了这个芯片,通过避震的方式来提高可靠性。

    我们也接触过大量的存储项目,有上万片硬盘实际运行的稳定性统计数据。某项目用了80%的监控级硬盘(不可恢复错误/被读数据(位)这个值为1/10E14)和20%的企业级SATA硬盘,运行了三年,监控级硬盘的坏盘率超过10%,但企业级硬盘的坏盘率低于1%。

    桌面级硬盘因为都不能全天候运行,所以完全不适合这种大型的项目。另外,如果大容量硬盘做RAID5或者RAID6,坏了一块盘,会导致硬盘重建。

    如果该参数为1/10E14,基本上硬盘从头到尾读一遍,就有很大的概率产生新的不可恢复错误,直接导致第二块坏盘的产生。这个也是为什么RAID5/6在重建的时候,很容易产生第二块盘,导致RAID出现更严重问题的原因。

    实际上,重建的时候,所有硬盘都在高速读写,其震动本身就会导致更多的问题。不用RAID容易坏盘导致数据丢失,使用RAID也容易坏盘,那怎么办?选择更高可靠性的硬盘,才是正确的办法。

    如果是高转速的SAS硬盘和企业级SSD,不可恢复错误/被读数据(位)往往都是1/10E16甚至更高,其出错的概率就会更低了。

    除了上面的HDD,希捷还有NAS系列的硬盘,可以满足全天候的运行需求,价格比企业级硬盘低。但因为我没有用过,所以暂时不评述。

    再好的硬盘,也可能会很快坏掉。以上所有的参数,都是针对大批量硬盘而言的平均值。

    所以,通过软件进行合理的硬盘管理(RAID、CACHE、硬盘全程监控),是必要的手段,且需要一个易用的存储管理系统,在硬盘真的出现问题时,能够及时发现,及时排除故障,保证系统的稳定运行。算了,说再多了就是广告了。