磁盘阵列(DiscArray)是由许多台磁盘机或光盘机按一定的规则,如分条(Striping)、分块(Declustering)、交叉存取(Interleaving)等组成一个快速,超大容量的外存储器子系统。它在阵列控制器的控制和管理下,实现快速,并行或交叉存取,并有较强的容错能力。从用户观点看,磁盘阵列虽然是由几个、几十个甚至上百个盘组成,但仍可认为是一个单一磁盘,其容量可以高达几百~上千千兆字节,因此这一技术广泛为多媒体系统所欢迎。 盘阵列的全称是:RedundanArrayofInexpensiveDisk,简称RAID技术。它是1988年由美国加州大学Berkeley分校的DavidPatterson教授等人提出来的磁盘冗余技术。从那时起,磁盘阵列技术发展得很快,并逐步走向成熟。现在已基本得到公认的有下面八种系列。 一、RAID0(0级盘阵列) RAID0又称数据分块,即把数据分布在多个盘上,没有容错措施。其容量和数据传输率是单机容量的N倍,N为构成盘阵列的磁盘机的总数,I/O传输速率高,但平均无故障时间MTTF(MeanTimeToFailure)只有单台磁盘机的N分之一,因此零级盘阵列的可靠性最差。 二、RAID1(1级盘阵列) RAID1又称镜像(Mirror)盘,采用镜像容错来提高可靠性。即每一个工作盘都有一个镜像盘,每次写数据时必须同时写入镜像盘,读数据时只从工作盘读出。一旦工作盘发生故障立即转入镜像盘,从镜像盘中读出数据,然后由系统再恢复工作盘正确数据。因此这种方式数据可以重构,但工作盘和镜像盘必须保持一一对应关系。这种盘阵列可靠性很高,但其有效容量减小到总容量一半以下。因此RAID1常用于对出错率要求极严的应用场合,如财政、金融等领域。 三、RAID2(2级盘阵列) RAID2又称位交叉,它采用汉明码作盘错检验,无需在每个扇区之后进行CRC(CyclicReDundancycheck)检验。汉明码是一种(n,k)线性分组码,n为码字的长度,k为数据的位数,r为用于检验的位数,故有:n=2r-1r=n-k 因此按位交叉存取最有利于作汉明码检验。这种盘适于大数据的读写。但冗余信息开销还是太大,阻止了这类盘的广泛应用。 四、RAID3(3级盘阵列) RAID3为单盘容错并行传输阵列盘。它的特点是将检验盘减小为一个(RAID2校验盘为多个,DAID1检验盘为1比1),数据以位或字节的方式存于各盘(分散记录在组内相同扇区号的各个磁盘机上)。它的优点是整个阵列的带宽可以充分利用,使批量数据传输时间减小;其缺点是每次读写要牵动整个组,每次只能完成一次I/O。 五、RAID4(4级盘阵列) RAID4是一种可独立地对组内各盘进行读写的阵列。其校验盘也只有一个。 RAID4和RAID3的区别是:RAID3是按位或按字节交叉存取,而RAID4是按块(扇区)存取,可以单独地对某个盘进行操作,它无需象RAID3那样,那怕每一次小I/O*作也要涉及全组,只需涉及组中两台磁盘机(一台数据盘,一台检验盘)即可。从而提高了小量数据的I/O速率。 六、RAID5(5级盘阵列) RAID5是一种旋转奇偶校验独立存取的阵列。它和RAID1、2、3、4各盘阵列的不同点,是它没有固定的校验盘,而是按某种规则把其冗余的奇偶校验信息均匀地分布在阵列所属的所有磁盘上。于是在同一台磁盘机上既有数据信息也有校验信息。这一改变解决了争用校验盘的问题,因此DAID5内允许在同一组内并发进行多个写*作。所以RAID5即适于大数据量的操作,也适于各种事务处理。它是一种快速,大容量和容错分布合理的磁盘阵列。 七、RAID6(6级盘阵列) RAID6是一种双维奇偶校验独立存取的磁盘阵列。它的冗余的检、纠错信息均匀分布在所有磁盘上,而数据仍以大小可变的块以交叉方式存于各盘。这类盘阵列可容许双盘出错。 八、RAID7(7级盘阵列) RAID7是在RAID6的基础上,采用了cache技术,它使得传输率和响应速度都有较大的提高。Cache是一种高速缓冲存储器,即数据在写入磁盘阵列以前,先写入cache中。一般采用cache分块大小和磁盘阵列中数据分块大小相同,即一块cache分块对应一块磁盘分块。在写入时将数据分别写入两个独立的cache,这样即使其中有一个cache出故障,数据也不会丢失。写操作将直接在cache级响应,然后再转到磁盘阵列。数据从cache写到磁盘阵列时,同一磁道的数据将在一次操作中完成,避免了不少块数据多次写的问题,提高了速度。在读出时,主机也是直接从cache中读出,而不是从阵列盘上读取,减少与磁盘读操作次数,这样比较充分地利用了磁盘带宽。 这样cache和磁盘阵列技术的结合,弥补了磁盘阵列的不足(如分块写请求响应差等缺陷),从而使整个系统以高效、快速、大容量、高可靠以及灵活、方便的存储系统提供给用户,从而满足了当前的技术发展的需要,尤其是多媒体系统的需要。
在磁盘阵列的概念中,大容量硬盘并不是指单个硬盘容量大,而是指将单个硬盘通过RAID技术,按RAID 级别组合成更大容量的硬盘。所以在磁盘阵列技术中,RAID技术是比较关键的,同时,根据所选用的RAID级别的不同,得到的“大硬盘”的功能也有不同。 RAID是一项非常成熟的技术,但由于其价格比较昂贵,配置也不方便,缺少相对专业的技术人员,所以应用并不十分普及。据统计,全世界75%的服务器系统目前没有配置RAID。由于服务器存储需求对数据安全性、扩展性等方面的要求越来越高,RAID市场的开发潜力巨大。RAID技术是一种工业标准,各厂商对RAID级别的定义也不尽相同。目前对RAID级别的定义可以获得业界广泛认同的只有4种,RAID 0、RAID 1、RAID 0+1和RAID 5。 RAID 0是无数据冗余的存储空间条带化,具有低成本、极高读写性能、高存储空间利用率的RAID级别,适用于Video / Audio信号存储、临时文件的转储等对速度要求极其严格的特殊应用。但由于没有数据冗余,其安全性大大降低,构成阵列的任何一块硬盘损坏都将带来数据灾难性的损失。所以,在RAID 0中配置4块以上的硬盘,对于一般应用来说是不明智的。 RAID 1是两块硬盘数据完全镜像,安全性好,技术简单,管理方便,读写性能均好。但其无法扩展(单块硬盘容量),数据空间浪费大,严格意义上说,不应称之为“阵列”。 RAID 0+1综合了RAID 0和RAID 1的特点,独立磁盘配置成RAID 0,两套完整的RAID 0互相镜像。它的读写性能出色,安全性高,但构建阵列的成本投入大,数据空间利用率低,不能称之为经济高效的方案。 RAID 5是目前应用最广泛的RAID技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验(异或运算),校验数据平均分布在每块硬盘上。以n块硬盘构建的RAID 5阵列可以有n-1块硬盘的容量,存储空间利用率非常高。任何一块硬盘上数据丢失,均可以通过校验数据推算出来。它和RAID 3最大的区别在于校验数据是否平均分布到各块硬盘上。RAID 5具有数据安全、读写速度快,空间利用率高等优点,应用非常广泛,但不足之处是1块硬盘出现故障以后,整个系统的性能大大降低。 对于RAID 1、RAID 0+1、RAID 5阵列,配合热插拔(也称热可替换)技术,可以实现数据的在线恢复,即当RAID阵列中的任何一块硬盘损坏时,不需要用户关机或停止应用服务,就可以更换故障硬盘,修复系统,恢复数据,对实现HA(High Availability)高可用系统具有重要意义。 各厂商还在不断推出各种RAID级别和标准。例如更高安全性的,从RAID控制器开始镜像的RAID;更快读写速度的,为构成RAID的每块硬盘配置CPU和Cache的RAID等等,但都不普及。用IDE硬盘构建RAID的技术是新出现的一个技术方向,对市场影响也较大,其突出优点就是构建RAID阵列非常廉价。目前IDE RAID可以支持RAID 0、RAID 1和RAID 0+1三个级别,最多支持4块IDE硬盘。由于受IDE设备扩展性的限制,同时,也由于IDE设备也缺乏热可替换的技术支持的原因,IDE RAID的应用还不多。 总之,发展是永恒的主题,在服务器存储技术领域也不例外。一方面,一些巨头厂商尝试推出新的概念或标准,来领导服务器及存储技术的发展方向,较有代表性的如Intel力推的IA-64架构及存储概念;另一方面,致力于存储的专业厂商以现有技术和工业标准为基础,推动SCSI、RAID、Fibre Channel等基于现有存储技术和方案快速更新和发展。在市场经济条件下,检验技术发展的唯一标准是市场的认同。市场呼唤好的技术,而新的技术必须起到推动市场向前发展作用时才能被广泛接受和承认。随着高性能计算机市场的发展,高性能比、高可靠性、高安全性的存储新技术也会不断涌现。 |