RAID技术与应用

目录

RAID概述

一RAID级别及适用

二·不同RAID级别对比

三·.RAID的实现方式


RAID概述

RAID为廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),是由美国加州大学伯克利分校帕蒂森(D.A. Patterson)教授在1988年提出的,作为高性能、高可靠的存储技术,在今天已经得到了广泛的应用。RAID技术将一个个单独的磁盘以不同的组合方式形成一个逻辑硬盘,从而提高了磁盘读取的性能和数据的安全性。RAID技术是一种工业标准,不同的组合方式用RAID级别来标识。

各RAID级别具有的共同特性是:RAID由若干个物理磁盘组成,但对操作系统而言仍是一个逻辑盘;数据分布在阵列中的多个物理磁盘中;冗余的磁盘容量用以保存容错信息,以便在磁盘失效时进行恢复(RAIDO不支持该特性)。使用RAID有以下好处:

①多个磁盘组合成一个逻辑磁盘,满足海量存储的需要。

② RAID将多个磁盘组合成一个逻辑磁盘,多个磁盘同时传输数据,达到单个磁盘若干倍的传输速率。

③采用磁盘冗余方式,通过镜像或校显投不米休让双培女全和系统安全,提高计算机的可用性。

④与同等容量的磁盘相比,RAID 系死DI柏女TN不R=具体实现磁盘阵列时,加上磁盘阵列柜和RAID 卡的价格,整个系统还是比较昂贵的.

基于RAID的优点,RAID 主要用在网络服务器,高性能桌面系统和工作站中。当然它也是网络存储的基本技术,用于SAS(服务器连接存储设备)、NAS(网络连接存储设备)、SAN(存储区域网络)等网络存储方案中。

一RAID级别及适用

RAID技术经过不断发展,现在已拥从RAID0~RAID5等6种明确标准级别的RAID级别。另外,其他还有6、7、10 (RAID1和RAID0组合)、01(1组RAID0和RAID1合)、30(1组RAID3和RAID0合)、50(1组RAID5和RAID0合)等。

不同RAID级别代表着不同的存储性能、数据安全性和存储成本,下面将介绍如下RAID级别:0、1、2、3、4、5、6、01、10。

RAI D0

RAID0也称条带化(stripe),将数据分成一定的大小顺序地写到阵列磁盘里。RAID0可以并行地执行读写操作,可以充分利用总线的带宽,理论上讲,一个由N个磁盘组成的RAID0系统,它的读写性能将是单个磁盘读取性能的N倍,且磁盘空间的存储效率最大(100%)。RAID0有一个明显的缺点:不提供数据冗余保护,一旦数据损坏,将无法恢复。

如图下图所示,系统向RAID0系统(四个磁盘组成)发出的1/O数据请求被转化为4项操作,其中的每一项操作都对应于一块物理硬盘。通过建立RAIDO,原先顺序的数据请求被分散到四块硬盘中同时执行。

   

从理论上讲,四块硬盘的并行操作使同一时间内磁盘读写速度提升了4倍。但由于总线带宽等多种因素的影响,实际的提升速率会低于理论值。但是,大量数据并行传输与串行传输比较,性能必然大幅提高。

RAIDO应用于对读取性能要求较高但所存储的数据为非重要数据的情况下。

RAID1

RAID1称为镜像(Mirror),它将数据完全一致地分别写到工作磁盘和镜像磁盘中,如图下图所示。因此它的磁盘空间利用率为50%.在数据写入时会有影响,但是读的时候没有任何影响。

RAID1提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响工作。

RAID1应用于 对数据保护极为重视的应用。

RAID2

RAID2称为纠海明码磁盘阵列,阵列中序号为2N的磁盘(第1,2,4,6……)作为校验盘,其余的磁盘用于存放数据,磁盘数目越多,校验盘所占用比率越小。RAID2在大数据存储的情况下性能很高,RAID2的实际应用很少。

RAID3

RAID3采用一个硬盘作为校验盘,其余磁盘作为数据盘,数据按位或字节的方式交叉地存储到各个数据盘中,如下图所示。不同的磁盘上同一带区的数据做异或校验,并把校验值写入校验盘。

 RAID3系统在完整的情况下读取时没有任何性能上的影响,读性能与RAID0一致,却提供了数据容错能力,但是,在写时性能大为下降,因为每一次写操作,即使是改动某个数据盘上的一个数据块,也必须根据所有同一带区的数据来重新计算校验值井写入校验盘,一个写操作包含了写入数据块,读取同一带区的数据块,计算校验值,写入校验值等操作,系统开销大为增加。

