云计算项目交付时,不可避免的需要考虑存储磁盘采用何种RAID。例如:我们的项目工程师可能会建议大家连接克隆虚拟机系统盘组RAID 10,完整复制虚拟机数据盘

  使用RAID5或者RAID6等,那么RAID到底是什么?我们为什么要采用RAID?如何选取合适的RAID 形式呢?

  1)RAID 概念

  RAID是Redundant Array of Independent Disk 的缩写,独立磁盘冗余阵列。它是一种数据保护技术,它通过把多块独立的硬盘(物理硬盘)按不同方式组合起来

  形成一个硬盘组(逻辑硬盘),提供比单个硬盘更高的存储性能和提供数据冗余。

  2)RAID的优点

  ·提高传输速率

  RAID 通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量。在RAID 中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘

  驱动器,所以使用RAID 可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。

  ·提供容错功能

  普通磁盘驱动器无法提供容错功能,RAID 可提供容错功能,RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有

  较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而明显提高了RAID系统的容错度,提高了系统的稳定冗余性。

  二、RAID 分类

  目前业界公认的标准是 RAID0~RAID5。另外,其他还有6,7,10等。

  本文中只给出几种常用的RAID 级别的简要介绍:

  ·RAID0

  它将数据分成一定的大小,顺序地写到阵列的磁盘里。如下图所示:

  

  理论上讲,一个由N个磁盘组成的RAID0系统,它的读写性能将是单个磁盘读取性能的N倍,且磁盘空间的存储效率最大(100%)。由于总线带宽等多种因素的影响,

  实际的提升速率会低于理论值。但是,大量数据并行传输与串行传输比较,性能必然大幅提高。RAID0有一个明显的缺点:不提供数据冗余保护,一旦数据损坏,

  将无法恢复。RAID0至少需要2块硬盘才能实现。

  ·RAID1

  也称为镜像(mirror),它将数据完全一致的分别写到工作磁盘和镜像磁盘。

  

  RAID1系统的磁盘空间利用率为50%,对数据写入时间会产生影响,但是读的时候没有任何影响。RAID1提供了非常好的数据保护,一旦工作磁盘发生故障,系统自动从

  镜像磁盘读取数据,不会影响用户工作。而且RAID1支持“热替换”,即不断电的情况下对故障磁盘进行更换,更换完毕只要从镜像盘上恢复数据即可。RAID1至少需要2块硬盘才能实现。---偶数块。

  ·RAID5

  采用分布式奇偶校验的独立磁盘结构。数据校验的信息被均匀的分散到阵列的各个磁盘上,阵列的磁盘上既有数据,也有数据校验信息,数据块和对应的校验信息会存储于不同的磁盘上。

  

  校验位即P位是通过同一带区的数据做异或求得的。当一个数据盘损坏时,RAID5系统可以根据同一带区的其他数据块和对应的校验信息来重构损坏的数据。RAID5至少需要3块硬盘才能实现。

  ·RAID6

  采用两种奇偶校验的磁盘结构。RAID6在RAID5的基础上,进一步加强了数据保护,实际上是一种扩展RAID5等级。

  RAID6的数据冗余性能相当好。但是由于增加了一个校验,所以写入的效率较RAID5还差。而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。

  RAID6至少需要4块硬盘才能实现。

  ·RAID10

  是一个RAID0与RAID1的组合体。RAID10的结构非常简单,首先创建2个独立的RAID1,然后将这两个独立的RAID0组成一个RAID0,当往这个逻辑RAID中写入数据时,数据被有序的写入两个RAID1中。

  

  RAID10 以 RAID0 为执行阵列,以RAID1为数据保护阵列。具有与RAID1一样的容错能力,用于容错处理的系统开销与单独的镜像操作基本一样,由于使用RAID0作为执行等级,因此具有较高的I/O宽带。

  RAID10至少需要4块硬盘才能实现。

  使用场景

  ·RAID0使用场景

  RAID0不提供容错能力,但是它的读取性能很高。故RAID0应用对于读取性能要求较高但所存储的数据为非重要数据的场合。

  ·RAID1使用场景

  RAID1提供了非常好的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,且支持“热替换”,故RAID1应用于对数据保护极为重视的场合。

  ·RAID5及RAID6的使用场景

  RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID5可以为系统提供数据安全保障,但保障程度要比RAID1 低而磁盘空间利用率要比RAID1高。

  RAID6两个独立的奇偶系统使用不同的算法,数据的可靠性比RAID5 高,即使两块磁盘同时失效也不会影响数据的使用。

  故对于数据的保存所需级别要求并不是很高的情况下,我们只需要使用常规的RAID5即可。就现在而言,对于那些数据中心,信息中心等对数据安全级别要求比较高的企业,

  使用RAID6保护数据还是有必要的。

  ·RAID10使用场景

  RAID10适用于数据库存储服务器等需要高性能、高容错但对容量要求不大的场合。

  实际项目中,需要综合考虑客户对数据存储的安全要求,价格要求等各项因素选择合理的RAID形式。

