/ 中存储网

专家博客:软件与硬件RAID技术的差异分析

2011-05-05 22:42:56 来源:中存储网

各种存储解决方案都有一个核心的内容,就是RAID(磁盘阵列)。RAID技术与其他的存储方案是相辅相成的。合理部署RAID,可以从整体上提高存储解决方案的效率以及数据的安全与稳定。

从大的方面来说,RAID的实现方式主要有两种,分别为基于硬件的RAID与基于软件的RAID方式。这两种解决方案各有各的优缺点。作为存储解决方案的设计者,必须要了解这两种不同方式的特点,并结合企业的实际情况来选择合适的实现方案。

一、硬件的RAID实施方案

基于硬件RAID的实施方案是指从主机之外独立的管理RAID自系统,并且它在主机处把每一组RAID阵列只标示为一个磁盘。简单的说,如果采用硬件RAID的实施方案的话,则对于操作系统来说其是透明的。虽然可能采用了多块硬盘组成了一个RAID磁盘阵列,但是对于操作系统来说,其看见的只有一块硬盘。

现在市场上的硬件RAID技术主要有两种,分别为内置的RAID控制器和外置的RAID控制器。内置的RAID控制器通常是以卡件的形式直接插接在服务器主板上的插口中。而有些RAID控制器则是由主板厂商直接把控制芯片集成在主板上。现在一些面向高端的服务器主板基本上都已经集成了这个RAID控制芯片。

如果管理员准备采用基于硬件的RAID实施方案的话,主要注意RAID的解决方案的性能主要跟控制器有关,而跟操作系统等相关的软件关系不大。特别是需要注意,硬件RAID跟独立显卡类似,都有自己的缓存。一般来说,缓存越大,其解决方案的性能也就越高。不过其购置的价格也会水涨船高。换句话说,采用硬件RAID的实施方案,要提高其性能,通过提高服务器内存等方式效果是不明显的。有时候不等不更换RAID硬件控制器。显然这会增加其方案的成本。这是需要特别注意的。

二、基于软件的RAID实施方案

基于软件RAID技术的实施方案主要是指通过各种操作系统来实现磁盘阵列。此时由于不需要用到昂贵的硬件RAID控制器,虽然其实现方案往往比较廉价。同时因为其应服务器硬件的关系不大,主要靠软件来进行控制,所以进行升级等维护作业时,灵活性相对来说比较高一点。故这种解决方案还是比较受大众欢迎的。

从目前的市场情况来看,基于软件的RAID实施方案兼容性还是不错的。如现在主流的一些操作系统,都实现了RAID技术。如微软的操作系统,从比较早的2000开始,到现在最新的2007,都是支持基于软件的RAID解决方案的。而一些开源的操作系统,如Linux、FreeFSB等等操作系统,也可以完成基于软件的RAID磁盘阵列。除了操作系统的兼容性让人刮目相看之外,在硬件上其兼容性也有特殊的地方。现在市场上主要有IDE与SCSI两种磁盘。基于软件的RAID技术都能够支持。

当项目管理员决定采用基于软件的RAID解决方案的时候,笔者认为主要需要注意如下几个方面。

一是软件RAID方案的性能。虽然从总体上来说,软件RAID磁盘阵列其性能是不能够跟硬件RAID相比的。但是只要服务器的性能比较好,如采用了快速的CPU以及比较大的内存,则软件RAID性能还是比较出色的,有时候甚至可以跟硬件RAID相媲美。而最重要的是,对这些CPU或者内存进行升级,其不仅RAID可以享受好处,而且其他的应用服务也可以共享这些资源。况且其升级的费用比购买硬件RAID可能还要便宜。总之,对于大部分应用来说,软件的RAID解决方案只要对服务器的硬件进行一定程度的升级,其性能还是可以跟的上的。

二是基于软件的RAID实施方案,其跟硬件RAID不同,可以实现不同的RAID级别。根据需要实现的RAID级别不同,其服务器需要的硬盘个数也是不相同的。如实现RAID0的话,最好一块硬盘就可以了。而需要实现RAID1的话,则至少需要两块硬盘或者2N个物理硬盘。RAID3的话需要3块硬盘,RAID10则需要4块硬盘。一般来说,其级别越高,需要的硬盘数量也就越多。不过这里需要注意的是,有不少的级别其对硬盘的数量有一个限制。如RAID10则要求硬盘的数量是4的整数倍。否则的话,对于的硬盘可能发挥不了其应有的作用。那么企业到底该选择什么样的级别呢?根据笔者的意见,管理员在考虑这个因素的时候,主要是从可用性、性能以及成本三个方面去考虑。通常情况下,如果可用性可以忽略的话,那么采用RAID0的级别性能是最佳的,而且成本也是最低的。相反,如果可用性和性能是解决方案中的关键(这是大部分企业所考虑的内容),而对于解决方案所需要的成本没有多大的限制,此时笔者建议采用RAID1解决方案。可以选择多块硬盘来提高数据的可用性与解决方案的性能。如果企业的资金比较紧张,同时又非常看重数据的可用性与存储性能的话,那么笔者建议可以采用RAID3或者更高的级别。通常来说,现在大部分文件服务器都比较倾向于采用RAID5级别。因为这个级别在性价比上是最突出的。

三是要考虑数据的安全。在基于硬件的RAID解决方案中,不少硬件控制器中都有针对磁盘阵列的安全措施。而在通过软件来实现RAID的情况下,其安全主要是通过操作系统来实现的。也就是说,保护了操作系统的安全,就是保护了RAID方案的安全。当操作系统受到了攻击或者破坏,那么无论使用什么样级别的RAID都将失效,无法起到保护数据存储的作用。也就是说,在基于软件的RAID方案中,对数据的保护只局限于硬盘的损坏。当某块硬盘损坏时,可以对损坏硬盘中的数据进行恢复。但是当操作系统受到攻击时,由此带来的数据损失基于软件的RAID是没有任何保护措施的,而全部要依赖于其所采用的操作系统。故在这种情况下,操作系统的安全就变得非常的重要。

四是需要了解硬件与软件RAID解决方案的一些管理上的差异。如在现有的软件RAID解决方案中,是支持硬盘热插拔、远程阵列管理、硬盘热备份、可引导阵列支持、在硬盘上实现阵列配置、硬盘温插拔、SMART硬盘支持等等。如果管理员需要实现这些功能的话,特别是需要实现远程阵列管理(这是很多管理员所期待的),那么管理员必须选择基于硬件的RAID方案。需要购买比较昂贵的硬件控制器来实现。

从以上的分析中可以看出,虽然硬件RAID与软件RAID都可以实现磁盘阵列的功能,但是软件RAID在功能上还是有不少限制的。俗话说,鱼与熊掌不能够兼得。如果企业比较富裕,肯为存储投入大笔资金的话,那么管理员不妨现在硬件RAID 。相反,企业资金比较紧或者数据的传输量不是很大,同时不需要远程阵列管理、硬盘热备份等功能,则可以考虑比较廉价的软件RAID。笔者认为,在考虑是采用硬件还是软件RAID方案时,性能并不是考虑的主要因素。其主要因素在于功能与成本上。因为只要适当提高服务器的CPU与内存配置,可以大幅度的提高软件RAID的性能。甚至可以提高到与硬件RAID同一个水平上。所以选择时焦点主要还在于功能与成本。