当RAID3中有数据盘出现损坏,不会影响用户读取数据,如果读取的数据块正好在损坏的磁盘上,则系统需要读取所有同一带区的数据块,然后根据校验值重新构建数据,系统性能会受到影响。

RAID3的校验盘在系统接受大量的写操作时容易形成性能瓶颈,因而适用于有大量读操作如Web系统以及信息查询等应用或持续大块数据流(例如非线性编辑)的应用。

RAID4

RAID4 与 RAID3基本一致,区别在于条带化的方式不一样,RAID4按照块的方式存放数据,所以在写操作时只涉及两块磁盘——数据盘和校验盘,提高了系统的I/O性能。但面对随机、分散的写操作,单一的校验盘往往成为性能瓶颈。

RAID5

RAID5 与 RAID3的机制相似,但是数据校验的信息被均匀地分散到阵列的各个磁盘上,这样就不存在并发写操作时的校验盘性能瓶颈,如下图所示。阵列的磁盘上既有数据,也有数据校验信息,数据块和对应的校验信息会存储于不同的磁盘上,当一个数据盘损坏时,系统可以根据同一带区的其他数据块和对应的校验信息来重构损坏的数据。

RAID5可以理解为是RAIDO和RAID1的折中方案。RAID5可以为系统提供数据安全保障,但保障程度要比RAID1低,而磁盘空间利用率要比RAID1高。RAID5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID5 的磁盘空间利用率要比RAID1高,存储成本相对较低。
RAID5在数据盘损坏时的情况和RAID3相似,由于需要重构数据,性能会受到影响。
 

RAID6

RAID6提供两级冗余,即阵列中的两个驱动器失败时,阵列仍然能够继续工作。
一般而言,RAID6的实现代价最高,因为RAID6不仅要支持数据的恢复,还要支持校验的恢复,这使RAID6控制器比其他级别的RAID更复杂和更昂贵。
( 1 ) RAID6的校验数据
当对每个数据块执行写操作时,RAID6做两个独立的校验计算,因此,它能够支持两个磁盘的失败。为了实现这个思想,目前基本上有两个已经接受的方法:

●使用多种算法,如XOR何某种其他的函数。

●在不同的数据分条或者磁盘上,使用排列的数据。

(2)RAID6的一维冗余

RAID6的第一种方法是 用两种不同的方法计算校验数据。实现这个思想最容易的方法之一是用两个校验磁盘支持数据磁盘,第一个校验磁盘支持一种校验算法,而第二个磁盘支持另种校验算法,使用两种算法称为P+Q校验。一维冗余是指使用另一个校验磁盘,但所包含的分块数据是相同的。例如,P校验值可能由XOR函数产生,这样,Q校验函数需要是其他的某种操作,一个很有力的候选者是Reed Solomon误差修正编码的变体,这个误差修正编码一般用于磁盘和磁带驱动器。假如两个磁盘失败,那么,通过求解带有两个变量的方程,可以恢复两个磁盘上的数据,这是一个代数方法,可以由硬件辅助处理器加速求解。

RAID10

RAIDI0是RAID1和RAID0的结合,如下图所示。RAID10先做镜像然后做条带化,既提高了系统的读写性能,又提供了数据冗余保护,RAID10的磁盘空间利用率和RAID1是一样的, 为50%。 RAID10适用于既有大量的数据需要存储,又对数据安全性有严格要求的为领域,比如金融、证券等。

RAID01

 RAID01也是RAID0和RAID1的结合,但它是对条带化后的数据进行镜像。与RAID10不同,一个磁盘的丟失等同于整个镜像条带的丢失,所以一旦镜像盘失败,则存储系统成为一个RAID0系统(即只有条带化)。RAID01 的实际应用非常少。

JBOD

JBOD(Just Bundle Of Disks)译成中文可以是“简单磁盘捆绑”,通常又称Span。JBOD不是标准的RAID级别,它只是在近几年才被一一些厂家提出,并被广泛采用。

Span是在逻辑上把几个物理磁盘一一个接一 个串联到一 起,从而提供一个大的逻辑磁盘。Span. 上的数据简单地从第一一个 磁盘开始存储,当第一个磁盘的存储空间用完后,再依次从后面的磁盘开始存储数据。

