热点推荐
ZOL首页 > 服务器 > 知识学堂 > 存储学堂:磁盘阵列和RAID卡技术漫谈

存储学堂:磁盘阵列和RAID卡技术漫谈


CNET中国·ZOL 作者:中关村在线 张桂林 【原创】 2008年01月10日 09:12 评论
回到顶部阅读

RAID技术简介

一, RAID技术简介

  RAID是英文Redundant Array of Independent Disks的简称,可以翻译为独立磁盘冗余阵列或廉价磁盘冗余阵列。RAID技术诞生于1987年,由两位美国加州大学伯克利分校的工程师所提出,最早的初衷只是希望将多块小磁盘组合起来使用来代替昂贵的独立大容量硬盘,后经发展RAID技术被应用于高端服务器领域,配合SCSI硬盘,可以提升磁盘子系统的存储速度和冗余容错功能。简单的说,RAID是一种把多块独立的硬盘按不同方式组合起来形成一个硬盘组,从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。

  近年来随着超大规模集成电路技术的不断迅速发展,处理器内存的速度越来越快,处理能力不断增强,随之而来的问题就是磁盘子系统的性能成为整个系统性能的瓶颈,此外,随着磁盘容量不断的增长,现今单个磁盘的容量已达TB级,数据的稳定性和安全性成为企业需要着重考虑的问题,磁盘子系统需要更快的存储读写速度,也需要高度的稳定性及冗余容错功能,一旦部分磁盘数据损坏,需要在尽短的时间内进行灾难恢复,实现数据重建。

  而RAID技术就实现了这样的功能:RAID技术可以将2块以上的硬盘组成磁盘阵列,实现数据的并行存储,大大提升了磁盘的存储速度,并且RAID可以提供磁盘的冗余容错,不同的RAID方式提供不同的容错功能,处于磁盘阵列中的部分硬盘一旦数据损坏,RAID技术可以迅速将数据重建,最大限度地保证了企业数据的安全。

  早期的RAID技术只应用于高端服务器,并且只配合SCSI硬盘使用。后来随着IDE硬盘转速的提升和RAID技术的发展,RAID技术也被应用于桌面计算机领域。现今,RAID技术已经被广泛应用于SATA,SAS接口硬盘之上。

回到顶部阅读

二, 常见的RAID组合方式

  所谓RAID组合方式可以理解为如何将多块硬盘组合起来,实现存储速度的提升和数据的冗余。RAID技术发展到今天,已经形成了多种磁盘整理方式。其中包括RAID0~RAID7,以及RAID0+1等组合方式。其中比较常见的为RAID0,RAID1,RAID10(RAID0+1),RAID5,RAID6,其余几种方式在实际使用中并不多见。下面对这几种常见的磁盘组合方式来做一下简单介绍:

  RAID0:英文为Striped Disk Array without Fault Tolerance,可以翻译为没有容错功能的条带磁盘阵列。下面是逻辑图:


存储学堂:漫谈磁盘阵列和RAID卡技术
RAID0结构图

  实现RAID0磁盘阵列需要至少2块硬盘,推荐等容量,也可以不等容量。工作原理是将硬盘并联在一起,在存储数据的时候将数据分成容量相同的小数据块,然后并发的存储到磁盘阵列中的磁盘中。用上方的图来举例,4个圆柱代表4个硬盘,在存储数据的时候,数据被分割成小数据块同时存储到四块硬盘中,这样一来比起传统的串行存储来说大大的提升了存储的速度,速度可以提高50%以上。

  需要注意的是,RAID0模式不提供数据的冗余容错,因为数据是分散的存储到磁盘阵列中的所有硬盘上,一旦其中一块硬盘损坏,其他硬盘上的数据也将不能连贯,导致数据的全部报废。再者建议使用相同容量的硬盘组成RAID0模式,否则会造成存储空间的浪费。  

  RAID0模式极大的提高了存储速度,并且配置简单,不需要校验数据而占用系统资源,但是不提供数据的容错,不宜应用于关键的数据存储,比较适合用于追求硬盘传输速度的领域。

  RAID1:英文Mirroring and Duplexing,可以翻译为镜像磁盘阵列。下面是逻辑图:

