RAID磁盘阵列技术简述

在计算机发展的初期,“大容量”硬盘的价格还至关高,解决数据存储安全性问题的主要方法是使用磁带机等设备进行备份,这种方法虽然能够保证数据的安全,但查阅和备份工做都至关繁琐。1987年, Patterson、Gibson和Katz这三位工程师在加州大学伯克利分校发表了题为《A Case of Redundant Array of Inexpensive Disks(廉价磁盘冗余阵列[被屏蔽广告]方案)》的论文,其基本思想就是将多只容量较小的、相对廉价的硬盘驱动器进行有机组合,使其性能超过一只昂贵的大硬盘。这一设计思想很快被接受,今后RAID技术获得了普遍应用,数据存储进入了更快速、更安全、更廉价的新时代。    磁盘阵列对于我的电脑用户,仍是比较陌生和神秘的。印象中的磁盘阵列彷佛还停留在这样的场景中:在宽阔的大厅里,林立的磁盘柜,数名表情阴郁、早早谢顶的工程师徘徊在其中,不断从中抽出一块块沉重的硬盘,再插入一块块彷佛更加沉重的硬盘……终于,随着大容量硬盘的价格不断下降,我的电脑的性能不断提高,IDE-RAID做为磁盘性能改善的最廉价解决方案,开始走入通常用户的计算机系统。 1、RAID技术规范简介   RAID技术主要包含RAID 0~RAID 7等数个规范,它们的侧重点各不相同,常见的规范有以下几种:   RAID 0:RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,所以具备很高的数据传输率,但它没有数据冗余,所以并不能算是真正的RAID结构。RAID 0只是单纯地提升性能,并无为数据的可靠性提供保证,并且其中的一个磁盘失效将影响到全部数据。所以,RAID 0不能应用于数据安全性要求高的场合。   RAID 1:它是经过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,所以RAID 1能够提升读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统能够自动切换到镜像磁盘上读写,而不须要重组失效的数据。   RAID 0+1: 也被称为RAID 10标准,实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据而且并行读/写多个磁盘的同时,为每一块磁盘做磁盘镜像进行冗余。它的优势是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,可是CPU占用率一样也更高,并且磁盘的利用率比较低。   RAID 2:将数据条块化地分布于不一样的硬盘上,条块单位为位或字节,并使用称为“加剧平均纠错码(海明码)”的编码技术来提供错误检查及恢复。这种编码技术须要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,所以在商业环境中不多使用。   RAID 3:它同RAID 2很是相似,都是将数据条块化分布于不一样的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。若是一块磁盘失效,奇偶盘及其余数据盘能够从新产生数据;若是奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来讲,奇偶盘会成为写操做的瓶颈。   RAID 4:RAID 4一样也将数据条块化并分布于不一样的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘做为奇偶校验盘,每次写操做都须要访问奇偶盘,这时奇偶校验盘会成为写操做的瓶颈,所以RAID 4在商业环境中也不多使用。   RAID 5:RAID 5不单独指定的奇偶盘,而是在全部磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操做,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到全部的阵列盘;而对于RAID 5来讲,大部分数据传输只对一块磁盘操做,并可进行并行操做。在RAID 5中有“写损失”,即每一次写操做将产生四个实际的读/写操做,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。   RAID 6:与RAID 5相比,RAID 6增长了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不一样的算法,数据的可靠性很是高,即便两块磁盘同时失效也不会影响数据的使用。但RAID 6须要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,所以“写性能”很是差。较差的性能和复杂的实施方式使得RAID 6不多获得实际应用。   RAID 7:这是一种新的RAID标准,其自身带有智能化实时操做系统和用于存储管理的软件工具,可彻底独立于主机运行,不占用主机CPU资源。RAID 7能够看做是一种存储计算机(Storage Computer),它与其余RAID标准有明显区别。除了以上的各类标准(如表1),咱们能够如RAID 0+1那样结合多种RAID规范来构筑所需的RAID阵列,例如RAID 5+3(RAID 53)就是一种应用较为普遍的阵列形式。用户通常能够经过灵活配置磁盘阵列来得到更加符合其要求的磁盘存储系统。   开始时RAID方案主要针对SCSI硬盘系统,系统成本比较昂贵。1993年,HighPoint公司推出了第一款IDE-RAID控制芯片,可以利用相对廉价的IDE硬盘来组建RAID系统,从而大大下降了RAID的“门槛”。今后,我的用户也开始关注这项技术,由于硬盘是现代我的计算机中发展最为“缓慢”和最缺乏安全性的设备,而用户存储在其中的数据却经常远超计算机的自己价格。在花费相对较少的状况下,RAID技术可使我的用户也享受到成倍的磁盘速度提高和更高的数据安全性,如今我的电脑市场上的IDE-RAID控制芯片主要出自HighPoint和Promise公司,此外还有一部分来自AMI公司(如表2)。 面向我的用户的IDE-RAID芯片通常只提供了RAID 0、RAID 1和RAID 0+1(RAID 10)等RAID规范的支持,虽然它们在技术上没法与商用系统相提并论,可是对普通用户来讲其提供的速度提高和安全保证已经足够了。随着硬盘接口传输率的不断提升,IDE-RAID芯片也不断地更新换代,芯片市场上的主流芯片已经所有支持ATA 100标准,而HighPoint公司新推出的HPT 372芯片和Promise最新的PDC20276芯片,甚至已经能够支持ATA 133标准的IDE硬盘。在主板厂商竞争加重、我的电脑用户要求逐渐提升的今天,在主板上板载RAID芯片的厂商已经不在少数,用户彻底能够不用购置RAID卡,直接组建本身的磁盘阵列,感觉磁盘狂飙的速度 二.经过硬件控制芯片实现IDE RAID的方法   在RAID家族里,RAID 0和RAID 1在我的电脑上应用最普遍,毕竟愿意使用4块甚至更多的硬盘来构筑RAID 0+1或其余硬盘阵列的我的用户少之又少,所以咱们在这里仅就这两种RAID方式进行讲解。咱们选择支持IDE-RAID功能的升技KT7A-RAID主板,一步一步向你们介绍IDE-RAID的安装。升技KT7A-RAID集成的是HighPoint 370芯片,支持RAID 0、一、0+1。   作RAID天然少不了硬盘,RAID 0和RAID 1对磁盘的要求不同,RAID 1(Mirror)磁盘镜像通常要求两块(或多块)硬盘容量一致,而RAID 0(Striping)磁盘通常没有这个要求,固然,选用容量类似性能相近甚至彻底同样的硬盘比较理想。为了方便测试,咱们选用两块60GB的希捷酷鱼Ⅳ硬盘(Barracuda ATA Ⅳ、编号ST360021A)。系统选用Duron 750MHz的CPU,2×128MB樵风金条SDRAM,耕升GeForce2 Pro显卡,应该说是比较普通的配置,咱们也但愿借此了解构建RAID所需的系统要求。 1.RAID 0的建立 第一步   首先要备份好硬盘中的数据。不少用户都没有重视备份这一工做,特别是一些比较粗心的我的用户。建立RAID对数据而言是一项比较危险的操做,稍不留神就有可能毁掉整块硬盘的数据,咱们首先介绍的RAID 0更是这种状况,在建立RAID 0时,全部阵列中磁盘上的数据都将被抹去,包括硬盘分区表在内。所以要先准备好一张带Fdisk与Format命令的Windows 98启动盘,这也是这一步要注意的重要事项。 第二步   将两块硬盘的跳线设置为Master,分别接上升技KT7A-RAID的IDE三、IDE4口(它们由主板上的HighPoint370芯片控制)。因为RAID 0会重建两块硬盘的分区表,咱们就无需考虑硬盘链接的顺序(下文中咱们会看到在建立RAID 1时这个顺序很重要)。 第三步   对BIOS进行设置,打开ATA RAID CONTROLLER。咱们在升技KT7A-RAID主板的BIOS中进入INTEGRATED PERIPHERALS选项并开启ATA100 RAID IDE CONTROLLER。升技建议将开机顺序所有改成ATA 100 RAID,实际咱们发现这在系统安装过程当中并不可行,难道没有分区的硬盘能够启动吗?所以咱们仍然设置软驱做为首选项。 第四步   接下来的设置步骤是建立RAID 0的核心内容,咱们以图解方式向你们详细介绍:    1.系统BIOS设置完成之后重启电脑,开机检测时将不会再报告发现硬盘。    2.磁盘的管理将由HighPoint 370芯片接管。    3.下面是很是关键的HighPoint 370 BIOS设置,在HighPoint 370磁盘扫描界面同时按下“Ctrl”和“H”。    4.进入HighPoint 370 BIOS设置界面后第一个要作的工做就是选择“Create RAID”建立RAID。    5.在“Array Mode(阵列模式)”中进行RAID模式选择,这里可以看到RAID 0、RAID 一、RAID 0+1和Span的选项,在此咱们选择了RAID 0项。    6.RAID模式选择完成会自动退出到上一级菜单进行“Disk Drives(磁盘驱动器)”选择,通常来讲直接回车就好了。    7.下一项设置是条带单位大小,缺省值为64kB,没有特殊要求能够不予理睬。8.接着是“Start Create(开始建立)”的选项,在你按下“Y”以前,请认真想一想是否还有重要的数据留在硬盘上,这是你最后的机会!一旦开始建立RAID,硬盘上的全部数据都会被清除。    9.建立完成之后是指定BOOT启动盘,任选一个吧。    按“Esc”键退出,固然少不了按下“Y”来确认一下。    HighPoint 370 BIOS没有提供相似“Exit Without Save”的功能,修改设置后是不可逆转的 第五步    再次重启电脑之后,咱们就能够在屏幕上看到“Striping(RAID 0)for Array #0”字样了。插入先前制做的启动盘,启动DOS。打开Fdisk程序,咦?怎么就一个硬盘可见?是的,RAID阵列已经整个被看做了一块硬盘,对于操做系统而言,RAID彻底透明,咱们大可没必要费心RAID磁盘的管理,这些都由控制芯片完成。接下来按照普通单硬盘方法进行分区,你会发现“这个”硬盘的容量“变”大了,仔细算算,对,总容量就是两块硬盘相加的容量!咱们能够把RAID 0的读写比喻成拉链,它把数据分开在两个硬盘上,读取数据会变得更快,并且不会浪费磁盘空间。在分区和格式化后千万别忘了激活主分区。 第六步   选择操做系统让咱们颇费周折,HighPoint370芯片提供对Windows98/NT/2000/XP的驱动支持,考虑到使RAID功能面向的是相对高级的用户,因此咱们选择了对新硬件支持更好的Windows XP Professional英文版(采用英文版系统主要是为了方便后面的Winbench测试,你们本身使用RAID彻底能够用中文版的操做系统),Windows 2000也是一个不错的选择,可是硬件支持方面显然不如Windows XP Professional。 第七步   对于采用RAID的电脑,操做系统的安装和普通状况下不同,让咱们看看图示,这是在Windows XP完成第一步“文件复制”重启之后出现的画面,安装程序会以英文提示“按下F6安装SCSI设备或RAID磁盘”,这一过程很短,并且用户每每会忽视屏幕下方的提示。   按下F6后出现安装选择,选择“S”将安装RAID控制芯片驱动,选择“Enter”则不安装。   按下“S”键会提示插入RAID芯片驱动盘。  键入回车,安装程序自动搜索驱动盘上的程序,选择“WinXP”那一个并回车。   若是所提供的版本和Windows XP Profesional内置的驱动版本不一致,安装程序会给出提示让用户进行选择。 按下“S”会安装软盘所提供的而按下“Enter”则安装Windows XP Professional 自带的驱动。按下“S”后又须要确认,此次是按“Enter”(这个……确认太多了,呵呵)。接下来是正常的系统安装,和普通安装没有任何区别。   RAID 0的安装设置咱们就介绍到这里,下面咱们会谈谈RAID 1的安装。与RAID 0相比,RAID 1的安装过程要简单许多,在正确操做的状况下不具破坏性。 2.RAID 1的建立   虽然在原理上和RAID 0彻底不同,但RAID 1的安装设置过程却与RAID 0相差很少,主要区别在于HighPoint 370 BIOS里的设置。为了不重复,咱们只向你们重点介绍这部分设置:   进入HighPoint 370 BIOS后选择“Create RAID”进行建立:    1.在“Array Mode”上点击回车,在RAID模式选择中选择第二项“Mirror(RAID 1)for Data Security(为数据源盘建立镜像)”。    2.接着是源盘的选择,咱们再次提醒用户:务必当心,不要选错。    3.而后是目标盘的选择,也就是咱们所说的镜像盘或备份盘。    4.而后开始建立。    5.建立完成之后BIOS会提示进行镜像的制做,这一过程至关漫长。    6.咱们用了大约45分钟才完成60GB的镜像制做,至此RAID 1建立完成。RAID 1会将主盘的数据复制到镜像盘,所以在构建RAID 1时须要特别当心,千万不要把主盘和镜像盘弄混,不然结果将是悲剧性的。RAID 1既可在两块无数据的硬盘上建立,也可以在一块已经安装操做系统的硬盘上添加,比RAID 0方便多了(除了漫长的镜像制做过程)。建立完成之后咱们试着将其中一块硬盘拔下,HighPoint370 BIOS给出了警告,按下“Esc”,另外一块硬盘承担起了源盘的重任,全部数据无缺无损。   对于在一块已经安装操做系统的硬盘上添加RAID 1,咱们建议的步骤是:打开BIOS中的控制芯片→启动操做系统安装HighPoint 370驱动→关机将源盘和镜像盘接在IDE三、4口→进入HighPoint 370 BIOS设置RAID 1(步骤见上文介绍)→重启系统完成建立。   咱们对两种RAID进行了简单的测试,虽然RAID 0的测试成绩让人有些不解,可是实际使用中仍然感受比单硬盘快了不少,特别是Windows XP Professional的启动异常迅速,进度条一闪而过。至于传输率曲线出现不稳定的状况,咱们估计和平台选择有一些关系,毕竟集成芯片在进行这种高数据吞吐量的工做时很是容易被干扰。不过即便是这样,咱们也看到RAID 0系统的数据传输率达到了很是高的水平,一度接近60MB/s。与RAID 0相比,RAID 1系统的性能虽然相对单磁盘系统没有什么明显的改善,但测试中咱们发现RAID 1的工做曲线显得很是稳定,不多出现波动的状况。再看看Winbench99 2.0中的磁盘测试成绩,一目了然。   对用户和操做系统而言,RAID 0和1是透明不影响任何操做的,咱们就像使用一块硬盘同样。 3、用软件方法实现RAID    除了使用RAID卡或者主板所带的芯片实现磁盘阵列外,咱们在一些操做系统中能够直接利用软件方式实现RAID功能,例如Windows 2000/XP中就内置了RAID功能。   在了解Windows 2000/XP的软件RAID功能以前,咱们首先来看看Windows 2000中的一项功能——动态磁盘管理。   动态磁盘与基本磁盘相比,再也不采用之前的分区方式,而是叫卷集,它的做用其实和分区相一致,可是具备如下区别: 1.能够任意更改磁盘容量   动态磁盘在不从新启动计算机的状况下可更改磁盘容量大小,并且不会丢失数据,而基本磁盘若是要改变分区容量就会丢失所有数据(固然也有一些特殊的磁盘工具软件能够改变分区而不会破坏数据,如PQMagic等)。 2.磁盘空间的限制   动态磁盘可被扩展到磁盘中不连续的磁盘空间,还能够建立跨磁盘的卷集,将几个磁盘合为一个大卷集。而基本磁盘的分区必须是同一磁盘上的连续空间,分区的最大容量固然也就是磁盘的容量。 3.卷集或分区个数   动态磁盘在一个磁盘上可建立的卷集个数没有限制,相对的基本磁盘在一个磁盘上最多只能分4个区,并且使用DOS或Windows 9X时只能分一个主分区和扩展分区。   *这里必定要注意,动态磁盘只能在Windows NT/2000/XP系统中使用,其余的操做系统没法识别动态磁盘。   由于大部分用户的磁盘都是基本磁盘类型,为了使用软件RAID功能,咱们必须将其转换为动态磁盘:控制面板→管理工具→计算机管理→磁盘管理,在查看菜单中将其中的一个窗口切换为磁盘列表。这时咱们就能够经过右键菜单将选择磁盘转换为动态磁盘。 在划分动态卷时会能够看到这样几个类型的动态卷。   1.简单卷:包含单一磁盘上的磁盘空间,和分区功能同样。   (当系统中有两个或两个以上的动态磁盘而且两个磁盘上都有未分配的空间时,咱们可以选择以下的两种分卷方式)2.跨区卷:跨区卷未来自多个磁盘的未分配空间合并到一个逻辑卷中。   3.带区卷:组合多个(2到32个)磁盘上的未分配空间到一个卷。   (若是如上所述系统中的两个动态磁盘容量一致时,咱们会看到另外一个分区方式)   4.镜像卷:单一卷两份相同的拷贝,每一份在一个硬盘上。即咱们常说的RAID 1。   当咱们拥有三个或三个以上的动态磁盘时,咱们就可使用更加复杂的RAID方式——RAID 5,此时在分卷界面中会出现新的分卷形式。 5.RAID 5卷:至关于带奇偶校验的带区卷,即RAID 5方式。   对于大部分的我的电脑用户来讲,构建RAID 0是最经济实用的阵列形式,所以咱们在这里仅就软件RAID 0的构建进行讲解:   要在Windows 2000/XP中使用软件RAID 0,首先必须将准备归入阵列的磁盘转换为上文所述的动态磁盘(这里要注意的是,Windows 2000/XP的默认磁盘管理界面中不能转换基本磁盘和动态磁盘,请参考上文中的描述),咱们在这里尝试使用分区的条带化,这也正是软件RAID和使用RAID芯片构建磁盘阵列的区别。咱们选取了一个29GB的分区进行划分带区卷,在划分带区卷区时,系统会要求一个对应的分区,也就是说这时其余的动态磁盘上必需要有一样29GB或更大的未分配空间,带区卷分配完成后,两个一样大小的分卷将被系统合并,此时咱们的格式化等操做也是同时在两个磁盘上进行。   在构建RAID 0完成后,咱们决定测试其硬盘传输率以肯定这种软件RAID对性能的提高程度,咱们构建软件RAID的平台和前文中的硬件RAID平台并不相同,为了保证CPU的性能以确保咱们软件RAID的实现,咱们采用了较高端的系统:Athlon XP 1700+,三星 256MB DDR内存,华硕A7V266-E主板,因为软件RAID对硬盘规格的要求比较低,因此硬盘系统咱们选用了不一样规格的硬盘,希捷酷鱼Ⅳ 60GB和西部数据1200BB 120GB两块硬盘。   在传输曲线的后半段,咱们很清楚地看到软件RAID 0的硬盘传输率达到了60MB/s,彻底超越了阵列中任意一个硬盘的传输率,RAID 0的优点开始体现出来。对于追求高性能的用户来讲,这应该是他们求之不得的。   这里应该说明的是,在Linux环境下,咱们一样能够利用Raidtools工具来实现软件RAID功能。这个工具能够制做软RAID 0、RAID 一、RAID 四、RAID 5等多种磁盘阵列。在使用Raidtools以前,首先要肯定目前正在使用的Linux核心是否支持Md。若是你正在使用的核心是2.0.X,而且不是本身编译过,大多数状况下支持软RAID。若是不能肯定,则须要本身编译核心。   虽然RAID功能能够给咱们带来更好的速度体验和数据安全性,可是应该指出的是,如今市面上的大部分廉价IDE-RAID解决方案本质上仍然是“半软”的RAID,只是将RAID控制信息集成在RAID芯片当中,所以其CPU占用率比较大,并且性能并非很是稳定。这也是在高端系统中软件RAID 0的性能有时能够超过“硬件”RAID 0方案的缘由。   对于用户来讲,高性能的IDE-RAID存储系统,或者须要比较强劲的CPU运算能力,或者须要比较昂贵的RAID卡,所以,磁盘阵列仍然应该算是比较高端的应用。不过对于初级用户来讲,使用简单而廉价的磁盘阵列来提升计算机数据的可用性或提高一下存储速度也是至关不错的选择,固然其性能还远不能和高端系统相比。   总之,咱们看到愈来愈多的RAID架构出如今市场上,尤为是在中低端市场上,愈来愈普及的廉价IDE-RAID方案与硬盘价格的不断降低互相照应,彷佛也在预示着将来我的数据存储的发展趋势,让咱们拭目以待吧    HighPoint 370 BIOS没有提供相似“Exit Without Save”的功能,修改设置后是不可逆转的.