| 随着计算机性能的飞速提高,特别是硅部件按照摩尔定律以每18个月翻一番的速度提高性能,这还是保守的估计,实际上随着竞争的日益激烈,这种发展速度越来越快,甚至已经大大超越了莫尔定律的速度。而相比之下,由于使用的结构都是机械的部件,所以因为这个限制,造成硬盘已经成为目前计算机系统中最大的瓶颈所在。
为了解决这个问题,许多方法都被想了出来,最直接的方法就是提高单个硬盘的性能。目前有效、有效的方法就是提高单个磁盘的性能水平。目前基本可以使用的方法是直接提高磁盘的单碟容量,这样可以令在不提高磁盘转速的情况下,获得更多的数据;提高主轴转速,目的也是以更少的时间或度更多的数据;还有一个基本的方法是增加缓冲内存的方法,这种方法对于提高磁盘的突发传输能力的提高很有好处,另外提高缓冲器的效率也实体高性能的一个途径,但是算法已经相当的成熟了,不会有太大幅度的提高。
上面的方法虽然都能不同程度的提高磁盘性能,但是还是由于是机械结构的部件,所以也就收到了机械本身技术水平的限制,就是说不能像电子产品那样可以按照摩尔定律的速度提高性能。从目前的实际情况也可以看得出,自从pc出现以来,只有磁盘性能是数十倍的提高,剩下的部件哪个不是数百数千倍的提高?如何能够使系统的磁盘性能能大幅度的提高而又不用花费太大的代价就成为摆在设计者面前了,作为辅存,当然用主存——内存来替代可以做到,但是这样的成本未免太高了,是不大可行的。
什么能达到真正少花钱,而提高性能的目的呢?解决方法早就有了,这就是RAID——磁盘阵列。其实用磁盘阵列来表达还略有欠缺,按照能够获得更高性能、而且是价格相对低廉,这样,用RAID的原意才更能够明确的表达这个意思。RIAD是英文Redundant
Array of Inexpensive Disks的缩写,中文称为廉价冗余磁盘阵列。按照这个意思,可以明确的知道这种技术的基层含义,首先就是廉价,作为一个要投入商业运行的设备,成本因素是不能不考虑的;冗余,要明确的是,在某些时候,数据冗余将带来难以解决的数据同步问题,但是也正是这个数据的稍微错位,带来了相对情况下的数据安全,数据安全问题同样是重要的领域中特别关注的问题之一,也就是利用这种多余的数据,保证总能维持数据某种情况下的完整性。虽然RAID包含多块磁盘,但是在操作系统下是作为一个独立的大型存储设备出现,这就保证了在某些特定的零用领域里对不断扩大的容量的需求,而单单靠不断提高单个硬盘的技术水平是无法做到如此大规模的提高的。很简单的例子,普通的UNIX或者是NT这样的系统,支持的单个磁盘容量都在TB的量级,可是使用的“卷”的容量也在相当的数量级,而目前技术水平,生产出100G左右的硬盘才是刚刚的事情,但是如果用几个,甚至是成百上千个硬盘做成阵列,这就不在话下了。RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和速度、价格、容量等几种不同的对磁盘阵列的要求,归根到底都数据磁盘的性能标准,所以说回来又是追求低价高性能的必然选择。
目前就RIAD的水平来说,RAID可以提供RAID0、1、3、5,RAID0又可以配合后三种进行更多的功能组合,也就是RAID10、30、50的工作方式,除去这些RAID工作方式外,还有一种JBOD方式,它不属于标准的RIAD方式,所以自然也没有命名成RAIDX,有关它的工作方式的说明,下面将会介绍到。
RAID0,又称为集带(Striping)工作方式。工作状态是几个磁盘同时工作,系统传输来的数据,经过RAID控制器通常是平均分配到几个磁盘中。而这一切对于系统来说是完全不用干预的,从系统的角度看,N个硬盘是一个容量为N个硬盘容量之和的“大”硬盘。RAID0的主要工作目的是获得更大的“单个”磁盘容量。另一方面就是多个硬盘同时读取,从而获得更高的存取速度,这也是RAID0同JBOD方式的最大区别。
JBOD,又称为串联方式,前面已经说过,它同RAID0的区别就在于磁盘的读取方式。RAID0之所以能够提高速度就在于它的多个硬盘“同时”读取“一块”数据的特点。而JBOD却不然,以前由于专门处理RAID数据的CPU工作能力不足的问题,无法解决不容量的磁盘进行RAID0时的同步控
制问题,所以就出现了这么一种折衷的解决方案。它的工作原理就是将数个硬盘的存储串联起来工作,可以理解成一个硬盘装满了以后,数据
就会被存放到下一个硬盘中去,也就是没有同RAID0一样的同时存储,也就无法享受这样使用多个硬盘带来的速度上的好处了,当然容量上还是N个硬盘之和。好在这种方式没有太多意义,但是它可以解决一大堆小硬盘(少见这种情况)个个都不大的问题,还有就是这种方式由于数据几乎没有被切割,所以一旦阵列出现故障,数据还是比较安全的,恢复比较容易。
RAID1,又称为镜像(Mirroring)方式。这种工作方式的出现完全是为了数据安全考虑的,因为在整个镜像的过程中,只有一半的磁盘容量是有效的,因为另一半用来存放同这一半完全一样的数据,也就是数据的冗余了。同RAID0相比,它是另一个极端。RAID0首要考虑的是磁盘的速度和容量,忽略安全;而RAID1首要考虑的是数据的安全性,容量可以减半、速度可以不变。
所以为了达到相对既有高速又有安全目的,RAID10(或者叫RAID0+1)就可以解决它了。RAID10也可以简单的理解成两个分别由多个磁盘组成的RAID0阵列再进行镜像;其实反过来理解也没有错。
RAID 3和RAID 5都是校验的工作方式。就像内存可以通过多加一位进行奇偶校验以防止数据传输错误一样,它们也是通过牺牲一部分的容量,到存放对有效数据校核的结果的目的。但是也同内存一样,RAID3、5使
用的算法只是一种奇偶校验,也就是它的纠错能力只能到到告诉你有没有错的水平,至于错误在哪里,至少通过RAID3、5是无法知晓的。甚至会出现一种极为少见的情况,也就是在这种极端情况下(就是不可能啦),同时有2位(其实只要是偶数位就会这样,当然更少见了)数据出现错误,那么这时候奇偶会认为没有错误发生!!比较起知道数据出现错
误所花费的代价,奇偶校验比CRC(冗余校验码)浪费的容量小,它只花费所有容量的25%作为存放校验数据的地方。也就是还有75%容量是可以用的,比起RAID1(RAID10)的50%节约了不少,但是数据安全性也有所下降;比RAID0容量利用率低一些,可是多一些安全保证。
由于任何数据的改变都要修改对要修改相应的数据校验信息,这就带来了一个问题。存放数据的磁盘可以好几个并行工作,带宽也是倍增的;但是负责存放校验数据的磁盘只有那么一个,在频繁的进行数据修改的工作的时候,校验内容也要同步修改,瓶颈就会出现在这个硬盘上。这
样的工作方式就是RAID3,与之相对应的,减少这个瓶颈发生可能性的方式就是RAID5,但是即便使用了RAID5也不是说就一切都是好的。因为
RAID5的工作方式是将各个硬盘生成的数据校验块切成块,分别存放到组成阵列的各个硬盘中去,这样虽然缓解了校验数据存放时的瓶颈问题,但是分割数据以及控制存放都是要付出速度上的代价的;而且一旦阵列中的任何一个磁盘出现故障,所有数据基本上都会作废,不像RAID3时如果出现故障的磁盘正好是存放校验数据的,那么还有希望恢复其他磁盘中的正常数据。
RAID30、RAID50相对应的工作方式也可以像理解RAID10那么理解无论如何,由于RAID3和RAID5需要大量的运算(主要是CPU不擅长的异或
),所以通常是无法使用CPU来完成这样的工作的。所以目前能支持RAID3和RAID5(包括RAID30、RAID50)都要使用专门的RAID控制处理起来完成,比较著名+经典控制芯片有intel的I960。
说了这么多理论,但是对于普通消费者来讲,RAID一点也不廉价。其原因很简单,这种对磁盘I/O需求强烈的地方一般是工作站、服务器之类的领域音,所有使用的设备都是SCSI接口的;并非面对个人用户,对于它们廉价的在普通人眼里依然十分的昂贵,即便是一块SCSI硬盘再加SCSI控制器,其成本也要较通常用于PC的IDE设备高出数倍。
那么普通用户真的就无法享受RAID技术为我们带来的性能提高的好处么?当然不是的,RAID并没有要求必须在SCSI上实现,原来没有应用在IDE硬盘上只是因为成本和用户群。现在,只要不使用专用的RAID控制处理器,而仅仅是用特殊设计过的IDE控制器,附加使用软件实现RAID(其实WINNT早就可以了)完全不是问题。
目前流行的这样的产品有很多品牌,其中最常见的是PROMISE和HIGHPOINT。从技术水平上说,PROMISE更胜一筹,它的20262芯片不仅是DMA66控制芯片,而且还是一颗能支持软件RAID0、1、10的RAID芯片,20267更是将它提高到了DMA100控制兼RAID)芯片的水平。通过
PROMISE自身较强的技术,它们还研制出利用2~3块20262(20267)联合工作,组成能支持更多IDE通道,并通过配合板载的I960芯片实现硬件
RAID功能功能的系列产品(SUPERTRAK),这样对于支持其他软RAID控制卡不能完成的RAID3、5功能有了完全的支持。这在同种产品中可谓是独树一帜。如此,利用廉价的IDE硬盘就能够实现原来需要数倍于此价格的SCSI
RAID阵列的全部功能了,真正实现了RAID的全部含义——廉价冗余磁盘阵列。
PROMISE的IDE控制芯片(相应的产品是ULTRA66)只要对BIOS稍加改变,就可以变成支持简单的软RAID功能的FASTTRAK66,使得众多的发烧友自己动手改装成RAID卡,成为PROMISE产品热买的重要原因。它的主要竞争对手HIGHPOINT自然不会坐视不理,所以除了原来就具有的零售市场上相应低廉的价格和OEM市场上较多的主板厂商的支持所具有的优势,也改进了技术,推出了同样具有软RAID0、1、10功能的368芯片,而它以前只是一颗DMA66控制芯片。更重要的是,使用368生产出来的RAID卡,价格不会比DMA66卡贵很多,特别是集成在主板上的368芯片的通常已经在BIOS中提供了RAID功能,这样一来,使用HIGHPOINT芯片的RAID卡就要比使用PROMISE芯片的便宜了许多。
随着DMA100标准的发布以及相应硬盘产品的发布,两个主要的竞争厂家都推出了相应的产品,PROMISE的是20267,而HIGHPOINT的是370。同样PROMISE还拥有技术水准更高的SUPERTRAK系列,HIGHPOINT还拥有更低廉的价格。
其他同样涉足这个领域的厂商,如AMI、CMD等厂商,同样不会放弃竞争,产品也都普遍添加了RAID功能,相信随着竞争进入白热化,实现我们低价高性能的要求会越来越近的。 |