存储学堂:漫谈磁盘阵列和RAID卡技术
RAID1结构图

  RAID1磁盘阵列需要至少2块硬盘,彼此作为备份。在向磁盘阵列进行存储时,同时向磁盘阵列中的硬盘同时写入相同的数据。以两块硬盘做成的RAID1阵列举例,两块硬盘容量内容完全相同,如果其中一块硬盘数据出现问题,立刻可以利用第二块硬盘中的备份的数据进行恢复。RAID1阵列具备强大的冗余容错功能,是很安全的一种磁盘阵列模式,而且可以显著提升磁盘子系统的读取速度。但是这种磁盘阵列模式也存在显著的缺陷,只能提供冗余而不能提升存储性能,而且需要一笔不小的开支来购买镜像硬盘来提供冗余,这种模式不能增加整个磁盘阵列的容量,单一的镜像硬盘也不能作用于由多块硬盘组成的RAID1磁盘阵列。
    
  RAID10:英文为Very High Reliability combined with High Performance,可以翻译成高可靠性与高性能的组合。这种组合RAID模式实际上是多个RAID模式组合而成。RAID10就是建立在RAID0和RAID1的基础之上的。下面是逻辑图: 

存储学堂:漫谈磁盘阵列和RAID卡技术
RAID10结构图

  上图只是RAID10的一种模式,可以看出是由RAID0和RAID1结合而成。分为两部操作,RAID0部分数据并发存储读取,大大的提高了磁盘性能,RAID1部分作为数据的备份冗余,保证数据的安全性。RAID10可以说同时具备了RAID0的磁盘性能和RAID1的冗余容错功能,但是这种模式依旧浪费硬盘空间,企业也需要大笔的资金投入来保证数据的冗余。这种模式比较适合于对磁盘性能要求比较高,但是存储容量不大的领域。

  RAID5:英文为Independent Data disks with distributed parity blocks,可以翻译为带分布式校验块的独立数据磁盘阵列。前面介绍的几种磁盘阵列均有其各自的缺陷。而RAID5模式由于兼俱了前几种模式的优势而不具备前面的劣势,目前被更为广泛的应用。下面是逻辑图:

存储学堂:漫谈磁盘阵列和RAID卡技术
RAID5结构图

  以上图为例,每个圆柱代表一块硬盘,在存储数据时,类似于RAID0,数据被分割成小块同时存储到前四块硬盘上,而将综合前面四块数据得出的校验值存储在第五块硬盘上。依次类推,由图上可以看到,每次并发存储时,总有一块硬盘存储校验值,这些校验值存在于每一块硬盘上,所以如果其中一块硬盘损坏,可以通过其他四块硬盘上的数据和校验值计算出这块硬盘上的数据,使损坏的数据可以尽快恢复。

  RAID5既可以极大地提高磁盘性能,还可以提供数据冗余平衡,因为不需要单独的硬盘来提供冗余,所以大大节省了冗余所付出的成本,但是RAID5模式设计复杂,需要计算校验值而占用系统的运算资源。

  RAID6:英文为Independent Data disks with two independent distributed parity schemes,可以翻译为带有两个独立分布式校验方案的独立数据磁盘。RAID6是在RAID5的基础上发展起来的,比RAID5进一步加强了对数据的保护,下面是逻辑图:

存储学堂:漫谈磁盘阵列和RAID卡技术
RAID6结构图

  与RAID5类似,数据也是分块来存储,以上图为例,每个圆柱代表一块硬盘,在存储时,数据被分块并发同时存储到前三块硬盘上,计算这三块并行的数据得出的校验值存储在第四块硬盘上。这个功能与RAID5相同。但是除此之外,RAID6提供了另外一种数据校验,即针对每个硬盘来说,计算这块硬盘上存储的所有数据块,然后得出一个校验值,然后将这个值存储。但是这个校验值不存于本块硬盘之上,而是分散的存储于磁盘阵列中的其他一块硬盘之上,这样一来保证了校验值的数据安全。

  RAID6对每个数据块提供了两重校验,比RAID5提供了更好的数据保护,对磁盘子系统提供了更优秀的冗余容错,但是在设计和管理上RAID6更为复杂,并且由于两重校验数据,需要消耗更大的运算资源,也降低了磁盘的储存效率。所以相对RAID5来讲RAID6不具备明显的优势。

回到顶部阅读

三, RAID功能的实现

  实现RAID可以有三种途径:

  1, 软RAID:不通过第三方的控制处理和I/O芯片,完全由操作系统CPU来实现所有RAID的功能,比如Windows Server 2003可以实现RAID0/1/5模式,虽然配置管理和数据恢复起来都比较简单,但是RAID所有任务的处理比如计算校验值等操作完全由CPU来完成,所以执行效率比较低下,这种方式需要消耗大量运算资源,支持RAID模式较少,应用不广泛。

  2, 半软半硬RAID:虽然采用了RAID处理控制芯片,但是为了节省成本,芯片的处理能力不强,RAID的任务处理大部分还是由CPU来完成。这是在有限的成本之下获得低等级RAID功能的一种折中方案。

  3, 硬RAID:全硬的RAID则全面具备了自己的RAID控制处理与I/O处理芯片,甚至还有阵列缓冲(Array Buffer),对CPU的占用率以及整体性能是这三种类型中最优势的,但设备成本也是三种类型中最高的。

