“拆”解RAID工作原理

一、什么是RAID

RAID:Redundant Arrays of InexpensiveIndependentDisks,廉价(独立)的冗余磁盘阵列。1988年由加利福尼亚大学伯克利分校提出。使用多个相对便宜的磁盘通过某种方式组合成一个阵列,来提供更好的性能、冗余,或两者同时提供。

性能提高:

         磁盘并行读写,可提高I/O能力。

稳定性提高:

         磁盘冗余来实现。

RAID实现的方式:

         外接式磁盘阵列:通过扩展卡提供适配能力。

         内接式磁盘阵列:主板集成RAID控制器。安装OS前在BIOS里配置

         软件RAID:通过OS实现。

RAID有级别之分,不同的级别仅代表磁盘组织工作的方式不同,并未有优劣之分。

常用的RAID级别有:

RAID-0:条带卷

RAID-1:镜像卷

RAID-5:单磁盘分布式奇偶校验

RAID-6:双磁盘双分布式奇偶校验

RAID-10RAID-1嵌套在RAID-0中使用

RAID-01RAID-0嵌套在RAID-1中使用

二、RAID级别详解

         RAID-0:条带化

                   存储时,把数据条带化,并切成块(chunk),分散存入磁盘阵列下的不同磁盘中。

“拆”解RAID工作原理图示RAID-0可以看出,数据在条带化后被分隔存储,读取时再分别从不同的磁盘中读取数据进行组合。这样就能实现并行读写,大大提升I/o能力。但没有磁盘备份数据,所以无容错性,任何一块磁盘损坏,都会导致数据损坏,从而使业务中止。

总结:RAID-0

1、读写能力明显提升;

2、实际可用空间:N*min(S1,S2…)   N为组成磁盘阵列的磁盘数。下同。)

3、无容错能力;

4、磁盘阵列最小使用磁盘数:2

         RAID-1:镜像卷

                   存储时,每块磁盘设备中都存储了完整的数据块。由于数据被存储了两次,所以写性能是有所下降的,但读取时可以分散读取,所有读性能是有提升的。两块磁盘中存储的数据完全相同,这就意味当有一块设备坏掉的时候,另一块设备是完全不受影响的,业务也就不会终止。

总结:RAID-1“拆”解RAID工作原理

1、  读性能提升、写性能略有下降;

2、  实际可用空间:1*minS1,S2…);

3、  有容错能力;

4、  最少磁盘数:2

RAID-5:单磁盘分布式奇偶校验

         其实,还存在一种RAID-4的排列方式,类似于RAID-0,只是额外多了一块硬盘用来存储数据的校验为。并且数据的读写也不是简单的分散存储以及合并读取了。而是通过把两块(chunk)数据进行异或运算得到一个校验位,把校验位一并存储到第三块磁盘中。当其中一块数据盘损坏时,就可以通过把校验位与另一块数据盘的数据异或运算,得到缺失的数据。

         但人们发现把校验位集中存放在同一个设备上,导致该设备的读写负担过重,该磁盘经常损坏,所以在RAID-4的基础上设计了RAID-5AID-5不再区分数据盘和校验盘,而是把校验位循环分散存储到各个磁盘上。RAID-5如图所示(x代表校验位。),校验位也可以左对齐排列。这样一来便分散了校验盘的负担。

总结:RAID-5“拆”解RAID工作原理

1、  同样实现数据的分散并行存储,提高了读、写性能

2、  存在校验位,有容错能力,但只允许一块磁盘损坏。

3、  实际可用空间:校验位占用了一个磁盘,所以 (N-1)*min(S1,S2…)

4、  最少磁盘数:3

RARD-6:双磁盘分布式奇偶校验

         RAID-6类似与RAID-5的工作方式,在RAID-5的基础上再添一块校验位硬盘,即存在两个校验位。大家都知道,一个方程组中,两个方程式可以求出两个未知数,同样的两个校验位也可以算出两个缺失的数据。因此,RAID-6最大可以允许两块磁盘损坏。