Span存取性能完全等同于对单一磁盘的存取操作。Span 也不提供数据安全保障。它只是简单地提供一种利用磁盘空间的方法,Span的存储容量等于组成Span的所有磁盘的容量的总和。

 

二·不同RAID级别对比

表2.1.1对上述RAID级别的性能进行了一个系统的比较。 在各个RAID级别中,使用最广泛的是RAID0, RAID1, RAID10, RAID5。

级别RAID0RAID1RAID3RAID5RAID10RAID30RAID50
别称条带镜像专用校验条带分布校验条带镜像阵列跨越专用校验阵列跨越分布校验阵列跨越
容错性
全局热备不支持支持支持支持支持支持支持
所需磁盘数≥2≥2≥3≥3≥4≥6≥6
可用容量最大最小中等中等最小中等中等
减少的容量050%一个磁盘一个磁盘50%每个RAID3盘组减少一个磁盘每个RAID5盘组减少一个磁盘
读性能中等中等
随机写性能最快中等最慢中等最慢
连续写性能最快中等最慢中等最慢
冗余类型复制校验校验复制校验校验
典型应用无容错,快速读写需要容错的小文件,随机数据写入需要容错的大文件,连续数据传输需要容错的小文件,随机数据传输需要容错和提高速度的小文件,随机数据写入需要容错和提高速度的大文件,连续数据传输需要容错和提速的小文件,随机数据传输

RAID0,将数据分成条带顺序写入一组磁盘中。RAID0不提供冗余功能,但是它却提供了卓越的吞吐性能,因为读写数据是在一组磁盘中的每个磁盘上同时处理的,吞吐性能远远超过单个磁盘的读写。

RAID1,每次写操作都将分别写两份数据到数据盘和校验盘上,每对数据盘和校验盘称为镜像磁盘组。也可使用并发的方式来读数据,提高吞吐性能。如果镜像磁盘组中某个磁盘出错,则数据可以从另外块磁盘获得,而不会影响系统的性能,然后,使用一块备用磁盘将健康磁盘中的数据复制出来,然后这两块磁盘又组成新的镜像组。RAID10,即RAID1与RAID0的结合,既做镜像又做条带化,数据先镜像再做条带化。这样数据存储既保证了可靠性,又极大地提高了吞吐性能。
RAID01也是RAID0与RAID1的结合,但它是对条带化后的数据进行镜像。但与RAID10不同,一个磁盘的丢失等同于整个镜像条带的丢失,所以一旦镜像盘失败,则存储系统成为一个RAIDO系统(即只有条带化)。
RAID5是将数据校验循环分散到各个磁盘中,它像RAIDO一样将数据条带化分散写到一组磁盘中,但同时它生成校验数据做为冗余和容错使用、校验磁盘包含了所有条带的数据的校验信息。RAIDS将校验信息轮流地与人条带磁盘组的各个做盘中,即每个磁查上既有数据信息又同时有校验信息,RAI的性能科益F数据的条带化,但是某个磁盘的失败却将引起整个系趣族2的防数,比的要使用备用盛盘对失败磁盘的教据重建,恢复整个系统的健康。

一般根据安全性(数据冗余与容错)、性能(读写速度)和价格成本等因素来选择RAID级别。如果只考虑性能,不考虑安全性,就应该选择RAIDO。如果安全性和性能很重要,价格因素并不重要,就应该选择RAID1,磁盘多的情况下可选择RAID10。如果要权衡多种因素,应该选择RAID3或RAID5,磁盘多的情况下选择RAID30或RAID50。如图画出了选择RAID级别的决策树。

