RAID技术详解

1、RAID 0

RAID 0是把n个物理磁盘虚拟成一个逻辑磁盘,即形成RAID 0的各个物理磁盘会组成一个逻辑上连续,物理上也连续的虚拟磁盘。一级磁盘控制器(指使用这个虚拟磁盘的控制器,如果某台主机使用配适卡链接外部盘阵,则指的就是主机上的磁盘控制器)对这个虚拟磁盘发出的指令,都被RAID控制器收到并分析处理,根据Block映射关系算法公式转换成对组成RAID0的各个物理盘的真是物理磁盘IO请求指令,收集或写入数据之后,再提交给主机磁盘控制器。

RAID 0也称为条带化存储,它代表了所有RAID级别中最高的存储性能。无数据校验,下面分析从上到下访问RAID 0磁盘的过程。

假如某一时刻,主机控制器发出指令:读取初始扇区10000长度128

RAID控制器接收到这个指令之后,立即进行计算,根据对应公式算出10000号逻辑扇区所对应的物理磁盘的扇区号,然后依次算出逻辑上连续的下128个扇区所在物理磁盘的扇区号。分别向对应这些扇区的磁盘再次发出指令。这次是真是的读取数据了,磁盘接受到指令,各自将数据提交给RAID控制器,经过控制器在Cache中的组合,再提交给主机控制器。

经过以上过程,发现如果这128个扇区都落在同一个Segment中的话,也就是说条带深度容量大于128个扇区的容量(64KB),则这次IO就只能真实地从这一块物理盘上读取,性能和单盘相比会减慢,因为没有任何优化,反而还增加了RAID控制器额外的计算开销。所以,在某种特定条件下要提升性能,让一个IO尽量扩散到多块物理盘上,就要减小条带深度。在磁盘数量不变的条件下,也就是减小条带大小(Stripe SIZE,也就是条带长度),让这个IO的数据被控制器分割,同时放满一个条带的第一个Segment、第二个Segment等,以此类推,这样就能极大地占用多块物理盘。

所以RAID 0要提升性能,条带做的越小越好。但是有一个矛盾出现了,就是条带太小,导致并发IO几率降低,因为如果条带太小,则每次IO一定会占用大部分物理盘,队列中的IO就只能等待这次IO结束后才能使用物理盘,而条带太大,又不能充分提高传输速度。这两个是一对矛盾,要根据需求采用不同的方式。

2、RAID 1

RAID 1称为镜像,它将数据完全一致地分别写到工作磁盘和镜像 磁盘,它的磁盘空间利用率为 50% 。 RAID1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。

对于RAID 1的写IO,速度不但没有提升,而且有所下降,应为数据要同时向多块物理盘写,时间以最慢的那个为准,因为是同步的。而对于RAID 1的读IO请求,不但可以并发,而且就算顺序IO的时候,控制器也可以像RAID 0一样,从两块物理盘上同时读数据,提升速度。

在读、并发IO模式下,由于可以并发N个IO,每个IO占用一个物理盘,这就相当于提升了N倍的IOPS。由于每个IO只独占了一个物理盘,所以数据传输速度相对于单盘并没有改变,所以不管是随机还是顺序IO,相对单盘都不变

3、RAID 2

RAID2 称为纠错海明码磁盘阵列,其设计思想是利用海明码实现数据校验冗余。海明码是一种在原始数据中加入若干校验码来进行错误检测和纠正的编码技术,其中第 2n 位( 1, 2, 4, 8, … )是校验码,其他位置是数据码。因此在 RAID2 中,数据按位存储,每块磁盘存储一位数据编码,磁盘数量取决于所设定的数据存储宽度,可由用户设定。图 4 所示的为数据宽度为 4 的 RAID2 ,它需要 4 块数据磁盘和 3 块校验磁盘。如果是 64 位数据宽度,则需要 64 块 数据磁盘和 7 块校验磁盘。可见, RAID2 的数据宽度越大,存储空间利用率越高,但同时需要的磁盘数量也越多。

  海明码自身具备纠错能力,因此 RAID2 可以在数据发生错误的情况下对纠正错误,保证数据的安全性。它的数据传输性能相当高,设计复杂性要低于后面介绍的 RAID3 、 RAID4 和 RAID5 。

