数据拷贝方法和装置.pdf

上传人:t**** 文档编号:4747252 上传时间:2018-11-05 格式:PDF 页数:14 大小:2.14MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410400157.3

申请日:

2014.08.14

公开号:

CN104298609A

公开日:

2015.01.21

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/02申请日:20140814|||公开

IPC分类号:

G06F12/02

主分类号:

G06F12/02

申请人:

浪潮(北京)电子信息产业有限公司

发明人:

王倩; 孙承碧; 王旭

地址:

100085 北京市海淀区上地信息路2号2-1号C栋1层

优先权:

专利代理机构:

北京安信方达知识产权代理有限公司 11262

代理人:

王丹;李丹

PDF下载: PDF下载
内容摘要

本发明提供了一种数据拷贝方法和装置,其中方法包括:根据拷贝任务,并行启动拷出线程和拷入线程,拷出线程从源卷中读出拷贝数据块加入顺序任务队列,如果拷贝数据块中有优先拷贝数据块,将优先拷贝数据块加入优先任务队列;若优先任务队列有优先拷贝数据块,拷入线程从优先任务队列获取优先拷贝数据块写入目标卷,并从顺序任务队列获取拷贝数据块写入目标卷。本发明通过拷出线程和拷入线程并行进行拷贝数据的读出和写入,提高数据拷贝的效率,通过顺序任务队列和优先任务队列,实现数据冲突情况下的优先拷贝,并保证拷贝数据一致性。

权利要求书

权利要求书
1.  一种数据拷贝方法,其特征在于,包括:
网络设备根据拷贝任务,并行启动拷出线程和拷入线程,所述拷贝任务包括拷贝数据信息,源卷身份标识ID和目标卷ID;
所述拷出线程根据源卷ID查找到源卷,根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块,拷出线程根据目标卷ID查找到目标卷;
所述拷出线程从源卷中读出拷贝数据块,将读出的拷贝数据块加入到顺序任务队列中,如果拷贝数据块中存在优先拷贝数据块,将优先拷贝数据块加入到优先任务队列中;
在优先任务队列中有优先拷贝数据块时,所述拷入线程从优先任务队列中获取优先拷贝数据块写入目标卷,并从顺序任务队列中获取拷贝数据块写入目标卷。

2.  根据权利要求1所述的数据拷贝方法,其特征在于,该方法之前还包括:
所述网络设备接收拷贝请求,根据接收到的拷贝请求设置所述拷贝任务,以及设置与所述拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列。

3.  根据权利要求1或2所述的数据拷贝方法,其特征在于,所述拷贝任务中的拷贝数据信息包括拷贝数据起始位置和结束位置,以及将拷贝数据划分为拷贝数据块的基本单位;
所述根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块,包括:
根据所述拷贝数据信息中的拷贝数据起始位置和结束位置确定拷贝数据,并根据所述拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。

4.  根据权利要求1或2所述的数据拷贝方法,其特征在于,该方法之前还包括:所述网络设备设置顺序任务队列的存储个数上限和第一间隔时间;
所述拷出线程从源卷中读出拷贝数据块,将读出的拷贝数据块加入到顺序任务队列中,包括:
所述拷出线程根据排列顺序从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,若所述顺序任务队列中拷贝数据块个数达到存储个数上限,所述拷出线程暂停从源卷中读出拷贝数据块,经过预先设置的第一间隔时间,所述拷出线程启动从源卷中读出拷贝数据块加入到所述顺序任务队列中。

5.  根据权利要求1或2所述的数据拷贝方法,其特征在于,所述如果拷贝数据块中存在优先拷贝数据块,将优先拷贝数据块加入到优先任务队列中,包括:
如果接收到数据读写请求,根据所述数据读写请求中请求数据的起始位置和结束位置,查找对应的拷贝数据块作为优先拷贝数据块,并将所述优先拷贝数据块加入到所述优先任务队列中。

6.  根据权利要求1或5所述的数据拷贝方法,其特征在于,该方法之前还包括:所述网络设备设置第二时间间隔;
所述拷入线程从优先任务队列获取优先拷贝数据块写入目标卷,并从所述顺序任务队列获取拷贝数据块写入目标卷,包括:
所述拷入线程判断优先任务队列是否为空,如果所述优先任务队列不为空,从所述优先任务队列中获取优先拷贝数据块写入目标卷的相应位置,如果所述优先任务队列为空,判断所述顺序任务队列是否为空;
如果所述顺序任务队列不为空,从所述顺序任务队列中获取拷贝数据块写入目标卷的相应位置,如果所述顺序任务队列为空,判断是否所有拷贝数据块都拷贝完成;如果还有未拷贝完成的拷贝数据块,经过所述第二间隔时间,再次判断所有数据块是否都拷贝完成,如果所有拷贝数据块都拷贝完成,停止所述拷出线程和所述拷入线程。

7.  根据权利要求6所述的数据拷贝方法,其特征在于,所述停止所述拷出线程和所述拷入线程后,该方法还包括:
所述网络设备删除所述拷贝任务,以及和所述拷贝任务对应的拷出线程、 拷入线程、顺序任务队列和优先任务队列。

8.  一种数据拷贝装置,其特征在于,包括:
启动模块,用于根据拷贝任务,并行启动拷出线程和拷入线程,所述拷贝任务包括拷贝数据信息,源卷ID和目标卷ID;
拷出线程,用于根据源卷ID查找到源卷,根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块;从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,如果拷贝数据块中存在优先拷贝数据块,将优先拷贝数据块加入到优先任务队列中;
拷入线程,用于在优先任务队列中有优先拷贝数据块时,从优先任务队列中获取优先拷贝数据块写入目标卷,并从顺序任务队列中获取拷贝数据块写入目标卷。

9.  根据权利要求8所述的数据拷贝装置,其特征在于,该装置还包括:
接收模块,用于接收拷贝请求;
设置模块,用于根据所述拷贝请求设置拷贝任务,以及设置与所述拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列。

10.  根据权利要求8或9所述的数据拷贝装置,其特征在于,所述拷贝任务中的拷贝数据信息包括拷贝数据起始位置和结束位置,以及将拷贝数据划分为拷贝数据块的基本单位;
所述拷出线程,用于根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块,具体为:
所述拷出线程用于根据所述拷贝数据信息中的拷贝数据起始位置和结束位置确定拷贝数据,并根据所述拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。

11.  根据权利要求9所述的数据拷贝装置,其特征在于,所述设置模块,还用于设置顺序任务队列的存储个数上限和第一间隔时间;
所述拷出线程,用于从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,具体为:
所述拷出线程用于根据排列顺序从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,若所述顺序任务队列中拷贝数据块个数达到存储个数上限,暂停从源卷中读出拷贝数据块,经过预先设置的第一间隔时间后,启动从源卷中读出拷贝数据块加入到所述顺序任务队列中。

12.  根据权利要求8或9所述的数据拷贝装置,其特征在于,所述拷出线程,用于如果拷贝数据块中存在优先拷贝数据块,将优先拷贝数据块加入到优先任务队列中,具体为:
所述拷出线程用于如果接收到数据读写请求,根据所述数据读写请求中请求数据的起始位置和结束位置,查找对应的拷贝数据块作为优先拷贝数据块,并将所述优先拷贝数据块加入到所述优先任务队列中。

13.  根据权利要求9或12所述的数据拷贝装置,其特征在于,所述设置模块,还用于设置第二时间间隔;
所述拷入线程,用于在优先任务队列中有优先拷贝数据块时,从优先任务队列中获取优先拷贝数据块写入目标卷,并从顺序任务队列中获取拷贝数据块写入目标卷,具体为:
所述拷入线程用于判断优先任务队列是否为空,如果所述优先任务队列不为空,从所述优先任务队列中获取优先拷贝数据块写入目标卷的相应位置,如果所述优先任务队列为空,判断所述顺序任务队列是否为空;如果所述顺序任务队列不为空,从所述顺序任务队列中获取拷贝数据块写入目标卷的相应位置,如果所述顺序任务队列为空,判断是否所有拷贝数据块都拷贝完成;如果还有未拷贝完成的拷贝数据块,经过所述第二间隔时间后,再次判断所有数据块是否都拷贝完成,如果所有拷贝数据块都拷贝完成,停止所述拷出线程和所述拷入线程。

