一种对输入输出请求进行拆分的方法及装置的制造方法

文档序号:9396748阅读:279来源:国知局
一种对输入输出请求进行拆分的方法及装置的制造方法
【技术领域】
[0001]本发明涉及存储技术,尤指一种对输入输出请求进行拆分的方法及装置。
【背景技术】
[0002]随着计算机技术的快速发展,数字化信息已经逐步取代纸媒数据,呈现日均指数级增长。海量数据催生了云计算、大数据和海量存储系统的发展,对存储设备和存储应用的需求也越来越高。政府行业、银行系统、电力企业等对数据的安全性和业务连续性有着较高的要求。高端存储系统的灾备特性也越来越重要。
[0003]在存储数据层的灾备插件包括克隆、快照、远程复制。三个插件均需要对不同模式输入输出1进行相应灾备特性的数据处理。同时,针对不同业务应用(数据库或文件系统),灾备关系操作的块大小(chunksize)应最大化适应业务可变。

【发明内容】

[0004]为了解决上述技术问题,本发明提供了一种对输入输出请求进行拆分的方法及装置,能够降低插件层的复杂性及冗余性,维护数据的一致性。
[0005]为了达到本发明目的,本发明提供了一种对输入输出请求进行拆分的方法,包括:
[0006]接收应用层下发的输入输出1请求;
[0007]针对不同的业务应用,获取业务操作的块大小;
[0008]根据1请求对应的1数据的长度以及所述业务操作的块大小,对所述1请求进行拆分,使拆分后的每个1请求对应到一个单独的块。
[0009]进一步地,所述根据1请求对应的1数据的长度以及所述业务操作的块大小,对1请求进行拆分,包括:
[0010]如果当前的1请求对应的1数据的长度在当前的块容纳的长度范围内,则不对当前的1请求进行拆分。
[0011]进一步地,所述根据1请求对应的1数据的长度以及所述业务操作的块大小,对1请求进行拆分,包括:
[0012]如果当前的1请求对应的1数据的长度超出当前的块容纳的长度且当前的块能够容纳当前的1请求的至少一个页向量参数b1_vec指示的1数据的长度,则以b1_vec指示的1数据的长度为单位,将当前的块容纳的1数据作为当前1请求的1数据,将当前的块未容纳的1数据作为下一个1请求的1数据。
[0013]进一步地,所述根据1请求对应的1数据的长度以及所述业务操作的块大小,对1请求进行拆分,包括:
[0014]如果当前的1请求对应的1数据的长度超出当前的块容纳的长度且当前的块仅能容纳当前的1请求的首个b1_vec指示的部分长度的1数据,则将当前的块容纳的首个b1_vec指示的部分长度的1数据作为当前1请求的1数据,将当前的块未容纳的首个b1_vec指示的剩余长度的1数据作为下一个1请求的1数据,将当前的块未容纳的当前的1请求的其他b1_vec指示的1数据作为再下一个1请求的1数据。
[0015]进一步地,所述根据1请求对应的1数据的长度以及所述业务操作的块大小,对1请求进行拆分,包括:
[0016]如果当前的1请求对应的1数据的长度超出当前的块容纳的长度且当前的块仅能容纳当前的1请求的首个b1_vec指示的部分长度的1数据,则将当前的块容纳的首个b1_vec指示的部分长度的1数据作为当前1请求的1数据,将当前的块未容纳的首个b1_vec指示的剩余长度的1数据以及当前的块未容纳的当前的1请求的其他b1_vec指示的1数据作为下一个1请求的1数据。
[0017]进一步地,一种对输入输出请求进行拆分的装置,包括:接收单元、获取单元和拆分单元,其中:
[0018]所述接收单元,用于接收应用层下发的输入输出1请求;
[0019]所述获取单元,用于针对不同的业务应用,获取业务操作的块大小;
[0020]所述拆分单元,用于根据1请求对应的1数据的长度以及所述业务操作的块大小,对所述1请求进行拆分,使拆分后的每个1请求对应到一个单独的块。
[0021]进一步地,所述拆分单元根据1请求对应的1数据的长度以及所述业务操作的块大小,对1请求进行拆分,包括:
[0022]如果当前的1请求对应的1数据的长度在当前的块容纳的长度范围内,则不对当前的1请求进行拆分。
[0023]进一步地,所述拆分单元根据1请求对应的1数据的长度以及所述业务操作的块大小,对1请求进行拆分,包括:
[0024]如果当前的1请求对应的1数据的长度超出当前的块容纳的长度且当前的块能够容纳当前的1请求的至少一个页向量参数b1_vec指示的1数据的长度,则以b1_vec指示的1数据的长度为单位,将当前的块容纳的1数据作为当前1请求的1数据,将当前的块未容纳的1数据作为下一个1请求的1数据。
[0025]进一步地,所述拆分单元根据1请求对应的1数据的长度以及所述业务操作的块大小,对1请求进行拆分,包括:
[0026]如果当前的1请求对应的1数据的长度超出当前的块容纳的长度且当前的块仅能容纳当前的1请求的首个b1_vec指示的部分长度的1数据,则将当前的块容纳的首个b1_vec指示的部分长度的1数据作为当前1请求的1数据,将当前的块未容纳的首个b1_vec指示的剩余长度的1数据作为下一个1请求的1数据,将当前的块未容纳的当前的1请求的其他b1_vec指示的1数据作为再下一个1请求的1数据。
[0027]进一步地,所述拆分单元根据1请求对应的1数据的长度以及所述业务操作的块大小,对1请求进行拆分,包括:
[0028]如果当前的1请求对应的1数据的长度超出当前的块容纳的长度且当前的块仅能容纳当前的1请求的首个b1_vec指示的部分长度的1数据,则将当前的块容纳的首个b1_vec指示的部分长度的1数据作为当前1请求的1数据,将当前的块未容纳的首个b1_vec指示的剩余长度的1数据以及当前的块未容纳的当前的1请求的其他b1_vec指示的1数据作为下一个1请求的1数据。
[0029]与现有技术相比,本发明包括接收应用层下发的1请求;针对不同的业务应用,获取业务操作的块大小;根据1请求对应的1数据的长度以及所述业务操作的块大小,对所述1请求进行拆分,使拆分后的每个1请求对应到一个单独的块。本发明在插件层之上(即公共层)建立一套1拆分机制,能够使插件层不需要关注1是否跨块(chunk),插件层可见的1大小(1size)均小于等于chunksize,从而降低灾备插件层的复杂性和冗余度,维护多插件间的一致性;并且,不需要添加其他空间缓存或备份原1数据;可以满足所有1模式下的拆分,且拆分颗粒度随chunksize可变。
[0030]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0031]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0032]图1为本发明的对输入输出请求进行拆分的方法的流程图;
[0033]图2为本发明的1请求拆分原理的示意图;
[0034]图3为本发明实施例中灾备模块的整体架构图;
[0035]图4为本发明的对输入输出请求进行拆分的装置的架构图。
【具体实施方式】
[0036]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0037]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0038]如图1所示,本发明的对输入输出请求进行拆分的方法,包括:
[0039]步骤101:接收应用层下发的1请求;
[0040]步骤102:针对不同的业务应用
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1