RAID基本知识

摘要:
RAID控制器将主机要写入的数据分解为多个数据块。RAID控制器并行读取分散在磁盘阵列中每个硬盘上的数据,从而提高存储系统的访问速度。如果每个硬盘都有一个独立的控制器会更好。那么两个RAID0磁盘阵列可以看作是两个容量更大、速度更快的硬盘。这样的系统确保了更高的磁盘性能和更高的数据安全性。这种编码技术需要多个磁盘来存储检查和恢复信息。只要存储校验码的硬盘没有故障,数据就可以恢复。

RAID是英文Redundant Array of Independent Disks(独立磁盘冗余阵列),简称磁盘阵列。下面将各个级别的RAID介绍如下。

 

一、为什么使用Raid?

 

1、对磁盘高速存取(提速): RAID将普通硬盘组成一个磁盘阵列,在主机写入数据,RAID控制器把主机要写入的数据分解为多个数据块,然后并行写入磁盘阵列;主机读取数据时,RAID控制器并行读取分散在磁盘阵列中各个硬盘上的数据,把它们重新组合后提供给主机。由于采用并行读写操作,从而提高了存储系统的存取速度。

 

2、扩容。

 

3、数据冗余。

 

二、分类

 

RAID可分为级别0到级别6,通常称为:RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6。

 

RAID0:RAID0并不是真正的RAID结构,没有数据冗余,RAID0连续地分割数据并并行地读/写于多个磁盘上。因此具有很高的数据传输率,但RAID0在提高性能的同时,并没有提供数据可靠性,如果一个磁盘失效,将影响整个数据。因此RAID0不可应用于需要数据高可用性的关键应用。

 

RAID0的优点:最快的读写性能,如果每块硬盘拥有独立的控制器性能将会更好。

 

RAID0的缺点:任何一块硬盘出现故障所有的数据都会丢失,大部分的控制器都是通过软件实现的,所以效能并不好。

 

-----------------------------------------------------------------------

 

RAID1:RAID1通过数据镜像实现数据冗余,在两对分离的磁盘上产生互为备份的数据。RAID1可以提高读的性能,当原始数据繁忙时,可直接从镜像中读取数据。RAID1是磁盘阵列中费用最高的,但提供了最好的数据可用性。当一个磁盘失效,系统可以自动地交换到镜像磁盘上,而不需要重组失效的数据。

 

RAID1的优点:数据高可靠性,易于实现,设计简单。

 

RAID1的缺点:比RAID0相比速度较慢,特别是写入速度,另外就是我们仅仅能使用一半的硬盘容量。

 

-----------------------------------------------------------------------

 

RAID0+1

 

这种RAID模式其实是RAID0和RAID1模式的组合,至少需要4块硬盘。其中任何两块组成一个RAID0磁盘阵列,然后两个RAID0磁盘阵列可以看成两个容量更大、速度更快的硬盘,它们再组成一个RAID1磁盘阵列。这样的系统保证了较高的磁盘性能和较高的数据安全性。当然缺点也是显而易见的就是成本较高,构造比较复杂。RAID0+1在容错性能方面仅次于RAID5,一般用于文件服务器等方面。

 

-----------------------------------------------------------------------

 

RAID2:从概念上讲,RAID2同RAID3类似,两者都是将数据条块化分布于不同的硬盘上,条块单位为位或字节。然而RAID2使用称为“加重平均纠错码”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID2技术实施更复杂。因此,在商业环境中很少使用。

 

RAID2的优点:数据安全性高,只要存放校验码的硬盘没有故障就能恢复数据。

 

RAID2的缺点:昂贵、需要专门的硬盘存放校验码、效率不高、没有商业应用的支持。

 

-----------------------------------------------------------------------

 

RAID3:不同于RAID2,RAID3使用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据。如果奇偶盘失效,则不影响数据使用。RAID3对于大量的连续数据可提供很好的传输率,但对于随机数据,奇偶盘会成为写操作的瓶颈。

 

RAID3的优点:比较适合视频编辑等需要大数据量调用的场合。

 

RAID3的缺点:实现各个驱动器的转速同步非常困难(目前大部分的硬盘都不支持这个功能),需要复杂的控制器。

 

-----------------------------------------------------------------------

 

RAID4:RAID4和RAID5同样将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,成为写操作的瓶颈。在商业应用中很少使用。

 

RAID4的优点:除了RAID3的优点之外,它并不需要同步驱动器转速。

 

RAID4的缺点:写入性能很差,控制器的要求较高。

 

-----------------------------------------------------------------------

 

RAID5:RAID5没有单独指定的奇偶盘,而是交叉地存取数据及奇偶校验信息于所有磁盘上。在RAID5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID5更适合于小数据块,随机读写的数据。RAID3与RAID5相比,重要的区别在于RAID3每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

 

RAID5的优点:不需要专门的校验码磁盘,读取速度快,而且解决了写入速度相对较慢的问题。

 

RAID5的缺点:写入性能依然不尽如人意。

 

-----------------------------------------------------------------------

 

RAID6:RAID6与RAID5相比,增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高。即使两块磁盘同时失效,也不会影响数据的使用。但需要分配给奇偶校验信息更大的磁盘空间,相对于RAID5有更大的“写损失”。RAID6的写性能非常差,较差的性能和复杂的实施使得RAID6很少使用。

 

RAID6的优点:快速的读取性能,更高的容错能力。 RAID6的缺点:很慢的写入速度,RAID控制器在设计上更加复杂,成本更高。

 

详细介绍

 

RAID0 

