温故:

        最近这段时间一直在和大家聊磁盘阵列相关的知识点,关于RAID的文章已经写了几篇了,比如《​​影响RAID 0性能的因素​​​》、《​​如何在实际的运维中合理的选择RAID的级别​​​》、《​​服务器的RAID​​》,大家如果觉得有兴趣可以去看看。

知新:

        今天就简单说一个小问题:既然有了软RAID为什么还要有硬RAID,不是多此一举吗?在回答这个问题之前还是先回顾一下为什么要做RAID?

        提到RAID 就不可避免要说说硬盘,硬盘的类型从IDE硬盘到SATA硬盘、SAS硬盘继而到现在的SSD硬盘,各种性能都在提升,速度也在不断提高。但是在类似机场这种大型的生产环境下,单块甚至几块硬盘已经无法发挥作用,就需要另辟蹊径找到更佳的提升磁盘性能的方法,于是IT人创造了磁盘阵列这一概念。磁盘阵列就是将很多单块的磁盘组合在一起,构成一个磁盘组,然后给这个磁盘组设置好特有的数据读写方式。磁盘阵列的诞生,不仅再一次解决了数据访问速度的难题,同时还降低了部分硬盘损坏影响整个系统的风险。        

一、软RAID和硬RAID

        什么是软RAID,什么是硬RAID?所谓的软RAID无非就是通过软件程序来实现RAID功能,至于硬RAID自然就是使用硬件来实现RAID的功能了。举个简单的例子说明这个问题。在没有跑鞋的时候,跑步比赛只能穿普通的鞋子进行,为了提高速度,参赛人员只能在自身上下功夫,苦练基本功,每天各种训练提升体能,但是总会有一个大致极限。恰好这个时候跑鞋被发明了出来,于是穿上专业跑鞋训练的运动员的速度又得到了大幅度提升。在这个例子中无论是增强训练体能还是使用专业跑鞋的目的都是提高跑步速度,但是二者采用的方式是不一样的,前者是自身内部的调整,就像软RAID通过软件程序来设置,而后者是通过外部工具来进行增强,就像是使用了RAID卡来实现RAID要达到的目的。

二、区别

        软RAID有三个明显的缺点:1.占用内存空间(软件程序需要存放)2.占用CPU资源(软件程序需要计算运行)3.软件的RAID程序无法将已经安装了操作系统的磁盘也做成RAID(极为重要)

        讲一下第三点,既然说了软RAID是程序,那必然就要等到操作系统起来之后才能运行,只有操作系统活着,它才能发挥作用,这一点不可否认吧。那么如果在运行的过程中,操作系统突然崩掉了,那软RAID程序自然也就废了。如果RAID程序废了,那么没有了RAID程序的算法来识别和读写磁盘上的数据,磁盘里面的内容就成了碎片了。当然了也不是说软RAID就绝对无法避免这种请况,现在的软RAID一般还支持把RAID 算法写在磁盘中保存一份,一旦出了上面说的情况,还可以把这些硬盘安装在其他的服务器上,再安装上相同的RAID软件,就可以继续使用了,虽然有了有了这个问题的解决办法,但是占用CPU和内存的问题还没有解决,于是大家就想换另一种方式来解决这个问题,硬RAID 应运而生。

        人们在SCSI卡上增加了额外的芯片用于实现RAID功能,于是RAID卡诞生了。RAID卡可以用来执行RAID算法,替代了软件程序。这样的好处就是操作系统不需要任何的改变,除了需要安装RAID卡的驱动程序之外无需安装其他东西,就能自动识别到经过RAID处理的虚拟磁盘了。

        而且RAID卡比较厉害的是彻底屏蔽掉了操作系统对实际物理磁盘的感知,因为操作系统只能通过RAID卡来连接到实际的物理磁盘,而软件RAID就做不到这样,起码在操作系统的最底层是对物理磁盘有感知的。

        另外由于软RAID是软件程序组成,所以它的配置实在操作系统上完成的,就像咱们平时在电脑上安装个驱动程序一样;但是RAID卡却是必须进入这个硬件来完成,比如使用RAID卡配置工具。

三、软RAID教程

        关于二者的区别我就讲到这里,最后送大家一个福利《​​无硬件Raid卡的情况下,在软raid上安装CentOS​​​》、《​​图解Windows Server 2008 软阵列​​》