磁盘阵列RAID文档格式.docx
《磁盘阵列RAID文档格式.docx》由会员分享,可在线阅读,更多相关《磁盘阵列RAID文档格式.docx(10页珍藏版)》请在冰点文库上搜索。
但我们最为常用的是下面的几种RAID形式。
(1)RAID0
RAID0又称为Stripe(条带化)或Striping,它代表了所有RAID级别中最高的存储性能。
RAID0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。
这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
如图所示:
系统向三个磁盘组成的逻辑硬盘(RADI0磁盘组)发出的I/O数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。
我们从图中可以清楚的看到通过建立RAID0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。
从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了3倍。
但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。
RAID0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。
RAID0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。
对于个人用户,RAID0也是提高硬盘存储性能的绝佳选择。
(2)RAID1
RAID1又称为Mirror或Mirroring(镜像),它的宗旨是最大限度的保证用户数据的可用性和可修复性。
RAID1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。
当读取数据时,系统先从RAID0的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;
如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。
当然,我们应当及时地更换损坏的硬盘并利用备份数据重新建立Mirror,避免备份盘在发生损坏时,造成不可挽回的数据损失。
由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID1提供最高的数据安全保障。
同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而Mirror(镜像)的磁盘空间利用率低,存储成本高。
Mirror虽不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域.
(3)RAID0+1
正如其名字一样RAID0+1是RAID0和RAID1的组合形式,也称为RAID10。
以四个磁盘组成的RAID0+1为例,其数据存储方式如图所示:
RAID0+1是存储性能和数据安全兼顾的方案。
它在提供与RAID1一样的数据安全保障的同时,也提供了与RAID0近似的存储性能。
由于RAID0+1也通过数据的100%备份功能提供数据安全保障,因此RAID0+1的磁盘空间利用率与RAID1相同,存储成本高。
RAID0+1的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。
(4)RAID3
RAID3是把数据分成多个“块”,按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据是校验容错信息,当这N+1个硬盘中的其中一个硬盘出现故障时,从其它N个硬盘中的数据也可以恢复原始数据,这样,仅使用这N个硬盘也可以带伤继续工作(如采集和回放素材),当更换一个新硬盘后,系统可以重新恢复完整的校验容错信息。
由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用RAID3,安全性是可以得到保障的。
与RAID0相比,RAID3在读写速度方面相对较慢。
使用的容错算法和分块大小决定RAID使用的应用场合,在通常情况下,RAID3比较适合大文件类型且安全性要求较高的应用,如视频编辑、硬盘播出机、大型数据库等.
(5)RAID5
RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。
以四个硬盘组成的RAID5为例,其数据存储方式如图4所示:
图中,P0为D0,D1和D2的奇偶校验信息,其它以此类推。
由图中可以看出,RAID5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID5可以理解为是RAID0和RAID1的折衷方案。
RAID5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。
RAID5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。
同时由于多个数据对应一个奇偶校验信息,RAID5的磁盘空间利用率要比RAID1高,存储成本相对较低。
RAID级别的选择有三个主要因素:
可用性(数据冗余)、性能和成本。
如果不要求可用性,选择RAID0以获得最佳性能。
如果可用性和性能是重要的而成本不是一个主要因素,则根据硬盘数量选择RAID1。
如果可用性、成本和性能都同样重要,则根据一般的数据传输和硬盘的数量选择RAID3、RAID5。
RAID6技术简介
在经过多年的沉寂之后,RAID6技术随着大容量ATA硬盘的广泛采用又重新引起了业界的重视。
相对于RAID5来说,用户对RAID6的了解比较少,根据HDS的技术白皮书《采用RAID-6技术,增强数据保护》改编成此文与大家共享。
为了较为完整地说明问题,编者保留了一些与具体产品配置相关的内容。
RAID5是在存储系统中广泛采用的数据保护技术。
该技术是通过把应用数据分成数段,连同这些数据段的校验信息写入一组磁盘来实现的。
如果其中有个磁盘出现了故障,就会利用其余的磁盘中的数据和检验信息把故障盘中的数据恢复到热备盘中以保证数据不会丢失。
这样RAID5就存在一种风险,如果在数据重建的过程中,RAID组中的第二块硬盘出现故障,就会出现数据丢失。
以前,两块盘同时坏的情况是小概率事件,几乎不可能发生。
但是近来随着光纤(FC)盘和SATA盘的容量和密度不断增加,使得RAID5的重建时间也不断增加。
这样两块盘同时坏的概率也增加了,在企业级存储上,这种风险必须得到重视。
为了应对这种情况,存储厂商的RAID6技术就是可以保证两块盘同时出故障而不会丢失数据的新技术。
日立数据系统(HDS)公司的TagmaStore全线存储系统除了支持RAID5,RAID1技术以外还可以支持RAID6保护技术,提供给用户多种保护方式的选择。
RAID6技术背景和简介
RAID技术是为了防止存储系统因为磁盘故障而丢失数据而研发出来的。
该技术把数据和校验信息分布到一组盘中(RAID组),当有盘坏的时候,丢失的那部分数据可以通过其他盘上的数据和校验信息计算恢复。
这样就增强了存储系统的可靠性。
HDS公司的TagmaStore全线存储系统可以支持RAID0,RAID1,RAID5和RAID6技术,所以HDS的存储系统不但可以提供更好的可靠性,而且也可以比以往的存储系统有更出色的性能。
HDS的高端存储系统一般以4个磁盘为一个组,称为ArrayGroup,而一个RAID组则包含一个或者多个ArrayGroup。
例如:
RAID1(镜像)可以是2D+2P或者4D+4P的配置,也就是说2块数据盘,2块镜像盘,或者4块数据盘和4块镜像盘的配置。
RAID5(带校验的条带化)可以是3D+1P的配置,其中3块数据盘,1块检验盘,或者是7D+1P的配置,其中7块数据盘,1块检验盘的配置。
实际上,RAID5的数据和校验都是条带化后分散在RAID组中的各个磁盘中的。
RAID-1提供了最高的可靠性,一块盘上的数据都镜像到RAID组中的另外一块磁盘上。
但是这种方式对磁盘的利用率不高,只有一半的磁盘空间能够存放数据,存放同样的数据要多买一倍的磁盘。
RAID5改善了利用率的问题,但是因为要计算校验信息而使得写性能有所下降。
HDSTagmaStore系列存储中的模块化产品也能支持RAID0技术(没有校验的条带化),RAID0技术有很好的性能表现,但是RAID0没有冗余保护功能,RAID组中任何一块磁盘的损坏都会造成数据的丢失。
因此HDS只在中端模块化阵列的光纤盘上支持RAID0技术,在SATA盘上不支持RAID0,同时HDS建议用户不要在关键数据上采用RAID0技术。
当采用RAID1或者RAID5技术的时候,如果其中有个磁盘出现了故障,就会利用RAID组中其余的磁盘中的数据和检验信息把故障盘中的数据恢复到热备盘中以保证数据不会丢失。
工程师用新盘替换坏掉的磁盘,这时候存储系统会把热备盘中的数据拷贝回新换上的盘中(HDS的WMS/AMS中端模块化存储可以支持不回拷)。
当回拷完成后,系统又回到了正常工作状态,可以再次抵御磁盘故障。
如今磁盘的容量和密度一再变大,出现了300GB的光纤盘和500GB的SATA盘,每个盘中存放的数据比以往大了很多,磁盘故障影响的数据量也跟着增加。
这样从磁盘故障,到磁盘系统恢复正常状态的时间也会比以往长很多,这个过程中同一个RAID组里面第二块磁盘出现故障而导致数据丢失的可能性也变大。
为了防止两块磁盘故障而引起的数据丢失,HDSTagmaStore存储系统现在支持RAID6(6D+2P)。
和RAID5相似的是,RAID6采用了校验数据,和RAID5不同的是RAID6有两份检验数据,可以保证同一RAID组中两块磁盘同时故障而不丢失数据。
RAID6(6D+2P)原理
和RAID5相似,RAID6(6D+2P)根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上。
在图1中,D0,D1,D2,D3,D4和D5是条带化的数据,P代表校验数据,Q是第二份校验数据。
图1:
RAID6(6D+2P)根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上
RAID6校验数据生成公式(P和Q):
P的生成用了异或
P=D0XORD1XORD2XORD3XORD4XORD5
Q的生成用了系数和异或
Q=A0*D0XORA0*D1XORA0*D2XORA0*D3XORA0*D4XORA0*D5
D0~D5:
条带化数据
A0~A5:
系数
XOR:
异或
*:
乘
在RAID6中,当有1块磁盘出故障的时候,利用公式1恢复数据,这个过程是和RAID5一样的。
而当有2块磁盘同时出故障的时候,就需要同时用公式1和公式2来恢复数据了。
在图1中,各系数A0~A5是线性无关的系数,在D0,D1,D2,D3,D4,D5,P,Q中有两个未知数的情况下,也可以联列求解两个方程得出两个未知数的值。
这样在一个RAID组中有两块磁盘同时坏的情况下,也可以恢复数据。
上面描述的是校验数据生成的算法。
其实RAID6的核心就是有两份检验数据,以保证两块磁盘同时出故障的时候,也能保障数据的安全。
数据分布
如图2所示,通过条带化,把应用数据和校验数据打散到一个RAID组的8个磁盘中,可以充分保证读写性能和数据的安全性。
图2:
RAID6的数据分布
RAID6可以保证同一个RAID组中两块磁盘故障的情况下的数据安全。
RAID6的数据恢复
从1块磁盘故障中恢复数据
当有1块磁盘出故障的时候,利用公式1恢复数据,这个过程不需要Q这部分校验数据,如图3所示,这个过程是和RAID5一样的。
图3:
在RAID6(6D+2P)中恢复D3数据,展示了存放D3数据的盘出现故障的恢复过程
公式:
D3=D0XORD1XORD2XORPXORD4XORD5
从2块磁盘故障中恢复数据
当同时有2块磁盘故障的时候,需要同时用到公式1和公式2来恢复数据,如图4所示。
图4:
在RAID6(6D+2P)中恢复D3和D4数据,展示了存放D3和D4数据的盘出现故障的恢复过程
公式1和公式2:
D3和D4由解以上两个联立的方程得出结果
各种RAID类型之间的比较
空间的利用率
表1表明了在RAID1、RAID5和RAID6下有多少磁盘空间是可以给用户数据使用的。
表1:
不同RAID类型的磁盘利用率比较
性能之间的比较
表2表明了在足够磁盘数据的情况下各种RAID类型的性能比较,RAID1(2D+2D)作为基准(100%)。
表2:
不同RAID类型的性能比较
比较RAID5(7D+1D)和RAID6(6D+2D)随机写
如表2中所示,RAID6在增加了可靠性的同时,牺牲了部分随机写性能。
在随机写操作中,在同样多的磁盘的RAID组中,RAID6所花费的时间是RAID5的的1.5倍。
每次RAID5(7D+1D)进行一次随机写操作,实际上产生了4个I/O:
读老的应用数据,读老的校验数据,写新的应用数据和写新的校验数据(P)。
而RAID6做同样一个随机写操作,实际上需要6个I/O,读老的用户数据,读老的校验数据P,读老的校验数据Q,写新的用户数据,写新的校验数据P,写新的校验数据Q。
这样就造成了RAID5(7D+1D)和RAID6(6D+2D)随机写的33%性能差异。
RAID选择中的注意事项
在选择采用何种RAID类型的时候,必须注意以下事项:
用户数据需要多少空间
校验带来的磁盘空间损失
应用的性能要求
在磁盘故障时,磁盘的重建时间
随着用户数据的不断增长,用户采用大容量磁盘的可能性也与日俱增,但是在使用大容量硬盘的时候,必须要考虑过长的重建时间而引起的数据丢失风险。
在某些情况下,数据重建会非常困难或者对系统性能的冲击会很大,如:
大交易量,大量写操作的数据库应用,建议采用RAID6技术,这样可以给用户数据带来更好的保护。
总结
RAID5技术是很多存储系统数据保护的基础。
但是采用RAID5技术需要承担在第一块故障盘重建的过程中,第二块磁盘发生故障而导致数据丢失的风险。
而RAID6技术的推出使得数据可以在两块磁盘同时故障的情况下也不会丢失。