前言:何为raid

raid是利用多个磁盘组成一个可提升效能、可包含冗余的磁盘阵列组。常用于数据吞吐量大(视频),冗余要求高的场景

当前raid包含了raid0-7,以及组合方式raid10,raid01,raid50等。

下面说下各个raid的特点:

1、raid0 称之为条带

  -1  所有raid中读写速度最快,采用独立存取(数据分块),依次写入各个磁盘,写略有降低,读巨量提升

  -2  所有raid中最不安全,因为他没有冗余备份能力

  -3  磁盘数量n>=2,使用效率100%

  -4  只要有一块盘损坏,则数据就会丢失

2、raid1 称之为镜像(数据冗余度要求高)  常用

  -1  读写速度中等,独立存取,依次写入一个磁盘组的各个磁盘,同时再次写入另一个镜像磁盘组的各个磁盘,写中等下降,读性能提升100%,两个组同时读

  -2  允许2个磁盘组中任意一个组损坏,但不能同时损坏,但是一个组一旦发生问题,还原同步将消耗大量带宽

  -3  磁盘数量2的倍数,使用效率50%

3、raid2-3 专用奇偶校验阵列(不常用)

  -1  采用并行存取(数据块再次分块),同时对数据进行异或运算,将运算结果存入校验盘,写性能最低,读无影响,但整体性能由校验盘决定,因为校验盘速度慢,则整       体性能就不行

  -2  采用异或运算方式恢复数据,异或运算原理:相同为假0,不同为真1例如:

     原数据(异或运算) 1 0 = 1

     损坏后  1 ?= 1

     再次异或运算

     恢复后 ?=0

     因此,可允许一个盘损坏,但是损坏后,需尽快换盘(因为丢失数据均需异或运算得出,大大增加剩余盘的压力,更有可能在新盘加入后,还需要进行恢复,此过程指不     定剩余盘也因为压力过大也坏掉了,那就彻底完了) 

  -3  磁盘数量n>=3,使用效率(n-1)/n

4、raid4   校验盘(不常用)

  -1  采用独立存取,其他与raid3相同

5、raid5 奇偶校验盘(web/mail/一定量的mysql场景)  常用

  -1  独立存取,写效率中等,读效率高,速度不如raid0

  -2  将校验信息不在存放到单一盘上,而是分散到各个磁盘中,可允许一块盘损坏,但是新盘重建很复杂,速度很慢,安全不如raid1

  -3  磁盘数量n>=3,使用效率(n-1)/n

  -4  各方面处于raid0和raid1之间

6、raid6
  -1  p+q方式,将两个校验码分散到所有盘上
  -2  DP方式,专属两个校验盘

7、raid7 新型存储,自身管理(有ram,cpu,操作系统),不消耗主机资源

8、raid10 镜像阵列条带  常用

  -1  先raid1,将磁盘分成多个组(每个组内磁盘为2的倍数),每个组按照raid1的方式再次重组,即  a|b && c|d && e|f && g|h 关系,a与b数据相同,cd相同,ef相同,gh相同,然后四个raid1小组组成raid0

  -2  允许每个raid1组损坏其中的一个子磁盘组,但是不能整个raid1组损坏

9、raid01

  -1  先raid0,将磁盘分为两组(后建立raid1,致使必须分成两组),之后按照raid1方式建立 即abcd|efgh关系,abcd与efgh数据相同,两个大组组成raid0

  -2  冗余和raid1相同,两个磁盘组,只能损毁一个

  -3  各方面均不如raid10

10、raid50(构建不易,性能佳)

  -1  将磁盘分为多个raid5组(组内磁盘n>=3),各个组按照raid0的方式构建,读性能好,写性能略好,冗余能力好,重建时间低于raid5

  -2  每一个raid5组有一个冗余盘,故冗余盘(可损坏的盘)=raid5组的数量,但是每一个raid5子组只能损坏一个盘

  -3  raid5组越多,并行读取能力越低(组越多,冗余盘越多,可用盘越少,读取性能下降),冗余能力越强,反之,亦然

附:

raid存储器相关:

raid存储器芯片速度快,硬盘速度慢,如何解决,靠存储器上的内存,存储器将数据放于内存,之后内存转至硬盘,但是如果内存转至硬盘的过程中,