4、RAID 3

RAID 3是使用专用校验盘的并行访问阵列,它采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘,数据按位可字节的方式交叉存储到各个数据盘中。RAID3 至少需要三块磁盘,不同磁盘上同一带区的数据作 XOR 校验,校验值写入校验盘中。 RAID3 完好时读性能与 RAID0 完全一致,并行从多个磁盘条带读取数据,性能非常高,同时还提供了数据容错能力。向 RAID3 写入数据时,必须计算与所有同条带的校验值,并将新校验值写入校验盘中。一次写操作包含了写数据块、读取同条带的数据块、计算校验值、写入校验值等多个操作,系统开销非常大,性能较低。

  如果 RAID3 中某一磁盘出现故障,不会影响数据读取,可以借助校验数据和其他完好数据来重建数据。假如所要读取的数据块正好位于失效磁盘,则系统需要读取所有同一条带的数据块,并根据校验值重建丢失的数据,系统性能将受到影响。当故障磁盘被更换后,系统按相同的方式重建故障盘中的数据至新磁盘。

  RAID3 只需要一个校验盘,阵列的存储空间利用率高,再加上并行访问的特征,能够为高带宽的大量读写提供高性能,适用大容量数据的顺序访问应用,如影像处理、流媒体服务等。目前, RAID5 算法不断改进,在大数据量读取时能够模拟 RAID3 ,而且 RAID3 在出现坏盘时性能会大幅下降,因此常使用 RAID5 替代 RAID3 来运行具有持续性、高带宽、大量读写特征的应用。

RAID 3的每一个条带,其长度被设计为一个文件系统快的大小,深度随磁盘数量而定,但是最小深度为1个扇区,这样的话,每个Segment的大小一般就是1个扇区或者几个扇区的容量

例解:RAID 3的作用机制

用一个4块数据盘和1块校验盘的RAID 3系统,Segment SIZE为两个扇区大小(1KB),条带长度为4KB

RAID 3控制器接收到了这样一个IO:写入初始扇区10000 长度8,即总数量为8*512B=4KB

控制器先定位LBA10000所对应的真是物理LBA,假如LBA10000恰好在第一个条带的第一个Segment的第一个扇区上,那么控制器将这个IO数据里的第1、2个512B写入这个扇区。同一时刻,第3、4个Segment中,此时恰好是4KB的数据量。也就是说这4KB的IO数据同时被分别写入了4块磁盘,没块磁盘写入了两个扇区,也就是一个Segment。它们是并行写入的,包括校验盘也是并行写入的,所以RAID 3的校验盘没有瓶颈,但是有延迟,因为增加了计算校验的开销。

如果IO SIZE大于条带长度,如控制器收到的IO SIZE为16KB,则控制器一次所能并行写入的是4KB,这16KB就需要分4批来写入4个条带,其实这里的分4批写入不是先后写入,而是同时写入,也就是这16KB中的第1、5、9、13KB将由控制器连续写入磁盘1,第2、6、10、14连续写入磁盘2,以此类推。直到16KB数据全部写完,是并行一次写完。这样校验盘也可以一次性计算校验值并且和数据一同并行写入,而不是分批。

原文地址:https://www.cnblogs.com/jiweilearn/p/9502095.html

时间: 2024-10-17 16:33:20

RAID技术详解的相关文章

Linux磁盘阵列技术详解(二)--raid 1创建

我在Linux磁盘阵列技术详解(一)里已经详细介绍了几种RAID磁盘阵列方式,原理以及创建raid 0 的详细步骤.那么这篇文档就着重讲解如何创建raid 1的技术: 步骤如下: ① 分区 同样我们还是以一块硬盘的不同分区为例,实际工作中应该是不同的硬盘才对. 具体分区步骤不再赘述! 分区后结果如下图所示: ② 创建raid 1 mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sdc1 /dev/sdc2 /dev/sdc3 或者 mdadm -C -v /de