14.  根据权利要求13所述的数据拷贝装置,其特征在于,该装置还包括:
删除模块,用于在所述停止所述拷出线程和所述拷入线程后,删除拷贝任务,以及和所述拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列。

说明书

说明书数据拷贝方法和装置
技术领域
本发明涉及灾备存储技术领域,尤其涉及一种数据拷贝方法和装置。 
背景技术
随着信息技术的发展,企业越来越依赖于数据处理来进行商业行为,因此,数据处理的高可靠性和高可用性越来越成为关键。尽管随着科学技术的发展,计算机系统的可靠性日益增加,但是由地震、洪水、火灾、战争等天灾人祸或由于软硬件故障而使网络设备整体无法正常工作等情况所造成的损失依然可以轻而易举地摧毁企业赖以生成的IT系统。所以,建立灾备系统对于极度依赖IT系统的企业便成了必然的选择。 
数据拷贝是灾备系统中处理数据备份的一项基本内容,它是将数据从网络设备的一个数据卷复制到另一个数据卷,从而达到备份的目的。在数据拷贝的过程中,包括一次数据读出和一次数据写入。目前,数据拷贝采用串行方式进行数据读出和数据写入,例如,设定数据读出的卷为源卷,数据写入的卷为目标卷,当进行数据拷贝时,从源卷将全部需要备份的数据读出,然后将全部读出的数据再写入目标卷。进行灾备操作时往往需要备份大量数据,串行方式势必造成长时间的数据拷贝。另外,如果涉及到重要数据需要优先备份,目前也无法实现。 
有鉴于此,需要一种改进的数据拷贝方法来解决现有技术的问题。 
发明内容
为了解决上述技术问题,本发明提供了一种数据拷贝方法和装置,能够提高数据拷贝的效率,以及保证数据冲突情况下数据的一致性。 
为了达到本发明目的,本发明提供了一种数据拷贝方法,包括:网络设备根据拷贝任务,并行启动拷出线程和拷入线程,拷贝任务包括拷贝数据信息,源卷ID和目标卷ID;拷出线程根据源卷ID查找到源卷,根据拷贝数据 信息确定拷贝数据,并将拷贝数据划分为拷贝数据块,拷出线程根据目标卷ID查找到目标卷;拷出线程从源卷中读出拷贝数据块,将读出的拷贝数据块加入到顺序任务队列中,如果拷贝数据块中存在优先拷贝数据块,将优先拷贝数据块加入到优先任务队列中;在优先任务队列中有优先拷贝数据块时,拷入线程从优先任务队列中获取优先拷贝数据块写入目标卷,并从顺序任务队列中获取拷贝数据块写入目标卷。 
进一步地,该方法之前还包括:网络设备接收拷贝请求,根据接收到的拷贝请求设置拷贝任务,以及设置与拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列。 
进一步地,拷贝任务中的拷贝数据信息包括拷贝数据起始位置和结束位置,以及将拷贝数据划分为拷贝数据块的基本单位;根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块,包括:根据拷贝数据信息中的拷贝数据起始位置和结束位置确定拷贝数据,并根据拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。 
进一步地,该方法之前还包括:网络设备设置顺序任务队列的存储个数上限和第一间隔时间;拷出线程从源卷中读出拷贝数据块,将读出的拷贝数据块加入到顺序任务队列中,包括:拷出线程根据排列顺序从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,若顺序任务队列中拷贝数据块个数达到存储个数上限,拷出线程暂停从源卷中读出拷贝数据块,经过预先设置的第一间隔时间,拷出线程启动从源卷中读出拷贝数据块加入到顺序任务队列中。 
进一步地,如果拷贝数据块中存在优先拷贝数据块,将优先拷贝数据块加入到优先任务队列中,包括: 
进一步地,如果接收到数据读写请求,根据数据读写请求中请求数据的起始位置和结束位置,查找对应的拷贝数据块作为优先拷贝数据块,并将优先拷贝数据块加入到优先任务队列中。 
进一步地,该方法之前还包括:网络设备设置第二时间间隔;拷入线程从优先任务队列获取优先拷贝数据块写入目标卷,并从顺序任务队列获取拷贝数据块写入目标卷,包括:拷入线程判断优先任务队列是否为空,如果优 先任务队列不为空,从优先任务队列中获取优先拷贝数据块写入目标卷的相应位置,如果优先任务队列为空,判断顺序任务队列是否为空;如果顺序任务队列不为空,从顺序任务队列中获取拷贝数据块写入目标卷的相应位置,如果顺序任务队列为空,判断是否所有拷贝数据块都拷贝完成;如果还有未拷贝完成的拷贝数据块,经过第二间隔时间,再次判断所有数据块是否都拷贝完成,如果所有拷贝数据块都拷贝完成,停止拷出线程和拷入线程。 
进一步地,停止所述拷出线程和所述拷入线程后,该方法还包括:网络设备删除拷贝任务,以及和拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列。 
本发明提供了一种数据拷贝装置,包括:启动模块,用于根据拷贝任务,并行启动拷出线程和拷入线程,拷贝任务包括拷贝数据信息,源卷ID和目标卷ID;拷出线程,用于根据源卷ID查找到源卷,根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块;从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,如果拷贝数据块中存在优先拷贝数据块,将优先拷贝数据块加入到优先任务队列中;拷入线程,用于在优先任务队列中有优先拷贝数据块时,从优先任务队列中获取优先拷贝数据块写入目标卷,并从顺序任务队列中获取拷贝数据块写入目标卷。 
进一步地,该装置还包括:接收模块,用于接收拷贝请求;设置模块,用于根据拷贝请求设置拷贝任务,以及设置与拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列。 
进一步地,拷贝任务中的拷贝数据信息包括拷贝数据起始位置和结束位置,以及将拷贝数据划分为拷贝数据块的基本单位;拷出线程,用于根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块,具体为:拷出线程用于根据拷贝数据信息中的拷贝数据起始位置和结束位置确定拷贝数据,并根据拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。 
进一步地,所述设置模块,还用于设置顺序任务队列的存储个数上限和第一间隔时间;拷出线程,用于从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,具体为:拷出线程用于根据排列顺序从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,若顺序 任务队列中拷贝数据块个数达到存储个数上限,暂停从源卷中读出拷贝数据块,经过预先设置的第一间隔时间后,启动从源卷中读出拷贝数据块加入到顺序任务队列中。 
进一步地,拷出线程,用于如果拷贝数据块中存在优先拷贝数据块,将优先拷贝数据块加入到优先任务队列中,具体为:拷出线程用于如果接收到数据读写请求,根据数据读写请求中请求数据的起始位置和结束位置,查找对应的拷贝数据块作为优先拷贝数据块,并将优先拷贝数据块加入到优先任务队列中。 
进一步地,设置模块,还用于设置第二时间间隔;拷入线程,用于在优先任务队列中有优先拷贝数据块时,从优先任务队列中获取优先拷贝数据块写入目标卷,并从顺序任务队列中获取拷贝数据块写入目标卷,具体为:拷入线程用于判断优先任务队列是否为空,如果优先任务队列不为空,从优先任务队列中获取优先拷贝数据块写入目标卷的相应位置,如果优先任务队列为空,判断顺序任务队列是否为空;如果顺序任务队列不为空,从顺序任务队列中获取拷贝数据块写入目标卷的相应位置,如果顺序任务队列为空,判断是否所有拷贝数据块都拷贝完成;如果还有未拷贝完成的拷贝数据块,经过第二间隔时间后,再次判断所有数据块是否都拷贝完成,如果所有拷贝数据块都拷贝完成,停止拷出线程和拷入线程。 
进一步地,该装置还包括:删除模块,用于在停止拷出线程和拷入线程后,删除拷贝任务,以及和拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列。 
与现有技术相比,本发明包括:网络设备根据拷贝任务,并行启动拷出线程和拷入线程,该拷贝任务包括拷贝数据信息,源卷ID和目标卷ID;拷出线程根据源卷ID查找到源卷,根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块,拷出线程根据目标卷ID查找到目标卷;拷出线程从源卷中读出拷贝数据块,将读出的拷贝数据块加入到顺序任务队列中,如果拷贝数据块中存在优先拷贝数据块,将优先拷贝数据块加入到优先任务队列中;若优先任务队列中有优先拷贝数据块,拷入线程从优先任务队列中获取优先拷贝数据块写入目标卷,并从顺序任务队列中获取拷贝数据块写入 目标卷。本发明通过设置拷出线程和拷入线程,在进行数据拷贝时,拷出线程从源卷读出拷贝数据和拷入线程将拷贝数据写入目标卷可以并行进行,从而提高数据拷贝的效率。此外,在拷出线程和拷入线程之间设置顺序任务队列和优先任务队列,拷出线程将读出拷贝数据块加入到顺序任务队列,拷入线程从顺序任务队列获取拷贝数据块写入到目标卷,如此保证拷贝数据在源卷和目标卷的排列顺序的一致性;若需要对数据请求进行优先处理,将请求数据对应的拷贝数据块作为优先拷贝数据块加入到优先任务队列,拷入线程优先从优先任务队列获取优先拷贝数据块写入到目标卷,从而实现数据冲突情况下的优先拷贝,并能够保证拷贝数据一致性。 
附图说明
图1是本发明数据拷贝方法的流程示意图。 
图2是本发明拷入线程将拷贝数据块写入目标卷的流程示意图。 
图3是本发明数据拷贝装置的结构示意图。 
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。 
图1是本发明数据拷贝方法的流程示意图,如图1所示,包括: 
步骤11,网络设备接收拷贝请求,根据该拷贝请求设置拷贝任务,以及设置与该拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列,其中拷贝任务包括拷贝数据信息,源卷身份标识(ID,identification)和目标卷ID。 
在本步骤中,网络设备接收来自用户的拷贝请求,根据该拷贝请求设置拷贝任务,该拷贝任务包括拷贝数据信息,源卷ID和目标卷ID,其中,拷贝数据信息包括拷贝数据起始位置和结束位置,以及将拷贝数据划分为拷贝数据块的基本单位。 
网络设备还设置与该拷贝任务对应的拷出线程和拷入线程,其中,拷出线程用于从源卷读出拷贝数据,拷入线程用于将拷贝数据写入目标卷,则数据拷贝的过程包括拷出线程从源卷读出拷贝数据和拷入线程将拷贝数据写入 目标卷。 
网络设备还预先在源卷和目标卷之间设置顺序任务队列和优先任务队列,此外,网络设备还可以设置该顺序任务队列的存储个数上限和第一间隔时间,例如设置顺序任务队列的存储个数上限为200,第一间隔时间为1ms。 
步骤12,网络设备根据拷贝任务,并行启动拷出线程和拷入线程。 
在本步骤中,网络设备可以并行启动拷出线程和拷入线程,如此,拷出线程从源卷读出拷贝数据和拷入线程将拷贝数据写入目标卷可以并行进行,从而提高数据拷贝的效率。 
步骤13,拷出线程根据源卷ID查找到源卷,根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块;拷出线程根据目标卷ID查找到目标卷。 
在本步骤中,拷出线程根据源卷ID查找到源卷,根据拷贝数据信息中的拷贝数据起始位置和结束位置确定拷贝数据,并根据拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。 
步骤14,拷出线程从源卷中读出拷贝数据块。 
在本步骤中,拷出线程可以根据排列顺序从源卷中进行拷贝数据块的读出。 
步骤15,拷出线程将读出的拷贝数据块加入到顺序任务队列中,如果拷贝数据块中存在优先拷贝数据块,则将该优先拷贝数据块加入到优先任务队列中。 
在本步骤中,拷出线程将拷贝数据块根据读出顺序加入到顺序任务队列中。如果顺序任务队列中拷贝数据块个数达到存储个数上限,拷出线程暂停从源卷中读出拷贝数据块,因为拷入线程可以并行从顺序任务队列中将拷贝任务块写入到目标卷,所以经过第一间隔时间后,顺序任务队列的拷贝数据块会在存储个数上限以下,拷出线程可以再次并行启动从源卷中读出拷贝数据块加入到顺序任务队列中。 
如果在数据拷贝的过程中,网络设备接收到用户的数据读写请求,则请求数据需要优先进行拷贝。该数据读写请求包括请求数据的起始位置和结束 位置,根据该请求数据的起始位置和结束位置,在拷贝数据块中查找对应的拷贝数据块作为优先拷贝数据块,并将优先拷贝数据块加入到优先任务队列中。 
步骤16,当优先任务队列中有优先拷贝数据块时,拷入线程从优先任务队列获取优先拷贝数据块写入目标卷,并从顺序任务队列获取拷贝数据块写入目标卷。 
本步骤具体可如图2所示,图2是本发明拷入线程将拷贝数据块写入目标卷的流程示意图,包括: 
步骤161,拷入线程判断优先任务队列是否为空,如果否,进入步骤162;如果是,进入步骤163。 
步骤162,若判断出优先任务队列不为空,则拷入线程从优先任务队列中获取优先拷贝数据块,并将优先拷贝数据块写入目标卷的相应位置。 
在本步骤中,拷贝数据块在源卷和目标卷的排列顺序是一致的,所以拷入线程从优先任务队列中获取优先拷贝数据块后,会将优先拷贝数据块写入目标卷的相应位置,从而能够保证数据冲突情况下的拷贝数据一致性。 
步骤163,若判断出优先任务队列为空,拷入线程判断顺序任务队列是否为空,如果否,进入步骤164;如果是,进入步骤165。 
步骤164,若判断出顺序任务队列不为空,则拷入线程从顺序任务队列中获取拷贝数据块,并分别将拷贝数据块写入目标卷的相应位置。 
步骤165,若判断出顺序任务队列为空,拷入线程判断是否所有拷贝数据块都拷贝完成,如果否,进入步骤166;如果是,进入步骤167。 
步骤166,拷入线程经过第二间隔时间,返回步骤161。 
在本步骤中,网络设备预先设置第二间隔时间,例如第二间隔时间为1ms。 
拷出线程和拷入线程对拷贝数据块的处理并不是同速的,有可能拷入线程将拷贝数据块写入目标卷的速度比较快,拷出线程还没有将拷贝数据块加入到优先任务队列或顺序任务队列中,出现优先任务队列或顺序任务队列都为空,但还存在没有拷贝完成的拷贝数据块,因此,在等待的第二间隔时间 内,拷出线程和拷入线程都不会停止。拷入线程经过第二间隔时间后,返回步骤161,直到所有拷贝数据块都拷贝完成。 
步骤167,停止拷出线程和拷入线程。 
在本步骤中,如果判断出所有拷贝数据块都拷贝完成,停止拷出线程和拷入线程,数据拷贝结束。 
步骤17,停止拷出线程和拷入线程后,网络设备删除拷贝任务,以及和该拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列。 
本发明通过设置拷出线程和拷入线程,在进行数据拷贝时,并行启动拷出线程和拷入线程,如此,拷出线程从源卷读出拷贝数据和拷入线程将拷贝数据写入目标卷可以并行进行,从而提高数据拷贝的效率。 
此外,拷出线程和拷入线程之间还设置顺序任务队列和优先任务队列,拷出线程将拷贝数据划分为拷贝数据块,当从源卷中读出拷贝数据块后,将拷贝数据块加入到顺序任务队列中,拷入线程从顺序任务队列获取拷贝数据块写入到目标卷,如此,可以保证拷贝数据在源卷和目标卷的排列顺序的一致性。值得注意地,若在接收到数据读写请求需要对请求数据优先进行拷贝时,拷入线程根据请求数据将从源卷中读出的相应拷贝数据块作为优先拷贝数据块加入到优先任务队列,拷入线程优先从优先任务队列获取优先拷贝数据块写入到目标卷,从而实现数据冲突情况下的优先拷贝,并能够保证拷贝数据一致性。 
图3是本发明数据拷贝装置的结构示意图,如图3所示,包括: 
接收模块,用于接收拷贝请求。 
设置模块,用于根据拷贝请求设置拷贝任务,以及与该拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列,其中拷贝任务包括拷贝数据信息,源卷ID和目标卷ID。 
具体地,拷贝任务中的拷贝数据信息包括拷贝数据起始位置和结束位置,以及将拷贝数据划分为拷贝数据块的基本单位。 
设置模块还可以用于分别设置该顺序任务队列和优先任务队列的存储个数上限、第一间隔时间和第二时间间隔。 
启动模块,用于根据拷贝任务,并行启动拷出线程和拷入线程。 
拷出线程,用于根据源卷ID查找到源卷,根据拷贝数据信息确定拷贝数据,并将拷贝数据划分为拷贝数据块;从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,如果拷贝数据块中存在优先拷贝数据块,则将该优先拷贝数据块加入到优先任务队列中。 
具体地,拷出线程用于根据拷贝数据信息中的拷贝数据起始位置和结束位置确定拷贝数据,并根据拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。 
拷出线程根据排列顺序从源卷中读出拷贝数据块,并将读出的拷贝数据块加入到顺序任务队列中,若顺序任务队列中拷贝数据块个数达到存储个数上限,拷出线程暂停从源卷中读出拷贝数据块,经过设置模块设置的第一间隔时间后,启动从源卷中读出拷贝数据块加入到顺序任务队列中。 
如果接收到数据读写请求,拷出线程根据数据读写请求中请求数据的起始位置和结束位置,查找对应的拷贝数据块作为优先拷贝数据块,并将优先拷贝数据块加入到优先任务队列中。 
拷入线程,用于根据目标卷ID查找到目标卷;在优先任务队列中有优先拷贝数据块时,从优先任务队列获取优先拷贝数据块写入目标卷,并从顺序任务队列获取拷贝数据块写入目标卷。 
具体地,拷入线程判断优先任务队列是否为空,如果优先任务队列不为空,从优先任务队列中获取优先拷贝数据块写入目标卷的相应位置,如果优先任务队列为空,判断顺序任务队列是否为空;如果顺序任务队列不为空,从顺序任务队列中获取拷贝数据块写入目标卷的相应位置,如果顺序任务队列为空,判断是否所有拷贝数据块都拷贝完成;如果还有未拷贝完成的拷贝数据块,经过设置模块设置的第二间隔时间后,再次判断是否所有数据块都拷贝完成,如果所有拷贝数据块都拷贝完成,停止拷出线程和拷入线程,数据拷贝结束。 
删除模块,用于停止拷出线程和拷入线程后,删除拷贝任务,以及和该拷贝任务对应的拷出线程、拷入线程、顺序任务队列和优先任务队列。 
本发明通过设置拷出线程和拷入线程,在进行数据拷贝时,拷出线程从源卷读出拷贝数据和拷入线程将拷贝数据写入目标卷可以并行进行,从而提高数据拷贝的效率。此外,在拷出线程和拷入线程之间设置顺序任务队列和优先任务队列,拷出线程将读出拷贝数据块加入到顺序任务队列,拷入线程从顺序任务队列获取拷贝数据块写入到目标卷,如此保证拷贝数据在源卷和目标卷的排列顺序的一致性;若需要对数据请求进行优先处理,将请求数据对应的拷贝数据块作为优先拷贝数据块加入到优先任务队列,拷入线程优先从优先任务队列获取优先拷贝数据块写入到目标卷,从而实现数据冲突情况下的优先拷贝,并能够保证拷贝数据一致性。 
应当理解,虽然本说明书根据实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。 
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用于限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。 

