使用RAID6减少重建失败的技术对比和分析
2018-02-26张鹏魏振东
张鹏 魏振东
摘要
RAID技术在信息系统中广泛应用并发挥着重要作用,随着大容量硬盘的广泛应用,传统RAID5的方式在实际使用过程中出现可靠性问题的概率越来越大,一定程度上影响到关键重要信息系统的连续性,甚至造成数据丢失。本文基于RAID技术现有应用和大容量硬盘广泛使用的背景下,从硬盘URE、错误处理、重建时间、失效机率等方面论述RAID5存在的各种问题和使用RAID6的必要性。
【关键词】大容量硬盘 RAID5RAID6URE 可靠性 重建
全球数据存储量呈现爆炸式增长,企业及互联网数据以每年50%的容量高速增长,据Gartner预测,到2020年,全球数据量将达到35ZB,等于80亿块4TB硬盘。数据结构变化给存储系统带来新的挑战。非结构化数据在存储系统中所占据比例接近80%。
随着海量数据增长和存储技术的快速发展,硬盘容量也变的越来越大,硬盘故障后的重建时间变的越来越长。为减少数据重建时间,国内部分厂商开发了不同的RAID技术,像华为的块级虚拟化、宏杉的Cell等技术可实现数据的快速重建。由于种种原因,国外厂商如EMC、IBM等存储厂商仍然沿用成熟的RAID1.0。服务器、小型NAS等设备也只支持传统RAID技术。
本文基于RAID技术现有应用和大容量硬盘广泛使用的背景下,从硬盘URE、错误处理、重建时间、失效机率等方面论述RAID5存在的各种问题和使用RAID6的必要性。
1 为什么需要放弃RAID5
1.1 URE
硬盘有个指标叫URE,也就是Unrecoverable Read Error Rate,不可恢复读取错误。一般普通的桌面级别硬盘,这个指标的值为1×10^-14,企业级硬盘URl通常是1×10^-15甚至是1×10^-16。意味着每读取10^14bit的数据,就有可能产生1bit的错误。问题在于这个错误是无法被检测和修复的。10^14bit大约相当于12.5TB的数据,也就是说每读取12.5TB的数据,就有可能产生一个错误的读取。由于目前硬盘容量越来越大,这种现象会越来越严重。
1.2 错误处理
当整个RAID组有一块硬盘出现故障时需要进行重建。重建时需要读取其他硬盘的数据来计算出故障硬盘的数据。在重建过程中,除了需要考虑重建的时间之外,还要考虑的就是URE的影响,如果RAID组的容量足够大、硬盘数量较多,就会有很大的概率出现读取错误的。
发生读错误时,根据控制器的不同,会有几种状况,下面简单列几种可能:
(1)硬盘没有发现读错误,但实际读出的数据是错的,结果是数据至少有1bit是损坏的,而且不会主动发现;
(2)硬盘发现读错误,可能是校验失败,并开始数据修复,分下列几种情况。a.修复成功;b.花过多时间修复,RAID控制器会认为硬盘故障而将此硬盘离线。如果RAID组正在重建,则整个RAID组将失效;c.因硬盘的TLER(Time-Limited Error Recovery)设置而及时放弃修复,RAID控制器收到错误消息并记录;如果有冗余,则会尝试用其他硬盘资料重建这个bit。如果正在重建,控制器通常会跳过这个bit,实际数据会是错误的。
1.3 重建时间
通常SATA7200转硬盘读写速度115MB/S,2TB单盘容量重建理论上要5小时以上,实际由于存储系统还需处理负载,不可能达到这个速度,一般会需要2到5倍的时长,即最长可能要24小时以上。笔者实际构建一个的RAID5阵列,从5块扩充到7块单体4TB硬盘,重建时间约需20小时。
在这个时间里,潜在的硬盘故障可能会出现。同时机械硬盘读写速度短期内难有大的突破,重构时间也就无法缩短,故障恢复过程中的再故障几率就难以避免。对于重要业务系统,即使有数据备份,也要面临业务连续性中断的问题。
1.4 成功重建机率
当一个由7块2TB硬盘组成的RAID5出现故障时,剩余6块2TB硬盘。RAID控制器重建数据时,很可能会发生一个LYRE导致RAID重建失败。
通过计算(1-1/(2.4×10^10))^(2.3×10^10)=0.3835得出,因不可纠正的读取错误而导致数据丢失的机率约为62%。
很多用户认为磁盘故障是独立的偶然事件,但长期经验表明事实并非如此,一个驱动器故障意味着其余的更有可能发生故障。
2 为什么RAID6是更好的选择
大容量硬盘会造成更长的数据重建时间,会增加第二块硬盘在重建过程中发生故障的可能性,RAID6消除了这种风险。RAID6中通过计算得到第二组奇偶校验,并将它们写到所有的硬盘上,这样在两块硬盘同时发生故障时也不会导致数据丢失,因此第二组奇偶校验能够提供更高的容錯能力。
从磁盘容量方面分析,RAID5最少需要3块硬盘,存储容量为N-1块硬盘。RAID6最少需要4块硬盘,具有N-2块硬盘的可用容量,有两块硬盘的容量被用于保存奇偶校验数据。虽然需要更多的磁盘,却可以保证更高级别的数据保护、数据可用性和容错能力,相对更高级别和成本的RAID10是很有优势的。
性能基准测试显示,RAID5与RAID6的读性能基本相当,综合写性能下降20%~25%。目前很多RAID控制器生产商设计了例如并行双奇偶校验和专用条带管理器等新技术,目的是将RAID6写损失减少到最小程度。部分主流RAID控制器已经能将写损失减少到10%左右。
3 结语
RAID6拥有快速的读取性能和更高的容错能力,更加注重数据安全性,对于可靠性至关重要的系统来说,RAID6才是首选。在给予RAID6技术充分肯定的同时,并不意味着对其他RAID技术的否定,需根据不同需求进行选择。当硬盘容量越来越大,新技术不断出现时,也同样会给RAID6带来威胁。
参考文献
[1]张冬.大话存储[M].北京:清华大学出版社,2015.
[2]章宏灿,薛巍.集群RAID5存储系统可靠性分析[J].计算机研究与发展,2010,47(04).
[3]Robin Harris.Why RAID 6 stops workingin 2019.ZDNet Storage Bit,2010.
[4]陈华英.磁盘阵列RAID可靠性分析[J].电子科技大学学报,2006(06).