浅谈服务器的RAID技术
所谓RAID就是Redundant Array of Independent Disk的缩写,中文意思是“独立冗余磁盘阵列”,简单来说就是一种利用多个硬盘来提高系统对磁盘的读写速度及其数据安全系数的一种技术。RAID技术开始一般用于服务器或大型工作站上面,但随着RAID技术的不断成熟,现在不少的家用PC的主板都内置了RAID芯片。RAID技术主要有6类,分别为RAID 0~RAID 5,它们各有各的优缺点,所以应根据不同的实际情况选用不同的技术。下面我们就简单介绍一下这6种RAID技术。
RAID 0
RAID 0的原理很简单,就是将n个硬盘并联起来,然后把一大段的数据分成大小一定的带区(striping),再将每一个带区分成n份同时写入各个硬盘。这样一来数据的读写速度将提高n倍,但是RAID 0没有冗余功能,一旦其中一个硬盘损坏,所有的数据将会无法使用,所以其可靠性也会大大降低,仅等于当单独使用一块硬盘时的1/n,因此RAID0技术不适合于执行关键任务的环境。
RAID 1
RAID 1运用的是磁盘镜像技术,就是将偶数个硬盘分成两份,将其中的一半拿来做另外一半的备份,这样做的好处就是在不影响性能的情况下,能够最大限度地保证系统的可靠性和可修复性。当然,在6类的RAID技术中,RAID 1的成本是最高的,硬盘的利用率是最低的——仅为50%。因此RAID 1主要用于要保存关键数据的场合。
RAID 2
RAID 2综合利用了共轴同步技术和ECC(Error Checking and Correcting)检验技术,原理是将若干个硬盘分成两组,分别用来储存数据和校验用的海明码。RAID2是将数据分散为位(bit)分别并算出其ECC代码,然后同时写入各硬盘。如果某一个硬盘发生故障,系统也能够根据海明码和其余的有效数据算出正确的数据进行恢复。因为RAID2的存取是所有硬盘同时进行的,用的是又单位元的存储,所以小于一个扇区的存取会大大削弱其性能,在磁盘利用率方面,RAID2一般只有在使用15个硬盘以上的系统中才会凸显其利用率的优势。因此RAID2不适合用于网络服务器,小型机或PC上。
RAID 3
RAID 3 与RAID2 相似,只不过用奇偶校验码来代替了ECC代码,所以只需要一个硬盘来存储校验码,但其存在的问题是当要向某一个硬盘的某一个扇区写入数据的时候,就要读取其他数据硬盘相同位置的数据,并算出校验码再写入存储校验码的硬盘。所以,RAID3 也不适合需要经常写入零碎文件的场合。显然,在某一个硬盘出现故障的时候系统仍能够正常工作并可以恢复,其磁盘的利用率为(n-1)/n。
RAID 4
RAID 4虽然也是选用了一个硬盘用来存储奇偶校验码,但RAID对数据的读写实按块来进行,所以在读取数据方面会比RAID3快了不少,但写入方面则因要读取其他数据盘在同一位置上的数据块,速度会比RAID3要慢,其他方面,跟RAID3都基本上一样。
RAID5
RAID5又是RAID4的改进,它将本来存储在一个硬盘上的奇偶校验块按一定的顺序平均放到每一个硬盘上。这样做就避免了在存储数据的时候对校验硬盘过于频繁的读写,同时这也大幅度提高了写入零散数据时的效率。RAID5一样具有容错能力和较高的磁盘利用率,但RAID5的读写控制比较复杂,所以RAID的芯片造价也比较高,一般只用于联机交易处理。
以上6种是最基本的RAID技术,在其基础上还派生出了许多的RAID技术,我们将在日后的文章中继续深入探讨,请继续留意本栏目。