一种由阵列磁盘进行数据校验的RAID5校验方法技术

技术编号:35347739 阅读:25 留言:0更新日期:2022-10-26 12:13
本发明专利技术公开了一种由阵列磁盘进行数据校验的RAID5校验方法,该方法包括带异或计算硬件模块以及支持XDWRITE、XDREAD和XPWRITE命令的固态硬盘组成阵列,其中,XDWRITE命令为将用户数据写入数据盘并触发新写入的数据与旧数据的异或操作,异或结果存在数据盘内的buffer中;XDREAD命令为将数据盘buffer内的校验数据读出;XPWRITE命令为将读出的校验数据写入阵列中的校验盘并触发新写入的校验数据与旧的校验数据的异或操作,最后将异或操作计算出的数据写入存储介质,XPWRITE命令用于阵列中校验盘的写校验数据,而XDWRITE命令用于数据盘的写用户数据。本发明专利技术减少RAID5在写数据过程中读写成员磁盘的次数并将校验数据的计算下放到成员磁盘中从而提高RAID5的写性能。放到成员磁盘中从而提高RAID5的写性能。放到成员磁盘中从而提高RAID5的写性能。

【技术实现步骤摘要】
一种由阵列磁盘进行数据校验的RAID5校验方法


[0001]本专利技术属于计算机数据处理
,涉及一种由阵列磁盘进行数据校验的RAID5校验方法。

技术介绍

[0002]RAID(独立磁盘冗余阵列)技术是目前为止大规模存储比较普遍的技术,该技术将大量独立的磁盘通过不同的组织方式组合形成一个存储阵列,不仅存储容量可以根据需求拓展,读写性能以及数据安全性较单盘也有很大的提高。
[0003]根据不同的读写策略和数据冗余策略,常见的RAID分类有RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6等,综合成本、性能、数据安全性等相关因素,RAID5有着广泛的应用。
[0004]参见图1为RAID5的数据分布示意图,D0、D1、D2、D3为组成RAID5的四块成员磁盘,颜色相同的区域组成阵列的基本读写单元——条带,如图一中的A1、A2、A3、P就是一个完成的条带,而在每块磁盘中组成条带的单元如A1则称为条带单元。其中A1、A2、A3为条带中的数据单元,P为校验单元,它的值由条带中的数据单元异或得到,即由于每次写操作校验数据都需要更新,并且完成一次写操作需要对所有成员盘进行多次读写,这成为了RAID5写性能相对较低的原因之一。
[0005]RAID5的写操作根据负载大小一般分为三种情况:满条带写(full

stripe write)、读

修改

写(read

modify

write)、读

重构

写(read

construct

write)。
[0006]所谓满条带写即写入磁盘阵列的数据量正好等于条带大小,如此一来便不需要额外的读旧数据的操作就能计算出校验数据。若以四块磁盘组成的RAID5为例,完成一次满条带写只需发送四次写IO并计算一次校验数据,现有技术中满条带写逻辑示意图参见图2。
[0007]实际上,阵列控制器是多通道并行通信,写阵列所花的时间取决于最慢的那条数据通道。假设异或计算的时间为t
XOR
、单盘写命令完成所需时间为t
write
,写入阵列的数据大小为3*A1,则由图2可计算得到满条带写的时间t
full_w
=t
XOR
+t
write
。总I/O数n=4,则该次写阵列操作的写速率
[0008]读

修改

写与读

重构

写的最大区别在于所要读取的盘不同,参见图3为现有技术中读

修改

写的示意图。
[0009]假设A1

是大小为一个条带单元的要写入磁盘D0的新数据,A1、A2、A3、P为条带中的旧数据,则需要先将D0中的旧数据A1、D3中的旧校验数据P读出再与要写入的新数据A1

进行异或,即最后再将P

写入磁盘D3。则整个写过程所需时间为写入磁盘D3。则整个写过程所需时间为写速率若写数据大小持续增大但小于满条带大
小,由于阵列中各盘可以并行读写,因此写数据时间的增加主要体现在校验时间的增加,但总体上写速率会持续增加,当写入数据大小达到满条带时写速率达到最大。
[0010]参见图4为现有技术中读

重构

写的示意图,其中A1

为将要写入的大小为一个条带单元的新数据,根据读

重构

