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

文档序号:31949071发布日期:2022-10-26 06:42阅读:477来源:国知局
一种由阵列磁盘进行数据校验的RAID5校验方法
一种由阵列磁盘进行数据校验的raid5校验方法
技术领域
1.本发明属于计算机数据处理技术领域,涉及一种由阵列磁盘进行数据校验的raid5校验方法。


背景技术:

2.raid(独立磁盘冗余阵列)技术是目前为止大规模存储比较普遍的技术,该技术将大量独立的磁盘通过不同的组织方式组合形成一个存储阵列,不仅存储容量可以根据需求拓展,读写性能以及数据安全性较单盘也有很大的提高。
3.根据不同的读写策略和数据冗余策略,常见的raid分类有raid0、raid1、raid2、raid3、raid4、raid5、raid6等,综合成本、性能、数据安全性等相关因素,raid5有着广泛的应用。
4.参见图1为raid5的数据分布示意图,d0、d1、d2、d3为组成raid5的四块成员磁盘,颜色相同的区域组成阵列的基本读写单元——条带,如图一中的a1、a2、a3、p就是一个完成的条带,而在每块磁盘中组成条带的单元如a1则称为条带单元。其中a1、a2、a3为条带中的数据单元,p为校验单元,它的值由条带中的数据单元异或得到,即由于每次写操作校验数据都需要更新,并且完成一次写操作需要对所有成员盘进行多次读写,这成为了raid5写性能相对较低的原因之一。
5.raid5的写操作根据负载大小一般分为三种情况:满条带写(full-stripe write)、读-修改-写(read-modify-write)、读-重构-写(read-construct-write)。
6.所谓满条带写即写入磁盘阵列的数据量正好等于条带大小,如此一来便不需要额外的读旧数据的操作就能计算出校验数据。若以四块磁盘组成的raid5为例,完成一次满条带写只需发送四次写io并计算一次校验数据,现有技术中满条带写逻辑示意图参见图2。
7.实际上,阵列控制器是多通道并行通信,写阵列所花的时间取决于最慢的那条数据通道。假设异或计算的时间为t
xor
、单盘写命令完成所需时间为t
write
,写入阵列的数据大小为3*a1,则由图2可计算得到满条带写的时间t
full_w
=t
xor
+t
write
。总i/o数n=4,则该次写阵列操作的写速率
8.读-修改-写与读-重构-写的最大区别在于所要读取的盘不同,参见图3为现有技术中读-修改-写的示意图。
9.假设a1’是大小为一个条带单元的要写入磁盘d0的新数据,a1、a2、a3、p为条带中的旧数据,则需要先将d0中的旧数据a1、d3中的旧校验数据p读出再与要写入的新数据a1’进行异或,即最后再将p’写入磁盘d3。则整个写过程所需时间为写入磁盘d3。则整个写过程所需时间为写速率若写数据大小持续增大但小于满条带大
小,由于阵列中各盘可以并行读写,因此写数据时间的增加主要体现在校验时间的增加,但总体上写速率会持续增加,当写入数据大小达到满条带时写速率达到最大。
10.参见图4为现有技术中读-重构-写的示意图,其中a1’为将要写入的大小为一个条带单元的新数据,根据读-重构-写的逻辑,需要将磁盘d1、d2中的旧数据读出再和要写入d0的新数据进行异或得到新的校验数据,即整个写过程所需时间为为写过程时间内数据大小为a1’,则写速率
11.同样的,写数据大小持续增大但小于满条带大小时,写数据所需时间的增加主要体现在校验时间的增加,当写入数据大小达到满条带时写速率达到最大。
12.除满条带写以外,rcw和rmw两种写入方式均因校验而需要额外的读操作且频繁读写校验磁盘,而在写操作中rcw和rmw占绝大多数,因此,raid5虽然在数据安全性上有所提高,但也相对降低了阵列的写性能。


技术实现要素:

13.为解决上述问题,本发明的一种实现raid5数据校验的新型校验方法,配合linux系统的软raid模块和支持xdwrite、xdread、xpwrite命令以及拥有异或计算硬件模块的ssd,减少raid5在写数据过程中读写成员磁盘的次数并将校验数据的计算下放到成员磁盘中从而提高raid5的写性能。技术方案包括带异或计算硬件模块以及支持xdwrite、xdread和xpwrite命令的固态硬盘组成阵列,其中,
14.xdwrite命令为将用户数据写入数据盘并触发新写入的数据与旧数据的异或操作,异或结果存在数据盘内的buffer中;
15.xdread命令为将数据盘buffer内的校验数据读出;
16.xpwrite命令为将读出的校验数据写入阵列中的校验盘并触发新写入的校验数据与旧的校验数据的异或操作,最后将异或操作计算出的数据写入存储介质,xpwrite命令用于阵列中校验盘的写校验数据,而xdwrite命令用于数据盘的写用户数据。
17.基于上述目的,本发明还提供了一种单条带单元raid5写过程的数据校验方法,采用上述方法,对于只有一个条带单元大小的数据,
18.首先用xdwrite命令将数据写入数据盘中的条带单元;
19.再用xdread命令将数据盘中的校验数据读出到host进行缓存;
20.最后将校验数据用xpwrite命令写入校验盘;
21.整个写数据过程所需时长为tw=t
xdwrite
+t
xdread
+t
xpwrite
,t
xdwrite
、t
xdread
、t
xpwrite
分别为xdwrite命令、xdread命令和xpwrite命令完成所需时长,其中,命令xdwrite命令和xpwrite命令完成时间包含数据在数据盘内的校验时间。
22.基于上述目的,本发明还提供了一种多条带单元raid5写过程的数据校验方法,采用上述方法,对于大于一个条带单元大小的数据,
23.首先用xdwrite命令将数据写入各数据盘中的条带单元;
24.再用xdread命令将各数据盘中的校验信息读出到host中进行异或;
25.最后将异或的结果用xpwrite命令写入校验盘;
26.整个写数据过程所需时长为tw=t
xdwrite
+t
xdread
+t
xor
+t
xpwrite
,t
xdwrite
、t
xdread
、t
xor
、t
xpwrite
分别为xdwrite命令、xdread命令、进行异或和xpwrite命令完成所需时长。
27.本发明有益效果至少包括:配合linux系统的软raid模块和支持xdwrite、xdread、xpwrite命令以及拥有异或计算硬件模块的ssd,减少raid5在写数据过程中读写成员磁盘的次数并将校验数据的计算下放到成员磁盘中从而提高raid5的写性能。
附图说明
28.图1为现有技术的raid5数据分布示意图;
29.图2为现有技术的raid5满条带写逻辑示意图;
30.图3为现有技术的rmw写流程示意图;
31.图4为现有技术的rcw写流程示意图;
32.图5为本发明由阵列磁盘进行数据校验的raid5校验方法的xdwrite命令的示意图;
33.图6为本发明由阵列磁盘进行数据校验的raid5校验方法的xdread命令的示意图;
34.图7为本发明由阵列磁盘进行数据校验的raid5校验方法的xpwrite命令的示意图;
35.图8为本发明的单条带raid5写过程的数据校验方法的示意图;
36.图9为本发明的多条带raid5写过程的数据校验方法的示意图。
具体实施方式
37.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
38.相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
39.参见图5-7,为本发明实施例的本发明的技术方案为由阵列磁盘进行数据校验的raid5校验方法的xdwrite、xdread和xpwrite命令的示意图,该方法包括带异或计算硬件模块以及支持xdwrite、xdread和xpwrite命令的固态硬盘组成阵列,其中,
40.参见图5,xdwrite命令为将用户数据写入数据盘并触发新写入的数据与旧数据的异或操作,异或结果存在数据盘内的buffer中;
41.参见图6,xdread命令为将数据盘buffer内的校验数据读出;
42.参见图7,xpwrite命令为将读出的校验数据写入阵列中的校验盘并触发新写入的校验数据与旧的校验数据的异或操作,最后将异或操作计算出的数据写入存储介质,该命令功能与xdwrite类似,但xpwrite命令用于阵列中校验盘的写校验数据,而xdwrite命令用于数据盘的写用户数据。
43.参见图8,本发明还提供了一种单条带单元raid5写过程的数据校验方法,采用上
述方法,对于只有一个条带单元大小的数据,
44.首先用xdwrite命令将数据写入数据盘中的条带单元;
45.再用xdread命令将数据盘中的校验数据读出到host进行缓存;
46.最后将校验数据用xpwrite命令写入校验盘;
47.整个写数据过程所需时长为tw=t
xdwrite
+t
xdread
+t
xpwrite
,t
xdwrite
、t
xdread
、t
xpwrite
分别为xdwrite命令、xdread命令和xpwrite命令完成所需时长,其中,命令xdwrite命令和xpwrite命令完成时间包含数据在数据盘内的校验时间。
48.从图8中可以看出,优化后的写数据过程只产生了三个io,不需要再从校验盘中将旧的校验数据读出,且不需要在host中对数据进行异或校验,只需要对d0中的校验数据进行缓存以便写入校验盘。整个写数据过程所需时间为tw=t
xdwrite
+t
xdread
+t
xpwrite
,实际上命令xdwrite、xpwrite完成时间包含数据在盘内的校验时间,但由于是硬件进行数据校验因此校验所花时间要比软件短,而xdread命令是从buffer中将数据读出其完成时间比read命令要短。对比rmw写过程和rcw写过程,优化后的写数据时间得到相应缩短,小写性能得以提升。
49.参见图9,本发明还提供了一种多条带单元raid5写过程的数据校验方法,采用上述方法,对于大于一个条带单元大小的数据,
50.首先用xdwrite命令将数据写入数据盘中的条带单元;
51.再用xdread命令将各数据盘中的校验信息读出到host中进行异或;
52.最后将异或的结果用xpwrite命令写入校验盘;
53.整个写数据过程所需时长为tw=t
xdwrite
+t
xdread
+t
xor
+t
xpwrite
,t
xdwrite
、t
xdread
、t
xor
、t
xpwrite
分别为xdwrite命令、xdread命令、进行异或和xpwrite命令完成所需时长。
54.与rmw写过程时间相比,同样因为校验时间的缩短从而有有且因此当写入数据增大时,写入数据耗时仍小于传统rmw写过程方式。
55.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1