云计算项目交付时,不可避免的需要考虑存储磁盘采用何种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. highcharts设置Y轴范围及根据Y轴范围设置不同颜色

    yAxis : { title : { text : '数据' }, plotLines : [ { value : 0, width : 1, color : '#808080' } ], min: ...

  2. shell 创建带参数的命令方法

    主要用到case in,和shift命令. shift 命令是从参数数组中,删除当前第一个参数. while [ "$1" != "" ] do case $1 ...

  3. tomcat 修改端口(Java之负基础实战)

    1.找到server.xml tomcat 安装路径/config/server.xml 2.搜索8080 修改成想要的端口号 3.重启tomcat

  4. HibernateTemplate实现查询distinct构造对象

    1,hql代码 select distinct new UserLogins( u.username,u.person,u.accName) from UserLogins u where u.ipA ...

  5. PHP那些最好的轮子

    PHP那些最好的轮子 Databse 数据库ORM Doctrine 2 License : MIT Source Code Allo点评:Doctrine是功能最全最完善的PHP ORM,社区一直很 ...

  6. JSTL标签之c:foreach,c:if标签小结

    <c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的 ...

  7. iOS 图片水印、图片合成文字或图片实现

    这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载 ...

  8. Linux下使用javac编译

    Linux下使用javac编译Hadoop程序 首先要配置好Hadoop, 给出两个教程 Hadoop安装教程单机/伪分布式配置Hadoop2.6.0/Ubuntu14.04 Hadoop集群安装配置 ...

  9. ubuntu 下配置Web服务器

    ubuntu 下配置Web服务器 1.切换管理员身份 终端/文本界面输入命令: su 根据提示输入密码 注: 如果不能使用su 点击查看如何启用su2.安装MySQL5 apt-get install ...

  10. MyEclipse - 解决 MyEclipse build workspace慢,validation javascript更慢的问题

    在这个过程中对.projet文件进行了跟踪比对,总算发现这个Build的时候进行Validation是从哪里定义的了.似乎因为我的项目是基于ExtJS2.0.2的web project,所以会提示打开 ...