发生意外停电,如何解决,靠存储器上的电池,因此,raid是否包含内存和电池,也是需要考虑的。

磁盘管理三-raid的更多相关文章

  1. 磁盘管理之 raid 文件系统 分区

    第1章 RAID 磁盘阵列 1.1 使用raid的目的 1)获得更大的容量 2)让数据更安全 3)读写速度更快 1.2 raid0.raid1.raid5.raid10对比 磁头 0磁道 1扇区 前4 ...

  2. linux磁盘管理系列-软RAID的实现

    1 什么是RAID RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. R ...

  3. linux磁盘管理系列三:LVM的使用

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  4. linux磁盘管理系列二:软RAID的实现

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  5. 每天进步一点点——Linux磁盘管理LVM与RAID

    转载请注明出处:http://blog.csdn.net/cywosp/article/details/38965799 1. 传统磁盘管理问题 当分区大小不够用时无法扩展其大小,仅仅能通过加入硬盘. ...

  6. RAID5的创建(5块磁盘,三块做raid,两块做备份)

    RAID5的创建(5块磁盘,三块做raid,两块做备份) 第一步:参考我的上一篇博客,用同样的方法添加5块硬盘.地址如下: https://www.cnblogs.com/Feng-L/p/11735 ...

  7. Linux RAID 磁盘管理

    Linux RAID 磁盘管理 RAID工作模式介绍:https://www.cnblogs.com/xiangsikai/p/8441440.html 本章主要讲解 Linux下 RAID5 与 R ...

  8. liunx 磁盘管理命令记录

    Linux磁盘管理好坏管理直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 fdisk:用于磁盘分 ...

  9. LVM磁盘管理

    http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html Linux LVM硬盘管理及LVM扩容 LVM磁盘管理 一.LVM简介... ...

随机推荐

  1. [TYVJ] P1423 GF和猫咪的玩具

    GF和猫咪的玩具 描述 Description GF同学和猫咪得到了一个特别的玩具,这个玩具由n个金属环(编号为1---n),和m条绳索组成,每条绳索连接两个不同的金属环,并且长度相同.GF左手拿起金 ...

  2. 谁在唱衰PC?说出你的理由

    在平板电脑的冲击下,PC真的衰落了吗?戴尔消费产品市场副总裁Raymond Wah给出了坚定的回答:“平板电脑没有办法代替PC”. 让他有如此底气做出这一判断的取决于两方面:一方面,PC(了解PC市场 ...

  3. Effective Java实作hashCode() - 就是爱Java

    hashCode()这个方法,也是定义在Object class中,这个是所有class的base class,因此所有的class也都继承这个方法,预设是传回这个对象储存的内存地址编号,因为Mix覆 ...

  4. Apache RewriteRule QSA 什么意思

    看到下面这段代码: RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] The Rewrit ...

  5. Unix/Linux环境C编程入门教程(39) shell命令之系统管理

    df命令 用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况.命令的使用格式如下: df  [选项] 常用参数及含义如下表所示. df -a:显示所有文件系统的磁盘 ...

  6. Linux权限机制

    权限是操作系统用来限制用户.组.进程对操作系统资源(文件.设备等)的访问的机制 权限分为:读.写.执行,一般表示为 r.w.x http://itercast.com/lecture/22 每个文件或 ...

  7. web应用,我们需要了解什么?

        对于前端开发来说,web应用我们并不陌生.今天想要讨论一下,在开发一个web应用的时候,我们需要一些基本的知识储备.我们知道,一个web应用脱离不了(request)请求和响应(respons ...

  8. iOS开发-Runtime详解(简书)

    简介 Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的.比如: [receiver message]; // ...

  9. SqlDependency不起作用

    今天使用SqlDependency,结果不起作用,失效,不管数据库怎么修改,这边都没反应,OnChange事件总是不执行,很奇怪.我打开msdn里的例子,代码复制出来,结果没问题,能执行,那剩下来的问 ...

  10. 把Go程序变小的办法

    把Go程序变小的办法是: go build -ldflags “-s -w” (go install类似) -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了, 这 ...