RAID常见级别及特性

磁盘阵列(Redundant Arrays of Independent Disks,RAID),通过软件或者硬件的手段将多个磁盘整合成一个磁盘来使用,以此来提高磁盘的性能,并提供数据冗余的功能。

目前常见的RAID等级:

raid0,被称为条带卷。

条带卷,我们可以通过名字来想象:RAID0通过把文件切割之后把数据像一条带子一样铺在每个磁盘之上。

20140123094531-1754280049.jpg

由于文件的数据分布在每个磁盘上,所以其中一个磁盘出现问题的时候,文件就会由于缺失了某部分而损坏。并且RAID0不提供冗余,所以不需要额外使用空间来储存校验码。所以磁盘空间都可以用作储存文件。

并且,磁盘的实际容量体现为木桶理论(最小的水平决定整体的水平)。假如有4个磁盘,分别320G,500G,1T,2T。则实际的容量为 最小容量的盘 乘以 硬盘数量 ,即320G乘以4。

 读写性能由于磁头数的增加,所以读写的时候磁头之间可以可以实现分工合作。所以读写性能提升。

RAID1,称为镜像卷。

由名字可以理解,RAID1提供完全冗余。也就是说,假如有两个相同大小的磁盘,RAID1的实际容量只有一个磁盘的大小。而另外一个磁盘储存着相同的数据内容。需要注意的是,RAID1不提供数据校验的冗余,所以不需要提供额外的空间储存校验块。

        raid.jpg

由于写入的时候需要对文件进行切片(分割成chunk,raid的文件块),并且磁盘需要写入相同的内容。所以写性能不会提升,甚至有所下降。

而读取的时候,有与磁盘里面储存的内容相同,可以通过从不同磁盘里面读取数据,所以数据读取速度有所提升。

RAID4

提供数据冗余,实际容量同样遵循木桶理论。比较特别的是,RAID4将所有的数据校验码都储存在同一个磁盘上。所以当任何一个磁盘出现问题的时候,都要去校验盘那里读取数据以计算损坏了的文件。

因此校验盘的性能容易成为整个RAID设备性能的瓶颈。由于需要额外的空间来储存校验块以实现数据冗余,所以实际的可用空间为:最小的磁盘容量 乘以(磁盘数量-校验盘)

        u=3674855419,3646977654&fm=21&gp=0.jpg

RAID5

目前流行的磁盘阵列类型。为了解决RAID4中检验盘性能的瓶颈。RAID5中把校验块分布到每个磁盘中,当数据损坏的时候,由于校验块不会集中在某个磁盘上,所以每个磁盘的IO压力都不会太大。

磁头整体数量增多,读写速度提升。

实际的磁盘空间为:最小的磁盘容量 乘以(磁盘数量-1

其中1为检验块的总体比例,即储存两个文件数据时就要储存一个校验块。

而由于避免校验块都储存到同一个磁盘上,所以在设计上检验块会偏移。

所以根据第一个数据块储存在哪个盘上,也可分为左对称和右对称。

        raid5.png

RAID6

在RAID的基础上进行改进,通过假如增加校验块,而有更好的容错能力。

由于整体的磁头数量增加,所以读取速率提升。

但是由于写入数据时不仅要写入文件数据,还要计算并写入两个校验块。所以写入速率性能下降

并且由于增加了一位校验块,RAID控制器要求更加复杂,所以在数据安全和磁盘性能中进行取舍,RAID5更受欢迎。

实际的磁盘空间为:最小的磁盘容量 乘以(磁盘数量-2

    RAID 6.jpg

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

(1)
菠菜菠菜
上一篇 2016-01-05 13:00
下一篇 2016-01-05 13:01

相关推荐

  • 系统基础之权限管理作业题

    1.问题:  在/data/testdir里创建的新文件自动属于g1组,组g2的成员如: alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。 [root@wen-7 testdir]# mkdir -p /data/…

    Linux干货 2016-08-04
  • 权限管理和字符匹配示例

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 cp -r /etc/skel /home/tuser1 chmod -R 700 tuser1 2、编辑/etc/group文件,添加组hadoop hadoop:x:999 3、手动编辑/etc/passwd文件新增一行,…

    2017-12-25
  • Shell脚本自动部署(编译)LAMP平台

    Shell脚本自动部署(编译)LAMP平台 Shell脚本自动部署(编译)LAMP平台 为什么要用脚本进行部署? 脚本功能介绍 笔者环境 准备工作 声明 使用测试 脚本代码 Shell脚本自动部署(编译)LAMP平台 LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们…

    Linux干货 2016-03-26
  • 马哥教育网络班21期+第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    Linux干货 2016-07-07
  • 海量数据处理算法—Bloom Filter

    1. Bloom-Filter算法简介         Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。        Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表…

    Linux干货 2015-10-22
  • 面向对象魔术方法

    ##**特殊属性**– __name__ 类、函数、方法等的名字– __module__ 类定义所在的模块名– __class__ 对象或类所属的类– __bases__ 类的基类的元组,顺序为它们在基类列表中出现的顺序– __doc__ 类、函数的文档字符串,如果没有定义则为None–…

    Linux干货 2017-11-21