数据拷贝方法和装置.pdf_第1页
第1页 / 共14页
数据拷贝方法和装置.pdf_第2页
第2页 / 共14页
数据拷贝方法和装置.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《数据拷贝方法和装置.pdf》由会员分享,可在线阅读,更多相关《数据拷贝方法和装置.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104298609 A (43)申请公布日 2015.01.21 CN 104298609 A (21)申请号 201410400157.3 (22)申请日 2014.08.14 G06F 12/02(2006.01) (71)申请人 浪潮 (北京) 电子信息产业有限公司 地址 100085 北京市海淀区上地信息路 2 号 2-1 号 C 栋 1 层 (72)发明人 王倩 孙承碧 王旭 (74)专利代理机构 北京安信方达知识产权代理 有限公司 11262 代理人 王丹 李丹 (54) 发明名称 数据拷贝方法和装置 (57) 摘要 本发明提供了一种数据拷贝方法和装置, 。

2、其 中方法包括 : 根据拷贝任务, 并行启动拷出线程 和拷入线程, 拷出线程从源卷中读出拷贝数据块 加入顺序任务队列, 如果拷贝数据块中有优先拷 贝数据块, 将优先拷贝数据块加入优先任务队列 ; 若优先任务队列有优先拷贝数据块, 拷入线程从 优先任务队列获取优先拷贝数据块写入目标卷, 并从顺序任务队列获取拷贝数据块写入目标卷。 本发明通过拷出线程和拷入线程并行进行拷贝数 据的读出和写入, 提高数据拷贝的效率, 通过顺序 任务队列和优先任务队列, 实现数据冲突情况下 的优先拷贝, 并保证拷贝数据一致性。 (51)Int.Cl. 权利要求书 3 页 说明书 7 页 附图 3 页 (19)中华人民共。

