[发明专利]一种处理IO请求的方法及装置有效
| 申请号: | 201910199176.7 | 申请日: | 2019-03-15 |
| 公开(公告)号: | CN111694770B | 公开(公告)日: | 2022-12-02 |
| 发明(设计)人: | 夏冲 | 申请(专利权)人: | 杭州宏杉科技股份有限公司 |
| 主分类号: | G06F12/0871 | 分类号: | G06F12/0871 |
| 代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 310053 浙江省杭州市滨江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 处理 io 请求 方法 装置 | ||
本申请提供一种处理IO请求的方法及装置,该方法包括:为指定IO请求分配缓存块;其中,指定IO请求包括写请求和读请求两种类型,指定IO请求中的数据长度不大于本地的缓存块大小;检查是否存在命中同一缓存块的同一类型的至少两个逻辑处理地址连续的指定IO请求;若是,合并指定IO请求得到组合IO请求;对组合IO请求进行处理,以将组合IO请求所指示的数据写入到缓存块中。在本申请中,通过对命中同一缓存块的同类型的逻辑处理地址连续的指定IO请求进行合并,可在多个指定IO请求并行的情况下,避免串行处理导致响应IO请求的时间增加,有效地提高了存储系统的效率。
技术领域
本申请涉及存储领域,特别涉及一种处理IO请求的方法及装置。
背景技术
为提高存储系统的读写性能,通常可为存储系统的LUN(Logical Unit Number,逻辑单元号)分配缓存空间,降低响应前端发起的IO(Input/Output,写入/读取)请求。其中,上述缓存空间包括多个缓存块(Cache块),各缓存块可根据应用环境设定固定大小。
存储设备在处理读请求时,可将读请求所请求的目标数据从磁盘空间读取到缓存空间中,然后返回针对该读请求的目标数据。当存储设备后续接收到读取上述目标数据的读请求时,可直接从缓存空间获取上述目标数据并返回,提高了响应读请求的速度。
存储设备在处理写请求时,可将写请求中的待写入数据写入至缓存空间中,然后返回写入成功消息,提高响应写请求的速度。当然,后续存储设备可从缓存空间中将待写入数据写入至磁盘空间。
在实际应用中,存储设备可能会并发地接收到多个IO请求,且上述IO请求中的数据长度小于一个缓存块大小。在这种情况下,存储设备可能会将多个IO请求分配至同一缓存块,换而言之,多个IO请求命中同一缓存块。此时,存储设备需先后处理命中同一缓存块的多个IO请求。换而言之,存储设备并行接收到多个IO请求后,不同的IO请求命中同一缓存块时变成串行处理,提高了IO请求的响应时长。
发明内容
有鉴于此,本申请提供一种处理IO请求的方法及装置,用以提高基于缓存技术响应IO请求的响应速度。
具体地,本申请是通过如下技术方案实现的:
一种处理IO请求的方法,应用于存储设备,包括:
为指定IO请求分配缓存块;其中,所述指定IO请求包括写请求和读请求两种类型,所述指定IO请求中的数据长度不大于本地的缓存块大小;
检查是否存在命中同一缓存块的同一类型的至少两个逻辑处理地址连续的指定IO请求;其中,每一指定IO请求的逻辑处理地址由该指定IO请求的LUN标识、逻辑起始地址和数据长度确定;
若是,合并所述指定IO请求得到组合IO请求;
对所述组合IO请求进行处理,以将所述组合IO请求所指示的数据写入到缓存块中。
在所述处理IO请求的方法中,在为所述指定IO请求分配缓存块前,所述方法还包括:
接收到前端下发的IO请求,检查所述IO请求中的数据长度是否不大于一个缓存块大小;
若是,则将所述IO请求作为指定IO请求;
若否,则基于缓存块大小将所述IO请求拆分为多个子IO请求,并将各子IO请求作为指定IO请求;
基于所述指定IO请求的逻辑处理地址查找本地缓存表,确定是否存在对应的缓存表项,若不存在对应的缓存表项,执行为所述指定IO请求分配缓存块的步骤。
在所述处理IO请求的方法中,所述方法还包括:
如果存在对应的缓存表项,检查所述缓存表项对应的缓存块是否被占用;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州宏杉科技股份有限公司,未经杭州宏杉科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910199176.7/2.html,转载请声明来源钻瓜专利网。





