广告位

IDE RAID 完全 DIY



    各位DIYer大家好!相信大家都听过IDE RAID了吧?(什么?没有?&*@&^# 我晕)不过没关系,下面我们就为您补上这一课。

开篇

1. 概念

  RAID(Redundant Array of Independent Disk),即“独立冗余磁盘阵列”, 就是以多个磁盘组成并行工作的磁盘阵列的方式来提高数据存取的速度和安全两方面的能力。根据这个概念,大家很容易就联想到高端应用了吧?事实也是这样的。传统的RAID和专用CPU、大容量的缓存以及SCSI接口的硬盘都是形影不离的,这样的价钱当然能够保持超级的性能指标,不过却不是我们第三世界的DIYer能够享用得起的。那么我们就注定和RAID无缘了吗?No!这就是我们今 天的主角:IDE RAID。

  这个IDE RAID卡可不是依靠什么专用CPU和缓存,而是通过专用的BIOS程序 利用CPU的运算来实现RAID的运算的。说白了,就是一块带有软RAID功能的IDE扩展卡,而缓存嘛,只有512字节的FIFO(先进先出)缓存。

2. 分类

  RAID可以分为6个级别,即RAID 0-5,外加一个派生的RAID1+0。其中2-5不是失踪了就是太贵(多用于高端)。所以我们只介绍一下IDE RAID可以支持的0,1和1+0三个级别。

RAID 0

  说到RAID 0这可是一个极端追求性能的方案。它至少基于两块硬盘,在IDE RAID中,它占用CPU时间将数据流分割成大小相同的数据块,然后平均分配给两块硬盘,完成传输。它的操作过程见图1。


(图1)RAID 0工作原理图示

  可以看出,由于一个传输过程由两个硬盘各完成一半,也就相当于传输带宽增加了一倍,所以操作时间也就减少了一半。由于单个硬盘需要经过几代的发展, 其传输率才有一些能让用户直接感觉到的提高,而高端的硬盘往往比大众化的硬盘贵上好几倍,而性能的提升却往往达不到相应的比例(对比高端SCSI和普通的IDE就知道了)。所以,IDE RAID 0就成了“既要马儿跑得快,又要马儿不吃草”的典范。

  但是应该看到,RAID 0是舍弃了RAID所强调的两个方面中的安全一方面而得到的极限性能。它没有为数据的安全作任何考虑,一旦任何一块硬盘出了意外,就是两块硬盘双双阵亡的局面。因此,单纯的RAID 0在高端几乎得不到任何应用,简直快要到了被排斥在RAID家族之外的地步。

  但我们DIYer不同,我们所追求的仅仅是性能而已(有超频为证),不考虑安全性的特点反而帮助我们获得了最强的性能。

RAID 1

  RAID 0达到了RAID一个方面的极限,而RAID 1就是为了达到RAID另一个方面的极限而诞生的。在IDE RAID中,它同样是占用了一些CPU时间,但这回是把写往主盘的数据同步地写到镜像盘。它的工作方式如图2所示。


(图2)RAID 1工作原理图示

  在这种模式下,不论主盘出了什么故障,都可以从镜像盘恢复回来,可谓不死之身了。不过显然这种方式浪费了一半的磁盘空间,而且这种情况下唯一对提升性能有帮助的就是读取时,系统会同时从两个盘上搜索,把先读取到的数据传输回来。

  虽然RAID 1也可以获得少许的性能提升,但是相对RAID 0来说恐怕是微不 足道了。因此,在性能和安全兼顾的情况下,就出现了RAID 1+0。

RAID 1+0

  如果同时对RAID 0中写往两个硬盘的数据再做两个镜像如何呢?这就是RAID 1+0的方案。RAID 1+0至少使用4个硬盘,其工作原理如图3所示。


(图3)RAID 1+0工作原理图示

  这样,RAID 1+0在理论上同时保证了RAID 0的性能和RAID 1的安全性,代价是比RAID 0或1再多一倍的硬盘数量。但应该注意,这仅仅是理论上的,因为实际中IDE RAID这样的软件RAID系统会消耗CPU运算时间,RAID 1+0比起RAID 0或1来讲,同样多消耗一倍的CPU时间,所以性能最后不一定能提升到RAID 0那样的比例,甚至有可能总体性能不升反降(CPU会累得冒了烟?^_^)。从费用和效率两方面来考虑,RAID 1+0都不值得DIYer列为备选方案。

  现在,我们弄清了这几种方式的工作原理和优劣处,就可以得出这个结论了: 对于绝大多数DIYer,我们的首选就是两块硬盘组成的RAID 0系统。

3. 产品

 - FastTrak:Promise公司出品,配有两个UltraDMA33的IDE通道,支持RAID 0, 1, 1+0,国内有售,大约800元左右(图4)。


(图4)Promise公司的FastTrak

 - FastTrak66:同样是Promise公司的产品,配有两个UltraDMA66的IDE通道,支持RAID 0,1,1+0,国内有售,大约1300元左右(图5)。


(图5)Promise公司的FastTrak66

 - SIDEPro66:Iwill公司出品,配有两个UltraDMA66通道,RAID支持和热插拔支持是可选项(增强版),国内有售(图6)。但Iwill的北京代理称目前国内还没有支持RAID和热插拔的版本,标准版目前售价300元。


(图6)Iwill公司的SIDEPro66

 - UltimaPlus33:韩国Alalion公司出品,配有两个UltraDMA33通道,支持RAID 0, 1, 1+0,据我们所知还没有销售这块卡的商家(图7)。另:Alalion还准备推出DMA66的版本,但到本文截稿时,它的网站上连样品照片都没有,估计不会马上推出。


(图7)韩国Alalion公司的UltimaPlus33

 - FT440BX主板:Promise公司出品的集成IDE RAID功能的主板,使用Intel 82440BX芯片组的主板,目前国内...没有销售(图8)。


(图8)Promise公司的FT440BX主板

  然而,IDE RAID卡的成本如何呢?很遗憾,相对于我们第三世界的DIYer来 说,IDE RAID卡的价格仍然是可望不可及的1xxx大元(小舞:不要打击群众热情嘛...),不过下面我们将为大家介绍将Promise出的UltraDMA66卡改装成FastTrak66的独门秘籍,大家快来捧场...(小舞一棒将雨冰击倒在地,恶狠狠地说:下面该我出场了)

改造篇

  由于i820的一推再推,给UltraDMA66扩充卡留下了市场空间,许多厂商推出了自己的产品。Promise公司的Ultra66(以下简称U66)就是使用自己的芯片制作的UltraDMA66卡,如图9。


(图9)Promise公司的Ultra66

不知大家注意了没有,这块卡与FastTrak66(以下简称FT66)不但使用同一块控制芯片,而且连布线都是一样的--除了BIOS 和板子上的印刷标识。也就是说,(小舞眼睛一亮)这两块卡很可能是同一条生产线上生产出来的--因为从成本上讲,Promise 公司不会用两条生产线来生产几乎一样的卡的。

  那么是不是只要将U66的BIOS刷成FT66的就可以把U66变成FT66呢?答案是否定的。Promise还没有笨到那个地步(不过也不聪明),他们还是在两块卡上作了一些手脚,使之不能简单地通过刷BIOS的方式把U66变成FT66。

  那不同点究竟在哪呢?我们经过不懈努力,查找了n个网站,终于找到了它们之间的区别!(图10)


(图10)FastTrak66与Ultra66的不同点:FT66的R10位置是空的,R9是焊上电阻的,而U66恰好相反。

  下面我们就为大家介绍如何改装!这块U66是从沈阳三好街花了180大元买来 的(都没砍价),连包装合都没有,估计是水货。大家在购买的时候可以对照一下,正品应该是300元内能拿下,水货大概可以砍到150左右。

1. 准备

  需要的工具很简单,一个30W左右的细头电烙铁(头越细越好),一个用来抽 出融化的焊锡的锡抽,一些焊锡(如图11)。


(图11)需要的工具

2. 改造

  首先到Promise的网站(http://www.promise.com)下载一个FT66的BIOS和FT66的驱动程序,最好连那个Windows GUI的 RAID管理程序一起Down下来。把ZIP包解开, 放到一个方便的目录里,然后重新启动,进入纯DOS模式(就是启动时按 Shift +F5那 个),最好不要加载任何程序,然后运行擦写程序,根据提示,输入解压缩出来的BIOS镜像的路径,更新程序就会将 BIOS 写到卡上,写的过程大概只有20左右秒。然后关机, 把卡拔出来,下面我们就给它动手术。


(图12)BIOS引脚

  出于方便考虑,最好将卡的金属挡片拆下来,然后把卡翻过来,你就会看到两排 整齐的BIOS芯片引脚(图12),加热电烙铁,待温度足够高的时候(可将焊锡融化的温度),将电烙铁头贴在BIOS芯片的一个引脚上(*切记此时电烙铁头不能乱移动*), 等到引脚上的焊锡融化后(*不要将电烙铁移开*),用另一只手将锡抽嘴对准融化的焊锡(紧贴着),抽出焊锡(好紧张)。运气好的话,那个引脚的焊锡就会被抽空了。 什么?你的运气很烂?那就只好再做一次了。^_^ 用同样的方法对付其它31根引脚, 这样,BIOS芯片就被焊下来了。哈哈,fresh BIOS...(雨冰:听口音不像本地人... 哇,不好,小舞的口音怎么和Diablo里的屠夫一样...)

  现在Promise的秘密终于露出来了,原来R9和R10这两个电阻在BIOS芯片底下... FT66的R9有电阻,而R10没有,U66的R9没有电阻,而R10有。现在的工作就是把R10的 电阻焊下来,再焊到R9上去,然后把BIOS芯片再焊回去(注意别焊反了,否则...)。 当然,花点钱买个座焊上去也不错。

  好了,大功告成。我们把这块既不是U66也不是FT66的东西叫什么呢?算啦,给它起个新名字,叫FustTrac66吧。

3. 注意

  改造全过程的要决就是“稳、准、狠”,即手要稳,眼要准,心要狠(雨冰:小舞都快把自己改装成屠夫了)。如果你对自己的改造技术没什么把握,可以找个修电器的,他们一般都是此道高手。另外还有一个很重要的问题,我们放到终篇里详细说明(小舞:一定要看... 雨冰一脸无辜的样子:咦?小舞哪里去了?大概是掉进陷阱了,下面就该我出场了!)

安装篇

  首先,把两只硬盘都连接到我们这块FustTrac66上(以后还是叫它FT66吧)。不过千万不要把两只硬盘以主从方式连接到一条盘线上,无论你的硬盘线如何短缺(去朋友家抢一条来),都应该让两块硬盘都作为Master连接到FT66的两条IDE通道上。因 为在IDE总线工作时,总是先响应Master设备的数据请求,换句话说,当Master设备工作时,Slave设备只能处于等待状态,也就无从谈起RAID 0利用两个硬盘并行工作来提升性能的特性了。

  限于篇幅(和骗稿费的嫌疑?),我们就不再讲详细的硬件安装过程了,相信人民群众一定能完成这项并不复杂的工作。只是提醒大家,有一种说法是当这块卡插在第一个PCI槽里的时候,系统不能从卡上的硬盘启动。我们试验了一下,并没有出现这种情 况,估计是和一些其它的(如主板)配件之间的冲突。如果你遇到了,可以考虑换个插槽试试。下面我们介绍一下软件上的安装设置。

  按下Power开机,当通过主板BIOS后,出现如图13所示的提示时,按Ctrl+F。


(图13)FastTrak66的BIOS提示

  然后会出现如图14所示的设置画面。


(图14)FastTrak66的BIOS设置界面

  1-6这些热健分别对应自动设置、察看设备关联、定义阵列、删除阵列、重建阵列和控制器设置这六项功能。我们现在应该选择3,定义阵列,接着出现如图15所示的画面。


(图15)定义磁盘阵列

  在第一行上敲回车,就进入了阵列一(Array 1)的设置。可用硬盘会列在下面框里,要用哪个硬盘就把它的Assignment设置成Y。如果用RAID 0的话,就把RAID Mode设置成Stripe(区带集);如果是1或1+0的话,就设置成Mirror或Span。然后设置一下RAID 0方式下分割的数据块大小(1和1+0没有此项设置)。最后别忘了按Ctrl+Y保存设置。

  好啦,我们的RAID 0已经设置好了,接下来就是像普通硬盘一样的分区、格式化了。 但如果希望使用RAID 0的硬盘启动的话,需要在BIOS里面设置成从SCSI启动(如图16)。


(图16)定义启动顺序

  很奇怪是么?因为FastTrak66卡把做过RAID 0的硬盘映射成了一个SCSI设备,这样就不能设置成从C启动了,但除了主板 BIOS之外,其它的程序还是会把它当作一块普通硬盘的, 所以不用担心兼容性的问题。

  Promise还做了一个运行在Windows下的设置、监控程序。这个程序使用起来非常简单,所以就不详细说了。只是要注意一下,一般情况下,在设置程序中选择“为商业/游优化(Bussiness and games)”会得到较高的性能--除非你经常编辑视频/音频流。

测试篇

  RAID 0的性能究竟是否像传说中的那么厉害呢?我们下面就用我们改造的FustTrac66来测试一下吧。测试平台配置如下: Celeron300A超到504(这个频率下,FustTrac66 在37MHz的PCI频率上跑得很稳),KingMax PC100 64MBx2, Creative 3D Blaster Savage4 Pro(32M), Iwill DBD100主板。

  我们使用了两只IBM 10.1G硬盘(就是前一阵IBM清仓大甩卖的DNNA系列)组成一个RAID 0系统。这块硬盘的技术指标如下:5400转,512K缓存,3.2G单碟,DMA33接口, 内部最大传输率161.9Mb/s,9.5ms平均寻道时间(以下简称这块硬盘为 IBM5400)。

  与之对比的是雨冰新买的IBM 9.1G 7200转硬盘,技术指标如下:7200转,2M缓存, 4.5G单碟,DMA66接口,最大内部传输率223.2Mb/s,9.0ms平均寻道时间(以下简称这块硬盘为IBM7200)。

  为了对比提高的效率,我们还测试了单块IBM5400的性能。

  由于我们没有弄到英文版的WindowsNT4,所以仅测试了英文版Windows98下的性能。 测试软件选用了4种,分别是ZDNet的权威评测软件WinBench99 1.1、非常流行的测试新秀Sisoft的Sarana99、《Windows》杂志出品的评测软件WinTune98、Norton SystemWorks2000工具箱里的Notron System Information 4.5。

  从数据可以看出,IBM5400 RAID 0在传输率上以绝对优势大比分胜出,几乎是IBM7200传输率的2倍,在High-End Diskmark上也小胜IBM7200。对比单个的IBM5400,在WinBench和Sarana中几乎所有得分均大幅度胜出,可见RAID 0的威力的确不小。不过在对传输率不太敏感的WinTune和Norton SI中,3个硬盘却不相上下。也许是这些测试软件的加权值侧重不同吧。我们为了考察实际使用时的性能,特意做了其它几个测试,比如启动Win98、 拷贝大量文件和读取巨型文件。虽然没有记录准确数据,但能明显感觉到,IBM5400 RAID 0 要比IBM7200快些,而IBM5400总是让我们等得心烦。基本上,进行这些操作的时候, IBM5400 RAID 0至少要比IBM5400快50%-70%。

  值得一提的是IBM5400 RAID 0的CPU占用率仅为4.29,相当于两块IBM5400的CPU占用率之和再加上CPU分配数据所耗费的时间。但这只是两块硬盘的情况,如果是四块硬盘的话,恐怕会达到10以上。这样的系统开销,大概会导致整体性能下降,得不偿失了吧?所以,两块硬盘组成的RAID 0就是性能最高的方案啦。

  那么,RAID一定要用两个一样的硬盘来组建吗?大概许多手里有两块不同硬盘的 老龄(指机龄)玩家都有这样的疑问(小舞问:我的酷鱼20G和Maxtor540M可以组成RAID 0吗?雨冰:啊?我倒)。

  从理论上讲,当两个硬盘不一样的时候,要根据不同容量向两个硬盘分配不同大小的数据,且不说这个分配程序将会如何复杂,即使真的实现了,这个系统开销,在IDE这种软RAID中,CPU受得了吗?

  不论如何,我们本着DIY精神做了一次尝试。我们用一只IBM5400和一只Quantum FireBall EL 5.1G(以下简称FBEL)做了一个RAID 0系统。

  没想到我们居然成功了!原来Promise用了一种比较取巧的方法,即当用两块不同容量的硬盘组成RAID 0时,整个可用容量就被限定为较小的那块硬盘容量的二倍,较 大容量那块的剩余空间就被闲置起来了(小舞:难道酷鱼20G加Maxtor540M组成的 RAID 0只有1080M可用?口吐白沫,不省人事)。

  好啦,废话少说,我们先来看看这个不同硬盘组成的RAID 0系统(以下简称IBMFB) 的性能如何吧。

  从得分可以看出,这种方式下,其性能也不可小视。同样在WinBench和Sarana中,IBMFB所有的得分都远远地把IBM5400 和FBEL的单独得分甩在后面,传输率一项上几乎就是两块硬盘传输率的和。不过此时CPU占用率达到了6.49,比IBM5400和 FBEL的CPU占用率之和还大一倍。大概是因为使用不同的硬盘,各自的指标不相同,所以CPU在处理数据的时候耗费了更多的时间吧?

  所以,我们建议大家在组建RAID的时候,最好弄两块同一品牌,同一型号的硬盘, 这样既可以充分利用硬盘空间,又可以相对地降低CPU占用率。

  好啦,我们的测试就到此结束。怎么样?对RAID 0的性能动心了吗?不过先别忙着 开始您的DIY旅程,一定要耐心把下面的部分看完,否则我们可不负责DIY后悔药...

终篇

  已经准备好螺丝刀了吗?先看看下面这些注意事项吧。

 1. 据我们所知,市面上正在销售的U66还有另一种版本,比我们改造的这块卡少了一个晶振。Asus的卡就是这样的。Asus?不是Promise么?是的,Asus的卡和Promise的一模一样,估计Promise的卡都是Asus生产的,Asus就拿了一部分用自己的包装出售(就像IBM和Cyrix,日本的Freeway和台湾中凌(A-Trend)也是这种关系),不过Asus的卡要卖得比Promise便宜,大概200元就可以搞定。这块卡中间放置晶振的位置是像图11那样。我们手里没有这块卡,没有试过不能改,所以请大家尽量找带晶振的版本。当然如果谁想吃螃蟹(骗稿费?)我们也不反对,不过改成了一定要通知我们一下呀!


(图17)没有晶振的U66卡

 2. Promise公司曾经出过一块叫做Ultra33的DMA33扩展卡,如图12。它和我们上边介绍的FastTrak的关系就像U66和FT66的关系一样,不过这是两年前的产品了,各位老鸟谁的手里有这么一块卡,就通过类似的办法改称FastTrak用了,反正现在我们的硬 盘也用不上DMA66接口的。不过这次我们不能提供技术支持了。(雨冰:真损...)


(图18) Promise 的 Ultra33

 4. 我们曾经试验过在这个RAID系统上安装Win2000,不过没有成功。因为Promise提供的Win2000的驱动是Beta1版的,所以有问题也在情理之中。不过我们相信,Win2000正式推出的时候,Promise也会发行正式的驱动程序的。因此,想同时使用RAID和 Win2000的,就请经常到Promise的网站看看有没有新驱动吧(文章即将完成的时候, Promise又发行的新版的驱动,不过我们没有来得及测试,请大家试试看吧)。

 5. 听说DMA100也在酝酿中了,可能Promise这样的公司还会推出Ultra100和FastTrak100吧?哈哈,到时候...(雨冰:别美,有这篇文章,Promise不会再犯同样的错误了)

  最后,感谢衰哥、方华、佟盟等一切帮助过我们的朋友!另外,如果对我们的文章有任何意见,请mail到 [email protected](雨冰的信箱)。不管是西红柿还是美元,请尽管给我们扔过来吧!

  注:本文内容经小舞和雨冰亲自试验,完全属实,但读者自行改装时出现的一切意外我们概不负责。


投稿网友:小舞 雨冰
1999年12月27日
如果您有什么疑问或看法请到相关论坛:存储设备论坛 发表意见
 

本文已刊登在《电脑报》上,任何单位、媒体或个人不得转载。

广告位