一种处理IO请求的方法及装置制造方法及图纸

技术编号:19745024 阅读:34 留言:0更新日期:2018-12-12 04:42
本申请提供一种处理IO请求的方法及装置,该方法包括:接收读请求,确定所述读请求是否命中预设的读缓存表;其中,所述读缓存表记录处理读请求时缓存的有效数据;若未命中所述读缓存表,确定所述读请求是否命中预设的写缓存表;其中,所述写缓存表记录处理写请求时缓存的脏数据;若未命中所述写缓存表,确定所述读请求是否命中预设的临时缓存表;其中,所述临时缓存表记录已写入磁盘空间的脏数据;若命中所述临时缓存表的任一临时缓存表项,从所述临时缓存表项对应的缓存块中获取并返回待读取数据。在本申请中,存储设备可以更有效地利用缓存空间,提高了存储系统的性能。

【技术实现步骤摘要】
一种处理IO请求的方法及装置
本申请涉及存储领域,特别涉及一种处理IO请求的方法及装置。
技术介绍
在存储系统中,用户或应用程序访问LUN(LogicalUnitNumber,逻辑单元号)来读写数据,而数据存储的物理介质为磁盘。当存储设备接收到针对任一LUN的IO(Input/Output,输入/输出)请求,会将数据写入至磁盘或从磁盘读取数据。由于从磁盘中读写数据的速度较慢,可以为各LUN分配缓存空间,利用缓存技术来提高处理IO请求的响应速度,进而提高存储系统的性能。在相关技术中,可以为每一LUN分配读缓存空间和写缓存空间。其中,读缓存空间中保存了从磁盘读取到的有效数据,有效数据为磁盘中数据的备份;写缓存空间中保存了脏数据,脏数据为处理写请求时缓存的待写入数据,后续会被写入到磁盘。当存储设备接收到读请求,可以在读缓存空间中查找是否存在待读取数据,若不存在,则可以进一步在写缓存空间中查找是否存在待读取数据。通过上述措施,存储设备可以减少从磁盘中读取数据,提高了处理读请求的响应速度。然而,在相关技术中,当写缓存空间中的脏数据写入到磁盘之后,脏数据所在的缓存空间就被释放。即使被释放的缓存空间中暂无新的数据写入,原有的脏数据也无法用于响应读请求,降低了存储系统的性能。
技术实现思路
有鉴于此,本申请提供一种处理IO请求的方法及装置,用于合理地使用缓存空间,从而更有效的提升存储系统的性能。具体地,本申请是通过如下技术方案实现的:一种处理IO请求的方法,应用于存储设备,包括:接收读请求,确定所述读请求是否命中预设的读缓存表的任一读缓存表项;其中,所述读缓存表记录处理读请求时缓存的有效数据;若未命中任一读缓存表项,确定所述读请求是否命中预设的写缓存表的任一写缓存表项;其中,所述写缓存表记录处理写请求时缓存的脏数据;若未命中任一写缓存表项,确定所述读请求是否命中预设的临时缓存表的任一临时缓存表项;其中,所述临时缓存表记录已写入磁盘空间的脏数据;若命中任一临时缓存表项,从所述临时缓存表项对应的缓存块中获取并返回待读取数据。一种处理IO请求的装置,应用于存储设备,包括:第一确定单元,用于接收读请求,确定所述读请求是否命中预设的读缓存表的任一读缓存表项;其中,所述读缓存表记录处理读请求时缓存的有效数据;第二确定单元,用于若未命中任一读缓存表项,确定所述读请求是否命中预设的写缓存表的任一写缓存表项;其中,所述写缓存表记录处理写请求时缓存的脏数据;第三确定单元,用于若未命中任一写缓存表项,确定所述读请求是否命中预设的临时缓存表的任一临时缓存表项;其中,所述临时缓存表记录已写入磁盘空间的脏数据;处理单元,用于若命中任一临时缓存表项,从所述临时缓存表项对应的缓存块中获取并返回待读取数据。在本申请实施例中,存储设备预配置临时缓存表,用于记录写入到磁盘空间的脏数据;因此,当接收到读请求,确定该读请求未命中读缓存表和写缓存表以后,可以进一步判断该读请求是否命中上述临时缓存表,并在命中上述临时缓存表的任一临时缓存表项时,从该临时缓存表项对应的缓存块中获取并返回待读取数据;由于可以通过临时缓存表记录已写入到磁盘空间的脏数据,当写缓存空间中的脏数据被写入到磁盘后,其中的脏数据仍可用于响应读请求;因此,存储设备可以更有效地利用缓存空间,提高了存储设备响应速度,提高了存储系统的性能。附图说明图1是本申请示出的一种处理读请求的示意图;图2是本申请示出的一种处理IO请求的方法的流程图;图3是本申请示出的一种处理读请求的流程图;图4是本申请示出的一种处理写请求的流程图;图5是本申请示出的一种处理IO请求的装置的实施例框图;图6是本申请示出的一种处理IO请求的装置的硬件结构图。具体实施方式为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本专利技术实施例中的技术方案作进一步详细的说明。存储设备的每一LUN都被分配读缓存空间和写缓存空间。其中,读缓存空间中写入了从磁盘读取到的有效数据,写缓存空间写入了脏数据。存储设备可以基于预设策略,将写缓存空间中的脏数据写入到磁盘空间中。比如:周期性将写缓存空间中的脏数据写入到磁盘空间;或者,当写缓存空间的数据量达到预设阈值后,将脏数据写入到磁盘空间。存储设备将写缓存空间中的脏数据写入到磁盘空间后,可以释放写缓存空间,从而在接收到新的写请求后,将写请求中的待写入数据写入至写缓存空间。其中,写入至写缓存空间的待写入数据即为脏数据。参见图1,为本申请示出的一种处理读请求的示意图。存储设备接收到针对任一LUN的读请求后,可分为三种情况。一方面,参见图1中的A示意图,若存储设备可以在分配至上述LUN的读缓存空间中查到该读请求所请求的待读取数据,则存储设备可以直接从读缓存空间中获取上述待读取数据,并向发送上述读请求的设备或服务返回上述待读取数据。另一方面,参见图1中的B示意图,若存储设备无法在读缓存空间中查找到该读请求所请求的待读取数据,则可以在分配至上述LUN的写缓存空间中查找该读请求所请求的待读取数据。若在写缓存空间查找上述待读取数据,则可以从写缓存空间中获取上述待读取数据,并向发送上述读请求的设备或服务返回上述待读取数据。又一方面,参见图1中的C示意图,若存储设备无法从分配至上述LUN的读缓存空间或写缓存空间中查到该读请求所请求的待读取数据,则可从磁盘空间获取上述待读取数据,并向发送上述读请求的设备或服务返回上述待读取数据。在这种情况下,存储设备可以将上述待读取数据缓存至读缓存空间中,使得后续接收到获取上述待读取数据的读请求时,可以更快地响应读请求。在现有技术中,当写缓存空间中的脏数据写入到磁盘空间之后,脏数据所在的缓存空间就被释放。即使被释放的缓存空间中暂无新的数据写入,原有的脏数据也无法用于响应读请求,降低了存储系统的性能。有鉴于此,在本申请技术方案中,通过临时缓存表记录写缓存空间中已经写入到磁盘空间的脏数据,从而在接收到读请求后,可以在临时缓存表中查找待读取数据;由于将已写入磁盘空间的脏数据用于响应读请求,有效提高了缓存空间的使用效果,提高了存储系统的性能。参见图2,为本申请示出的一种处理IO请求的方法的流程图,该方法应用于存储设备,包括以下步骤:步骤201:接收读请求,确定所述读请求是否命中预设的读缓存表的任一读缓存表项;其中,所述读缓存表记录处理读请求时缓存的有效数据。存储设备上预配置读缓存表、写缓存表和临时缓存表。上述三个缓存表均包括LUN标识、逻辑地址(LBA,LogicalBlockAddress)和缓存块标识的映射关系,其中,缓存块标识可以是缓存块的物理地址(PBA,PhysicsBlockAddress)。存储设备的每一LUN都被分配读缓存空间和写缓存空间。其中,读缓存空间中写入了从磁盘读取到的有效数据,由读缓存表记录读缓存空间中写入的数据;写缓存空间中写入了处理写请求时保存的脏数据和已写入磁盘空间的脏数据,由写缓存表记录处理写请求时保存的脏数据,由临时缓存表记录已写入磁盘空间的脏数据。当然,存储设备上还包括其它用于管理数据的元数据。比如说,存储设备上还可以包括逻辑地址映射表,该逻辑地址映射表包括LUN标识、本文档来自技高网
...