总结:RAID-6

1、  读、写性能提升

2、  有容错能力:最多允许坏两块磁盘

3、  可用空间:(N-2)*min(S1,S2…)

4、  最少磁盘数:4

RAID-10RAID-1嵌套在RAID-0中使用

         如图:可以看出,从底层往上,先用四个磁盘,两两一组做成RAID-1镜像组,把两组RAID-1做成RAID-0条带卷。这样简单的组合便可以把RAID-1RAID-0的优势组合起来利用。

总结:RAID-10“拆”解RAID工作原理

1、  读、写性能提升

2、  有容错能力:每组镜像最多只能坏一块

3、  实际空用空间:N*min(S1,S2…)/2

4、  最少磁盘数:4

RAID-01 RAID-0嵌套在RAID-1中使用

         RAID-10原理相似,只是顺序颠倒,先组成RAID-0,再把RAID-0组成RAID-1

个人认为其实RAID-01RAID-10来说更有优势,RAID-10只允许每个条带组中最多有一个磁盘损坏,而RAID-01还可以允许其中一整个镜像组损坏。

总结:RAID-01“拆”解RAID工作原理

1、  读、写性能提升

2、  有容错能力:可以允许整个镜像组的磁盘全数损坏;

3、  实际空用空间:N*min(S1,S2…)/2

4、  最少磁盘数:4

三、注意:

        RAID磁盘阵列不同于备份,只是为日常业务的高效稳定运行提供了更多的保障机制,并不能替代备份。因为所有的冗余磁盘在读写时都是同步进行的,一个文件改了就全改了,删了也就全删了。所以,RAID并不能替代日常的备份工作。

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

(0)
HulkHulk
上一篇 2016-11-22
下一篇 2016-11-23

相关推荐

  • 条件判断(if,case)和循环(for,until,while等)详解(附例题正解)

    脚本中的if条件判断和循环 在linux下,写脚本是我们必不可少的。在写脚本的过程中,if判断和各种的循环是我们常用的。这里,详细的说一下条件判断以及循环的使用。 条件判断:if 和 else 1.if shell程序中的条件分支是通过if条件语句来实现的,其格式一般为if -then -fi ,这样的是单分支语句,还有的一种就是if-then-else-f…

    Linux干货 2016-08-18
  • hello 北京&Linux启程

    北京初感&Linux启程

    Linux干货 2018-03-26
  • 初学Linux之快速获取帮助

    Windows操作系统和Linux操作系统的界面区别,导致了初学Linux时,我们会遇到比较大的障碍。Windows操作系统时图形这种形象化的操作界面,而Linux则不同,时以字符界面为主的。当我们遇到困难,我们可以获取系统提供的帮助信息,越过我们遇到的障碍,快速的熟悉Linux。获取帮助的方法包括:Linux手册(man),命令的帮助页,info帮助。

    2017-11-19
  • 马哥教育网络21期+第6周博客练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; :%s@\(^[[:space:]]\+\)@#&@g # Let rhgb know that we&#0…

    Linux干货 2016-08-15
  • 计算机的组成和Linux发行版本介绍

    计算机的组成及功能 计算机的五大组成,如下 各部分的作用; 控制单元和算数逻辑单元是CPU的两个主要组成部分  控制单元主要协调各组件与各单元间的工作  算数逻辑单元主要负责程序运算与逻辑判断 内存,DRANM(Dynamic Random Access Memory)动态随机访问内存;CPU读取的数据都是从内存读取来的。 输入单元,下指…

    2017-07-02
  • Nginx+resin调优文档[原创]

    为什么不选择Apache/mod+resin?       前面一直使用该模式,mod_caucho暴露源码的bug一直未得到彻底的解决。因此切换到Nginx+resin平台。硬件上要求除了内存一定要足够大(建议>4G),无其它要求(当然也不能太破,呵呵)。操作系统强烈要求安装64位,32位操…

    Linux干货 2015-03-27