3、和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书7页 附图3页 (10)申请公布号 CN 104298609 A CN 104298609 A 1/3 页 2 1. 一种数据拷贝方法, 其特征在于, 包括 : 网络设备根据拷贝任务, 并行启动拷出线程和拷入线程, 所述拷贝任务包括拷贝数据 信息, 源卷身份标识 ID 和目标卷 ID ; 所述拷出线程根据源卷 ID 查找到源卷, 根据拷贝数据信息确定拷贝数据, 并将拷贝数 据划分为拷贝数据块, 拷出线程根据目标卷 ID 查找到目标卷 ; 所述拷出线程从源卷中读出拷贝数据块, 将读出的拷贝数据块加入到顺序任务队列 中, 如果拷贝数据。

4、块中存在优先拷贝数据块, 将优先拷贝数据块加入到优先任务队列中 ; 在优先任务队列中有优先拷贝数据块时, 所述拷入线程从优先任务队列中获取优先拷 贝数据块写入目标卷, 并从顺序任务队列中获取拷贝数据块写入目标卷。 2. 根据权利要求 1 所述的数据拷贝方法, 其特征在于, 该方法之前还包括 : 所述网络设备接收拷贝请求, 根据接收到的拷贝请求设置所述拷贝任务, 以及设置与 所述拷贝任务对应的拷出线程、 拷入线程、 顺序任务队列和优先任务队列。 3.根据权利要求1或2所述的数据拷贝方法, 其特征在于, 所述拷贝任务中的拷贝数据 信息包括拷贝数据起始位置和结束位置, 以及将拷贝数据划分为拷贝数据块。

5、的基本单位 ; 所述根据拷贝数据信息确定拷贝数据, 并将拷贝数据划分为拷贝数据块, 包括 : 根据所述拷贝数据信息中的拷贝数据起始位置和结束位置确定拷贝数据, 并根据所述 拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。 4. 根据权利要求 1 或 2 所述的数据拷贝方法, 其特征在于, 该方法之前还包括 : 所述网 络设备设置顺序任务队列的存储个数上限和第一间隔时间 ; 所述拷出线程从源卷中读出拷贝数据块, 将读出的拷贝数据块加入到顺序任务队列 中, 包括 : 所述拷出线程根据排列顺序从源卷中读出拷贝数据块, 并将读出的拷贝数据块加入到 顺序任务队列中, 若所述顺序任务队列中拷贝数据块个。

6、数达到存储个数上限, 所述拷出线 程暂停从源卷中读出拷贝数据块, 经过预先设置的第一间隔时间, 所述拷出线程启动从源 卷中读出拷贝数据块加入到所述顺序任务队列中。 5.根据权利要求1或2所述的数据拷贝方法, 其特征在于, 所述如果拷贝数据块中存在 优先拷贝数据块, 将优先拷贝数据块加入到优先任务队列中, 包括 : 如果接收到数据读写请求, 根据所述数据读写请求中请求数据的起始位置和结束位 置, 查找对应的拷贝数据块作为优先拷贝数据块, 并将所述优先拷贝数据块加入到所述优 先任务队列中。 6. 根据权利要求 1 或 5 所述的数据拷贝方法, 其特征在于, 该方法之前还包括 : 所述网 络设备设置。

7、第二时间间隔 ; 所述拷入线程从优先任务队列获取优先拷贝数据块写入目标卷, 并从所述顺序任务队 列获取拷贝数据块写入目标卷, 包括 : 所述拷入线程判断优先任务队列是否为空, 如果所述优先任务队列不为空, 从所述优 先任务队列中获取优先拷贝数据块写入目标卷的相应位置, 如果所述优先任务队列为空, 判断所述顺序任务队列是否为空 ; 如果所述顺序任务队列不为空, 从所述顺序任务队列中获取拷贝数据块写入目标卷的 相应位置, 如果所述顺序任务队列为空, 判断是否所有拷贝数据块都拷贝完成 ; 如果还有未 权 利 要 求 书 CN 104298609 A 2 2/3 页 3 拷贝完成的拷贝数据块, 经过所。

8、述第二间隔时间, 再次判断所有数据块是否都拷贝完成, 如 果所有拷贝数据块都拷贝完成, 停止所述拷出线程和所述拷入线程。 7. 根据权利要求 6 所述的数据拷贝方法, 其特征在于, 所述停止所述拷出线程和所述 拷入线程后, 该方法还包括 : 所述网络设备删除所述拷贝任务, 以及和所述拷贝任务对应的拷出线程、 拷入线程、 顺 序任务队列和优先任务队列。 8. 一种数据拷贝装置, 其特征在于, 包括 : 启动模块, 用于根据拷贝任务, 并行启动拷出线程和拷入线程, 所述拷贝任务包括拷贝 数据信息, 源卷 ID 和目标卷 ID ; 拷出线程, 用于根据源卷 ID 查找到源卷, 根据拷贝数据信息确定拷。

9、贝数据, 并将拷贝 数据划分为拷贝数据块 ; 从源卷中读出拷贝数据块, 并将读出的拷贝数据块加入到顺序任 务队列中, 如果拷贝数据块中存在优先拷贝数据块, 将优先拷贝数据块加入到优先任务队 列中 ; 拷入线程, 用于在优先任务队列中有优先拷贝数据块时, 从优先任务队列中获取优先 拷贝数据块写入目标卷, 并从顺序任务队列中获取拷贝数据块写入目标卷。 9. 根据权利要求 8 所述的数据拷贝装置, 其特征在于, 该装置还包括 : 接收模块, 用于接收拷贝请求 ; 设置模块, 用于根据所述拷贝请求设置拷贝任务, 以及设置与所述拷贝任务对应的拷 出线程、 拷入线程、 顺序任务队列和优先任务队列。 10.。

10、 根据权利要求 8 或 9 所述的数据拷贝装置, 其特征在于, 所述拷贝任务中的拷贝 数据信息包括拷贝数据起始位置和结束位置, 以及将拷贝数据划分为拷贝数据块的基本单 位 ; 所述拷出线程, 用于根据拷贝数据信息确定拷贝数据, 并将拷贝数据划分为拷贝数据 块, 具体为 : 所述拷出线程用于根据所述拷贝数据信息中的拷贝数据起始位置和结束位置确定拷 贝数据, 并根据所述拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。 11. 根据权利要求 9 所述的数据拷贝装置, 其特征在于, 所述设置模块, 还用于设置顺 序任务队列的存储个数上限和第一间隔时间 ; 所述拷出线程, 用于从源卷中读出拷贝数据块。

11、, 并将读出的拷贝数据块加入到顺序任 务队列中, 具体为 : 所述拷出线程用于根据排列顺序从源卷中读出拷贝数据块, 并将读出的拷贝数据块加 入到顺序任务队列中, 若所述顺序任务队列中拷贝数据块个数达到存储个数上限, 暂停从 源卷中读出拷贝数据块, 经过预先设置的第一间隔时间后, 启动从源卷中读出拷贝数据块 加入到所述顺序任务队列中。 12.根据权利要求8或9所述的数据拷贝装置, 其特征在于, 所述拷出线程, 用于如果拷 贝数据块中存在优先拷贝数据块, 将优先拷贝数据块加入到优先任务队列中, 具体为 : 所述拷出线程用于如果接收到数据读写请求, 根据所述数据读写请求中请求数据的起 始位置和结束位。

12、置, 查找对应的拷贝数据块作为优先拷贝数据块, 并将所述优先拷贝数据 块加入到所述优先任务队列中。 权 利 要 求 书 CN 104298609 A 3 3/3 页 4 13. 根据权利要求 9 或 12 所述的数据拷贝装置, 其特征在于, 所述设置模块, 还用于设 置第二时间间隔 ; 所述拷入线程, 用于在优先任务队列中有优先拷贝数据块时, 从优先任务队列中获取 优先拷贝数据块写入目标卷, 并从顺序任务队列中获取拷贝数据块写入目标卷, 具体为 : 所述拷入线程用于判断优先任务队列是否为空, 如果所述优先任务队列不为空, 从所 述优先任务队列中获取优先拷贝数据块写入目标卷的相应位置, 如果所述。

13、优先任务队列为 空, 判断所述顺序任务队列是否为空 ; 如果所述顺序任务队列不为空, 从所述顺序任务队列 中获取拷贝数据块写入目标卷的相应位置, 如果所述顺序任务队列为空, 判断是否所有拷 贝数据块都拷贝完成 ; 如果还有未拷贝完成的拷贝数据块, 经过所述第二间隔时间后, 再次 判断所有数据块是否都拷贝完成, 如果所有拷贝数据块都拷贝完成, 停止所述拷出线程和 所述拷入线程。 14. 根据权利要求 13 所述的数据拷贝装置, 其特征在于, 该装置还包括 : 删除模块, 用于在所述停止所述拷出线程和所述拷入线程后, 删除拷贝任务, 以及和所 述拷贝任务对应的拷出线程、 拷入线程、 顺序任务队列和。

14、优先任务队列。 权 利 要 求 书 CN 104298609 A 4 1/7 页 5 数据拷贝方法和装置 技术领域 0001 本发明涉及灾备存储技术领域, 尤其涉及一种数据拷贝方法和装置。 背景技术 0002 随着信息技术的发展, 企业越来越依赖于数据处理来进行商业行为, 因此, 数据处 理的高可靠性和高可用性越来越成为关键。尽管随着科学技术的发展, 计算机系统的可靠 性日益增加, 但是由地震、 洪水、 火灾、 战争等天灾人祸或由于软硬件故障而使网络设备整 体无法正常工作等情况所造成的损失依然可以轻而易举地摧毁企业赖以生成的 IT 系统。 所以, 建立灾备系统对于极度依赖 IT 系统的企业便成。

15、了必然的选择。 0003 数据拷贝是灾备系统中处理数据备份的一项基本内容, 它是将数据从网络设备的 一个数据卷复制到另一个数据卷, 从而达到备份的目的。 在数据拷贝的过程中, 包括一次数 据读出和一次数据写入。目前, 数据拷贝采用串行方式进行数据读出和数据写入, 例如, 设 定数据读出的卷为源卷, 数据写入的卷为目标卷, 当进行数据拷贝时, 从源卷将全部需要备 份的数据读出, 然后将全部读出的数据再写入目标卷。进行灾备操作时往往需要备份大量 数据, 串行方式势必造成长时间的数据拷贝。另外, 如果涉及到重要数据需要优先备份, 目 前也无法实现。 0004 有鉴于此, 需要一种改进的数据拷贝方法来。

16、解决现有技术的问题。 发明内容 0005 为了解决上述技术问题, 本发明提供了一种数据拷贝方法和装置, 能够提高数据 拷贝的效率, 以及保证数据冲突情况下数据的一致性。 0006 为了达到本发明目的, 本发明提供了一种数据拷贝方法, 包括 : 网络设备根据拷贝 任务, 并行启动拷出线程和拷入线程, 拷贝任务包括拷贝数据信息, 源卷 ID 和目标卷 ID ; 拷 出线程根据源卷 ID 查找到源卷, 根据拷贝数据 信息确定拷贝数据, 并将拷贝数据划分为 拷贝数据块, 拷出线程根据目标卷 ID 查找到目标卷 ; 拷出线程从源卷中读出拷贝数据块, 将读出的拷贝数据块加入到顺序任务队列中, 如果拷贝数据。

17、块中存在优先拷贝数据块, 将 优先拷贝数据块加入到优先任务队列中 ; 在优先任务队列中有优先拷贝数据块时, 拷入线 程从优先任务队列中获取优先拷贝数据块写入目标卷, 并从顺序任务队列中获取拷贝数据 块写入目标卷。 0007 进一步地, 该方法之前还包括 : 网络设备接收拷贝请求, 根据接收到的拷贝请求设 置拷贝任务, 以及设置与拷贝任务对应的拷出线程、 拷入线程、 顺序任务队列和优先任务队 列。 0008 进一步地, 拷贝任务中的拷贝数据信息包括拷贝数据起始位置和结束位置, 以及 将拷贝数据划分为拷贝数据块的基本单位 ; 根据拷贝数据信息确定拷贝数据, 并将拷贝数 据划分为拷贝数据块, 包括 。

18、: 根据拷贝数据信息中的拷贝数据起始位置和结束位置确定拷 贝数据, 并根据拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。 说 明 书 CN 104298609 A 5 2/7 页 6 0009 进一步地, 该方法之前还包括 : 网络设备设置顺序任务队列的存储个数上限和第 一间隔时间 ; 拷出线程从源卷中读出拷贝数据块, 将读出的拷贝数据块加入到顺序任务队 列中, 包括 : 拷出线程根据排列顺序从源卷中读出拷贝数据块, 并将读出的拷贝数据块加入 到顺序任务队列中, 若顺序任务队列中拷贝数据块个数达到存储个数上限, 拷出线程暂停 从源卷中读出拷贝数据块, 经过预先设置的第一间隔时间, 拷出线。

19、程启动从源卷中读出拷 贝数据块加入到顺序任务队列中。 0010 进一步地, 如果拷贝数据块中存在优先拷贝数据块, 将优先拷贝数据块加入到优 先任务队列中, 包括 : 0011 进一步地, 如果接收到数据读写请求, 根据数据读写请求中请求数据的起始位置 和结束位置, 查找对应的拷贝数据块作为优先拷贝数据块, 并将优先拷贝数据块加入到优 先任务队列中。 0012 进一步地, 该方法之前还包括 : 网络设备设置第二时间间隔 ; 拷入线程从优先任 务队列获取优先拷贝数据块写入目标卷, 并从顺序任务队列获取拷贝数据块写入目标卷, 包括 : 拷入线程判断优先任务队列是否为空, 如果优 先任务队列不为空, 。

20、从优先任务队列 中获取优先拷贝数据块写入目标卷的相应位置, 如果优先任务队列为空, 判断顺序任务队 列是否为空 ; 如果顺序任务队列不为空, 从顺序任务队列中获取拷贝数据块写入目标卷的 相应位置, 如果顺序任务队列为空, 判断是否所有拷贝数据块都拷贝完成 ; 如果还有未拷贝 完成的拷贝数据块, 经过第二间隔时间, 再次判断所有数据块是否都拷贝完成, 如果所有拷 贝数据块都拷贝完成, 停止拷出线程和拷入线程。 0013 进一步地, 停止所述拷出线程和所述拷入线程后, 该方法还包括 : 网络设备删除拷 贝任务, 以及和拷贝任务对应的拷出线程、 拷入线程、 顺序任务队列和优先任务队列。 0014 本。

21、发明提供了一种数据拷贝装置, 包括 : 启动模块, 用于根据拷贝任务, 并行启动 拷出线程和拷入线程, 拷贝任务包括拷贝数据信息, 源卷 ID 和目标卷 ID ; 拷出线程, 用于 根据源卷 ID 查找到源卷, 根据拷贝数据信息确定拷贝数据, 并将拷贝数据划分为拷贝数据 块 ; 从源卷中读出拷贝数据块, 并将读出的拷贝数据块加入到顺序任务队列中, 如果拷贝数 据块中存在优先拷贝数据块, 将优先拷贝数据块加入到优先任务队列中 ; 拷入线程, 用于 在优先任务队列中有优先拷贝数据块时, 从优先任务队列中获取优先拷贝数据块写入目标 卷, 并从顺序任务队列中获取拷贝数据块写入目标卷。 0015 进一步。

22、地, 该装置还包括 : 接收模块, 用于接收拷贝请求 ; 设置模块, 用于根据拷 贝请求设置拷贝任务, 以及设置与拷贝任务对应的拷出线程、 拷入线程、 顺序任务队列和优 先任务队列。 0016 进一步地, 拷贝任务中的拷贝数据信息包括拷贝数据起始位置和结束位置, 以及 将拷贝数据划分为拷贝数据块的基本单位 ; 拷出线程, 用于根据拷贝数据信息确定拷贝数 据, 并将拷贝数据划分为拷贝数据块, 具体为 : 拷出线程用于根据拷贝数据信息中的拷贝数 据起始位置和结束位置确定拷贝数据, 并根据拷贝数据信息中的基本单位将拷贝数据划分 为拷贝数据块。 0017 进一步地, 所述设置模块, 还用于设置顺序任务。

23、队列的存储个数上限和第一间隔 时间 ; 拷出线程, 用于从源卷中读出拷贝数据块, 并将读出的拷贝数据块加入到顺序任务队 列中, 具体为 : 拷出线程用于根据排列顺序从源卷中读出拷贝数据块, 并将读出的拷贝数据 说 明 书 CN 104298609 A 6 3/7 页 7 块加入到顺序任务队列中, 若顺序 任务队列中拷贝数据块个数达到存储个数上限, 暂停从 源卷中读出拷贝数据块, 经过预先设置的第一间隔时间后, 启动从源卷中读出拷贝数据块 加入到顺序任务队列中。 0018 进一步地, 拷出线程, 用于如果拷贝数据块中存在优先拷贝数据块, 将优先拷贝数 据块加入到优先任务队列中, 具体为 : 拷出。

24、线程用于如果接收到数据读写请求, 根据数据读 写请求中请求数据的起始位置和结束位置, 查找对应的拷贝数据块作为优先拷贝数据块, 并将优先拷贝数据块加入到优先任务队列中。 0019 进一步地, 设置模块, 还用于设置第二时间间隔 ; 拷入线程, 用于在优先任务队列 中有优先拷贝数据块时, 从优先任务队列中获取优先拷贝数据块写入目标卷, 并从顺序任 务队列中获取拷贝数据块写入目标卷, 具体为 : 拷入线程用于判断优先任务队列是否为空, 如果优先任务队列不为空, 从优先任务队列中获取优先拷贝数据块写入目标卷的相应位 置, 如果优先任务队列为空, 判断顺序任务队列是否为空 ; 如果顺序任务队列不为空,。

25、 从顺 序任务队列中获取拷贝数据块写入目标卷的相应位置, 如果顺序任务队列为空, 判断是否 所有拷贝数据块都拷贝完成 ; 如果还有未拷贝完成的拷贝数据块, 经过第二间隔时间后, 再 次判断所有数据块是否都拷贝完成, 如果所有拷贝数据块都拷贝完成, 停止拷出线程和拷 入线程。 0020 进一步地, 该装置还包括 : 删除模块, 用于在停止拷出线程和拷入线程后, 删除拷 贝任务, 以及和拷贝任务对应的拷出线程、 拷入线程、 顺序任务队列和优先任务队列。 0021 与现有技术相比, 本发明包括 : 网络设备根据拷贝任务, 并行启动拷出线程和拷入 线程, 该拷贝任务包括拷贝数据信息, 源卷 ID 和目。

26、标卷 ID ; 拷出线程根据源卷 ID 查找到源 卷, 根据拷贝数据信息确定拷贝数据, 并将拷贝数据划分为拷贝数据块, 拷出线程根据目标 卷 ID 查找到目标卷 ; 拷出线程从源卷中读出拷贝数据块, 将读出的拷贝数据块加入到顺序 任务队列中, 如果拷贝数据块中存在优先拷贝数据块, 将优先拷贝数据块加入到优先任务 队列中 ; 若优先任务队列中有优先拷贝数据块, 拷入线程从优先任务队列中获取优先拷贝 数据块写入目标卷, 并从顺序任务队列中获取拷贝数据块写入 目标卷。 本发明通过设置拷 出线程和拷入线程, 在进行数据拷贝时, 拷出线程从源卷读出拷贝数据和拷入线程将拷贝 数据写入目标卷可以并行进行, 。

27、从而提高数据拷贝的效率。 此外, 在拷出线程和拷入线程之 间设置顺序任务队列和优先任务队列, 拷出线程将读出拷贝数据块加入到顺序任务队列, 拷入线程从顺序任务队列获取拷贝数据块写入到目标卷, 如此保证拷贝数据在源卷和目标 卷的排列顺序的一致性 ; 若需要对数据请求进行优先处理, 将请求数据对应的拷贝数据块 作为优先拷贝数据块加入到优先任务队列, 拷入线程优先从优先任务队列获取优先拷贝数 据块写入到目标卷, 从而实现数据冲突情况下的优先拷贝, 并能够保证拷贝数据一致性。 附图说明 0022 图 1 是本发明数据拷贝方法的流程示意图。 0023 图 2 是本发明拷入线程将拷贝数据块写入目标卷的流程。

28、示意图。 0024 图 3 是本发明数据拷贝装置的结构示意图。 具体实施方式 说 明 书 CN 104298609 A 7 4/7 页 8 0025 以下将结合附图所示的具体实施方式对本发明进行详细描述。 0026 图 1 是本发明数据拷贝方法的流程示意图, 如图 1 所示, 包括 : 0027 步骤 11, 网络设备接收拷贝请求, 根据该拷贝请求设置拷贝任务, 以及设置与该拷 贝任务对应的拷出线程、 拷入线程、 顺序任务队列和优先任务队列, 其中拷贝任务包括拷贝 数据信息, 源卷身份标识 (ID, identifi cation) 和目标卷 ID。 0028 在本步骤中, 网络设备接收来自用。

29、户的拷贝请求, 根据该拷贝请求设置拷贝任务, 该拷贝任务包括拷贝数据信息, 源卷 ID 和目标卷 ID, 其中, 拷贝数据信息包括拷贝数据起 始位置和结束位置, 以及将拷贝数据划分为拷贝数据块的基本单位。 0029 网络设备还设置与该拷贝任务对应的拷出线程和拷入线程, 其中, 拷出线程用于 从源卷读出拷贝数据, 拷入线程用于将拷贝数据写入目标卷, 则数据拷贝的过程包括拷出 线程从源卷读出拷贝数据和拷入线程将拷贝数据写入 目标卷。 0030 网络设备还预先在源卷和目标卷之间设置顺序任务队列和优先任务队列, 此外, 网络设备还可以设置该顺序任务队列的存储个数上限和第一间隔时间, 例如设置顺序任务 。

30、队列的存储个数上限为 200, 第一间隔时间为 1ms。 0031 步骤 12, 网络设备根据拷贝任务, 并行启动拷出线程和拷入线程。 0032 在本步骤中, 网络设备可以并行启动拷出线程和拷入线程, 如此, 拷出线程从源卷 读出拷贝数据和拷入线程将拷贝数据写入目标卷可以并行进行, 从而提高数据拷贝的效 率。 0033 步骤 13, 拷出线程根据源卷 ID 查找到源卷, 根据拷贝数据信息确定拷贝数据, 并 将拷贝数据划分为拷贝数据块 ; 拷出线程根据目标卷 ID 查找到目标卷。 0034 在本步骤中, 拷出线程根据源卷 ID 查找到源卷, 根据拷贝数据信息中的拷贝数据 起始位置和结束位置确定拷。

31、贝数据, 并根据拷贝数据信息中的基本单位将拷贝数据划分为 拷贝数据块。 0035 步骤 14, 拷出线程从源卷中读出拷贝数据块。 0036 在本步骤中, 拷出线程可以根据排列顺序从源卷中进行拷贝数据块的读出。 0037 步骤 15, 拷出线程将读出的拷贝数据块加入到顺序任务队列中, 如果拷贝数据块 中存在优先拷贝数据块, 则将该优先拷贝数据块加入到优先任务队列中。 0038 在本步骤中, 拷出线程将拷贝数据块根据读出顺序加入到顺序任务队列中。如果 顺序任务队列中拷贝数据块个数达到存储个数上限, 拷出线程暂停从源卷中读出拷贝数据 块, 因为拷入线程可以并行从顺序任务队列中将拷贝任务块写入到目标卷。

32、, 所以经过第一 间隔时间后, 顺序任务队列的拷贝数据块会在存储个数上限以下, 拷出线程可以再次并行 启动从源卷中读出拷贝数据块加入到顺序任务队列中。 0039 如果在数据拷贝的过程中, 网络设备接收到用户的数据读写请求, 则请求数据需 要优先进行拷贝。 该数据读写请求包括请求数据的起始位置和结束 位置, 根据该请求数据 的起始位置和结束位置, 在拷贝数据块中查找对应的拷贝数据块作为优先拷贝数据块, 并 将优先拷贝数据块加入到优先任务队列中。 0040 步骤 16, 当优先任务队列中有优先拷贝数据块时, 拷入线程从优先任务队列获取 优先拷贝数据块写入目标卷, 并从顺序任务队列获取拷贝数据块写入。

33、目标卷。 0041 本步骤具体可如图 2 所示, 图 2 是本发明拷入线程将拷贝数据块写入目标卷的流 说 明 书 CN 104298609 A 8 5/7 页 9 程示意图, 包括 : 0042 步骤 161, 拷入线程判断优先任务队列是否为空, 如果否, 进入步骤 162 ; 如果是, 进入步骤 163。 0043 步骤 162, 若判断出优先任务队列不为空, 则拷入线程从优先任务队列中获取优先 拷贝数据块, 并将优先拷贝数据块写入目标卷的相应位置。 0044 在本步骤中, 拷贝数据块在源卷和目标卷的排列顺序是一致的, 所以拷入线程从 优先任务队列中获取优先拷贝数据块后, 会将优先拷贝数据块。

34、写入目标卷的相应位置, 从 而能够保证数据冲突情况下的拷贝数据一致性。 0045 步骤 163, 若判断出优先任务队列为空, 拷入线程判断顺序任务队列是否为空, 如 果否, 进入步骤 164 ; 如果是, 进入步骤 165。 0046 步骤 164, 若判断出顺序任务队列不为空, 则拷入线程从顺序任务队列中获取拷贝 数据块, 并分别将拷贝数据块写入目标卷的相应位置。 0047 步骤 165, 若判断出顺序任务队列为空, 拷入线程判断是否所有拷贝数据块都拷贝 完成, 如果否, 进入步骤 166 ; 如果是, 进入步骤 167。 0048 步骤 166, 拷入线程经过第二间隔时间, 返回步骤 16。

35、1。 0049 在本步骤中, 网络设备预先设置第二间隔时间, 例如第二间隔时间为 1ms。 0050 拷出线程和拷入线程对拷贝数据块的处理并不是同速的, 有可能拷入线程将拷贝 数据块写入目标卷的速度比较快, 拷出线程还没有将拷贝数据块加入到优先任务队列或顺 序任务队列中, 出现优先任务队列或顺序任务队列都为空, 但还存在没有拷贝完成的拷贝 数据块, 因此, 在等待的第二间隔时间 内, 拷出线程和拷入线程都不会停止。 拷入线程经过 第二间隔时间后, 返回步骤 161, 直到所有拷贝数据块都拷贝完成。 0051 步骤 167, 停止拷出线程和拷入线程。 0052 在本步骤中, 如果判断出所有拷贝数。

36、据块都拷贝完成, 停止拷出线程和拷入线程, 数据拷贝结束。 0053 步骤 17, 停止拷出线程和拷入线程后, 网络设备删除拷贝任务, 以及和该拷贝任务 对应的拷出线程、 拷入线程、 顺序任务队列和优先任务队列。 0054 本发明通过设置拷出线程和拷入线程, 在进行数据拷贝时, 并行启动拷出线程和 拷入线程, 如此, 拷出线程从源卷读出拷贝数据和拷入线程将拷贝数据写入目标卷可以并 行进行, 从而提高数据拷贝的效率。 0055 此外, 拷出线程和拷入线程之间还设置顺序任务队列和优先任务队列, 拷出线程 将拷贝数据划分为拷贝数据块, 当从源卷中读出拷贝数据块后, 将拷贝数据块加入到顺序 任务队列中。

37、, 拷入线程从顺序任务队列获取拷贝数据块写入到目标卷, 如此, 可以保证拷贝 数据在源卷和目标卷的排列顺序的一致性。值得注意地, 若在接收到数据读写请求需要对 请求数据优先进行拷贝时, 拷入线程根据请求数据将从源卷中读出的相应拷贝数据块作为 优先拷贝数据块加入到优先任务队列, 拷入线程优先从优先任务队列获取优先拷贝数据块 写入到目标卷, 从而实现数据冲突情况下的优先拷贝, 并能够保证拷贝数据一致性。 0056 图 3 是本发明数据拷贝装置的结构示意图, 如图 3 所示, 包括 : 0057 接收模块, 用于接收拷贝请求。 0058 设置模块, 用于根据拷贝请求设置拷贝任务, 以及与该拷贝任务对。

38、应的拷出线程、 说 明 书 CN 104298609 A 9 6/7 页 10 拷入线程、 顺序任务队列和优先任务队列, 其中拷贝任务包括拷贝数据信息, 源卷 ID 和目 标卷 ID。 0059 具体地, 拷贝任务中的拷贝数据信息包括拷贝数据起始位置和结束位置, 以及将 拷贝数据划分为拷贝数据块的基本单位。 0060 设置模块还可以用于分别设置该顺序任务队列和优先任务队列的存储个数上限、 第一间隔时间和第二时间间隔。 0061 启动模块, 用于根据拷贝任务, 并行启动拷出线程和拷入线程。 0062 拷出线程, 用于根据源卷 ID 查找到源卷, 根据拷贝数据信息确定拷贝数据, 并将 拷贝数据划分。

39、为拷贝数据块 ; 从源卷中读出拷贝数据块, 并将读出的拷贝数据块加入到顺 序任务队列中, 如果拷贝数据块中存在优先拷贝数据块, 则将该优先拷贝数据块加入到优 先任务队列中。 0063 具体地, 拷出线程用于根据拷贝数据信息中的拷贝数据起始位置和结束位置确定 拷贝数据, 并根据拷贝数据信息中的基本单位将拷贝数据划分为拷贝数据块。 0064 拷出线程根据排列顺序从源卷中读出拷贝数据块, 并将读出的拷贝数据块加入到 顺序任务队列中, 若顺序任务队列中拷贝数据块个数达到存储个数上限, 拷出线程暂停从 源卷中读出拷贝数据块, 经过设置模块设置的第一间隔时间后, 启动从源卷中读出拷贝数 据块加入到顺序任务。

40、队列中。 0065 如果接收到数据读写请求, 拷出线程根据数据读写请求中请求数据的起始位置和 结束位置, 查找对应的拷贝数据块作为优先拷贝数据块, 并将优先拷贝数据块加入到优先 任务队列中。 0066 拷入线程, 用于根据目标卷 ID 查找到目标卷 ; 在优先任务队列中有优先拷贝数据 块时, 从优先任务队列获取优先拷贝数据块写入目标卷, 并从顺序任务队列获取拷贝数据 块写入目标卷。 0067 具体地, 拷入线程判断优先任务队列是否为空, 如果优先任务队列不为空, 从优先 任务队列中获取优先拷贝数据块写入目标卷的相应位置, 如果优先任务队列为空, 判断顺 序任务队列是否为空 ; 如果顺序任务队列。

41、不为空, 从顺序任务队列中获取拷贝数据块写入 目标卷的相应位置, 如果顺序任务队列为空, 判断是否所有拷贝数据块都拷贝完成 ; 如果还 有未拷贝完成的拷贝数据块, 经过设置模块设置的第二间隔时间后, 再次判断是否所有数 据块都拷贝完成, 如果所有拷贝数据块都拷贝完成, 停止拷出线程和拷入线程, 数据拷贝结 束。 0068 删除模块, 用于停止拷出线程和拷入线程后, 删除拷贝任务, 以及和该拷贝任务对 应的拷出线程、 拷入线程、 顺序任务队列和优先任务队列。 0069 本发明通过设置拷出线程和拷入线程, 在进行数据拷贝时, 拷出线程从源卷读出 拷贝数据和拷入线程将拷贝数据写入目标卷可以并行进行,。

42、 从而提高数据拷贝的效率。此 外, 在拷出线程和拷入线程之间设置顺序任务队列和优先任务队列, 拷出线程将读出拷贝 数据块加入到顺序任务队列, 拷入线程从顺序任务队列获取拷贝数据块写入到目标卷, 如 此保证拷贝数据在源卷和目标卷的排列顺序的一致性 ; 若需要对数据请求进行优先处理, 将请求数据对应的拷贝数据块作为优先拷贝数据块加入到优先任务队列, 拷入线程优先从 优先任务队列获取优先拷贝数据块写入到目标卷, 从而实现数据冲突情况下的优先拷贝, 说 明 书 CN 104298609 A 10 7/7 页 11 并能够保证拷贝数据一致性。 0070 应当理解, 虽然本说明书根据实施方式加以描述, 但。

43、并非每个实施方式仅包含一 个独立的技术方案, 说明书的这种叙述方式仅仅是为清楚起见, 本领域技术人员应当将说 明书作为一个整体, 各实施方式中的技术方案也可以经适当组合, 形成本领域技术人员可 以理解的其他实施方式。 0071 上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说 明, 它们并非用于限制本发明的保护范围, 凡未脱离本发明技艺精神所作的等效实施方式 或变更均应包含在本发明的保护范围之内。 说 明 书 CN 104298609 A 11 1/3 页 12 图 1 说 明 书 附 图 CN 104298609 A 12 2/3 页 13 图 2 说 明 书 附 图 CN 104298609 A 13 3/3 页 14 图 3 说 明 书 附 图 CN 104298609 A 14 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1