【技术保护点】
1.一种处理IO请求的方法,应用于存储设备,其特征在于,包括:接收读请求,确定所述读请求是否命中预设的读缓存表的任一读缓存表项;其中,所述读缓存表记录处理读请求时缓存的有效数据;若未命中任一读缓存表项,确定所述读请求是否命中预设的写缓存表的任一写缓存表项;其中,所述写缓存表记录处理写请求时缓存的脏数据;若未命中任一写缓存表项,确定所述读请求是否命中预设的临时缓存表的任一临时缓存表项;其中,所述临时缓存表记录已写入磁盘空间的脏数据;若命中任一临时缓存表项,从所述临时缓存表项对应的缓存块中获取并返回待读取数据。

【技术特征摘要】
1.一种处理IO请求的方法,应用于存储设备,其特征在于,包括:接收读请求,确定所述读请求是否命中预设的读缓存表的任一读缓存表项;其中,所述读缓存表记录处理读请求时缓存的有效数据;若未命中任一读缓存表项,确定所述读请求是否命中预设的写缓存表的任一写缓存表项;其中,所述写缓存表记录处理写请求时缓存的脏数据;若未命中任一写缓存表项,确定所述读请求是否命中预设的临时缓存表的任一临时缓存表项;其中,所述临时缓存表记录已写入磁盘空间的脏数据;若命中任一临时缓存表项,从所述临时缓存表项对应的缓存块中获取并返回待读取数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:从所述写缓存表选择若干写缓存表项;将选中的写缓存表项记录的脏数据写入至磁盘空间;将选中的写缓存表项转移至所述临时缓存表中。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收写请求,确定所述写请求是否命中所述读缓存表的任一读缓存表项;若未命中任一读缓存表项,确定所述写请求是否命中所述写缓存表的任一写缓存表项;若未命中任一写缓存表项,确定所述写请求是否命中所述临时缓存表的任一临时缓存表项;若命中任一临时缓存表项,将所述写请求中的待写入数据写入至所述临时缓存表项对应的缓存块,并将所述临时缓存表项转移至所述写缓存表中。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:若命中所述读缓存表的任一读缓存表项,删除所述读缓存表项;选择空闲的缓存块,并将所述写请求中的待写入数据写入至所述缓存块;为所述缓存块生成对应的写缓存表项,并将所述写缓存表项添加至所述写缓存表。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:若命中所述写缓存表的任一写缓存表项,将所述写请求中的待写入数据写入至所述写缓存表项对应的缓...

【专利技术属性】
技术研发人员:李丰
申请(专利权)人:杭州宏杉科技股份有限公司
类型:发明
国别省市:浙江,33

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

1