条带化(Stripe)存储。理论上说,有N个磁盘组成的RAID0是单个磁盘读写速度的N倍。RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。

 RAID基本知识第1张

RAID1 

镜象(Mirror)存储。它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

 RAID基本知识第2张

RAID2 

海明码(Hamming Code)校验条带存储。将数据条块化地分布于不同的硬盘上,条块单位为位或字节,使用称为海明码来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,因此在商业环境中很少使用。

 RAID基本知识第3张

RAID3 

奇偶校验(XOR)条带存储,共享校验盘,数据条带存储单位为字节。它同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。

 RAID基本知识第4张

RAID4 

奇偶校验(XOR)条带存储,共享校验盘,数据条带存储单位为块。RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。

 RAID基本知识第5张

RAID5 

奇偶校验(XOR)条带存储,校验数据分布式存储,数据条带存储单位为块。RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

当进行恢复时,比如我们需要需要恢复下图中的A0,这里就必须需要B0、C0、D0加0 parity才能计算并得出A0,进行数据恢复。所以当有两块盘坏掉的时候,整个RAID的数据失效。

 RAID基本知识第6张

RAID6 

奇偶校验(XOR)条带存储,两个分布式存储的校验数据,数据条带存储单位为块。与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实施方式使得RAID 6很少得到实际应用。

 RAID基本知识第7张

RAID7 

这是一种新的RAID标准,其自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7可以看作是一种存储计算机(Storage Computer),它与其他RAID标准有明显区别。

RAID 7等级是至今为止,理论上性能最高的RAID模式,因为它从组建方式上就已经和以往的方式有了重大的不同。基本成形式见图,以往一个硬盘是一个组成阵列的“柱子”,而在RAID 7中,多个硬盘组成一个“柱子”,它们都有各自的通道,也正因为如此,你可以把这个图分解成一个个硬盘连接在主通道上,只是比以前的等级更为细分了。这样做的好处就是在读/写某一区域的数据时,可以迅速定位,而不会因为以往因单个硬盘的限制同一时间只能访问该数据区的一部分,在RAID 7中,以前的单个硬盘相当于分割成多个独立的硬盘,有自己的读写通道。

 RAID基本知识第8张

RAID10RAID01的比较 

- RAID10是先做镜象,然后再做条带。

- RAID01则是先做条带,然后再做镜象。

比如以6个盘为例,RAID10就是先将盘分成3组镜象,然后再对这3个RAID1做条带。RAID01则是先利用3块盘做RAID0,然后将另外3块盘做为RAID0的镜象。下面以4块盘为例来介绍安全性方面的差别:

1、RAID10的情况 

这种情况中,我们假设当DISK0损坏时,在剩下的3块盘中,只有当DISK1一个盘发生故障时,才会导致整个RAID失效,我们可简单计算故障率为1/3。

 RAID基本知识第9张

2、RAID01的情况

这种情况下,我们仍然假设DISK0损坏,这时左边的条带将无法读取。在剩下的3块盘中,只要DISK2,DISK3两个盘中任何一个损坏,都会导致整个RAID失效,我们可简单计算故障率为2/3。

 RAID基本知识第10张

因此RAID10比RAID01在安全性方面要强。

从数据存储的逻辑位置来看,在正常的情况下RAID01和RAID10是完全一样的,而且每一个读写操作所产生的IO数量也是一样的,所以在读写性能上两者没什么区别。而当有磁盘出现故障时,比如前面假设的DISK0损坏时,我们也可以发现,这两种情况下,在读的性能上面也将不同,RAID10的读性能将优于RAID01。

免责声明:文章转载自《RAID基本知识》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇风暴之眼GDB调试方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

vue可调整大小和可拖动的组件---vue-draggable-resizable

border:位置:调整大小=“onResize”:{{width}};{{高度}}<importVueDraggableResizablefrom'vue-dragable-resizeable'导出默认值{data:height:methods:y){this.x=xthis.y=y}}}<...

vant-picker二次封装

痛点在项目经常会遇到这样的设计,下拉选择框,在vant中没有提供直接的select组件,但是可以使用Field、Popup和Picker这三个组件组合来完成。this.show;}},watch:{selectValue:function{this.result=newVal;},result{this.$emit;}}};效果链接:https://www....

eventUtil

}elseif(element.attachEvent){element.aattchEvent('on'+类型,}else{element['on'+type]=处理程序;}else{element['on'+类型]=null;函数(事件){returnevent.type;}否则{event.returnValue=false;...

阿里巴巴开源性能监控神器Arthas初体验

今天跟大家介绍一款阿里巴巴开源的性能分析神器Arthas官方网站:https://alibaba.github.io/arthas/index.htmlArthas能为你做什么事情呢?接下来,我们找个项目实际体验一下Arthas。﹏﹏﹏﹏上述几个命令只是性能测工作中常用的一些操作,Arthas还有很多其他维度的监控数据,大家可以去官网看下用户手册学习更多操作...

SQL SERVER 查看数据库执行过哪些语句(SQL历史语句记录)

SQLSERVER查看数据库已执行的语句(SQL历史语句记录)1.查看SQL执行效率和语句SelectTOP1000ST。textAS“SQL语句已执行”,QS。execution_CountAS'执行次数',QS。total_ elapsed_timeAS“耗时”,QS。total_logical_ReadsAS“逻辑读取次数”,QS。total_logi...

backgroundsize

当背景大小值为和时,可以设置两个值,也可以设置一个值。当只取一个值时,第二个值相当于auto,但此处的auto不会将背景图像的高度保持在其原始高度,而是与第一个值相同。此外,如果只取一个值,宽度和高度将相同,这相当于背景大小:80%自动。...