四, RAID卡介绍

  上面刚刚提到了硬RAID,硬RAID包含RAID卡和主板上集成的RAID芯片。而RAID
卡在服务器平台应用的更为广泛,这里主要介绍一下RAID卡。
  
  所谓RAID卡就是可以实现RAID功能的独立板卡。RAID卡主要由以下几部分组成:

  1、 RAID核心处理芯片:用来实现RAID功能的处理芯片,可以理解为RAID卡上的“CPU”。用来实现RAID的建立和重建,检测和修复多位错误,错误磁盘自动检测等功能。RAID芯片使CPU的资源得以释放。目前生产RAID芯片的厂商主要有Promise、Highpoint、Intel、3ware、Adaptec、Silicon Image等。现在主流应用的SAS接口RAID卡多采用Intel公司的IOP348和LSI公司的SAS RoC LSISAS1078等。

  2、 端口:端口是指RAID卡支持的硬盘接口类型。目前有IDE、SCSI、SATA和SAS接口。前三种上市时间已久,市场上不难见到Promise,LSI,Adaptec等厂商的产品, SAS接口的RAID卡目前Adaptec,LSI,Highpoint,3ware,Intel等厂家的产品已经面市,产品线也在逐渐丰富。

  RAID卡按端口数目来分有2,4,8等端口的产品,Adaptec公司在07年3月推出的Adaptec RAID 31205配备12个内部端口,Adaptec RAID 31605则配备16个内部端口,为业界独有。


存储学堂:漫谈磁盘阵列和RAID卡技术
Adaptec RAID 31605

    端口的类型不同,RAID卡所能支持的驱动器数目也不同。这里涉及一个概念,独立通道数目。所谓独立通道数目是指RAID卡所带有的独立硬盘通道的数目,对于IDE端口RAID卡来说,一个独立通道可以接两个IDE硬盘,所以支持IDE驱动器的数目等于独立通道数目的两倍。对于SCSI RAID卡来说,由于一个SCSI接口可以连接多个(比如14个)硬盘,因此独立通道数目和支持驱动器数目相差若干倍。比如单通道的SCSI RAID卡可以连接14个硬盘,4通道则可以连接56个硬盘。对于SATA端口RAID卡来说,由于一个SATA通道只能连接一块SATA硬盘,因此独立通道的数目就等于支持驱动器数目。SAS端口RAID卡可以支持更多的驱动器数量,例如3ware 9690SA系列SAS端口RAID卡通过SAS扩展器最大可以支持128个设备。

存储学堂:漫谈磁盘阵列和RAID卡技术
3ware 9690SA系列

  3、 缓存:缓存(Cache)是RAID卡与外部总线交换数据的场所,RAID卡先将数据传送到缓存,再由缓存和外边数据总线交换数据。它是RAID卡电路板上的一块存储芯片,与硬盘盘片相比,具有极快的存取速度,实际上就是相对低速的硬盘盘片与相对高速的外部设备(例如内存)之间的缓冲器。缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素,大缓存能够大幅度地提高数据命中率从而提高RAID卡整体性能。 多数RAID卡都配备了一定数量的内存作为高速缓存使用。不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等,这取决于磁盘阵列产品的应用范围。目前主流RAID卡所集成的缓存类型多为ECC DDR2,容量有64MB,128MB,256MB,512MB等。

  4、 电池:一些高端RAID卡上面还带有电池,电池的主要作用是给缓存供电,防止意外断电时RAID卡缓存中没有写入硬盘的数据丢失。

  看到这里,想必大家已经对RAID技术和RAID卡有一个初步的认识。由于篇幅有限,不可能对RAID技术和RAID卡产品一一详细介绍,如果需要了解更多关于RAID技术的探讨,请关注中关村在线的知识学堂。

 

查看本文作者 张桂林 的其他文章>>
给文章打分 5分为满分(共0人参与) 查看排行>>
频道热词:LED照明  工作站  云计算  
视觉焦点
服务器知识学堂热点
排行 文章标题
TOP10周热门服务器排行榜
  • 热门
  • 新品
  • 系列
查看完整榜单>>