本文所要讲解的RAID技术起初主要应用于服务器高端市场,但是随着个人用户市场的成熟和发展,正不断向低端市场靠拢,从而为用户提供了一种既可以提升硬盘速度,又能够确保数据安全性的良好的解决方案。IDE 磁盘阵列就可以让你的机器性能更高,速度更快,稳定性更强!本文将对RAID技术进行较为详细的介绍,希望能够对广大读者有所帮助。
入门基础
RAID是英文Redundant Array of Inexpensive Disks的缩写,中文简称为磁盘阵列。其实,从RAID的英文原意中,我们已经能够多少知道RAID就是一种由多块廉价磁盘构成的冗余阵列。虽然RAID包含多块磁盘,但是在操作系统下是作为一个独立的大型存储设备出现。RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。
人们在开发RAID时主要是基于以下设想,即几块小容量硬盘的价格总和要低于一块大容量的硬盘。虽然目前这一设想还没有成为现实,RAID在节省成本方面的作用还不是很明显,但是RAID可以充分发挥出多块硬盘的优势,实现远远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。
RAID系统究竟有什么好处呢?
1.扩大了存贮能力 可由多个硬盘组成容量巨大的存贮空间。
2.降低了单位容量的成本 市场上最大容量的硬盘每兆容量的价格要大大高于普及型硬盘,因此采用多个普及型硬盘组成的阵列其单位价格要低得多。
3.提高了存贮速度 单个硬盘速度的提高均受到各个时期的技术条件限制,要更进一步往往是很因难的,而使用RAID,则可以让多个硬盘同时分摊数据的读或写操作,因此整体速度有成倍地提高。
4.可靠性 RAID系统可以使用两组硬盘同步完成镜像存贮,这种安全措施对于网络服务器来说是最重要不过的了。
5.容错性 RAID控制器的一个关键功能就是容错处理。容错阵列中如有单块硬盘出错,不会影响到整体的继续使用,高级RAID控制器还具有拯救功能。
6.对于IDE RAID来说,目前还有一个功能就是支持ATA/66/100。RAID也分为SCSI RAID和IDE RAID两类,当然IDE RAID要廉价得多。如果主机主板不支持ATA/66/100硬盘,通过RAID卡,则能够使用上新硬盘的ATA/66/100功能。
RAID 0
我们在前文中已经提到RAID分为几种不同的等级,其中,RAID 0是最简单的一种形式。RAID 0可以把多块硬盘连接在一起形成一个容量更大的存储设备。最简单的RAID 0技术只是提供更多的磁盘空间,不过我们也可以通过设置,使用RAID 0来提高磁盘的性能和吞吐量。RAID 0没有冗余或错误修复能力,但是实现成本是最低的。
RAID 0最简单的实现方式就是把几块硬盘串联在一起创建一个大的卷集。磁盘之间的连接既可以使用硬件的形式通过智能磁盘控制器实现,也可以使用操作系统中的磁盘驱动程序以软件的方式实现。图示如下:
在上述配置中,我们把4块磁盘组合在一起形成一个独立的逻辑驱动器,容量相当于任何任何一块单独硬盘的4倍。如图中彩色区域所示,数据被依次写入到各磁盘中。当一块磁盘的空间用尽时,数据就会被自动写入到下一块磁盘中。
这种设置方式只有一个好处,那就是可以增加磁盘的容量。至于速度,则与其中任何一块磁盘的速度相同,这是因为同一时间内只能对一块磁盘进行I/O操作。如果其中的任何一块磁盘出现故障,整个系统将会受到破坏,无法继续使用。从这种意义上说,使用纯RAID 0方式的可靠性仅相当于单独使用一块硬盘的1/4(因为本例中RAID 0使用了4块硬盘)。
虽然我们无法改变RAID 0的可靠性问题,但是我们可以通过改变配置方式,提供系统的性能。与前文所述的顺序写入数据不同,我们可以通过创建带区集,在同一时间内向多块磁盘写入数据。具体如图所示:
上图中,系统向逻辑设备发出的I/O指令被转化为4项操作,其中的每一项操作都对应于一块硬盘。我们从图中可以清楚的看到通过建立带区集,原先顺序写入的数据被分散到所有的四块硬盘中同时进行读写。四块硬盘的并行操作使同一时间内磁盘读写的速度提升了4倍。
在创建带区集时,合理的选择带区的大小非常重要。如果带区过大,可能一块磁盘上的带区空间就可以满足大部分的I/O操作,使数据的读写仍然只局限在少数的一、两块硬盘上,不能充分的发挥出并行操作的优势。另一方面,如果带区过小,任何I/O指令都可能引发大量的读写操作,占用过多的控制器总线带宽。因此,在创建带区集时,我们应当根据实际应用的需要,慎重的选择带区的大小。
我们已经知道,带区集可以把数据均匀的分配到所有的磁盘上进行读写。如果我们把所有的硬盘都连接到一个控制器上的话,可能会带来潜在的危害。这是因为当我们频繁进行读写操作时,很容易使控制器或总线的负荷超载。为了避免出现上述问题,建议用户可以使用多个磁盘控制器。示意图如下:
这样,我们就可以把原先控制器总线上的数据流量降低一半。当然,最好解决方法还是为每一块硬盘都配备一个专门的磁盘控制器。
RAID 1
虽然RAID 0可以提供更多的空间和更好的性能,但是整个系统是非常不可靠的,如果出现故障,无法进行任何补救。所以,RAID 0一般只是在那些对数据安全性要求不高的情况下才被人们使用。
RAID 1和RAID 0截然不同,其技术重点全部放在如何能够在不影响性能的情况下最大限度的保证系统的可靠性和可修复性上。RAID 1是所有RAID等级中实现成本最高的一种,尽管如此,人们还是选择RAID 1来保存那些关键性的重要数据。
RAID 1又被称为磁盘镜像,每一个磁盘都具有一个对应的镜像盘。对任何一个磁盘的数据写入都会被复制镜像盘中;系统可以从一组镜像盘中的任何一个磁盘读取数据。显然,磁盘镜像肯定会提高系统成本。因为我们所能使用的空间只是所有磁盘容量总和的一半。下图显示的是由4块硬盘组成的磁盘镜像,其中可以作为存储空间使用的仅为两块硬盘(画斜线的为镜像部分)。
RAID 1下任何一块硬盘的故障都不会影响到系统的正常运行,而且只要能够保证任何一对镜像盘中至少有一块磁盘可以使用,RAID 1甚至可以在一半数量的硬盘出现问题时不间断的工作。当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据。
通常,我们把出现硬盘故障的RAID系统称为在降级模式下运行。虽然这时保存的数据仍然可以继续使用,但是RAID系统将不再可靠。如果剩余的镜像盘也出现问题,那么整个系统就会崩溃。因此,我们应当及时的更换损坏的硬盘,避免出现新的问题。
更换新盘之后,原有好盘中的数据必须被复制到新盘中。这一操作被称为同步镜像。同步镜像一般都需要很长时间,尤其是当损害的硬盘的容量很大时更是如此。在同步镜像的进行过程中,外界对数据的访问不会受到影响,但是由于复制数据需要占用一部分的带宽,所以可能会使整个系统的性能有所下降。
因为RAID 1主要是通过二次读写实现磁盘镜像,所以磁盘控制器的负载也相当大,尤其是在需要频繁写入数据的环境中。为了避免出现性能瓶颈,使用多个磁盘控制器就显得很有必要。下图示意了使用两个控制器的磁盘镜像。
使用两个磁盘控制器不仅可以改善性能,还可以进一步的提高数据的安全性和可用性。我们已经知道,RAID 1最多允许一半数量的硬盘出现故障,所以按照我们上图中的设置方式(原盘和镜像盘分别连接不同的磁盘控制),即使一个磁盘控制器出现问题,系统仍然可以使用另外一个磁盘控制器继续工作。这样,就可以把一些由于意外操作所带来的损害降低到最低程度。
RAID 0+1(10)
单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,我们可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。
热插拔
一些面向高端应用的磁盘镜像系统都可以提供磁盘的热插拔功能。所谓热插拔功能,就是允许用户在不关闭系统,不切断电源的情况下取出和更换损害的硬盘。如果没有热插拔功能,即使磁盘损坏不会造成数据的丢失,用户仍然需要暂时关闭系统,以便能够对硬盘进行更换。现在,使用热插拔技术只要简单的打开连接开关或者转动手柄就可以直接取出硬盘,而系统仍然可以不间断的正常运行。
校验
RAID 3和RAID 5都分别使用了校验的概念提供容错能力。简单的说,我们可以把校验想象为一种二进制的校验和,一个可以告诉你其它所有字位是否正确的特殊位。
在数据通信领域,奇偶校验被用来确定数据是否被正确传送。例如,对于每一个字节,我们可以简单计算数字位1的个数,并在字节内加入附加校验位。在数据的接收方,如果数字位1的个数为奇数,而我们使用的又是奇数校验的话,则说明该字节是正确的。同样对偶数校验也是如此。然而,如果数字位1的个数和校验位的奇偶性不一致的话,则说明数据在传送过程中出现了错误。
RAID系统也采用了相似的校验方法,可以在磁盘系统中创建校验块,校验块中的每一位都用来对其它关联块中的所有对应位进行校验。
在数据通讯领域,虽然校验位可以告诉我们某个字节是否正确,但是无法告诉我们到底是哪一位出现了问题。这就是说我们可以检测错误,但是不能改正错误。对于RAID,这是远远不够的。固然错误的检测非常重要,但是如果不能对错误进行修复,我们就无法提高整个系统的可靠性。
举个例子来说,假设我们发现校验块中第10个字节的第5位不正确。如果这个校验块包含的是另外8个数据块的校验信息,那么哪一个数据块才是问题的罪魁祸首呢?也许你可能会想为每一个数据块都建立一个校验块就可以解决问题。但是这种方法很难实现。事实上,RAID主要是借助磁盘控制器的错误报告检测错误位置,并进行修复。如果磁盘控制器在读取数据时没有发出任何“抱怨”,那么系统将会视该数据为正确数据,继续使用。
RAID 3
RAID 3采用的是一种较为简单的校验实现方式,使用一个专门的磁盘存放所有的校验数据,而在剩余的磁盘中创建带区集分散数据的读写操作。例如,在一个由4块硬盘构成的RAID 3系统中,3块硬盘将被用来保存数据,第四块硬盘则专门用于校验。这种配置方式可以用3+1的形式表示,具体如图:
在上图中,我们用相同的颜色表示使用同一个校验块的所有数据块,斜线标出的部分为校验块。校验块和所有对应的数据块一起构成一个带区。
第四块硬盘中的每一个校验块所包含的都是其它3块硬盘中对应数据块的校验信息。RAID 3的成功之处就在于不仅可以象RAID 1那样提供容错功能,而且整体开销从RAID 1的50%下降为25%(RAID 3+1)。随着所使用磁盘数量的增多,成本开销会越来越小。举例来说,如果我们使用7块硬盘,那么总开销就会将到12.5%(1/7)。
在不同情况下,RAID 3读写操作的复杂程度不同。最简单的情况就是从一个完好的RAID 3系统中读取数据。这时,只需要在数据存储盘中找到相应的数据块进行读取操作即可,不会增加任何额外的系统开销。
当向RAID 3写入数据时,情况会变得复杂一些。即使我们只是向一个磁盘写入一个数据块,也必须计算与该数据块同处一个带区的所有数据块的校验值,并将新值重新写入到校验块中。例如,当我们向上图中的绿色数据块写入数据时,必须重新计算所有3个绿色数据块的校验值,然后重写位于第四块硬盘的绿色校验块。由此我们可以看出,一个写入操作事实上包含了数据读取(读取带区中的关联数据块),校验值计算,数据块写入和校验块写入四个过程。系统开销大大增加。
我们可以通过适当设置带区的大小使RAID系统得到简化。如果某个写入操作的长度恰好等于一个完整带区的大小(全带区写入),那么我们就不必再读取带区中的关联数据块计算校验值。我们只需要计算整个带区的校验值,然后直接把数据和校验信息写入数据盘和校验盘即可。
到目前为止,我们所探讨的都是正常运行状况下的数据读写。下面,我们再来看一下当硬盘出现故障时,RAID系统在降级模式下的运行情况。
RAID 3虽然具有容错能力,但是系统会受到影响。当一块磁盘失效时,该磁盘上的所有数据块必须使用校验信息重新建立。如果我们是从好盘中读取数据块,不会有任何变化。但是如果我们所要读取的数据块正好位于已经损坏的磁盘,则必须同时读取同一带区中的所有其它数据块,并根据校验值重建丢失的数据。
当我们更换了损坏的磁盘之后,系统必须一个数据块一个数据块的重建坏盘中的数据。整个过程包括读取带区,计算丢失的数据块和向新盘写入新的数据块,都是在后台自动进行。重建活动最好是在RAID系统空闲的时候进行,否则整个系统的性能会受到严重的影响。
RAID 3的性能问题
除了我们在上文讨论过的有关数据写入和降级模式的问题之外,在使用RAID 3的过程中还有其他一些性能上的问题需要引起我们的注意。RAID 3所存在的最大一个不足同时也是导致RAID 3很少被人们采用的原因就是校验盘很容易成为整个系统的瓶颈。
我们已经知道RAID 3会把数据的写入操作分散到多个磁盘上进行,然而不管是向哪一个数据盘写入数据,都需要同时重写校验盘中的相关信息。因此,对于那些经常需要执行大量写入操作的应用来说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个RAID系统性能的下降。鉴于这种原因,RAID 3更加适合应用于那些写入操作较少,读取操作较多的应用环境,例如数据库和WEB服务器等。
RAID 5
RAID 3所存在的校验盘的性能问题使几乎所有的RAID系统都转向了RAID 5。在运行机制上,RAID 5和RAID 3完全相同,也是由同一带区内的几个数据块共享一个校验块。
RAID 5和RAID 3的最大区别在于RAID 5不是把所有的校验块集中保存在一个专门的校验盘中,而是分散到所有的数据盘中。RAID 5使用了一种特殊的算法,可以计算出任何一个带区校验块的存放位置。具体如图所示:
注意图中的校验块已经被分散保存在不同的磁盘中,这样就可以确保任何对校验块进行的读写操作都会在所有的RAID磁盘中进行均衡,从而消除了产生瓶颈的可能。
RAID主板篇
在RAID家族里,RAID 0和RAID 1在个人电脑上应用最广泛,毕竟愿意使用4块甚至更多的硬盘来构筑RAID 0+1或其他硬盘阵列的个人用户少之又少,因此我们在这里仅就这两种RAID方式进行讲解。我们选择支持IDE-RAID功能的升技KT7A-RAID主板,一步一步向大家介绍IDE-RAID的安装。升技KT7A-RAID集成的是HighPoint 370芯片,支持RAID 0、1、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的IDE3、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 1、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芯片提供对Windows 98/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驱动→关机将源盘和镜像盘接在IDE3、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是透明不影响任何操作的,我们就像使用一块硬盘一样。
用RAID卡安装RAID
关于RAID卡的安装
我们选用的IDE RAID 卡是Promise公司的FastTrak系列的FastTrak66(如图4),这款产品配有两个UltraDMA66的IDE通道(如图5),支持RAID 0,1,1+0,国内价格大约在1000元左右。同类的产品还有诸如Iwill公司的SIDEPro66、Alalion公司的UltimaPlus33等,都是性价比较高的产品。
现在我们要做的第一步就是先把这块FastTrak66 IDE RAID 卡插入主板的PCI插槽。这个步骤要说起来很简单,启下机箱背板上的插槽档板,然后把IDE RAID 卡竖直插入便可。在插入的过程中一定要注意选准角度,力量均匀,以免损坏板卡或插槽。确定IDE RAID已经稳妥后,用螺丝固定便可。
第二步读者们需要做的,就是要把两块硬盘都连接到这张FastTrak66板卡上(建议如果用户打算组建RAID,最好选用两块同一品牌、同一型号的硬盘, 这样既可以充分利用硬盘空间,又可以相对地降低CPU占用率。因为一旦用户使用了不同型号的硬盘,其各自的指标不尽相同,那么CPU等在处理数据的时候就势必会耗费很多效能和时间)。
对于初学者而言有一点必须注意,千万不要把两块硬盘以主从方式连接到一条硬盘线上,应该让您的两块宝贝硬盘都作为Master连接到FastTrak66的两条IDE通道上。道理很简单,IDE总线在工作时总是最先响应Master设备的数据请求,换句话说,当Master设备工作时,Slave设备只能处于等待状态,如果是那样也就无从谈起RAID 0利用两个硬盘并行工作来提升性能的特性了。
通过以上两个步骤,IDE RAID 卡的硬件安排便可以宣告结束,接下来就要设置软件了。按下Power键重新开机,当系统通过主板BIOS自检时会出现如图所示提示,按提示同时键入Ctrl+F可进入FastTrak66的BIOS设置界面(有的品牌的RAID 卡有其特定的进入命令或方式,如IBM公司的SERVER RAID便是同时键入Ctrl+I才能够进入BIOS设置界面)。
在FastTrak66的BIOS的设置界面中,1—6的热健分别对应自动设置、查看设备关联、定义阵列、删除阵列、重建阵列和控制器设置等六项功能。如果用户选择第三个选项定义阵列,接着就会出现定义磁盘阵列的操作图面。用户此时可以在第一行上敲回车,然后就可以进入阵列一(Array 1)的设置。此时,您这台机器上可以使用的硬盘都会列在下面的提示框中,用户想要使用哪块硬盘就把它的Assignment设置成Y即可。如果用RAID 0的话,就把RAID Mode设置成Stripe(区带集);如果是1或1+0的话,就设置成Mirror或Span。然后设置一下RAID 0方式下分割的数据块大小(1和1+0没有此项设置)。最后别忘了按Ctrl+Y保存设置(如图所示)。
OK,至此IDE RAID 0的设置工作便已经基本完成,接下来要做的就是像普通硬盘一样分区、格式化了(这个步骤就不需要笔者再一一详解了吧)。当然,如果用户还希望使用RAID 0的硬盘启动的话,只需要在BIOS里面设置成从SCSI启动便可。没错,就是SCSI启动,因为FastTrak66卡此时已经把做过RAID 0的硬盘映射成为一个新的SCSI设备,这样一来用户就无法设置成从C启动了。不过,除了主板的BIOS以外,其它的应用程序还是会把其当作一块普通硬盘正常使用的。
现在装上WindowsNT4和中文第二版Windows98测试一下性能吧。利用ZDNet最新版本的权威评测软件WinBench2001、WINSTONE 2001、Norton SystemWorks2001工具箱里的Notron System Information 等,读者您不难发现,工作在RAID 0传输模式下的硬盘在传输率方面绝对可以较大优势胜出,而且其速度基本可以达到普通硬盘连接方式的传输率的两倍甚至更高。如果现在有人问您:又想马儿跑得快,又不想喂马儿来吃草,可有什么好办法?现在您就可以自豪地说,何以解忧,唯有RAID。
软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 1、RAID 4、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方案与硬盘价格的不断下降互相照应,似乎也在预示着未来个人数据存储的发展趋势,让我们拭目以待吧。
RAID问答篇
个人用户在组建RAID即磁盘阵列的过程中,应该注意什么问题呢?
1.问:我应该选择怎样的RAID解决方案,带RAID功能的主板?RAID控制卡?还是软件RAID?
答:其实RAID解决方案只有高端和低端之分,对于绝大部分的廉价RAID解决方案来讲,其构架中都不包含运算部分,因此对CPU的依赖性比较强,低速的CPU很难胜任这种工作,当然,对于较新的CPU如PⅢ、新赛扬、雷鸟、毒龙等来说,这种运算完全可以承受,但是为了保证RAID系统的稳定运行,并且为了避免RAID拖累系统性能,我们强烈建议用户使用主频1GHz以上的CPU。
至于是选择RAID卡还是购买带集成RAID功能的主板,则要依据用户的需求而定,一般来说,使用RAID卡能得到比较稳定的性能,但是会占用一个宝贵的扩展槽,而且成本较高;如果是正在准备升级主板或新装机的用户,集成RAID芯片的主板则是以最低成本实现RAID功能的首选。
2.问:我使用了RAID系统,但是并没有感觉到速度有明显的提升,这是为什么?
答:对于RAID系统有数种标准,对于RAID 1、RAID 5等标准的磁盘阵列,主要追求数据的可靠性,所以尽管是并行存储,但由于需要对数据进行校验,所以它们的写性能会受到一些影响,对于普通用户来说,会感到速度提升并不明显。当然,对于一些需要大量读取的应用,它们的优势还是比较大的。
3.问:我使用了RAID 0标准的磁盘阵列方式,我听说这样会导致数据非常不安全,我是不是应该使用RAID 0+1方式?
答:对于普通用户而言,RAID 0的安全性还是可以承受的,但对于重要数据而言,RAID 0显然是比较危险的方式,并且RAID 0阵列中的磁盘数量越多,出现问题的几率越大。由于RAID 0使用分割数据的方式且没有冗余,一旦某块磁盘失效,将会对所有数据造成毁灭性的打击,相对的,其他RAID方式均提供了冗余盘(或数据块)用来备份或者恢复数据。因此我们建议用户不要在RAID 0阵列中存储重要数据或在其上安装系统,因为进行大量临时交换文件的存储和交换才是RAID 0真正的优势所在。
4.问:我有两块规格并不一致的硬盘,我能不能使用RAID?效果怎样?
答:可以使用RAID 0方式,但是要注意的是,这样构建的RAID 0,总容量将是较小的磁盘的容量×磁盘总数,因此可能会造成一些资源的浪费。当然电脑如果拥有比较强劲的运算能力并且使用Windows 2000/XP操作系统,使用软件RAID就可以避免这种损失,详情请参看本篇内的“动态磁盘”相关介绍。
5.问:使用RAID和使用SCSI硬盘有什么不同,哪一种性价比更好?
答:我们这里仅仅讨论IDE-RAID,在通常情况下,SCSI能够提供更好的稳定性和更快的速度,但是价格则是相当昂贵。一款7200转的9.2GB/Ultra160 SCSI硬盘价格会高达1500元左右,相比之下,同样价位的普通IDE硬盘容量会达到80GB以上。
我们可以对比IDE-RAID和SCSI RAID,我们使用4块迈拓(Maxtor)金钻七代80GB硬盘组成RAID 0+1,选用支持ATA/133的HighPoint RocketRAID 404 RAID卡,这套系统的总价在8000元以下*,大约相当于某10 000转73.4GB容量的SCSI硬盘,使用Ultra160 SCSI接口/4MB缓存,并且配备支持Ultra160的SCSI卡。 当然,SCSI硬盘有着许多普通IDE硬盘无法比拟的优点,例如高传输率、低CPU占用率和支持热插拔等,但对个人用户而言,它的性价比还是很低,我们不得不将目光继续留在我们的IDE硬盘上。
阅读(335) | 评论(0) | 转发(0) |