从一个普通应用来讲,要求存储系统具有良好的I/O性能的同时,也要求对数据安全做好保护工作,所以RAID10和RAID5应该成为我们重点关注的对象。下面从I/O性能、数据重构及对系统性能的影响、数据安全保护等方面,结合磁盘现状来分析两种技术的差异。
I/O性能:读操作上RAID10和RAID5是相当的,RAID5 在一些很小数据的写操作上(如比每个条带还小的小数据)需要两个读、两个写,还有两个XOR操作,对于单个用户的写操作,在新数据应用之前必须将旧数据从校验盘中移除,整个的执行过程是这样:读出旧数据,旧数据与新数据做XOR,并创建一个即时的值,读出旧数据的校验信息,将即时值与校验数据进行XOR,最后写下新的校验信息。为了减少对系统的影响,大多数的RAID5都读出并将整个条带(包括校验条带)写人缓存,执行两个XOR操作,然后发出并行写操作(通常对整个条带),即便进行了上述优化,系统仍然需要为这种写操作进行额外的读和XOR操作。小量写操作困难使得RAID5技术很少应用于密集写操作的场合,如回滚字段及重做日志。当然,也可以将存储系统的条带大小定义为经常读写动作的数据大小,使之匹配,但这样会限制系统的灵活性,也不适用于企业中其他的应用。对于RAID10,由于不存在数据校验,每次写操作只是单纯地执行写操作。应此在写性能上RAID10要好于RAID5。
数据重构:对于RAID10,当一块磁盘失效时,进行数据重构的操作只是复制一个新磁盘,如果假定磁盘的容量为250 GB,那么复制的数据量为250GB。对于RAIDS的存储阵列,则需要从每块磁盘中读取数据,经过重新计算得到-块硬盘的数据量,如果RAID5以4+1的方式组建,每块磁盘的谷量也为250GB,那么,需要在剩余的4个磁盘中读出总共1 000 GB的数据重来计算得出250 GB的数据。从这点来看,RAID5 在数据重构上的工作负何相花费的时间应该远大于RAID10,负荷变大将影响重构期间的性能,时间长意味再次出现数据损坏的可能性变大。
数据安全保护: RAID10系统在已有块磁盘失效的情况下, 只有该失效盘的对应镜像盘也失效,才会导致数据丢失。其他的磁盘失效不会出现数据丢失情况。RAID5 系统在已有一块磁盘失效的情况下,只要再出现任意的一块磁盘失效,都将导致数据丢失。从综合来看,RAID10和RAID5系统在出现-块磁盘失效后,进行数据重构时,RAID5 耗费的时间要比RAID10长,同时重构期间系统负荷上RAID5要比RAID10高,同时RAID5出现数据丢失的可能性要比RAID10高,因此,数据重构期间,RAID5系统的可靠性远比RAID10来得低。
空间利用率: RAID5在磁盘空间利用率上比RAID10高,RAID5的空间利用率是(N-1) IN (N为阵列的磁盘数目),而RAID10的磁盘空间利用率仅为50%。但是结合磁盘来考虑,今天的硬盘厂商所生产的ATA或SATA硬盘的质量已经可以承担企业级的应用,并且,容量的增加幅度相当大,目前已经可以实现单个磁盘400GB的存储容量。SCSI硬盘由于要求高转速而使用小直径盘片,容量的增加相对缓慢。ATA磁盘相对SCSI磁盘成本也要小很多。应此,在采用价格昂贵的FC或SCSI硬盘的存储系统中,对于预算有限同时数据安全性要求不高的场合可以采用RAID5方式来折中;其他应用中采用大容量的ATA或SATA硬盘结合RAID10,既降低了RAID10的为获得一定的存储空间必须采用双倍磁盘空间的拥有成本,又避免了RAID5相对于RAID10的各种缺点。在企业应用中,RAID10结 合SATA磁盘意味着一个更好的选择。
 


三.RAID的实现方式

RAID的实现可以有硬件和软件两种不同的方式:硬件方式就是通过RAID控制器实现;软件方式则是通过软件把服务器中的多个磁盘组合起来,实现条带化快速数据存储和安全冗余。

硬件RAID通常是利用服务器主板上所集成的RAID控制器,或者单独购买RAID控制卡,连接多个独立磁盘实现的。现在几乎所有的服务器主板都集成了RAID控制器,可以实现诸如RAID01之类的基本RAID模式。如果需要连接更多的磁盘,实现更高速的数据存储和冗余,则须另外配置RAID控制卡。总的来说,硬件RAID性能较好,应用也较广,特别适合于需要高速数据存储和安全冗余的环境,但价格较贵。

软件RAID是利用操作系统和第三方存储软件开发商的软件来实现RAID的。Windows及Linux都可实现软件RAID功能。无须另外购买RAID控制卡,也可在无RAID控制器的主板上实现。这种软件RAID的实现方式成本较低,但配置复杂,同时性能较低,仅适合小规模的数据存储网络使用。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间(Time)是物质的永恒运动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>