[发明专利]一种对输入输出请求进行拆分的方法及装置有效
申请号: | 201510524313.1 | 申请日: | 2015-08-24 |
公开(公告)号: | CN105117282B | 公开(公告)日: | 2018-09-14 |
发明(设计)人: | 王佳;孟宪伟;王倩 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F3/06 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 解婷婷;曲鹏 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 输入输出 请求 进行 拆分 方法 装置 | ||
本发明公开了一种对输入输出请求进行拆分的方法及装置,所述方法包括:接收应用层下发的IO请求;针对不同的业务应用,获取业务操作的块大小;根据IO请求对应的IO数据的长度以及所述业务操作的块大小,对所述IO请求进行拆分,使拆分后的每个IO请求对应到一个单独的块。本发明在插件层之上(即公共层)建立一套IO拆分机制,能够使插件层不需要关注IO是否跨块(chunk),插件层可见的IO大小(iosize)均小于等于chunksize,从而降低灾备插件层的复杂性和冗余度,维护多插件间的一致性;并且,不需要添加其他空间缓存或备份原IO数据;可以满足所有IO模式下的拆分,且拆分颗粒度随chunksize可变。
技术领域
本发明涉及存储技术,尤指一种对输入输出请求进行拆分的方法及装置。
背景技术
随着计算机技术的快速发展,数字化信息已经逐步取代纸媒数据,呈现日均指数级增长。海量数据催生了云计算、大数据和海量存储系统的发展,对存储设备和存储应用的需求也越来越高。政府行业、银行系统、电力企业等对数据的安全性和业务连续性有着较高的要求。高端存储系统的灾备特性也越来越重要。
在存储数据层的灾备插件包括克隆、快照、远程复制。三个插件均需要对不同模式输入输出IO进行相应灾备特性的数据处理。同时,针对不同业务应用(数据库或文件系统),灾备关系操作的块大小(chunksize)应最大化适应业务可变。
发明内容
为了解决上述技术问题,本发明提供了一种对输入输出请求进行拆分的方法及装置,能够降低插件层的复杂性及冗余性,维护数据的一致性。
为了达到本发明目的,本发明提供了一种对输入输出请求进行拆分的方法,包括:
接收应用层下发的输入输出IO请求;
针对不同的业务应用,获取业务操作的块大小;
根据IO请求对应的IO数据的长度以及所述业务操作的块大小,对所述IO请求进行拆分,使拆分后的每个IO请求对应到一个单独的块。
进一步地,所述根据IO请求对应的IO数据的长度以及所述业务操作的块大小,对IO请求进行拆分,包括:
如果当前的IO请求对应的IO数据的长度在当前的块容纳的长度范围内,则不对当前的IO请求进行拆分。
进一步地,所述根据IO请求对应的IO数据的长度以及所述业务操作的块大小,对IO请求进行拆分,包括:
如果当前的IO请求对应的IO数据的长度超出当前的块容纳的长度且当前的块能够容纳当前的IO请求的至少一个页向量参数bio_vec指示的IO数据的长度,则以bio_vec指示的IO数据的长度为单位,将当前的块容纳的IO数据作为当前IO请求的IO数据,将当前的块未容纳的IO数据作为下一个IO请求的IO数据。
进一步地,所述根据IO请求对应的IO数据的长度以及所述业务操作的块大小,对IO请求进行拆分,包括:
如果当前的IO请求对应的IO数据的长度超出当前的块容纳的长度且当前的块仅能容纳当前的IO请求的首个bio_vec指示的部分长度的IO数据,则将当前的块容纳的首个bio_vec指示的部分长度的IO数据作为当前IO请求的IO数据,将当前的块未容纳的首个bio_vec指示的剩余长度的IO数据作为下一个IO请求的IO数据,将当前的块未容纳的当前的IO请求的其他bio_vec指示的IO数据作为再下一个IO请求的IO数据。
进一步地,所述根据IO请求对应的IO数据的长度以及所述业务操作的块大小,对IO请求进行拆分,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510524313.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:新型管内保氮管路
- 下一篇:一种电力SF6互感器带电智能补气装置