linux上RAID的工作方式

-. RAID是什么?

    磁盘阵列(Redundant Arrays of Independent Disks,RAID),是将多块廉价硬盘组合在一起当作一个更大的硬盘使用,利用可以同时对每个硬盘同时进行读写的特性提高计算机对硬盘的读写能力。我们甚至可以空出RAID中的一块或多块硬盘对整个RAID进行数据校验,提高其稳定和安全性。

    RAID根据硬盘的组合利用方式不同分为RAID0,RAID1,……,RAID7,RAID10,RAID01,RAID50,JBOD(just a bunch of disks)。其中常用的有0,1,5,10,01,50,JBOD。

    注意“RAID10”中的10不是“十”而是1和0的组合。

    下面就让我们跳几个常用的一睹其庐山真面目吧!

二. RIAD0

    blob.png

    RAID0有两块硬盘组成:disk0和disk1。

    假设我们要往RAID0上存入一个FILE1文件,其存储过程是将FILE1分成多个block,每个block命名为A1,A2,……

然后按图中所示方式存储至disk0和disk1。

    我们不难发现RAID0具有如下特定:

        1. 我们至少需要两块硬盘才能组成一个RAID0;

        2. 数据在RAID0中的存储过程至少简单的拆封和组合,却不具备校验能力;

        3. 其存储容量为:硬盘数*硬盘中的最小容量;

        4. 由于可以同时对多块硬盘进行读写,所以其读写性能提升;

三. RAID1

    blob.png

    RAID1也是至少有两块硬盘组成,其存储方式两个磁盘同时存入同样的内容,我们可以吧DISK2理解为DISK1的镜像。

    RAID1的特点:

        1. 由于要多出一块硬盘来做镜像,所以其写能力变差;

        2. 我们可以从两块硬盘同时读取同一个文件不同内容,所有其读能力变强;

        3. 多了镜像,所以其容错能力增强;

        4. 至少需要两块硬盘;

四,RAID4和RAID5

    blob.png

    RAID4至少由3块硬盘组成,其中两块用来存储,一块用来作为校验盘。比如图中由4块硬盘组成,D1,D2,D3用来存储数据,D4用来作为校验盘。我们可以通过A1,A2,A3通过一定的算法产生AP(1-3), 反过来却不行,但是如果说A1,A2,A3中任何一块出现问题,比如A2,我们可以通过AP(1-3),A1,A3反推出A2。

    RAID4具有以下特点:

        1. 至少需要3块硬盘;

        2. 安全稳定性能具有一定的提升(存在一块校验盘);

        3. 实际可利用空间比所有硬盘总和小一块硬盘的容量;

        4. 读和写性能得到提升;

    RAID5和RAID4基本相同,不同之处在于RAID5把不同的磁盘轮流作为不同的检验盘,如图所示:

    blob.png

    注: AP,BP,CP,DP为校验数据;

五,RAID10和RAID01

    blob.png

    RAID10是先把(DISK0,DISK1)和(DISK2,DISK3)先按RAID1组合然后再把两个RAID1按RAID0组合;

    RAID01是先把(DISK0,DISK1)和(DISK2,DISK3)先按RAID0组合然后再把两个RAID0按RAID1组合;

    两种组合方式在安全稳定性能上都很强,读写性能也很强,但是磁盘空间利用率不高(至少需要4块硬盘),土豪公司才会考虑采用这种组合方式。

 

原创文章,作者:Jacen,如若转载,请注明出处:http://www.178linux.com/9659