23、磁盘管理—磁盘阵列(RAID)实例详解

磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 Raid的管理 案例:创建一个raid10+冗余盘 磁盘阵列(RAID)实例详解 Raid(磁盘阵列)级别介绍 Raid有"廉价磁盘冗余阵列"的意思,就是利用多块廉价的硬盘组成磁盘组,让数据分部储存在这些硬盘里面,从而达到读取和写入加速的目的:也可以用作数据的冗余,当某块硬盘损毁后,其他硬盘

实现高性能纠删码引擎 | 纠删码技术详解(下)

作者介绍: 徐祥曦,七牛云工程师,独立开发了多套高性能纠删码/再生码编码引擎.柳青,华中科技大学博士,研究方向为基于纠删码的分布式存储系统. 前言: 在上篇<如何选择纠删码编码引擎>中,我们简单了解了 Reed-Solomon Codes(RS 码)的编/解码过程,以及编码引擎的评判标准.但并没有就具体实现进行展开,本篇作为<纠删码技术详解>的下篇,我们将主要探讨工程实现的问题. 这里先简单提炼一下实现高性能纠删码引擎的要点:首先,根据编码理论将矩阵以及有限域的运算工程化,接下来主

基于柯西矩阵的Erasure Code技术详解

一.概述 Erasure Code可以应用于分布式存储系统中,替代多份数据拷贝的数据冗余方式,从而可以提高存储空间利用率.此外,Erasure code还可以应用于传统RAID系统中,增加数据冗余度,支持多块盘同时发生故障,从而可以提高数据可靠性. 采用范德蒙矩阵可以构建Erasure code(关于范德蒙矩阵的编解码方法,可以参考文章<基于范德蒙矩阵的Erasure code技术详解>),其生成矩阵表示如下: 采用范德蒙矩阵作为编码矩阵的问题在于算法复杂度太高,其解码算法复杂度为O(n^3)

linux基础-磁盘阵列(RAID)实例详解

磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 Raid的管理 案例:创建一个raid10+冗余盘 磁盘阵列(RAID)实例详解 Raid(磁盘阵列)级别介绍 Raid有"廉价磁盘冗余阵列"的意思,就是利用多块廉价的硬盘组成磁盘组,让数据分部储存在这些硬盘里面,从而达到读取和写入加速的目的:也可以用作数据的冗余,当某块硬盘损毁后,其他硬盘

CDN技术详解及实现原理

CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同好. 第一章    引言    “第一公里”是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽.这个带宽决定了一个 网站能为用户提供的访问速度和并发访问量.如果业务繁忙,用户的访问数越多,拥塞越严重,网站会在最需要向用户提供服务时失去用户.(还有“中间一公里” 和

Protocol Buffer技术详解(语言规范)

Protocol Buffer技术详解(语言规范) 该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo.这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流.需要说明的是,Blog的内容并非line by line的翻译,其中包含一些经验性总结,与此同时,对于一些不是非常常用的功能并未予以说明,有兴趣的开发者

红帽Linux故障定位技术详解与实例(2)

红帽Linux故障定位技术详解与实例(2) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行各种操作命令或测试程序的方式对故障环境进行观察,分析,测试,以定位出故障发生的原因. AD:2014WOT全球软件技术峰会北京站 课程视频发布 3.内核故障情形及处理 (1)内核panic panic是内

红帽Linux故障定位技术详解与实例(1)

红帽Linux故障定位技术详解与实例(1) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行各种操作命令或测试程序的方式对故障环境进行观察,分析,测试,以定位出故障发生的原因. AD:2014WOT全球软件技术峰会北京站 课程视频发布 红帽Linux故障定位技术详解与实例是本文要介绍的内容,主要