简析硬件RAID与软件RAID[整理]

xiao5813

普通会员
2005-03-02
2,676
0
0
目前RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。这两种技术都将在近期成为性能比较适中的产品,并联用户提供可行的数据保护措施。
其中基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上稍胜一筹,具体表现在检测和修复多位错误的能力、RAID保护的可引导阵列、错误磁盘自动检测、剩余空间取代和阵列重建、共有的或指定的剩余空间和彩色编码报警等许多方面优于后者。另外,还提供从单一控制实施的对多RAID安装、多操作系统远程检测和管理的能力。
从安装过程来看,两种RAID解决方案的安装过程都比较容易,安装耗时也相差无几。从CPU占有率来看,基于硬件的RAID显然能够减少CPU的中断次数,同时降低主PCI总线的数据流量。从而是系统的性能产生一个提升。从I/O占用角度考虑,两种解决方案的差别并不算很大。基于硬件的RAID方案仅在下列两方面有一定优势;减少RAID5阵列在降级模式的运行时间;平行引导阵列的能力。另外,在硬件解决方案中,可以采用RAID0/1 取代RAID1来提高性能。尽管基于硬件的RAID 方案具有优势,但在产品的价格上仍然无法与基于软件的RAID抗衡--后者完全免费。不过,硬件解决方 案的价格也不是不可接受,一般只需增加少许投资即可获得一套基于硬件入门级RAID解决方案。而基于软件的RAID解决方 案也不是分文不花,至少还需购置一块SCSI卡。因此,在计算总体拥有成本是,必需考虑基于软件的RAID解决方案的隐性成本,如用户生产效率、管理成本和重新配置的投资等等。这些成本的综合往往会超过购买一套基于硬件的RAID解决方 案所需投资。
在当今企业环境中,任务密集型数据以应用于各种商业活动。为了使自己的数据获得更好的保护,许多企业已经开始利用RAID技术。一套优秀的RAID解决方 案意味着可行性、友好的用户界面和简单的热键,总之应使用第一次使用的用户也能够非常方便的运行系统。同时还需要具有更加详细的功能,以方便那些高级用户对他们的RAID进行优化配置。企业在选择RAID 解决方案时,如果不考虑初始投资和某些I/O资源的占有,或是出于对某些远程集体性能上的优势是基于软件的RAID技术无法比拟的。
附:软件RAID 中不能提供的功能
硬盘热拔插 (硬盘热备用)
远程阵列管理(可引导阵列支持)
在硬盘上实现阵列配置(硬盘温拔插)
SMART硬盘支持

软件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方案的原因。