独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于电脑来说,看起来就像一个单独的硬盘或逻辑存储单元。分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60。

以上摘自wiki中文

RAID0


所有硬盘并联,读写并行处理,在所有RAID中具有最快的读写速度。任何一块一盘离线,所有数据都无法恢复。

RAID1


所有硬盘互为镜像,理论上读取速度与硬盘数线性相关,写入速度与单块硬盘速度相当。只要有一块硬盘在线就可以正常工作。在所有RAID中安全性最高。硬盘越多,存储空间越浪费,在所有RAID中空间利用率最低。

RAID2/RAID3/RAID4


较少实际应用,主要用于研究领域。原理与RAID5类似,性能不如RAID5.

RAID5


RAID5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。每块硬盘有一个奇偶校验区,最少需要三块硬盘。对于阵列中的硬盘A、B、C,每个硬盘分三个区:A1、A2、A3、B1、B2、B3、C1、C2、C3,其中A3、B2、C1为奇偶校验区,A3=B3⊕C3,B2=A2⊕C2,C1=A1⊕B1,根据异或操作的特性,若a⊕b=c则a=b⊕c且b=a⊕c,当硬盘B故障时,只需计算B3=A3⊕C3、B1=A1⊕C1,B2=A2⊕C2即可完成数据恢复。可以理解为,当一块硬盘故障时,需要解n个一元一次异或方程进行数据恢复。

RAID6


与RAID5类似,但每块硬盘有两个独立的校验区,最少需要四块硬盘。两个校验区PQ,P与RAID5类似,进行异或运算;Q需要应用场理论(Galois Filed伽罗华域,尝试去查询这方面的资料,但是要求数学专业知识,本人数学知识有限,文档读起来非常吃力,没有理解)。与RAID5类似,可以理解为当有两块硬盘故障时,需要解n个二元一次异或方程组进行数据恢复。

RAID10


先做镜像再做分区,只要每个分区中至少有一块硬盘在线就可以正常工作,可靠性高。

RAID01


先做分区再做镜像,相当于多个RAID0阵列做镜像,只要一个RAID0中有一块硬盘故障,整个RAID0就会失效,相对于RAID10可靠性低。

RAID50


先做RAID5再做RAID0,每个RAID5分区都允许至少一块硬盘故障,当有一个RAID5分区中有至少两块硬盘故障时,整个RAID50将会失效。

RAID60


先做RAID6再做RAID0,每个RAID6分区都允许至少两块硬盘故障,当有一个RAID6分区中有至少三块硬盘故障时,整个RAID60将会失效。

关于RAID选择建议:

  • 如果存储空间足够,选择RAID1+0
  • 单独的数据库服务器其磁盘阵列最好选用RAID1+0
  • 如选择RAID1+0空间不够,选择RAID 5
  • 如果磁盘阵列包含的磁盘超过了8块,最好选择RAID 6

最后附上wiki上关于RAID的词条链接:

英文wiki

中文wiki

关于RAID小结的更多相关文章

  1. [转]RAID基础,RAID10与RAID01比较,RAID10与RAID5比较

    原文:http://blog.itpub.net/787018/viewspace-666280/ 文档内容3部分:1.基本的RAID级别介绍2.RAID10和RAID01的比较3.RAID10和RA ...

  2. 戴尔PowerEdge RAID控制卡使用示例(PERC H710P为例)

    Dell PERC使用示例列表(H710p) 特别说明,本文相关RAID的操作,仅供网友在测试环境里学习和理解戴尔PowerEdge服务器RAID控制卡的功能和使用方法.切勿直接在生产服务器上做相关实 ...

  3. Linux运维基础提高之RAID卡和磁盘分区

    磁盘大小计算: 柱面的数量*每个柱面的大小(容量) [root@luffy001 ~]# fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 ...

  4. MYSQL数据表损坏的原因分析和修复方法小结

    MYSQL数据表损坏的原因分析和修复方法小结 1.表损坏的原因分析 以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. ...

  5. 从零开始编写自己的C#框架(26)——小结

    一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...

  6. Python自然语言处理工具小结

    Python自然语言处理工具小结 作者:白宁超 2016年11月21日21:45:26 目录 [Python NLP]干货!详述Python NLTK下如何使用stanford NLP工具包(1) [ ...

  7. java单向加密算法小结(2)--MD5哈希算法

    上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符 ...

  8. iOS--->微信支付小结

    iOS--->微信支付小结 说起支付,除了支付宝支付之外,微信支付也是我们三方支付中最重要的方式之一,承接上面总结的支付宝,接下来把微信支付也总结了一下 ***那么首先还是由公司去创建并申请使用 ...

  9. iOS 之UITextFiled/UITextView小结

    一:编辑被键盘遮挡的问题 参考自:http://blog.csdn.net/windkisshao/article/details/21398521 1.自定方法 ,用于移动视图 -(void)mov ...

随机推荐

  1. Ubuntu 修改 hosts 文件

    sudo vi /etc/hosts sudo /etc/init.d/networking restart

  2. Taro 2.2 全面插件化,支持拓展和定制个性化功能

    自 2.2 开始,Taro 引入了插件化机制,允许开发者通过编写插件的方式来为 Taro 拓展更多功能或者为自身业务定制个性化功能,欢迎大家进行尝试,共同讨论~ 当前版本 2.2.1 官方插件 Tar ...

  3. Spring Boot Starters介绍

    文章目录 Web Start Test Starter Data JPA Starter Mail Starter 结论 对于任何一个复杂项目来说,依赖关系都是一个非常需要注意和消息的方面,虽然重要, ...

  4. 在IBM Cloud中运行Fabric

    文章目录 打包智能合约 创建IBM Cloud services 创建fabric网络 创建org和相应的节点 创建order org和相应节点 创建和加入channel 导入智能合约 上篇文章我们讲 ...

  5. JNI与NDK简析(一)

    1 JNI 简介 在Android Framework中,需要提供一种媒介或 桥梁,将Java层(上层)与C/C++层(下层)有机的联系起来,使得他们互相协调完成某些任务.而充当这种媒介的就是Java ...

  6. webpack前端构建angular1.0!!!

    webpack前端构建angular1.0 Webpack最近很热,用webapcak构建react,vue,angular2.0的文章很多,但是webpack构建angualr1.0的文章找来找去也 ...

  7. CSS开发技巧(一):button样式设置

    button样式需要注意的有几点: 1.建议有一个最小宽度,以免在文字很少时使得按钮过于窄,宽高不协调: 2.建议有一个padding,以免内部文本显得过于拥挤: 2.hover时需要有颜色变化,以告 ...

  8. 搭建Springboot+mybatis+redis+druid

    2019独角兽企业重金招聘Python工程师标准>>> 准备工作 JDK:1.8 使用技术:SpringBoot.Dubbo.Mybatis.Druid 开发工具:Intelj ID ...

  9. CodeForces - 1245A Good ol' Numbers Coloring (思维)

    Codeforces Round #597 (Div. 2 Consider the set of all nonnegative integers: 0,1,2,-. Given two integ ...

  10. c++ concurrency

    c++的并发涉及到这么几个东西: std::thread std::mutex std::lock_guard std::lock 参考资料: http://en.cppreference.com/w ...