CN118312102A - Io请求处理方法、装置、存储设备及存储介质 - Google Patents
Io请求处理方法、装置、存储设备及存储介质 Download PDFInfo
- Publication number
- CN118312102A CN118312102A CN202410483251.3A CN202410483251A CN118312102A CN 118312102 A CN118312102 A CN 118312102A CN 202410483251 A CN202410483251 A CN 202410483251A CN 118312102 A CN118312102 A CN 118312102A
- Authority
- CN
- China
- Prior art keywords
- request
- target
- data
- cache
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 160
- 238000003672 processing method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 115
- 238000000034 method Methods 0.000 claims abstract description 84
- 230000008569 process Effects 0.000 claims abstract description 47
- 238000005457 optimization Methods 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 34
- 238000013403 standard screening design Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及IO请求处理技术领域,具体涉及IO请求处理方法、装置、存储设备及存储介质。应用于目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,方法包括:获取目标IO请求;对目标IO请求进行识别,确定目标IO请求对应的请求类型;根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理。核心设备主要用于存储大容量的数据,缓存设备主要用于加速访问和提供更快的读写速度,提高了IO请求处理效率,根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理,对目标存储设备对IO请求的处理方法进行了优化,从而可以保证对目标IO请求进行处理的效率。
Description
技术领域
本发明涉及IO请求处理技术领域,具体涉及IO请求处理方法、装置、存储设备及存储介质。
背景技术
缓存技术是决定存储***性能的重要因素之一,该技术通过在缓存层部署读写性能高的设备,同时利用I/O负载中普遍存在的时空局部性来降低慢速磁盘I/O对***性能的影响。
常见的存储***会使用内存缓存来加速对频繁访问的数据的读取和写入操作。通过将数据缓存在内存中,可以大大缩短数据访问时间,提高***的性能和响应速度。
但是,将小容量的高性能存储设备作为缓存区,因此存在缓存区容量与数据源设备容量不对称的问题,因此,导致存储设备性能大大降低。
发明内容
有鉴于此,本发明提供了一种IO请求处理方法、装置、存储设备及存储介质,以解决如何提高存储设备性能的问题。
第一方面,本发明提供了一种IO请求处理方法,应用于目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,方法包括:
获取目标IO请求;
对目标IO请求进行识别,确定目标IO请求对应的请求类型,请求类型包括顺序访问类型和随机访问类型;
根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理。
本申请实施例提供的IO请求处理方法,应用于目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,从而使得目标存储设备可以提供高性能、低时延的缓存加速。获取目标IO请求;对目标IO请求进行识别,确定目标IO请求对应的请求类型,保证了确定的目标IO请求对应的请求类型的准确性。根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理,从而保证了确定的利用缓存设备或核心设备对目标IO请求进行处理的结果的准确性。上述方法中,目标存储设备中的核心设备主要用于存储大容量的数据,缓存设备主要用于加速访问和提供更快的读写速度,提高了IO请求处理效率,但是如果所有的IO请求均基于缓存设备或者核心设备进行处理,也会导致对IO请求进行处理的处理效率下降。上述方法,对目标存储设备对IO请求的处理方法进行优化,根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理,从而可以保证对目标IO请求进行处理的效率。
在一种可选的实施方式中,根据目标IO请求对应的请求类型,确定基于缓存设备或核心设备对目标IO请求进行处理,包括:
若目标IO请求对应的请求类型为顺序访问类型,则获取缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量;
根据第一未处理IO请求的数量,确定是否启动顺序读写优化策略;顺序读写优化策略为将目标IO请求添加至核心设备对应的第二消息队列,以基于核心设备对目标IO请求进行处理;
根据是否启动顺序读写优化策略的结果,确定基于缓存设备或核心设备对目标IO请求进行处理。
本申请实施例提供的IO请求处理方法,若目标IO请求对应的请求类型为顺序访问类型,则获取缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量。根据第一未处理IO请求的数量,确定是否启动顺序读写优化策略;保证了确定的是否启动顺序读写优化策略结果的准确性。根据是否启动顺序读写优化策略的结果,确定基于缓存设备或核心设备对目标IO请求进行处理,保证了确定的基于缓存设备或核心设备对目标IO请求进行处理的结果的准确性,避免了缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量过大的情况下,还是基于缓存设备对目标IO请求进行处理,从而导致了对目标IO请求进行处理的效率较低。
在一种可选的实施方式中,根据第一未处理IO请求的数量,确定是否启动顺序读写优化策略,包括:
将第一未处理IO请求的数量与预设数量阈值进行对比;
若第一未处理IO请求的数量大于或者等于预设数量阈值,则开启顺序读写优化策略;
若未处理IO请求的数量小于预设数量阈值,则不开启顺序读写优化策略,将目标IO请求添加至缓存设备对应的第一消息队列,以基于缓存设备对目标IO请求进行处理。
本申请实施例提供的IO请求处理方法,将第一未处理IO请求的数量与预设数量阈值进行对比。若第一未处理IO请求的数量大于或者等于预设数量阈值,则开启顺序读写优化策略;顺序读写优化策略为将目标IO请求添加至核心设备对应的第二消息队列,以基于核心设备对目标IO请求进行处理,不再将缓存设备进行处理,进而可以避免缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量过大的情况下,还是基于缓存设备对目标IO请求进行处理,从而导致了对目标IO请求进行处理的效率较低。这样可以避免缓存的额外开销和延迟,且开始顺序读写优化策略显著提高读写性能,尤其是在大量顺序读写操作时,提升效果更为明显。若未处理IO请求的数量小于预设数量阈值,则将目标IO请求添加至缓存设备对应的第一消息队列,以基于缓存设备对目标IO请求进行处理。实现了在缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量不大的情况下,基于缓存设备对目标IO请求进行处理,从而提高了对目标IO请求进行处理的效率。
在一种可选的实施方式中,根据目标IO请求对应的请求类型,确定基于缓存设备或核心设备对目标IO请求进行处理,包括:
若目标IO请求对应的请求类型为随机访问类型,则对目标IO请求进行识别,确定目标IO请求对应的目标数据的数据量;
根据目标数据的数据量,确定基于缓存设备或核心设备对目标IO请求进行处理。
本申请实施例提供的IO请求处理方法,若目标IO请求对应的请求类型为随机访问类型,则对目标IO请求进行识别,确定目标IO请求对应的目标数据的数据量,保证了确定的目标IO请求对应的目标数据的数据量的准确性。根据目标数据的数据量,确定基于缓存设备或核心设备对目标IO请求进行处理,保证了确定的基于缓存设备或核心设备对目标IO请求进行处理的结果的准确性。
在一种可选的实施方式中,根据目标数据的数据量,确定基于缓存设备或核心设备对目标IO请求进行处理,包括:
将目标数据的数据量与第一预设数据量阈值进行对比;
若目标数据的数据量大于或者等于第一预设数据量阈值,则确定基于核心设备对目标IO请求进行处理;
若目标数据的数据量小于第一预设数据量阈值,则确定基于缓存设备对目标IO请求进行处理。
本申请实施例提供的IO请求处理方法,将目标数据的数据量与第一预设数据量阈值进行对比,可以保证根据对比结果,确定的基于缓存设备或核心设备对目标IO请求进行处理的结果的准确性。若目标数据的数据量大于或者等于第一预设数据量阈值,则确定基于核心设备对目标IO请求进行处理,可以避免缓存资源的浪费和性能下降;若目标数据的数据量小于第一预设数据量阈值,则确定基于缓存设备对目标IO请求进行处理,可以更快地响应目标IO请求,提高读取和写入的速度,从而实现了提高对目标IO请求进行处理的效率。此外,根据目标数据的数据量对目标IO请求进行分类处理,具有一定的灵活性和适应性,可以更好地优化***的性能。
在一种可选的实施方式中,若目标IO请求对应的请求类型为随机访问类型,方法还包括:
中断顺序读写优化策略,并检测核心设备对应的第二消息队列中是否存在第二未处理IO请求;
若第二消息队列中存在第二未处理IO请求,则将第二未处理IO请求添加至缓存设备对应的第一消息队列中。
本申请实施例提供的IO请求处理方法,中断顺序读写优化策略,并检测核心设备对应的第二消息队列中是否存在第二未处理IO请求;若第二消息队列中存在第二未处理IO请求,则将第二未处理IO请求添加至缓存设备对应的第一消息队列中,避免影响目标IO请求的性能,以及对目标IO请求处理造成错误。
在一种可选的实施方式中,方法还包括:
获取缓存设备对应的缓存使用量;
将缓存使用量与预设缓存使用量阈值进行对比;
若缓存使用量大于或者等于预设缓存使用量阈值,则获取历史IO请求对各历史数据进行处理的处理次数;
将各历史数据对应的处理次数与预设处理次数阈值进行对比;
从各历史数据中确定处理次数小于或者等于预设处理次数阈值的候选历史数据;
获取各候选历史数据对应的数据量大小;
将各候选历史数据对应的数据量大小与第二预设数据量阈值进行对比;
从各候选历史数据中选择数据量大小大于第二预设数据量阈值的目标历史数据;
将目标历史数据从缓存设备存储至核心设备。
本申请实施例提供的IO请求处理方法,获取缓存设备对应的缓存使用量;将缓存使用量与预设缓存使用量阈值进行对比,若缓存使用量大于或者等于预设缓存使用量阈值,则获取历史IO请求对各历史数据进行处理的处理次数,从而可以保证获取到的历史IO请求对各历史数据进行处理的处理次数的准确性。将各历史数据对应的处理次数与预设处理次数阈值进行对比;从各历史数据中确定处理次数小于或者等于预设处理次数阈值的候选历史数据,保证了确定的候选历史数据是处理次数较少的历史数据,从而可以避免清理被频繁访问的历史数据,以免影响***的性能和响应时间。然后,获取各候选历史数据对应的数据量大小;将各候选历史数据对应的数据量大小与第二预设数据量阈值进行对比;从各候选历史数据中选择数据量大小大于第二预设数据量阈值的目标历史数据;将目标历史数据从缓存设备存储至核心设备,从而可以保证将目标历史数据从缓存设备存储至核心设备之后,缓存设备对应的缓存使用量可以降低的多一点,进而可以保持缓存设备对应的缓存使用量在一个可接受的范围内,并且保证后续的读取操作时能够从缓存设备中获取到最新的数据。
第二方面,本发明提供了一种IO请求处理装置,应用于目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,装置包括:
第一获取模块,用于获取目标IO请求;
第一确定模块,用于对目标IO请求进行识别,确定目标IO请求对应的请求类型,请求类型包括顺序访问类型和随机访问类型;
第二确定模块,用于根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理。
本申请实施例提供的IO请求处理装置,应用于目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,从而使得目标存储设备可以提供高性能、低时延的缓存加速。获取目标IO请求;对目标IO请求进行识别,确定目标IO请求对应的请求类型,保证了确定的目标IO请求对应的请求类型的准确性。根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理,从而保证了确定的利用缓存设备或核心设备对目标IO请求进行处理的结果的准确性。上述装置中,目标存储设备中的核心设备主要用于存储大容量的数据,缓存设备主要用于加速访问和提供更快的读写速度,提高了IO请求处理效率,但是如果所有的IO请求均基于缓存设备或者核心设备进行处理,也会导致对IO请求进行处理的处理效率下降。上述装置,对目标存储设备对IO请求的处理方法进行优化,根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理,从而可以保证对目标IO请求进行处理的效率。
第三方面,本发明提供了一种存储设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的IO请求处理方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的IO请求处理方法。
第五方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的IO请求处理方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的IO请求处理方法中目标存储设备的架构示意图;
图2是根据本发明实施例的IO请求处理方法的流程示意图;
图3是根据本发明实施例的另一IO请求处理方法的流程示意图;
图4是根据本发明实施例的又一IO请求处理方法的流程示意图;
图5是根据本发明实施例的IO请求处理装置的结构框图;
图6是根据本发明实施例的另一IO请求处理装置的结构框图;
图7是本发明实施例的存储设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
缓存技术是决定存储***性能的重要因素之一,该技术通过在缓存层部署读写性能高的设备,同时利用I/O负载中普遍存在的时空局部性来降低慢速磁盘I/O对***性能的影响。
常见的存储***会使用内存缓存来加速对频繁访问的数据的读取和写入操作。通过将数据缓存在内存中,可以大大缩短数据访问时间,提高***的性能和响应速度。
但是,将小容量的高性能存储设备作为缓存区,因此存在缓存区容量与数据源设备容量不对称的问题,因此,导致存储性能大大降低。
CAS(Cache Acceleration Software,缓存加速软件)是由Intel发起的开源缓存加速解决方案。其是一种提供高性能、低时延的缓存工具。通过和内存的交互管理建立多层次的缓存,来优化***内存的使用,同时也能够自动根据数据本身特性去确定最好的缓存分配。
CAS目前已经在业界广泛应用,能够以很小的额外成本,通过使用更高性能的存储设备显著提升后端块存储的I/O性能。即将高性能缓存盘(缓存设备)和大容量存储盘(核心设备)绑定生成新的设备分区,当对新的设备分区读写时,可利用高性能缓存盘提高读写性能,降低读写时延。由Intel提出的SPDK是存储性能开发工具包,其集成CAS功能,引进了一个新的OCF cache模块。OCF在SPDK中作为一个virtual bdev,可以用不同的后端bdev作为核心设备和缓存设备。
Ceph是一种广泛使用的分布式存储解决方案,旨在提高***的高可用性、高扩展性和容错等能力。在不同的配置环境中,Ceph的性能差异很大,对于各种类型的工作负载,性能要求也不同。生产环境中的群集都是部署在物理硬盘上。基于成本考虑,常用的一种分布式集群配置是将HDD用作BlueStore的数据分区,而操作频繁的元数据部署在SSD上。但由于HDD的随机访问受磁头寻道时间的限制,与SSD相比,导致随机访问的性能大大下降。
基于此本申请实施例提供了一种IO请求处理方法,应用于目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,方法包括:获取目标IO请求;对目标IO请求进行识别,确定目标IO请求对应的请求类型,请求类型包括顺序访问类型和随机访问类型;根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理。目标存储设备中的核心设备主要用于存储大容量的数据,缓存设备主要用于加速访问和提供更快的读写速度,提高了IO请求处理效率,但是如果所有的IO请求均基于缓存设备或者核心设备进行处理,也会导致对IO请求进行处理的处理效率下降。上述方法,对目标存储设备对IO请求的处理方法进行优化,根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理,从而可以保证对目标IO请求进行处理的效率。
需要说明的是,本申请实施例提供的IO请求处理的方法,其执行主体可以是IO请求处理的装置,该IO请求处理的装置可以通过软件、硬件或者软硬件结合的方式实现成为存储设备的部分或者全部,其中,该存储设备可以是服务器或者终端,其中,本申请实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是电子设备为例来进行说明。
根据本发明实施例,提供了一种IO请求处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种IO请求处理方法,可用于上述的目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,在介绍本申请实施例提供的IO请求处理方法之前,本申请实施例先介绍一下本申请实施例中目标存储设备的结构。如图1所示,图1中的OSD可以为目标存储设备。目标存储设备的数据交互设备中可以包括核心设备和缓存设备,其中,HDD作为core device(核心设备),NVMe SSD作为cache device(缓存设备)。选择另外的SSD作为元数据的存储设备。其中,需要说明的是,目标存储设备可以是Ceph(Ceph存储)分布式存储***中的一个节点。
需要说明的是,在分布式存储集群中,可以通过以下步骤将HDD和NVMe SSD组合为新的CAS(Cache Acceleration Software)设备,并用于BlueStore的数据分区:
S1.在每个节点上安装SPDK驱动:首先,在分布式存储集群的每个节点上安装SPDK驱动。SPDK(Storage Performance Development Kit)是由Intel提出的存储性能开发工具包,其中集成了OCF(Open CAS Framework)模块
S2.配置CAS设备:使用SPDK提供的OCF模块,配置CAS设备。将HDD作为core device(核心设备),NVMe SSD作为cache device(缓存设备)。CAS设备是通过将HDD和NVMe SSD组合而成的,用于提供高性能、低时延的缓存加速。
S3.设置BlueStore数据分区:将配置好的CAS设备作为BlueStore的数据分区。BlueStore是Ceph中用于存储对象的后端存储引擎。通过将CAS设备作为数据分区,可以提高数据访问的性能和响应时间。
S4.部署元数据到SSD:选择另外的SSD作为元数据的存储设备。元数据通常是存储***中对数据进行描述和管理的重要信息,对于访问频率较高的元数据,将其部署在SSD上可以提高访问速度和性能。通过以上步骤,可以将HDD和NVMe SSD组合为新的CAS设备,用于BlueStore的数据分区,并将元数据部署在另外的SSD上。这样可以有效地提高分布式存储集群的性能和效率。
在本实施例中提供了一种IO请求处理方法,图2是根据本发明实施例的IO请求处理方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取目标IO请求。
具体地,目标存储设备可以基于与其他设备之间的通信连接,接收其他设备发送的目标IO请求。
步骤S102,对目标IO请求进行识别,确定目标IO请求对应的请求类型。
其中,请求类型包括顺序访问类型和随机访问类型。
可选的,目标存储设备可以对目标IO请求进行识别,确定目标IO请求的访问模式,通过分析目标IO请求的访问模式来判断请求类型。其中,顺序访问类型的特点是连续或者逻辑连续的访问,例如顺序读取文件或顺序写入连续块。随机访问类型的特点是非连续、随机的访问,例如随机读取文件或随机写入不连续块。
可选的,目标存储设备可以对目标IO请求进行识别,确定目标IO请求的地址间隔,通过分析目标IO请求的物理地址间隔来判断请求类型。其中,顺序访问类型的特点是物理地址间隔相对较小,连续的地址访问。随机访问类型的特点是物理地址间隔较大,随机的地址访问。
可选的,目标存储设备可以对目标IO请求进行识别,确定目标IO请求的时间间隔,通过分析目标IO请求的时间间隔来判断请求类型。其中,顺序访问类型的特点是IO请求之间的时间间隔相对较短,连续读写操作。随机访问类型的特点是IO请求之间的时间间隔较长,不规律的读写操作。
可选的,目标存储设备可以对目标IO请求进行识别,确定目标IO请求的相关性和块大小,通过分析目标IO请求之间的相关性和块大小来判断请求类型。其中,顺序访问类型的特点是IO请求之间有较高的相关性,读写的块大小相对较大。随机访问类型的特点是IO请求之间相关性较低,读写的块大小相对较小。
本申请实施例对目标存储设备确定目标IO请求对应的请求类型的方式不做具体限定。
步骤S103,根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理。
具体地,目标存储设备可以根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理。
示例性的,对于顺序访问类型的目标IO请求;如果目标IO请求是顺序访问类型,那么可以考虑利用缓存设备来处理这些请求。因为顺序访问类型的请求具有连续性,缓存设备可以通过预取数据、提前加载数据等方式来加速数据的读取或写入操作,提高性能和响应速度。
若缓存设备的缓存空间不足或者目标IO请求的处理需要更高的计算能力,可以考虑利用核心设备来处理这些请求。核心设备通常具备更强大的计算和处理能力,可以提供更高的性能和效率来处理顺序访问类型的请求。
对于随机访问类型的目标IO请求:如果目标IO请求是随机访问类型,可以考虑利用缓存设备来处理这些请求。虽然随机访问类型的请求在物理地址上没有连续性,但是缓存设备可以通过缓存块和缓存算法来提高随机访问的命中率,减少对核心设备的访问,提高性能和响应速度。
对于随机访问类型的请求,如果缓存设备的命中率较低或者缓存空间有限,可以考虑将这些请求直接交给核心设备处理。核心设备通常具备更高的I/O吞吐量和更低的访问延迟,可以更好地应对随机访问类型的请求。
关于该步骤将在下文进行详细介绍。
本申请实施例提供的IO请求处理方法,应用于目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,从而使得目标存储设备可以提供高性能、低时延的缓存加速。获取目标IO请求;对目标IO请求进行识别,确定目标IO请求对应的请求类型,保证了确定的目标IO请求对应的请求类型的准确性。根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理,从而保证了确定的利用缓存设备或核心设备对目标IO请求进行处理的结果的准确性。上述方法中,目标存储设备中的核心设备主要用于存储大容量的数据,缓存设备主要用于加速访问和提供更快的读写速度,提高了IO请求处理效率,但是如果所有的IO请求均基于缓存设备或者核心设备进行处理,也会导致对IO请求进行处理的处理效率下降。上述方法,对目标存储设备对IO请求的处理方法进行优化,根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理,从而可以保证对目标IO请求进行处理的效率。
在本实施例中提供了一种IO请求处理方法,可用于上述的目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,图3是根据本发明实施例的IO请求处理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S201,获取目标IO请求。
关于该步骤请参见图2对步骤S101的介绍,在此不进行赘述。
步骤S202,对目标IO请求进行识别,确定目标IO请求对应的请求类型,请求类型包括顺序访问类型和随机访问类型。
关于该步骤请参见图2对步骤S102的介绍,在此不进行赘述。
步骤S203,根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理。
具体地,上述步骤S203,可以包括如下步骤:
步骤S2031,若目标IO请求对应的请求类型为顺序访问类型,则获取缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量。
具体地,若目标IO请求对应的请求类型为顺序访问类型,则目标存储设备可以读取缓存设备对应的第一消息队列中包括的第一未处理IO请求,从而获取缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量。
步骤S2032,根据第一未处理IO请求的数量,确定是否启动顺序读写优化策略。
其中,顺序读写优化策略为将目标IO请求添加至核心设备对应的第二消息队列,以基于核心设备对目标IO请求进行处理。
具体地,上述步骤S2032,可以包括如下步骤:
步骤a1,将第一未处理IO请求的数量与预设数量阈值进行对比。
具体地,目标存储设备可以根据缓存设备对应的资源容量设定预设数量阈值,其中,缓存设备对应的资源容量越大,预设数量阈值越大,反之,缓存设备对应的资源容量越小,预设数量阈值越小;目标存储设备还可以接收用户输入或者设定的预设数量阈值;目标存储设备还可以接收其他设备发送的预设数量阈值,本申请实施例对目标存储设备获取预设数量阈值的方式不做具体限定。
在获取到预设数量阈值之后,目标存储设备可以将第一未处理IO请求的数量与预设数量阈值进行对比。
步骤a2,若第一未处理IO请求的数量大于或者等于预设数量阈值,则开启顺序读写优化策略。
具体地,若第一未处理IO请求的数量大于或者等于预设数量阈值,则目标存储设备开启顺序读写优化策略,即目标存储设备将目标IO请求添加至核心设备对应的第二消息队列,以基于核心设备对目标IO请求进行处理。
步骤a3,若未处理IO请求的数量小于预设数量阈值,则不开启顺序读写优化策略,将目标IO请求添加至缓存设备对应的第一消息队列,以基于缓存设备对目标IO请求进行处理。
具体地,若未处理IO请求的数量小于预设数量阈值,则不开启顺序读写优化策略,将目标IO请求添加至缓存设备对应的第一消息队列,以基于缓存设备对目标IO请求进行处理。
步骤S2033,根据是否启动顺序读写优化策略的结果,确定基于缓存设备或核心设备对目标IO请求进行处理。
具体地,若启动顺序读写优化策略的结果,则目标存储设备基于核心设备对目标IO请求进行处理。
若未启动顺序读写优化策略的结果,则目标存储设备基于缓存设备对目标IO请求进行处理。
步骤S2034,若目标IO请求对应的请求类型为随机访问类型,则对目标IO请求进行识别,确定目标IO请求对应的目标数据的数据量。
具体地,若目标IO请求对应的请求类型为随机访问类型,则目标存储设备可以对目标IO请求进行识别,确定目标IO请求对应的目标数据的数据量。
步骤S2035,根据目标数据的数据量,确定基于缓存设备或核心设备对目标IO请求进行处理。
具体地,上述步骤S2035,可以包括如下步骤:
步骤b1,将目标数据的数据量与第一预设数据量阈值进行对比。
具体地,目标存储设备可以根据缓存设备对应的资源容量设定第一预设数据量阈值,其中,缓存设备对应的资源容量越大,第一预设数据量阈值越大,反之,缓存设备对应的资源容量越小,第一预设数据量阈值越小;目标存储设备还可以接收用户输入或者设定的第一预设数据量阈值;目标存储设备还可以接收其他设备发送的第一预设数据量阈值,本申请实施例对目标存储设备获取第一预设数据量阈值的方式不做具体限定。
在获取到第一预设数据量阈值之后,目标存储设备可以将目标数据的数据量与第一预设数据量阈值进行对比。
步骤b2,若目标数据的数据量大于或者等于第一预设数据量阈值,则确定基于核心设备对目标IO请求进行处理。
具体地,若目标数据的数据量大于或者等于第一预设数据量阈值,则目标存储设备将目标IO请求添加至核心设备对应的第二消息队列,以基于核心设备对目标IO请求进行处理。
步骤b3,若目标数据的数据量小于第一预设数据量阈值,则确定基于缓存设备对目标IO请求进行处理。
若目标数据的数据量小于第一预设数据量阈值,则目标存储设备将目标IO请求添加至缓存设备对应的第一消息队列,以基于缓存设备对目标IO请求进行处理。
在本申请一种可选的实施方式中,若目标IO请求对应的请求类型为随机访问类型,方法还包括:
步骤S204,中断顺序读写优化策略,并检测核心设备对应的第二消息队列中是否存在第二未处理IO请求。
具体地,若目标IO请求对应的请求类型为随机访问类型,为了避免影响对目标IO请求的处理,目标存储设备可以先中断顺序读写优化策略,即不再将IO请求添加至核心设备对应的第二消息队列。并检测核心设备对应的第二消息队列中是否存在第二未处理IO请求。
步骤S205,若第二消息队列中存在第二未处理IO请求,则将第二未处理IO请求添加至缓存设备对应的第一消息队列中。
具体地,若第二消息队列中存在第二未处理IO请求,则将第二未处理IO请求添加至缓存设备对应的第一消息队列中,基于缓存设备处理第二未处理IO请求,从而使得目标存储设备回到正常的读写模式。
需要说明地是,上述步骤S204可以与步骤S2034同时执行,也可以先执行步骤S204,然后执行步骤S2034,也可以先执行步骤S2034,然后执行步骤S204,本申请实施例对上述步骤的执行顺序不做具体限定。
本申请实施例提供的IO请求处理方法,若目标IO请求对应的请求类型为顺序访问类型,则获取缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量。将第一未处理IO请求的数量与预设数量阈值进行对比。若第一未处理IO请求的数量大于或者等于预设数量阈值,则开启顺序读写优化策略;顺序读写优化策略为将目标IO请求添加至核心设备对应的第二消息队列,以基于核心设备对目标IO请求进行处理,不再将缓存设备进行处理,进而可以避免缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量过大的情况下,还是基于缓存设备对目标IO请求进行处理,从而导致了对目标IO请求进行处理的效率较低。这样可以避免缓存的额外开销和延迟,且开始顺序读写优化策略显著提高读写性能,尤其是在大量顺序读写操作时,提升效果更为明显。若未处理IO请求的数量小于预设数量阈值,则将目标IO请求添加至缓存设备对应的第一消息队列,以基于缓存设备对目标IO请求进行处理。实现了在缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量不大的情况下,基于缓存设备对目标IO请求进行处理,从而提高了对目标IO请求进行处理的效率。
若目标IO请求对应的请求类型为随机访问类型,则对目标IO请求进行识别,确定目标IO请求对应的目标数据的数据量,保证了确定的目标IO请求对应的目标数据的数据量的准确性。将目标数据的数据量与第一预设数据量阈值进行对比,可以保证根据对比结果,确定的基于缓存设备或核心设备对目标IO请求进行处理的结果的准确性。若目标数据的数据量大于或者等于第一预设数据量阈值,则确定基于核心设备对目标IO请求进行处理,可以避免缓存资源的浪费和性能下降;若目标数据的数据量小于第一预设数据量阈值,则确定基于缓存设备对目标IO请求进行处理,可以更快地响应目标IO请求,提高读取和写入的速度,从而实现了提高对目标IO请求进行处理的效率。此外,根据目标数据的数据量对目标IO请求进行分类处理,具有一定的灵活性和适应性,可以更好地优化***的性能。
此外,若目标IO请求对应的请求类型为随机访问类型,目标存储设备中断顺序读写优化策略,并检测核心设备对应的第二消息队列中是否存在第二未处理IO请求;若第二消息队列中存在第二未处理IO请求,则将第二未处理IO请求添加至缓存设备对应的第一消息队列中,避免影响目标IO请求的性能,以及对目标IO请求处理造成错误。
在本实施例中提供了一种IO请求处理方法,可用于上述的目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,图4是根据本发明实施例的IO请求处理方法的流程图,如图4所示,该流程包括如下步骤:
步骤S301,获取目标IO请求。
关于该步骤请参见图3对步骤S201的介绍,在此不进行赘述。
步骤S302,对目标IO请求进行识别,确定目标IO请求对应的请求类型。
请求类型包括顺序访问类型和随机访问类型。
关于该步骤请参见图3对步骤S202的介绍,在此不进行赘述。
步骤S303,根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理。
关于该步骤请参见图3对步骤S203的介绍,在此不进行赘述。
步骤S304,获取缓存设备对应的缓存使用量。
具体地,目标存储设备可以周期性地检测缓存设备对应的缓存使用量,也可以实时监测缓存设备对应的缓存使用量,从而获取缓存设备对应的缓存使用量。
步骤S305,将缓存使用量与预设缓存使用量阈值进行对比。
具体地,目标存储设备可以根据缓存设备对应的资源容量设定预设缓存使用量阈值,其中,缓存设备对应的资源容量越大,预设缓存使用量阈值越大,反之,缓存设备对应的资源容量越小,预设缓存使用量阈值越小;目标存储设备还可以接收用户输入或者设定的预设缓存使用量;目标存储设备还可以接收其他设备发送的预设缓存使用量,本申请实施例对目标存储设备获取预设缓存使用量的方式不做具体限定。
其中,需要说明的是预设缓存使用量阈值可以是占缓存设备对应的资源容量的百分比,也可以是具体地缓存使用量数值,本申请实施例对预设缓存使用量阈值不做具体限定。
在获取到第一预设数据量阈值之后,目标存储设备可以将缓存使用量与预设缓存使用量阈值进行对比。
步骤S306,若缓存使用量大于或者等于预设缓存使用量阈值,则获取历史IO请求对各历史数据进行处理的处理次数。
具体地,若缓存使用量大于或者等于预设缓存使用量阈值,则目标存储设备获取历史IO请求对各历史数据进行处理的处理次数。
其中,需要说明的是,目标存储设备每次在对历史IO请求对应的历史数据进行处理时,可以就历史数据被处理的次数。
步骤S307,将各历史数据对应的处理次数与预设处理次数阈值进行对比。
具体地,目标存储设备可以接收用户输入的预设处理次数阈值,也可以接收其他设备发送的预设处理次数阈值,目标存储设备可以根据各历史数据对应的处理次数,设定预设处理次数阈值,例如计算各历史数据对应的处理次数的均值,将计算得到的均值作为预设处理次数阈值。
本申请实施例对目标存储设备获取预设处理次数阈值的方式不做具体限定。
步骤S308,从各历史数据中确定处理次数小于或者等于预设处理次数阈值的候选历史数据。
具体地,目标存储设备根据各历史数据对应的处理次与数预设处理次数阈值进行对比的结果,从各历史数据中确定处理次数小于或者等于预设处理次数阈值的候选历史数据。
步骤S309,获取各候选历史数据对应的数据量大小。
具体地,目标存储设备对各候选历史数据进行读取,确定各候选历史数据对应的数据量大小。
步骤S310,将各候选历史数据对应的数据量大小与第二预设数据量阈值进行对比。
具体地,目标存储设备可以接收用户输入的第二预设数据量阈值,也可以接收其他设备发送的第二预设数据量阈值,目标存储设备可以根据各候选历史数据对应的数据量大小,设定第二预设数据量阈值,例如,计算各候选历史数据对应的数据量大小的均值,将计算得到的均值作为第二预设数据量阈值,后者从各候选历史数据对应的数据量大小中选择第二大的数据量大小最为第二预设数据量阈值。
本申请实施例对目标存储设备获取第二预设数据量阈值的方式不做具体限定。
在获取到第二预设数据量阈值之后,目标存储设备将各候选历史数据对应的数据量大小与第二预设数据量阈值进行对比。
步骤S311,从各候选历史数据中选择数据量大小大于第二预设数据量阈值的目标历史数据。
具体地,根据各候选历史数据对应的数据量大小与第二预设数据量阈值进行对比的结果,从各候选历史数据中选择数据量大小大于第二预设数据量阈值的目标历史数据。
步骤S312,将目标历史数据从缓存设备存储至核心设备。
具体地,目标存储设备将目标历史数据从缓存设备存储至核心设备。
本申请实施例提供的IO请求处理方法,获取缓存设备对应的缓存使用量;将缓存使用量与预设缓存使用量阈值进行对比,若缓存使用量大于或者等于预设缓存使用量阈值,则获取历史IO请求对各历史数据进行处理的处理次数,从而可以保证获取到的历史IO请求对各历史数据进行处理的处理次数的准确性。将各历史数据对应的处理次数与预设处理次数阈值进行对比;从各历史数据中确定处理次数小于或者等于预设处理次数阈值的候选历史数据,保证了确定的候选历史数据是处理次数较少的历史数据,从而可以避免清理被频繁访问的历史数据,以免影响***的性能和响应时间。然后,获取各候选历史数据对应的数据量大小;将各候选历史数据对应的数据量大小与第二预设数据量阈值进行对比;从各候选历史数据中选择数据量大小大于第二预设数据量阈值的目标历史数据;将目标历史数据从缓存设备存储至核心设备,从而可以保证将目标历史数据从缓存设备存储至核心设备之后,缓存设备对应的缓存使用量可以降低的多一点,进而可以保持缓存设备对应的缓存使用量在一个可接受的范围内,并且保证后续的读取操作时能够从缓存设备中获取到最新的数据。
在本实施例中还提供了一种IO请求处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种IO请求处理装置,如图5所示,应用于目标存储设备,目标存储设备为层次存储架构,包括核心设备和缓存设备,装置包括:
第一获取模块401,用于获取目标IO请求;
第一确定模块402,用于对目标IO请求进行识别,确定目标IO请求对应的请求类型,请求类型包括顺序访问类型和随机访问类型;
第二确定模块403,用于根据目标IO请求对应的请求类型,确定利用缓存设备或核心设备对目标IO请求进行处理。
在一些可选的实施方式中,第二确定模块403,具体用于若目标IO请求对应的请求类型为顺序访问类型,则获取缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量;根据第一未处理IO请求的数量,确定是否启动顺序读写优化策略;顺序读写优化策略为将目标IO请求添加至核心设备对应的第二消息队列,以基于核心设备对目标IO请求进行处理;根据是否启动顺序读写优化策略的结果,确定基于缓存设备或核心设备对目标IO请求进行处理。
在一些可选的实施方式中,第二确定模块403,具体用于将第一未处理IO请求的数量与预设数量阈值进行对比;若第一未处理IO请求的数量大于或者等于预设数量阈值,则开启顺序读写优化策略;若未处理IO请求的数量小于预设数量阈值,则不开启顺序读写优化策略,将目标IO请求添加至缓存设备对应的第一消息队列,以基于缓存设备对目标IO请求进行处理。
在一些可选的实施方式中,第二确定模块403,具体用于若目标IO请求对应的请求类型为随机访问类型,则对目标IO请求进行识别,确定目标IO请求对应的目标数据的数据量;根据目标数据的数据量,确定基于缓存设备或核心设备对目标IO请求进行处理。
在一些可选的实施方式中,第二确定模块403,具体用于将目标数据的数据量与第一预设数据量阈值进行对比;若目标数据的数据量大于或者等于第一预设数据量阈值,则确定基于核心设备对目标IO请求进行处理;若目标数据的数据量小于第一预设数据量阈值,则确定基于缓存设备对目标IO请求进行处理。
在一些可选的实施方式中,若目标IO请求对应的请求类型为随机访问类型,第二确定模块403,具体用于中断顺序读写优化策略,并检测核心设备对应的第二消息队列中是否存在第二未处理IO请求;若第二消息队列中存在第二未处理IO请求,则将第二未处理IO请求添加至缓存设备对应的第一消息队列中。
在一些可选的实施方式中,如图6所示,上述IO请求处理装置,还包括:
第二获取模块404,用于获取缓存设备对应的缓存使用量;
第一对比模块405,用于将缓存使用量与预设缓存使用量阈值进行对比;
第三获取模块406,用于若缓存使用量大于或者等于预设缓存使用量阈值,则获取历史IO请求对各历史数据进行处理的处理次数;
第二对比模块407,用于将各历史数据对应的处理次数与预设处理次数阈值进行对比;
第三确定模块408,用于从各历史数据中确定处理次数小于或者等于预设处理次数阈值的候选历史数据;
第四获取模块409,用于获取各候选历史数据对应的数据量大小;
第三对比模块410,用于将各候选历史数据对应的数据量大小与第二预设数据量阈值进行对比;
选择模块411,用于从各候选历史数据中选择数据量大小大于第二预设数据量阈值的目标历史数据;
存储模块412,用于将目标历史数据从缓存设备存储至核心设备。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的IO请求处理装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种存储设备,具有上述图5和图6所示的IO请求处理装置。
请参阅图7,图7是本发明可选实施例提供的一种存储设备的结构示意图,如图7所示,该存储设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在存储设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个存储设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图7中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据存储设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该存储设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该存储设备还包括通信接口30,用于该存储设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种IO请求处理方法,其特征在于,应用于目标存储设备,所述目标存储设备为层次存储架构,包括核心设备和缓存设备,所述方法包括:
获取目标IO请求;
对所述目标IO请求进行识别,确定所述目标IO请求对应的请求类型,所述请求类型包括顺序访问类型和随机访问类型;
根据所述目标IO请求对应的所述请求类型,确定利用所述缓存设备或所述核心设备对所述目标IO请求进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标IO请求对应的所述请求类型,确定基于所述缓存设备或所述核心设备对所述目标IO请求进行处理,包括:
若所述目标IO请求对应的所述请求类型为所述顺序访问类型,则获取所述缓存设备对应的第一消息队列中包括的第一未处理IO请求的数量;
根据所述第一未处理IO请求的数量,确定是否启动顺序读写优化策略;所述顺序读写优化策略为将所述目标IO请求添加至所述核心设备对应的第二消息队列,以基于所述核心设备对所述目标IO请求进行处理;
根据是否启动所述顺序读写优化策略的结果,确定基于所述缓存设备或所述核心设备对所述目标IO请求进行处理。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一未处理IO请求的数量,确定是否启动顺序读写优化策略,包括:
将所述第一未处理IO请求的数量与预设数量阈值进行对比;
若所述第一未处理IO请求的数量大于或者等于所述预设数量阈值,则开启所述顺序读写优化策略;
若所述未处理IO请求的数量小于所述预设数量阈值,则不开启所述顺序读写优化策略,将所述目标IO请求添加至所述缓存设备对应的所述第一消息队列,以基于所述缓存设备对所述目标IO请求进行处理。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标IO请求对应的所述请求类型,确定基于所述缓存设备或所述核心设备对所述目标IO请求进行处理,包括:
若所述目标IO请求对应的所述请求类型为所述随机访问类型,则对所述目标IO请求进行识别,确定所述目标IO请求对应的目标数据的数据量;
根据所述目标数据的数据量,确定基于所述缓存设备或所述核心设备对所述目标IO请求进行处理。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标数据的数据量,确定基于所述缓存设备或所述核心设备对所述目标IO请求进行处理,包括:
将所述目标数据的数据量与第一预设数据量阈值进行对比;
若所述目标数据的数据量大于或者等于所述第一预设数据量阈值,则确定基于所述核心设备对所述目标IO请求进行处理;
若所述目标数据的数据量小于所述第一预设数据量阈值,则确定基于所述缓存设备对所述目标IO请求进行处理。
6.根据权利要求4所述的方法,其特征在于,所述若所述目标IO请求对应的所述请求类型为所述随机访问类型,所述方法还包括:
中断所述顺序读写优化策略,并检测所述核心设备对应的第二消息队列中是否存在第二未处理IO请求;
若所述第二消息队列中存在所述第二未处理IO请求,则将所述第二未处理IO请求添加至所述缓存设备对应的第一消息队列中。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述缓存设备对应的缓存使用量;
将所述缓存使用量与预设缓存使用量阈值进行对比;
若所述缓存使用量大于或者等于所述预设缓存使用量阈值,则获取历史IO请求对各历史数据进行处理的处理次数;
将各所述历史数据对应的所述处理次数与预设处理次数阈值进行对比;
从各所述历史数据中确定所述处理次数小于或者等于所述预设处理次数阈值的候选历史数据;
获取各所述候选历史数据对应的数据量大小;
将各所述候选历史数据对应的数据量大小与第二预设数据量阈值进行对比;
从各所述候选历史数据中选择所述数据量大小大于所述第二预设数据量阈值的目标历史数据;
将所述目标历史数据从所述缓存设备存储至所述核心设备。
8.一种IO请求处理装置,其特征在于,应用于目标存储设备,所述目标存储设备为层次存储架构,包括核心设备和缓存设备,所述装置包括:
第一获取模块,用于获取目标IO请求;
第一确定模块,用于对所述目标IO请求进行识别,确定所述目标IO请求对应的请求类型,所述请求类型包括顺序访问类型和随机访问类型;
第二确定模块,用于根据所述目标IO请求对应的所述请求类型,确定利用所述缓存设备或所述核心设备对所述目标IO请求进行处理。
9.一种存储设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的IO请求处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的IO请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410483251.3A CN118312102A (zh) | 2024-04-19 | 2024-04-19 | Io请求处理方法、装置、存储设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410483251.3A CN118312102A (zh) | 2024-04-19 | 2024-04-19 | Io请求处理方法、装置、存储设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118312102A true CN118312102A (zh) | 2024-07-09 |
Family
ID=91725325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410483251.3A Pending CN118312102A (zh) | 2024-04-19 | 2024-04-19 | Io请求处理方法、装置、存储设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118312102A (zh) |
-
2024
- 2024-04-19 CN CN202410483251.3A patent/CN118312102A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860494B2 (en) | Flushing pages from solid-state storage device | |
US20130007488A1 (en) | Power management of a storage device including multiple processing cores | |
US20150039837A1 (en) | System and method for tiered caching and storage allocation | |
KR102236419B1 (ko) | 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 | |
US10209922B2 (en) | Communication via a memory interface | |
US10558569B2 (en) | Cache controller for non-volatile memory | |
CN104461735B (zh) | 一种虚拟化场景下分配cpu资源的方法和装置 | |
US9286199B2 (en) | Modifying memory space allocation for inactive tasks | |
KR20140034246A (ko) | 새로운 애플리케이션을 위한 메모리 관리 모델 및 인터페이스 | |
US8019939B2 (en) | Detecting data mining processes to increase caching efficiency | |
CN113590508B (zh) | 动态可重构的内存地址映射方法及装置 | |
KR20140033448A (ko) | 수정되지 않은 애플리케이션을 위한 메모리 관리 모델 및 인터페이스 | |
US20220382672A1 (en) | Paging in thin-provisioned disaggregated memory | |
CN108733585B (zh) | 缓存***及相关方法 | |
CN113377278A (zh) | 固态硬盘、垃圾回收及控制方法、设备、***及存储介质 | |
CN114721975A (zh) | 链表处理方法、装置、加速器、电路板、设备和存储介质 | |
US9977732B1 (en) | Selective nonvolatile data caching based on estimated resource usage | |
CN112654965A (zh) | 动态模块的外部分页和交换 | |
CN118312102A (zh) | Io请求处理方法、装置、存储设备及存储介质 | |
CN113722131A (zh) | 用于促进存储设备中的快速崩溃恢复的方法和*** | |
CN112948336A (zh) | 数据加速方法及缓存单元、电子设备及存储介质 | |
US10346193B1 (en) | Efficient placement of virtual machines based on cache hit ratio | |
JP6919277B2 (ja) | ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム | |
CN113296710B (zh) | 一种云存储数据读取方法、装置、电子设备及存储介质 | |
EP4033346B1 (en) | Affinity-based cache operation for a persistent storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |