当前位置: 首页 > 专利查询>长江大学专利>正文

一种基于纠删码的随机写方法及系统技术方案

技术编号:16546612 阅读:35 留言:0更新日期:2017-11-11 11:32
本发明专利技术公开了一种基于纠删码的随机写方法及系统,首先生成随机写文件并唯一标示随机写文件,设置随机写文件的文件数据安全级别;输入随机写文件中随机写数据,根据纠删码和文件数据安全级别将输入的随机写数据条带化,计算随机写数据大小、随机写偏移;获取本次随机写所跨越的条带列表;计算各条带的需要更新的数据存储单元的范围,更新范围内的各数据存储单元;异步重新计算并写入随机写文件更新的所有条带的校验数据。有益效果:在对条带的数据存储单元进行数据写入时,只需要更新部分数据存储单元,不需要将整个条带的数据读取出来进行更新,减少了计算负担;通过异步重新计算校验数据解决了随机写放大问题。

A random write method and system based on erasure codes

The invention discloses a method and a system for correcting random write delete code based on the first generation of random write files and only labeled random write files, file data security level settings random write files; random input write data random write files, according to the erasure code and file data security level data striping input the random write, write data, calculation of random size random write offset; get the random write across the strip list; computing needs of each band data storage unit updates the scope, update the data storage unit within the scope of the re calculated and written; asynchronous random write file update all strip check data. The beneficial effect: to write data in the data storage unit on the strip, only need to update the data storage unit, does not require the band data read out for updates, reduces the computational burden; through asynchronous re calculation of calibration data to solve the problem on random write.

【技术实现步骤摘要】
一种基于纠删码的随机写方法及系统
本专利技术涉及数据存储
,尤其是涉及一种基于纠删码的随机写方法及系统。
技术介绍
在常规的云存储项目中,用户数据往往只保存一个副本,若发生机器故障,很容易造成用户数据的丢失,而目前网络raid可以做到在节约用户成本的基础上,对用户的数据进行跨节点保护,目前常见的网络raid的实现方式主要是基于纠删码技术(erasurecode技术,简称EC)。而EC技术主要是将用户的数据进行条带化,之后为该条带计算相应的校验数据,若此时需要更新已经写入的条带数据时,需要将整个条带的数据读取出来,在重新计算校验数据,这对后端存储的网络压力会造成巨大影响。如用户数据对应的安全级别为4+2,若用户需要更新条带中的一个字节的数据,后端存储需要读取6MB的数据,然后找出本次需要更新数据的位置,并进行更新,之后重新计算条带的校验数据,并将这6MB的数据写入存储设备中,此过程将用户的写数据放大了6291456倍。正是由于该原因,很多厂家提供出去的网络raid接口根本不支持随机写,那么基于EC,如何实现随机写,成为了一个难题。
技术实现思路
本专利技术的目的在于克服上述技术不足,提出一种基于纠删码的随机写方法及系统,解决现有技术中的上述技术问题。为达到上述技术目的,本专利技术的技术方案提供一种基于纠删码的随机写方法,包括:S1、生成随机写文件并唯一标示随机写文件,设置随机写文件的文件数据安全级别;S2、输入随机写文件中的部分随机写数据,根据纠删码和文件数据安全级别将输入的随机写数据条带化,条带由数据存储单元组成,计算随机写数据大小、随机写偏移;S3、根据随机写数据大小、随机写偏移获取本次随机写所跨越的条带列表;S4、计算本次随机写所跨越的条带列表中各条带的需要更新的数据存储单元的范围,更新范围内的各数据存储单元,将更新的数据存储单元的数据进行分布式云存储并将存储的位置更新到数据库;S5、用户再次输入随机写文件中的部分随机写数据,则重复执行步骤S2-S4,直到随机写文件的所有随机写数据输入完毕;S6、随机写文件的所有随机写数据输入完毕后,异步重新计算并写入随机写文件更新的所有条带的校验数据。本专利技术还提供一种基于纠删码的随机写系统,包括:随机写文件设置模块:生成随机写文件并唯一标示随机写文件,设置随机写文件的文件数据安全级别;随机写数据输入模块:输入随机写文件中的部分随机写数据,根据纠删码和文件数据安全级别将输入的随机写数据条带化,条带由数据存储单元组成,计算随机写数据大小、随机写偏移;条带列表获取模块:根据随机写数据大小、随机写偏移获取本次随机写所跨越的条带列表;数据存储单元写入模块:计算本次随机写所跨越的条带列表中各条带的需要更新的数据存储单元的范围,更新范围内的各数据存储单元,将更新的数据存储单元的数据进行分布式云存储并将存储的位置更新到数据库;循环模块:用户再次输入随机写文件中的部分随机写数据,则重复执行随机写数据输入模块、条带列表获取模块、数据存储单元写入模块的操作,直到随机写文件的所有随机写数据输入完毕;校验数据重新计算模块:随机写文件的所有随机写数据输入完毕后,异步重新计算并写入随机写文件更新的所有条带的校验数据。与现有技术相比,本专利技术的有益效果包括:基于纠删码进行随机写操作,在对条带的数据存储单元进行数据写入时,只需要更新部分数据存储单元,不需要将整个条带的数据读取出来进行更新,减少了计算负担,提高了计算效率;同时,通过异步重新计算校验数据解决了随机写放大问题。附图说明图1是本专利技术提供的一种基于纠删码的随机写方法流程图;图2是本专利技术提供的一种基于纠删码的随机写系统结构框图。附图中:1、基于纠删码的随机写系统,11、随机写文件设置模块,12、随机写数据输入模块,13、条带列表获取模块,14、数据存储单元写入模块,15、循环模块,16、校验数据重新计算模块。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术的实施例中,基于纠删码技术建立条带(Stripe)和条带管理者(StripeManager),条带管理者负责管理用户数据对应的条带,并将计算任务、编码任务下发给编码器;建立编码器(Encoder),负责执行编码任务或计算任务;建立数据存储服务(StoragerService),负责将接收到的数据进行分布式云存储;条带(Stripe)由数据存储单元(UNIT)组成,一个UNIT默认为大小为32KB。本专利技术的实施例中,提供一种基于纠删码的随机写方法,包括:S1、客户端向Encoder请求随机写操作,生成随机写文件并唯一标示随机写文件,设置随机写文件的文件数据安全级别,唯一标示随机写文件后,生成随机写文件的唯一标示信息;唯一标示随机写文件的方法可以为:利用文件名或文件key值或文件唯一hash值标示随机写文件,以便于随机写文件的查找和使用,对应的,标示随机写文件后生成随机写文件的唯一标示信息为:文件名信息或文件key值信息或文件唯一hash值信息。S2、Encoder将随机写文件的唯一标示信息、文件数据安全级别等参数发送至StripeManager;S3、StripeManager将随机写文件的唯一标示信息、文件数据安全级别等参数存储到数据库中,并返回Encoder成功;S4、Encoder返回客户端随机写打开成功;S5、用户在客户端输入随机写文件中的部分随机写数据,计算随机写数据大小、随机写偏移,并将随机写数据、随机写数据大小、随机写偏移发送给Encoder;S6、Encoder根据随机写数据大小、随机写偏移向StripeManager获取本次随机写所跨越的条带列表;S7、Encoder根据StripeManager返回的条带列表,判断StripeManager是否返回了本次需要更新所跨越的所有条带,若只返回部分,则由Encoder将条带信息补全;S8、Encoder计算本次随机写所跨越的条带列表中各条带的需要更新的数据存储单元(unit)的范围,用S5中用户输入的随机写数据更新范围内的各数据存储单元(unit),将更新的数据存储单元(unit)数据发送至StorageService中进行存储;S9、Encoder等所有的StorageService返回存储结果之后,将更新后的unit所在的StorageService的位置信息通知给StripeManager,StripeManager将这些信息更新到数据库,并返回Encoder成功;S10、Encoder返回客户端本次随机写成功;S11、用户再次在客户端输入随机写文件中的部分随机写数据,则重复执行步骤S5-S10,直到随机写文件的所有随机写数据输入完毕;S12、随机写文件的所有随机写数据输入完毕后,客户端通知Encoder随机写完成,Encoder通知StripeManager随机写完成,StripeManager为该随机写文件更新的所有条带生成重新计算校验数据的任务,异步重新计算并写入随机写文件更新的所有条带的校验数据,并返回Encoder成功,Encoder返回客户端成功;S13、整个随机写操作完本文档来自技高网...
一种基于纠删码的随机写方法及系统

【技术保护点】
一种基于纠删码的随机写方法,其特征在于,包括:S1、生成随机写文件并唯一标示所述随机写文件,设置所述随机写文件的文件数据安全级别;S2、输入所述随机写文件中的部分随机写数据,根据纠删码和所述文件数据安全级别将输入的随机写数据条带化,条带由数据存储单元组成,计算随机写数据大小、随机写偏移;S3、根据所述随机写数据大小、所述随机写偏移获取本次随机写所跨越的条带列表;S4、计算本次随机写所跨越的所述条带列表中各条带的需要更新的数据存储单元的范围,用S2中输入的随机写数据更新范围内的各数据存储单元,将更新的数据存储单元的数据进行分布式云存储并将存储的位置更新到数据库;S5、用户再次输入所述随机写文件中的部分随机写数据,则重复执行步骤S2‑S4,直到所述随机写文件的所有随机写数据输入完毕;S6、所述随机写文件的所有随机写数据输入完毕后,异步重新计算并写入随机写文件更新的所有条带的校验数据。

【技术特征摘要】
1.一种基于纠删码的随机写方法,其特征在于,包括:S1、生成随机写文件并唯一标示所述随机写文件,设置所述随机写文件的文件数据安全级别;S2、输入所述随机写文件中的部分随机写数据,根据纠删码和所述文件数据安全级别将输入的随机写数据条带化,条带由数据存储单元组成,计算随机写数据大小、随机写偏移;S3、根据所述随机写数据大小、所述随机写偏移获取本次随机写所跨越的条带列表;S4、计算本次随机写所跨越的所述条带列表中各条带的需要更新的数据存储单元的范围,用S2中输入的随机写数据更新范围内的各数据存储单元,将更新的数据存储单元的数据进行分布式云存储并将存储的位置更新到数据库;S5、用户再次输入所述随机写文件中的部分随机写数据,则重复执行步骤S2-S4,直到所述随机写文件的所有随机写数据输入完毕;S6、所述随机写文件的所有随机写数据输入完毕后,异步重新计算并写入随机写文件更新的所有条带的校验数据。2.如权利要求1所述的基于纠删码的随机写方法,其特征在于,步骤S1中:唯一标示所述随机写文件后,生成所述随机写文件的唯一标示信息,将所述随机写文件的所述唯一标示信息、所述文件数据安全级别存储入数据库。3.如权利要求1所述的基于纠删码的随机写方法,其特征在于,步骤S1中:所述文件数据安全级别设置为N+M级别,N表示组成一个条带的数据存储单元个数,M表示不发生数据丢失的前提下一个条带允许同时发生故障的数据存储单元个数。4.如权利要求1所述的基于纠删码的随机写方法,其特征在于,步骤S3中:获取本次随机写所跨越的所述条带列表后,判断获取的所述条带列表是否完整,如果不完整则将所述条带列表补充完整。5.如权利要求1所述的基于纠删码的随机写方法,其特征在于,步骤S6中异步重新计算并写入随机写文件更新的所有条带的校验数据的步骤为:将重新计算并写入随机写文件更新的所有条带的校验数据的任务均匀分发给不同编码器,所述编码器接受任务后获取条带数据并根据获取的条带数据重新计算条带的校验数据,重新计算条带的校验数据完成后,写入重新计算出的条带的校验数据。6.一种基于纠删码的随机写系统,其特征在于,包括:随机写文件设置模块:生成...

【专利技术属性】
技术研发人员:胡中波苏清华缪永飞万继方
申请(专利权)人:长江大学
类型:发明
国别省市:湖北,42

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

1