RAID技术自1984年诞生以来,经历二十年的发展,到现在已经成为非常成熟的技术体系,是从服务器的内部存储到外部独立存储系统整个存储领域的核心支柱之一,而随着RAID0、1、3、5以及0+1等等RAID级别概念的深入人心,RAID成了存储的基本要素,尽管有着这样那样的选择,但这种选择就象是吃饭该吃什么一样,吃什么当然需要考虑,而没人去想过应不应该吃。
随着时间的推移,这种成熟逐渐导致厂商以及用户的淡漠和麻木,现在的存储领域,内部和外部存储分别应该怎样配置RAID方案已经有了相当固定的模式,大家都不再关心在这上面再翻出什么新花样来,这是一个应该放弃的话题吗?
价值遗迹
从现状来看,RAID是不是还有文章可作这个问题的答案真的令人沮丧。
“RAID技术确实已经发展到了相当成熟的阶段,不管是厂商还是用户,在这方面已经没有给予太多关注”,在内部RAID领域浸淫多年,曾经以“RAID Anywhere”口号带动整个内部存储产业发展的Adaptec对此有切身感受,Adaptec技术工程师宋成勇也感觉到用户和渠道,甚至大多厂商都并不重视RAID,“相对而言,用户更关心针对应用的数据可用性和可靠性,还有可管理性,而厂商和集成商把主要精力都放在了存储管理上”,对此状况他的解释是:“RAID技术的成熟度已经足够高了,对用户来说,无非就是几种RAID级别的选择,而对厂商来说,尽管实现这些RAID级别的方式各有不同,但在表现出来的性能上已经没有太大的差异,集成商在这方面也找不到可以挖掘的空间,整个RAID的应用环节几乎是完全透明的,确实难以作什么大文章。”
RAID的成熟不是单独的状况,实际上受数据传输接口技术和磁盘技术发展的推动,各家厂商所能在RAID上表现出来的个性已经相当微弱,在同一RAID级别下,影响RAID表现的无非就是RAID控制器中,处理器的选择和RAID算法、固件微码的优劣等几个因素,但这也只是整个RAID系统中的一部分,无法对整体造成太大影响,正因为难以体现出足够的个性以彰显自身价值,厂商自然也就不再在这方面给予更多重视。
用户的态度更为被动,上海艾堤浮斯公司项目经理俞楠介绍说,目前国内用户90%都在应用RAID5,RAID5不仅提供基于分散式数据校验的冗余保护,同时也保证了尽可能多的磁盘有效数据空间,使得基于它的磁盘阵列能达到最佳的性价比,虽然因为分散式校验和复杂解码过程对性能有所影响。
EMC中国区产品经理张扶清谈到了EMC的态度,“EMC过去还提过Parity Array,强调EMC在RAID上自己的理解,但现在已经不谈了”,原因是什么呢?张扶清说:“EMC更强调业界规范,强调更广泛地支持各类RAID级别,并且倾向于采取更为成熟的技术。”
所谓的“成熟”也有两种解释,一是该有的都有了,一是新的还没出现,华艺公司销售经理石朝晖提到,现有的RAID技术格局已经保持了很长一段时间,显得相当稳固了,而这么长的时间里,新技术不多见,即使有,进展也相当缓慢,例如RAID6,几年前业内就在提这个概念,但是到现在还没有看到成型的东西,渠道和用户对这方面也没有太多的了解。
总结而言,RAID之所以不再被人所重视,原因在于RAID是保障数据可靠性的基于基础架构的核心技术,而它的核心价值就在于提供了最基本的阵列功能以及基本的基础架构可靠性,而随着应用和存储管理重要性的突出,用户的关注点转移了,渠道和厂商的价值点也随之转移。“在以前对用户说起RAID0、RAID1,用户非常感兴趣,而现在已经成了基本的常识,特别是中低端用户,一般都认为买的阵列肯定就是作成RAID5的阵列,除非有很特殊的情况,不然用户一般都不会去关心RAID该怎么作,作成什么”,石朝晖说,这样来看,原本的价值点似乎已经成了荒芜的遗迹。
但基础架构是否就会永远一成不变,而RAID也就将从此无话可说,厂商、渠道和用户也就可以忽略它呢?
张扶清不这么看,“用户还是应该关注RAID的发展,毕竟它是构建磁盘阵列的核心技术和技术标准之一”,宋成勇也认为:“RAID仍旧是一个关注点,厂商和渠道在这上面仍然有文章可以作,并且在实际的市场运作中仍然会有作用。”
看来这个问题还是有值得谈论下去的价值。
不灭的个性
实际上用户的需求是千差万别的,即使是RAID这样成熟的技术,应用上也存在诸多差异,因此尽管RAID技术相当成熟,但各家厂商还是有一些专属于自己的理解。
张扶清介绍说,基本而言,SAN的用户都对RAID保护级别有比较深的认识和研究,他们都有自己的一些特定需求,而最核心的就是可靠性优先,“因此在高端领域,EMC推荐的是以RAID0+1的级别,虽然需要牺牲容量,但在性能(读写速率)和可靠性上都能得到最佳的保障,而NAS的一般用户,要么是应用比较单一,要么是刚迈入网络存储,要求只限于数据共享的,因此在RAID的选择上就显得比较灵活。”
EMC是从高端磁盘阵列发展而起的,到现在在高端产品如DMX系列上还坚持着相应的理念,那就是性能以及可靠性第一,因此其RAID级别都是固定的,而其中低端产品,包括CLARiiON系列以及基于CLARiiON的NAS产品则为用户留出了灵活定制的空间,尽管大多数用户还是选用RAID5。但似乎有些矛盾的是,高端用户在EMC的RAID方案上,提出个性化定制的要求更多一些。
与EMC在RAID上的周到全面态度形成鲜明的对比,NetApp的个性却显得相当强烈,NetApp中国总代合力共创对此了解颇深,合力共创技术工程师刘卫华介绍到,NetApp对RAID的理解相当独特,它全线的产品都采用了基于RAID4的增强型RAID4,RAID4的方式是在阵列中单独分出一块盘来用作数据校验盘,这种方式的优势在于扩展性好,特别是能支持RAID组内的在线扩容,而像主流的RAID5就没办法实现,RAID5的在线扩容只能通过更换整个RAID组来实现。
但RAID4出现后,绝大多数公司很快就放弃了,因为它有两个缺陷,一是单独校验盘对应多块数据盘时,在校验盘上的频繁读写成为性能瓶颈,另一点则是单独校验盘成为操作最集中的磁盘,磁盘损坏的几率大增,成为系统可靠性的瓶颈。
NetApp并没有放弃RAID4,改进后的RAID4在校验盘上增加了一组两片NVRAM作为缓存,校验信息不是直接写到校验盘上,而是写入NVRAM所构成的缓冲池中,缓冲池满后再一次性写入校验盘,这样就一举解决了性能和可靠性这两方面的问题。
HP在RAID上的关注更多一些,目前IBM、SUN、DELL、EMC、NetApp等公司都没有JBOD这样的产品,但HP有,这是低端的,在中高端上,由于继承了COMPAQ的RAID技术,HP在RAID上显得比较丰富,其中EVA系列采取的虚拟RAID(VRAID)相当有特点,VRAID基于HP的Versastor技术,通过它对传统的RAID5模式的动态调整,使得工作负载平均分布到所有的硬盘上,使得校验信息可以动态分配,VRAID实现了内部磁盘容错组(RSS)的概念,可以容许不同组多个磁盘的损坏,只是同一组内不能同时坏掉两块磁盘,VRAID的最大优势在于可以以容错组方式动态扩充,并且磁盘越多,可靠性越好,性能也越高。
在HP的VA磁盘阵列系列中,HP采用的是RAID DP的技术,这种技术容许同时两块硬盘的损坏,而“容许两块硬盘同时损坏”这个目标,正成为RAID技术里少见的引起各家公司针锋相对的话题,当然,也是RAID技术目前少有的现实的价值点之一。
冷热竞争
RAID DP(Double Parity),双校验,尽管还没成为正式的工业标准,但在“容许两块硬盘损坏”这个更高的可靠性目标之下,却越来越接近标准,因为它能实现新的可靠性目标,而不是类似“不同容错组损坏两块硬盘”这种有些混淆的概念。
越来越多的磁盘阵列厂商开始采纳RAID DP,毕竟是近年来RAID领域少有的进展,而这个技术的基本原理是在每个RAID阵列中配置了二块用于奇偶校验的硬盘,即使两块硬盘同时发生故障也能保证数据的有效性。
实际上着力推动RAID DP的还有NetApp,刘卫华介绍说,NetApp在自己的近线产品NearStorage系列中部署了这项技术,以提高系统的可靠性,实际上从需求来看,RAID DP更适用于IDE RAID这样的低端近线产品,HP在ProLiant服务器以及MSA系列中也采用了类似的技术,只不过名字叫RAID ADG。
关于相关技术的优劣和实际表现,EMC、HP、NetApp等等厂商明里暗里的表现很不一致,明里是各做各的事,各说各的话,在其他场合却争论不休,像国外类似Jim?Haberkorn《HPQ反击EMC》这样在RAID等技术细节上带有讨伐性质的文章也成为国内双方工程师和拥护者阵营的工具,由此可以看出,厂商对自己在RAID技术上的声誉仍然是很在意的,因为这是自己存储产品最基本的表现。
在关注RAID新进展以及相互争论坚守颜面的同时,厂商在RAID技术上也有战略性的思考,刘卫华就介绍说,据他所了解,NetApp正致力于将RAID技术整合为一个整体,与整个产品线融合,而不再是现在这样各个产品系列有不同的RAID技术。
IBM的想法虽然复杂,但是大方向也是这样,就在两个月前,IBM刚刚把内部RAID的若干技术卖给了Adaptec,这也意味着以前在内部RAID上推动RAID5E、RAID5EE等新技术的IBM RAID卡以后要改名了。 有厂商在竞争上的内外冷热,与RAID无话可说的表面印象相去甚远。宋成勇就这样说到,“虽然看起来RAID本身没有太多发展,但是底层的算法,控制器用的处理器以及通道技术都还在发展,因此RAID肯定还会继续发展下去。”
余楠具体介绍到,HP在虚拟化上的进展是未来RAID发展的一个大方向,比如美国一家叫IQStor的小公司,在SATA的基础上也提出了一种类似HP VRAID的技术,不光可以实现现有的各个RAID级别,还可以根据需要进行灵活的多层配置和调整。
看得认真细致一些,RAID这个似乎无缝可钻的鸡蛋还真有不少的孔。
发上生花
看得足够细致的话,任何单调的东西都显得缤纷多彩,RAID也是这样。
宋成勇就提到了基于SATA的RAID技术的发展,在以前,基于IDE的RAID应用单调,因为基本上只能实现RAID0和1,要实现RAID3和5需要很复杂的辅助,并且性能很差。但是在SATA成熟之后,RAID应用就显得丰富起来,而SATA2的成熟可能不会超过一年,性能甚至已经靠近UltraSCSI 320,超过160,在这方面RAID从传统SCSI向SATA上的转移肯定会带来相当的市场机会,对用户来说也有足够的吸引力。
“双硬盘容错”在相当长的时间里会是一个热点,RAID DP并没有垄断这个领域,新的RAID级别:RAID6已经讨论了相当长一段时间,石朝晖认为尽管RAID6目前还不清楚可行性究竟如何,并且究竟在什么时间能成为产品也不清楚,但的确是业内都在普遍关注的一个热点。如果RAID6能够成为正式的标准,用户应该能对其产生一定的兴趣。
在之前RAID10、30、53等等组合RAID模式已经有了长期的讨论,并且在一些特定应用和产品中得到实现,类似RAID0+1这样的简单组合也比较普遍,而多层组合RAID是这个方向上的深入发展,例如早前韩国Diskbank公司就推出了TLR(2层RAID)的技术。TLR技术通过把原来单层结构RAID改成2层RAID,下端底层和普通IDE RAID一样利用IDE RAID芯片接上2个普通IDE HDD,实现RAID0,1。在上端则把每个底层IDE RAID芯片作为一块硬盘,再次实现了RAD0,1,0+1,3,5,这种构造在读写速率,可靠性等方面有了比较大的改善,类似这种组合嵌套的RAID技术现在还在不断发展,就像是写程序一样,谁也不知道会配出什么样的新东西来。
相对高端SCSI RAID的发展来看,基于IDE的低端RAID(包括SATA)更有活力,而其周边技术发展也很迅猛,最近英特尔推出的Matrix RAID,它是英特尔在ICH6R芯片组上附加的RAID新功能,它将每个硬盘容量各分成两部分(一个硬盘虚拟成两个子硬盘,子硬盘总数为4个),其中用两个虚拟子硬盘来创建RAID0模式以提高效能,而其它两个虚拟子硬盘则透过镜像备份组成RAID 1用来备份数据。这种两块硬盘实现RAID0+1的模式,其他一些RAID控制器厂商也在提供,不过他们的方案叫“RAID1.5”。此外在内部RAID方面,英特尔最新推出的PCI?Express也极大提升了总线性能,扩充了应用功能。这些新技术尽管实际功用不大,或者在应用中还存在诸多限制,存在性能缺陷,但不可否认的是,这类基于个人消费市场的技术,很有可能在未来成长为商业用户所应用的成熟技术,这一点在SATA上已经得到了初步的验证。
成熟的漏洞
从厂商来看,RAID其实还有很多文章可以做,但是更多时候需要等待也需要付出,从用户上看,对RAID早已丧失敏感,不认为这上面还能生出什么花来,而从渠道上看,RAID价值不大了,即使经过一番琢磨,似乎看到了不少新鲜,可现在好象也无处着手,像是一个死水池塘。
如何在技术发展的趋势中寻找价值是一个大话题,每个人有自己的理解,但是就RAID而言,还是有一些东西值得一同思考:数据恢复现在已经是一个细分的专业市场,在网上粗略查找了一下,北京、上海和广州三地,从事数据恢复的专业公司就不下二三百家,其中至少有三成是在公司名称上就标有“RAID”字样的,而其他的公司在简介中几乎无一例外地注明了“针对RAID系统提供数据恢复服务”,这到底说明了什么?现有的RAID技术真的成熟了吗?这类善后的业务为什么那么红火呢?
RAID这技术,恐怕只是用户心理习惯的成熟,而不是真正应用的成熟,就像一些业内人士所讲的那样,RAID技术在实验室里的确是成熟了,但实施到用户身上,却仍旧是麻烦不断,在期待新价值点的时候,是不是也有空间在遗迹上挖挖,下点狠工夫是能找到宝的。
RAID的历程
RAID由美国加州大学伯克利分校的D.A. Patterson教授在1988年正式提出,但在1984年的时候这个词就已经出现在他的论文中了。当时RAID是Redundent Array of Inexpensive Disks的缩写,意思是“廉价冗余磁盘阵列”,简称为“磁盘阵列”。随着应用的普及,RAID开始进入了企业级市场,因此RAID中的字母I被改作了Independent,RAID就成了“独立冗余磁盘阵列”,总而言之,RAID技术就是利用多个硬盘的组合提供高效率及冗余的功能。
RAID的分类
- 基于IDE和SCSI两种接口,RAID分为两种类型:基于IDE接口的RAID应用,称为IDE RAID;而基于SCSI接口的RAID应用则相应称为SCSI RAID,以前RAID基本都只应用在SCSI上,但随着光纤通道技术和IDE技术的成熟,光纤接口的RAID应用在高端磁盘阵列中迅速得到普及,而低端IDE磁盘阵列也成为一种成本优先的广泛选择。
- 基于不同的架构,RAID 又可以分为: 软件RAID、硬件RAID 和外置RAID (External RAID) 软件RAID很多情况下已经包含在系统之中,并成为其中一个功能,如 Windows、Netware及Linux。软件RAID中的所有操作皆由中央处理器负责,所以系统资源的利用率会很高,从而使系统性能降低,主要针对个人应用以及低端商业应用。
硬件RAID则通过扩展卡来实现,RAID卡上的处理器可以提供一切RAID所需要的资源,所以不会占用系统资源,系统的表现可以大大提升。硬件RAID可以连接内置硬盘、热插拔背板或外置存储设备,主要针对低端商业应用,但现在开始向个人应用渗透。
还有一类过渡性RAID,也就是半软半硬RAID,主要是没有配置I/O处理芯片,所以这方面的工作仍要由CPU与驱动程序来完成,现在已经不多见。
外置式RAID也是属于硬件RAID的一种,RAID卡安装在外置硬盘柜中,通过相应的接口连接到主机系统的通道卡上(如SCSI)。主机没有任何的RAID功能,所有的RAID功能将会移到这个外置柜中,这也就是磁盘阵列,只是根据连接方式,通道技术和应用方式等的不同,磁盘阵列还分为DAS、NAS和SAN设备。
传统RAID级别
- RAID 0:数据条带化,将数据交替插入到横跨多个磁盘的块中,几个 I/O 传输可在同时进行,具有理想的传输性能。但在磁盘出现故障时无法提供数据冗余。
- RAID 1:镜像(Mirroring),由两个磁盘(且只是两个)组成,数据会同时写在两个硬盘上,两个硬盘的内容一模一样,但对于系统来说只会见到一个硬盘,磁盘阵列的有效可用空间只有实际容量的一半,具有理想的可靠性。
- RAID 2:又称纠错海明码磁盘阵列。磁盘阵列中的第一、二、四……第2n个硬盘是专门的校验盘,用于校验和纠错。RAID 2对大数据量的输入输出有很高的性能,但少量数据的输入输出时性能不好,现在基本已经不采用。
- RAID 3:通过将数据分段记录到位或字节大小的块中,并将数据平均分配到 N 个并联的磁盘中,其中的一个磁盘作为奇偶驱动器,这个模式不适合于多进程任务。但适合视频及图象处理等应用,现在基本已经不采用。
- RAID 5:数据和编码数据保护信息都被分配到阵列中的所有驱动器上,硬件会将奇偶信息读写到阵列中的每个模块中。如果一个模块出现故障,系统处理器能够利用其他磁盘模块上的用户数据和奇偶信息来重建所有的用户数据,这种模式在性能、可靠性以及成本等几方面都比较均衡,成为目前外部存储的应用主流模式。
RAID新发展
- RAID 4:包括较大的数据条,这样,就可以从任何驱动器读取记录。由于这种类型缺乏对多种同时写操作的支持,使用单一校验磁盘,性能和可靠性都有缺陷,因而应用很少。
- RAID 6:使用一种分配在不同的驱动器上的第二种奇偶方案,扩展了RAID 5。它能承受多个驱动器同时出现故障,目前还没有进入成熟应用阶段。
- RAID 7:其结构几乎与计算机机构相同,甚至被称为“RAID计算机”,价格相当昂贵,目前也没有成熟应用。
- RAID 10:由数据条带阵列组成,其中,每个条带都是驱动器的一个RAID 1阵列。它与RAID 1的容错能力相同,面向需要高性能和冗余,但不需要高容量的数据库服务器。
- 多层级别 RAID :多个RAID 级别也可结合成一个多层级别的RAID,比较常见的多层级别RAID是RAID 0+1或称 RAID 0/1 及 RAID 0+5或称 RAID 0/5。
- RAID 53是一种多层RAID,总体与Level 0相似,但其中每一段都是一个RAID 3阵列。它的冗余与容错能力同RAID 3。这对需要具有高数据传输率的RAID 3配置的IT系统有益,但价格昂贵、效率偏低。