前言:何为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. JS 没有块级作用域

    在函数(方法)中声明的所有变量,他们在整个函数中都有定义 var scope="abc"; function f() { alert(scope);  //显示undefine v ...

  2. 行为级和RTL级的区别(转)

    转自:http://hi.baidu.com/renmeman/item/5bd83496e3fc816bf14215db RTL级,registertransferlevel,指的是用寄存器这一级别 ...

  3. Could not find qmake configuration file win32-g++

    D:\Source>c:\Qt\Qt5.3.2_static\bin\qmake -makefile -o Makefile my.proCould not find qmake configu ...

  4. Navicat_Preminum

    一. 安装 参考http://blog.csdn.net/longyuhome/article/details/79206041. 软件准备• [OYKSOFT.COM]navicat11.0.8_p ...

  5. c# 编程添加控件

    Button b = new Button();//创建一个新的按钮 b.Text = "test"; //添加到panel1中 panel1.Controls.Add(b);

  6. deflate与gzip

    gzip是一种数据格式,默认且目前仅使用deflate算法压缩data部分: deflate是一种压缩算法,是huffman编码的一种加强. deflate与gzip解压的代码几乎相同,可以合成一块代 ...

  7. aop动态代理学习

    学习,顺便做个demo,方便理解. A接口有c方法,类B实现A接口,原本应该是执行B类中的c方法,可现在不这样做: 我声明产生B类的代理类B',由它来冒充B类的“兄弟”并“实现”A接口, 对外界来说B ...

  8. python3-day3(深浅copy)

    1.对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy n1 = 123 print(id(n1)) n2 = n1 print(id(n ...

  9. python高级编程(第12章:优化学习)2

    #优化策略 #3个原则 """ 1a:寻找其他原因:确定第三方服务器或资源不是问题所在 2a:度量硬件:确定资源足够用 3a:编写速度测试:创建带有速度要求的场景 &qu ...

  10. C++: int和string相互转换

    假设在一个C++的程序中常常会用到int和string之间的互换.个人建议能够写成一个函数,下次用的时候直接调用就可以. #include <iostream> #include < ...