存储可靠性技术之 --RAID的更多相关文章

  1. linux杂谈(十七):iscsi存储分离技术

    1.iscsi简单介绍 ​ ​iSCSI利用了TCP/IP的port 860 和 3260 作为沟通的渠道.透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机能够透过快速的局域网集线来 ...

  2. 阿里云PolarDB及其共享存储PolarFS技术实现分析(上)

    PolarDB是阿里云基于MySQL推出的云原生数据库(Cloud Native Database)产品,通过将数据库中计算和存储分离,多个计算节点访问同一份存储数据的方式来解决目前MySQL数据库存 ...

  3. 大数据存储的进化史 --从 RAID 到 Hdfs

    我们都知道现在大数据存储用的基本都是 Hdfs ,但在 Hadoop 诞生之前,我们都是如何存储大量数据的呢?这次我们不聊技术架构什么的,而是从技术演化的角度来看看 Hadoop Hdfs. 我们先来 ...

  4. 超级内存NVDIMM:下一代数据中心存储关键技术

    1.背景介绍 连接到互联网的设备数量不断增长,到2015年,将达到150亿之多.而数据中心的压力也随之增加,唯有采用新的技术才能进一步提升其效率和性能. 相比于HDD传统硬盘,固态硬盘大大增加了I/O ...

  5. 阿里云PolarDB及其共享存储PolarFS技术实现分析(下)

    上篇介绍了PolarDB数据库及其后端共享存储PolarFS系统的基本架构和组成模块,是最基础的部分.本篇重点分析PolarFS的数据IO流程,元数据更新流程,以及PolarDB数据库节点如何适配Po ...

  6. 万亿级日志与行为数据存储查询技术剖析(续)——Tindex是改造的lucene和druid

    五.Tindex 数果智能根据开源的方案自研了一套数据存储的解决方案,该方案的索引层通过改造Lucene实现,数据查询和索引写入框架通过扩展Druid实现.既保证了数据的实时性和指标自由定义的问题,又 ...

  7. 万亿级日志与行为数据存储查询技术剖析——Hbase系预聚合方案、Dremel系parquet列存储、预聚合系、Lucene系

    转自:http://www.infoq.com/cn/articles/trillion-log-and-data-storage-query-techniques?utm_source=infoq& ...

  8. RAID技术

    RAID:其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵.容量巨大的硬盘.所以称为廉价磁盘冗余数组 RAID级别: RAID 0亦称为带区集.它是将多个 ...

  9. 高速掌握sinox2014激动人心的ZFS和RAID技术

    Sinox2014引入激动人心的zfs系统以及其支持的RAID,让用户高速打造便宜的高可靠性文件server. ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统( ...

随机推荐

  1. iOS 日期时间控件

    UIDatePicker *picker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 0,[UIParam widthScreen] ,50 ...

  2. Spring新下载地址

    Spring官网改版后找了好久都没有找到直接下载Jar包的链接,下面汇总些网上提供的方法,亲测可用. 1.直接输入地址,改相应版本即可:http://repo.springsource.org/lib ...

  3. Angular - - ngClass、ngClassEven、ngClassOdd、ngStyle

    这几个都关于样式及类名修改的,所以先把样式代码贴上吧. .red{color:red} .blue{color:blue} 写案例用到的样式就这么简单的两个,下面进入正题. ngClass ngCla ...

  4. 文本切换器(TextSwitcher)的功能和用法

    TextSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征:可以在切换View组件的同时使用动画效果.与ImageSwitcher相似的是,使用TextSw ...

  5. jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限

    jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限 由于初次接触jenkins,于是在搭建好jenkins以后,想要对用户进行管理,于是乎开始在系统管理->conf ...

  6. Flash对不同的浏览器的兼容性

    现在遇到两个Flash的兼容性问题: 1.找不到指定的摄像头(VCamera),可是该摄像头在QQ等IM工具中是可以正常使用的 2.能找到摄像头,不过他的预览是黑屏 针对第一个问题: a.采用IE内核 ...

  7. Paxos 实现日志复制同步(Multi-Paxos)

    Paxos 实现日志复制同步 这篇文章以一种易于理解的方式来解释 Multi-Paxos 的机制. Multi-Paxos 的是为了创建日志复制 一种实现方式是用一组基础 Paxos 实例,每条记录都 ...

  8. Kubuntu定制开始菜单

    在我旧的博客(http://blog.sina.com.cn/eltaera)里,曾经转载过关于ubuntu定制的文章(http://blog.sina.com.cn/s/blog_8709e3120 ...

  9. Go并发编程实践

    前言 并发编程一直是Golang区别与其他语言的很大优势,也是实际工作场景中经常遇到的.近日笔者在组内分享了我们常见的并发场景,及代码示例,以期望大家能在遇到相同场景下,能快速的想到解决方案,或者是拿 ...

  10. Hadoop权威指南:通过FileSystem API读取数据

    Hadoop权威指南:通过FileSystem API读取数据 [TOC] 在Hadoop中,FileSystem是一个通用的文件系统API 获取FileSystem实例的几个静态方法 public ...