写的逻辑,需要将磁盘D1、D2中的旧数据读出再和要写入D0的新数据进行异或得到新的校验数据,即整个写过程所需时间为为写过程时间内数据大小为A1

,则写速率
[0011]同样的,写数据大小持续增大但小于满条带大小时,写数据所需时间的增加主要体现在校验时间的增加,当写入数据大小达到满条带时写速率达到最大。
[0012]除满条带写以外,rcw和rmw两种写入方式均因校验而需要额外的读操作且频繁读写校验磁盘,而在写操作中rcw和rmw占绝大多数,因此,RAID5虽然在数据安全性上有所提高,但也相对降低了阵列的写性能。

技术实现思路

[0013]为解决上述问题,本专利技术的一种实现RAID5数据校验的新型校验方法,配合Linux系统的软RAID模块和支持XDWRITE、XDREAD、XPWRITE命令以及拥有异或计算硬件模块的SSD,减少RAID5在写数据过程中读写成员磁盘的次数并将校验数据的计算下放到成员磁盘中从而提高RAID5的写性能。技术方案包括带异或计算硬件模块以及支持XDWRITE、XDREAD和XPWRITE命令的固态硬盘组成阵列,其中,
[0014]XDWRITE命令为将用户数据写入数据盘并触发新写入的数据与旧数据的异或操作,异或结果存在数据盘内的buffer中;
[0015]XDREAD命令为将数据盘buffer内的校验数据读出;
[0016]XPWRITE命令为将读出的校验数据写入阵列中的校验盘并触发新写入的校验数据与旧的校验数据的异或操作,最后将异或操作计算出的数据写入存储介质,XPWRITE命令用于阵列中校验盘的写校验数据,而XDWRITE命令用于数据盘的写用户数据。
[0017]基于上述目的,本专利技术还提供了一种单条带单元RAID5写过程的数据校验方法,采用上述方法,对于只有一个条带单元大小的数据,
[0018]首先用XDWRITE命令将数据写入数据盘中的条带单元;
[0019]再用XDREAD命令将数据盘中的校验数据读出到host进行缓存;
[0020]最后将校验数据用XPWRITE命令写入校验盘;
[0021]整个写数据过程所需时长为t
w
=t
XDWRITE
+t
XDREAD
+t
XPWRITE
,t
XDWRITE
、t
XDREAD
、t
XPWRITE
分别为XDWRITE命令、XDREAD命令和XPWRITE命令完成所需时长,其中,命令XDWRITE命令和XPWRITE命令完成时间包含数据在数据盘内的校验时间。
[0022]基于上述目的,本专利技术还提供了一种多条带单元RAID5写过程的数据校验方法,采用上述方法,对于大于一个条带单元大小的数据,
[0023]首先用XDWRITE命令将数据写入各数据盘中的条带单元;
[0024]再用XDREAD命令将各数据盘中的校验信息读出到host中进行异或;
[0025]最后将异或的结果用XPWRITE命令写入校验盘;
[0026]整个写数据过程所需时长为t
w
=t
XDWRITE
+本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种由阵列磁盘进行数据校验的RAID5校验方法,其特征在于,包括带异或计算硬件模块以及支持XDWRITE、XDREAD和XPWRITE命令的固态硬盘组成阵列,其中,XDWRITE命令为将用户数据写入数据盘并触发新写入的数据与旧数据的异或操作,异或结果存在数据盘内的buffer中;XDREAD命令为将数据盘buffer内的校验数据读出;XPWRITE命令为将读出的校验数据写入阵列中的校验盘并触发新写入的校验数据与旧的校验数据的异或操作,最后将异或操作计算出的数据写入存储介质,XPWRITE命令用于阵列中校验盘的写校验数据,而XDWRITE命令用于数据盘的写用户数据。2.一种单条带单元RAID5写过程的数据校验方法,其特征在于,采用权利要求1所述的方法,对于只有一个条带单元大小的数据,首先用XDWRITE命令将数据写入数据盘中的条带单元;再用XDREAD命令将数据盘中的校验数据读出到host进行缓存;最后将校验数据用XPWRITE命令写入校验盘;整个写数据过程所需时长为t
w
=t
XDWRITE
+t
XDREAD
+t
XPWRITE
,t
XD...

【专利技术属性】
技术研发人员:樊凌雁刘宇翔
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1