CN114296646A - 基于io业务的缓存方法、装置、服务器和存储介质 - Google Patents
基于io业务的缓存方法、装置、服务器和存储介质 Download PDFInfo
- Publication number
- CN114296646A CN114296646A CN202111599724.9A CN202111599724A CN114296646A CN 114296646 A CN114296646 A CN 114296646A CN 202111599724 A CN202111599724 A CN 202111599724A CN 114296646 A CN114296646 A CN 114296646A
- Authority
- CN
- China
- Prior art keywords
- service
- cache
- service request
- kernel
- caching
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种基于IO业务的缓存方法、装置、服务器和存储介质,涉及数据缓存技术领域。其中,基于IO业务的缓存方法包括:在用户态下获取到块设备的IO业务请求时,确定所述IO业务请求的业务类型;基于所述业务类型为所述IO业务请求配置对应的业务标识;将携带所述业务标识的所述IO业务请求传递到内核态;在所述内核态,基于对所述业务标识的识别结果,确定对应的缓存策略;基于所述对应的缓存策略对所述IO业务执行缓存操作。通过本公开的技术方案,通过在内核态基于业务标识感知到业务IO的类型,以根据不同的IO类型采用不同的缓存策略,有利于提升缓存的命中率,并且便于实现高性能的基于固态硬盘SSD缓存。
Description
技术领域
本公开涉及数据缓存技术领域,尤其涉及一种基于IO业务的缓存方法、基于IO业务的缓存装置、服务器和计算机可读存储介质。
背景技术
Ceph是包括块存储、文件系统以及对象存储的统一的分布式存储系统,相关技术中,如图1所示,利用块设备缓存技术能够把高速固态硬盘SSD与传统机械硬盘HDD组合成混合盘部署Ceph OSD(Object Storage Daemon),能够兼顾性能和成本,当前应用较为广泛的高性能固态硬盘缓存方案大多基于内核态实现,如Bcache、DM-Cache与Flashcache等,这些缓存技术对用户态的应用程序暴露出的是通用块设备,应用程序只能通过标准的文件操作访问,缓存策略方面只能简单的从数据的冷热程度这一个维度去实现,即完全依赖于缓存软件内置的简单缓存策略,导致缓存命中率偏低。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种基于IO业务的缓存方法、基于IO业务的缓存装置、服务器和计算机可读存储介质,至少在一定程度上克服由于相关技术中缓存策略方面只能简单的从数据的冷热程度这一个维度去实现,导致缓存命中率偏低的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种基于IO业务的缓存方法,包括:在用户态下获取到块设备的IO业务请求时,确定所述IO业务请求的业务类型;基于所述业务类型为所述IO业务请求配置对应的业务标识;将携带所述业务标识的所述IO业务请求传递到内核态;在所述内核态,基于对所述业务标识的识别结果,确定对应的缓存策略;基于所述对应的缓存策略对所述IO业务执行缓存操作。
在一个实施例中,在用户态下获取到IO业务请求时,确定所述IO业务请求的业务类型之前,还包括:在所述内核态构建标记转换与传递层;所述基于对所述业务标识的识别结果,确定对应的缓存策略,具体包括:基于所述标记转换与传递层将所述业务标识转化成内核对应标记,并确定与所述内核对应标记匹配的所述缓存策略,其中,所述内核对应标记为bio结构中的标记。
在一个实施例中,在用户态下获取到IO业务请求时,确定所述IO业务请求的业务类型之前,还包括:预设块设备缓存模型与多种缓存策略,并建立所述缓存策略与所述内核对应标记之间的匹配关系;所述确定与所述内核对应标记匹配的所述缓存策略,具体包括:基于所述块设备缓存模型确定与所述内核对应标记匹配的所述缓存策略。
在一个实施例中,所述确定与所述内核对应标记匹配的所述缓存策略,具体包括:在基于所述内核对应标记检测到所述IO业务请求的要求时延大于时延阈值时,所述IO业务请求记为第一IO业务请求,将绕过缓存策略确定为与所述第一IO业务请求匹配的所述缓存策略,其中,基于所述绕过缓存策略,对所述IO业务执行绕过缓存操作。
在一个实施例中,所述确定与所述内核对应标记匹配的所述缓存策略,具体包括:在基于所述内核对应标记检测到所述IO业务请求为临时IO业务请求时,所述IO业务请求记为第二IO业务请求,将优先淘汰策略确定为与所述第二IO业务请求匹配的所述缓存策略,其中,基于所述优先淘汰策略,在回收时释放所述第二IO业务请求对应的副本数据占用的缓存空间。
在一个实施例中,所述确定与所述内核对应标记匹配的所述缓存策略,具体包括:在基于所述内核对应标记检测到所述IO业务请求为常驻IO业务请求时,所述IO业务请求记为第三IO业务请求,将常驻缓存策略确定为与所述第三IO业务请求匹配的所述缓存策略,其中,基于所述常驻缓存策略,在执行缓存淘汰操作时,跳过所述内核对应标记为常驻缓存的副本数据。
在一个实施例中,在用户态下获取到IO业务请求时,确定所述IO业务请求的业务类型之前,还包括:基于块设备缓存模型将机械硬盘和固态硬盘配置为混合盘;在所述混合盘上部署Ceph OSD;基于所述Ceph OSD建立不同的所述业务标识与不同的所述IO业务请求之间的映射关系;基于系统调用将所述映射关系传递至所述内核态;在所述内核态,建立所述业务标识与所述内核对应标记之间的对应关系。
根据本公开的另一个方面,提供一种基于IO业务的缓存装置,包括:第一确定模块,用于在用户态下获取到IO业务请求时,确定所述IO业务请求的业务类型;配置模块,用于基于所述业务类型为所述IO业务请求配置对应的标识;传递模块,用于将携带所述标识的所述IO业务请求传递到内核态;第二确定模块,用于在所述内核态,基于对所述标识的识别结果,确定对应的缓存策略;执行模块,用于基于所述对应的缓存策略对所述IO业务执行缓存操作。
根据本公开的再一个方面,提供一种服务器,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述技术方案中任意一项的所述的基于IO业务的缓存方法。
根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于IO业务的缓存方法。
本公开的实施例所提供的基于IO业务的缓存方法和装置,通过在用户态将携带业务标识的IO业务请求传递到内核态,在内核态基于业务标识感知到业务IO的类型,以根据不同的IO类型采用不同的缓存策略,从而在有利于提升缓存的命中率的同时、便于实现高性能的基于固态硬盘SSD缓存,进而能够简化混合盘的部署架构并提升存储空间的利用率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出相关技术中缓存方案的架构示意图;
图2示出本公开实施例中一种基于IO业务的缓存方法的流程图;
图3示出本公开实施例中另一种基于IO业务的缓存方法的流程图;
图4示出本公开实施例中再一种基于IO业务的缓存方法的流程图;
图5示出本公开实施例中又一种基于IO业务的缓存方法的流程图;
图6示出本公开实施例中又一种基于IO业务的缓存方法的流程图;
图7示出本公开实施例中又一种执行IO业务的系统整体架构示意图;
图8示出本公开实施例中一种缓存方案的架构示意图;
图9示出本公开实施例中又一种基于IO业务的缓存方法的流程图;
图10示出本公开实施例中一种基于IO业务的缓存装置的示意图;
图11示出本公开实施例中一种计算机设备的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本申请提供的方案,通过在用户态将携带业务标识的IO业务请求传递到内核态,在内核态基于业务标识感知到业务IO的类型,以根据不同的IO类型采用不同的缓存策略,从而在有利于提升缓存的命中率的同时、便于实现高性能的基于固态硬盘SSD缓存,进而能够简化混合盘的部署架构并提升存储空间的利用率。
为了便于理解,下面结合图1对本申请涉及到的名词(缩写词)进行解释。
缓存,指数据交换的缓冲区(Cache),当某一硬件要读取数据时,会首先从缓存汇总查询数据,有则直接执行,不存在时从内存中获取。由于缓存的数据比内存快的多,所以缓存的作用就是帮助硬件更快的运行。
由于需要限制不同的程序之间的访问能力,防止获取其它程序的内存数据,或者获取外围设备的数据,并发送到网络,CPU划分出两个权限等级,即用户态和内核态。
内核态:CPU可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,CPU也可以将自己从一个程序切换到另一个程序。
用户态:只能受限的访问内存,且不允许访问外围设备,占用CPU的能力被剥夺,CPU资源可以被其他程序获取。
bio结构,指kernel中block I/O的基础容器,它是在“linux/bio.h”中被定义的。这个结构将当前激活的block I/O操作表示为一个segment的list。segment就是内存中一块连续的buffer。
下面,将结合附图及实施例对本示例实施方式中的基于IO业务的缓存方法的各个步骤进行更详细的说明。
如图2所示,根据本公开的一个实施例的基于IO业务的缓存方法,包括:
步骤S202,在用户态下获取到块设备的IO业务请求时,确定IO业务请求的业务类型。
其中,块设备是i/o设备中的一类,是将信息存储在固定大小的块中,是Ceph三种存储方式(块设备、文件系统和对象存储)中的一种。
另外,由于所有用户程序都是运行在用户态,因此需要在用户态下获取IO业务请求,IO业务请求包括读请求和写请求,由于高性能SSD缓存方案通常基于内核态实现,因此在需要执行缓存操作时,需要切换至内核态执行。将用户态程序切换到内核态的机制即为系统调用。
步骤S204,基于业务类型为IO业务请求配置对应的业务标识。
步骤S206,将携带业务标识的IO业务请求传递到内核态。
步骤S208,在内核态,基于对业务标识的识别结果,确定对应的缓存策略。
其中,缓存(cache)指把常用数据存储到可以快速获取的区域(缓存区),以备重复利用,提高效率。
步骤S210,基于对应的缓存策略对IO业务执行缓存操作。
其中,通过在内核态基于固态硬盘SSD执行与IO业务匹配的缓存策略,便于实现高性能的基于固态硬盘SSD缓存。
缓存操作,可以在高速固态硬盘SSD与机械硬盘HDD组合成的混合盘执行,也可以在高速固态硬盘SSD中执行。
作为一种具体实现方式,基于对应的缓存策略对IO业务执行缓存操作,具体为:基于对应的缓存策略在高速硬盘SSD中对IO业务执行缓存操作。
在该实施例中,通过在用户态将携带业务标识的IO业务请求传递到内核态,在内核态基于业务标识感知到业务IO的类型,以根据不同的IO类型采用不同的缓存策略,从而在有利于提升缓存的命中率的同时、便于实现高性能的基于固态硬盘SSD缓存,进而能够简化混合盘的部署架构并提升存储空间的利用率。
本领域的技术人员能够理解的是,如果访问主存的数据或代码存在于cache中时的情形称为cache命中,cache命中的统计概率称为cache的命中率,即缓存命中率。
在一个实施例中,在用户态下获取到IO业务请求时,确定IO业务请求的业务类型之前,还包括:在内核态构建标记转换与传递层;基于对业务标识的识别结果,确定对应的缓存策略,具体包括:基于标记转换与传递层将业务标识转化成内核对应标记,并确定与内核对应标记匹配的缓存策略,其中,内核对应标记为bio结构中的标记。
在该实施例中,通过设置bio结构,将当前激活的block I/O操作表示为一个segment的list,在该list中查找内核对应标记,以基于对应标记确定匹配的缓存策略,基于匹配的缓存策略执行IO业务,以保证缓存操作的可靠性与命中率。
在一个实施例中,在用户态下获取到IO业务请求时,确定IO业务请求的业务类型之前,还包括:预设块设备缓存模型与多种缓存策略,并建立缓存策略与内核对应标记之间的匹配关系。
其中,预设块设备缓存模型对应于预设块设备缓存软件。
确定与内核对应标记匹配的缓存策略,具体包括:基于块设备缓存模型确定与内核对应标记匹配的缓存策略。
在该实施例中,通过预设块设备缓存模型与多种缓存策略,以在获取到由业务标识转化生成的内核对应标记时,基于块设备缓存模型确定与内核对应标记对应的缓存策略,以保证缓存策略选择的可靠性。
如图3所示,在一个实施例中,确定与内核对应标记匹配的缓存策略的一种具体实现方式,包括:
步骤S302,用户态将携带业务标识的IO业务请求传递到内核态。
步骤S304,基于标记转换与传递层将业务标识转化成内核对应标记。
步骤S306,在基于内核对应标记检测到IO业务请求的要求时延大于时延阈值时,IO业务请求记为第一IO业务请求。
步骤S308,将绕过缓存策略确定为匹配的缓存策略。
其中,基于绕过缓存策略,对IO业务执行绕过缓存操作。
在该实施例中,基于绕过缓存策略,对IO时延不敏感的业务IO全部绕过缓存,留出宝贵的缓存空间来缓存对IO时延敏感的业务IO,可以在相同的硬盘上同时部署对IO时延敏感程度不一样的业务(如云硬盘和网盘),不仅能够提升存储空间的利用率还简化了部署架构。
如图4所示,在一个实施例中,确定与内核对应标记匹配的缓存策略的另一种具体实现方式,包括:
步骤S402,用户态将携带业务标识的IO业务请求传递到内核态。
步骤S404,基于标记转换与传递层将业务标识转化成内核对应标记。
步骤S406,基于内核对应标记检测到IO业务请求为临时IO业务请求时,IO业务请求记为第二IO业务请求。
步骤S408,将优先淘汰策略确定为匹配的缓存策略。
其中,基于优先淘汰策略,在回收时释放第二IO业务请求对应的副本数据占用的缓存空间。
在该实施例中,基于优先淘汰策略,在回收时能够把从副本数据占的缓存空间全部释放掉,留出更多的空间缓存可能会读取的数据,提升缓存命中率。
如图5所示,在一个实施例中,确定与内核对应标记匹配的缓存策略的再一种具体实现方式,包括:
步骤S502,用户态将携带业务标识的IO业务请求传递到内核态。
步骤S504,基于标记转换与传递层将业务标识转化成内核对应标记。
步骤S506,在基于内核对应标记检测到IO业务请求为常驻IO业务请求时,IO业务请求记为第三IO业务请求。
步骤S508,将常驻缓存策略确定为匹配的缓存策略。
其中,基于常驻缓存策略,在执行缓存淘汰操作时,跳过内核对应标记为常驻缓存的副本数据。
在该实施例中,基于常驻缓存策略,在缓存淘汰时,跳过标记成常驻缓存的数据,在读取这些数据时可以100%命中缓存。
如图6所示,在一个实施例中,在用户态下获取到IO业务请求时,确定IO业务请求的业务类型之前,还包括:
步骤S602,基于块设备缓存模型将机械硬盘和固态硬盘配置为混合盘。
其中,混合盘指固态硬盘和机械硬盘的混合硬盘。
步骤S604,在混合盘上部署Ceph OSD。
其中,Ceph OSD可以理解为负责响应客户端请求返回具体数据的进程,可以用于存储数据、复制数据、平衡数据以及恢复数据等,通过在混合盘上部署Ceph OSD,能够基于Ceph OSD进行相关映射关系的配置。
步骤S606,基于Ceph OSD建立不同的业务标识与不同的IO业务请求之间的映射关系。
其中,基于Ceph OSD进行不同的业务标识与不同的IO业务请求之间的映射关系的配置,以在获取到IO业务请求时,基于映射关系将业务标识添加到IO业务请求中,并传递到内核层。
步骤S608,基于系统调用将映射关系传递至内核态。
如图7所示,通过系统调用将整个系统分为用户态和内核态(或者说内核空间和用户空间),内核态指特殊的软件程序,用于控制计算机的硬件资源,例如协调CPU资源,分配内存资源,并且提供稳定的环境供应用程序运行。
用户态就是提供应用程序运行的空间,为了使应用程序访问到内核管理的资源例如CPU,内存,I/O。内核必须提供一组通用的访问接口,这些接口就是系统调用。
另外,库函数用于对系统调用进行封装,提供简单的基本接口给用户,以增强了程序的灵活性。
Shell即外壳,是一种特殊的应用程序,俗称命令行,为了方便用户和系统交互,一般一个shell对应一个终端,呈现给用户交互窗口。
步骤S610,在内核态,建立业务标识与内核对应标记之间的对应关系。
其中,通过建立业务标识与内核对应标记之间的对应关系,以在内核层接收到携带业务标识的IO业务请求时,转化为对应的内核对应标识。
如图8所示,在用户态混合盘基于块设备缓存模型将机械硬盘和固态硬盘配置,具体地,利用块设备缓存软件把大容量的机械硬盘和高性能的固态硬盘组合成大容量、高性能的混合盘。
进一步地,在混合盘上部署Ceph OSD。
Ceph OSD用于根据业务IO的类型打上不同的业务标识。
打上业务标识的IO业务请求通过系统调用从用户态传递至内核态。
在内核态构建了标记转化及传递层,以块设备缓存软件+智能缓存策略。
标记转化及传递层用于将OSD做的业务标识转化成描述块设备IO请求的bio结构中的对应内核标记传递至块设备缓存软件。
块设备缓存软件根据不同的标记识别不同的IO业务请求,以采用不同的缓存策略进行处理,使缓存层能够根据不同的IO业务请求灵活地采用不同的缓存策略,基于高性能固态硬盘和/或大容量机械硬盘,实现提升缓存命中率、简化部署架构、提升空间利用率等目的。
如图9所示,根据本公开的另一个实施例的基于IO业务的缓存方法,包括:
步骤S902,基于块设备缓存模型将机械硬盘和固态硬盘配置为混合。
步骤S904,在混合盘上部署Ceph OSD。
步骤S906,基于Ceph OSD建立不同的业务标识与不同的IO业务请求之间的映射关系。
步骤S908,基于系统调用将映射关系传递至内核态。
步骤S910,在内核态,建立业务标识与内核对应标记之间的对应关系。
步骤S912,在内核态构建标记转换与传递层。
步骤S914,预设块设备缓存模型与多种缓存策略,并建立缓存策略与内核对应标记之间的匹配关系。
步骤S916,在用户态下获取到块设备的IO业务请求时,确定IO业务请求的业务类型。
步骤S918,基于业务类型为IO业务请求配置对应的业务标识。
步骤S920,将携带业务标识的IO业务请求传递到内核态。
步骤S922,在内核态,基于标记转换与传递层将业务标识转化成内核对应标记,并确定与内核对应标记匹配的缓存策略。
其中,缓存策略包括但不限于:绕过缓存策略、优先淘汰策略和常驻缓存策略。
其中,针对绕过缓存策略,对IO时延不敏感的业务IO全部绕过缓存,留出宝贵的缓存空间来缓存对IO时延敏感的业务IO,可以在相同的硬盘上同时部署对IO时延敏感程度不一样的业务(如云硬盘和网盘),不仅能够提升存储空间的利用率还简化了部署架构。
针对优先淘汰策略,在回收时把从副本数据占的缓存空间全部释放掉,留出更多的空间缓存可能会读取的数据,提升缓存命中率。
针对常驻缓存策略,在缓存淘汰时,跳过标记成常驻缓存的数据,在读取这些数据时可以100%命中缓存。
步骤S924,基于对应的缓存策略对IO业务执行缓存操作。
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下面参照图10来描述根据本发明的这种实施方式的一种基于IO业务的缓存装置1000。图10所示的基于IO业务的缓存装置1000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
基于IO业务的缓存装置1000以硬件模块的形式表现。基于IO业务的缓存装置1000的组件可以包括但不限于:第一确定模块1002,用于在用户态下获取到IO业务请求时,确定IO业务请求的业务类型;第一配置模块1004,用于基于业务类型为IO业务请求配置对应的标识;传递模块1006,用于将携带标识的IO业务请求传递到内核态;第二确定模块1008,用于在内核态,基于对标识的识别结果,确定对应的缓存策略;执行模块1010,用于基于对应的缓存策略对IO业务执行缓存操作。
在一个实施例中,还包括:构建模块1012,用于在内核态构建标记转换与传递层;第二确定模块1008还用于:基于标记转换与传递层将业务标识转化成内核对应标记,并确定与内核对应标记匹配的缓存策略,其中,内核对应标记为bio结构中的标记。
在一个实施例中,还包括:预设模块1014,用于预设块设备缓存模型与多种缓存策略,并建立缓存策略与内核对应标记之间的匹配关系;第二确定模块1008还用于:基于块设备缓存模型确定与内核对应标记匹配的缓存策略。
在一个实施例中,第二确定模块1008还用于:在基于内核对应标记检测到IO业务请求的要求时延大于时延阈值时,IO业务请求记为第一IO业务请求,将绕过缓存策略确定为与第一IO业务请求匹配的缓存策略,其中,基于绕过缓存策略,对IO业务执行绕过缓存操作。
在一个实施例中,第二确定模块1008还用于:在基于内核对应标记检测到IO业务请求为临时IO业务请求时,IO业务请求记为第二IO业务请求,将优先淘汰策略确定为与第二IO业务请求匹配的缓存策略,其中,基于优先淘汰策略,在回收时释放第二IO业务请求对应的副本数据占用的缓存空间。
在一个实施例中,第二确定模块1008还用于:在基于内核对应标记检测到IO业务请求为常驻IO业务请求时,IO业务请求记为第三IO业务请求,将常驻缓存策略确定为与第三IO业务请求匹配的缓存策略,其中,基于常驻缓存策略,在执行缓存淘汰操作时,跳过内核对应标记为常驻缓存的副本数据。
在一个实施例中,还包括:第二配置模块1016,用于基于块设备缓存模型将机械硬盘和固态硬盘配置为混合盘;部署模块1018,用于在混合盘上部署Ceph OSD;建立模块1020,用于基于Ceph OSD建立不同的业务标识与不同的IO业务请求之间的映射关系;传递模块1006还用于:基于系统调用将映射关系传递至内核态;建立模块1020还用于:在内核态,建立业务标识与内核对应标记之间的对应关系。
如图11所示,根据本公开的一个实施例的服务器,具体为电子设备,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1110可以执行如图2中所示的步骤S202至步骤S208所描述的方案。
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)11201和/或高速缓存存储单元11202,还可以进一步包括只读存储单元(ROM)11203。
存储单元1120还可以包括具有一组(至少一个)程序模块11205的程序/实用工具11204,这样的程序模块11205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1100也可以与一个或多个外部设备1160(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1140进行。并且,电子设备1100还可以通过网络适配器1150与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1150通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种基于IO业务的缓存方法,其特征在于,包括:
在用户态下获取到块设备的IO业务请求时,确定所述IO业务请求的业务类型;
基于所述业务类型为所述IO业务请求配置对应的业务标识;
将携带所述业务标识的所述IO业务请求传递到内核态;
在所述内核态,基于对所述业务标识的识别结果,确定对应的缓存策略;
基于所述对应的缓存策略对所述IO业务执行缓存操作。
2.根据权利要求1所述的基于IO业务的缓存方法,其特征在于,在用户态下获取到IO业务请求时,确定所述IO业务请求的业务类型之前,还包括:
在所述内核态构建标记转换与传递层;
所述基于对所述业务标识的识别结果,确定对应的缓存策略,具体包括:
基于所述标记转换与传递层将所述业务标识转化成内核对应标记,并确定与所述内核对应标记匹配的所述缓存策略,
其中,所述内核对应标记为bio结构中的标记。
3.根据权利要求2所述的基于IO业务的缓存方法,其特征在于,在用户态下获取到IO业务请求时,确定所述IO业务请求的业务类型之前,还包括:
预设块设备缓存模型与多种缓存策略,并建立所述缓存策略与所述内核对应标记之间的匹配关系;
所述确定与所述内核对应标记匹配的所述缓存策略,具体包括:
基于所述块设备缓存模型确定与所述内核对应标记匹配的所述缓存策略。
4.根据权利要求3所述的基于IO业务的缓存方法,其特征在于,所述确定与所述内核对应标记匹配的所述缓存策略,具体包括:
在基于所述内核对应标记检测到所述IO业务请求的要求时延大于时延阈值时,所述IO业务请求记为第一IO业务请求,将绕过缓存策略确定为与所述第一IO业务请求匹配的所述缓存策略,
其中,基于所述绕过缓存策略,对所述IO业务执行绕过缓存操作。
5.根据权利要求3所述的基于IO业务的缓存方法,其特征在于,所述确定与所述内核对应标记匹配的所述缓存策略,具体包括:
在基于所述内核对应标记检测到所述IO业务请求为临时IO业务请求时,所述IO业务请求记为第二IO业务请求,将优先淘汰策略确定为与所述第二IO业务请求匹配的所述缓存策略,
其中,基于所述优先淘汰策略,在回收时释放所述第二IO业务请求对应的副本数据占用的缓存空间。
6.根据权利要求3所述的基于IO业务的缓存方法,其特征在于,所述确定与所述内核对应标记匹配的所述缓存策略,具体包括:
在基于所述内核对应标记检测到所述IO业务请求为常驻IO业务请求时,所述IO业务请求记为第三IO业务请求,将常驻缓存策略确定为与所述第三IO业务请求匹配的所述缓存策略,
其中,基于所述常驻缓存策略,在执行缓存淘汰操作时,跳过所述内核对应标记为常驻缓存的副本数据。
7.根据权利要求3至6中任一项所述的基于IO业务的缓存方法,其特征在于,在用户态下获取到IO业务请求时,确定所述IO业务请求的业务类型之前,还包括:
基于块设备缓存模型将机械硬盘和固态硬盘配置为混合盘;
在所述混合盘上部署Ceph OSD;
基于所述Ceph OSD建立不同的所述业务标识与不同的所述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 |
---|---|---|---|
CN202111599724.9A CN114296646B (zh) | 2021-12-24 | 2021-12-24 | 基于io业务的缓存方法、装置、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111599724.9A CN114296646B (zh) | 2021-12-24 | 2021-12-24 | 基于io业务的缓存方法、装置、服务器和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114296646A true CN114296646A (zh) | 2022-04-08 |
CN114296646B CN114296646B (zh) | 2023-06-23 |
Family
ID=80968921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111599724.9A Active CN114296646B (zh) | 2021-12-24 | 2021-12-24 | 基于io业务的缓存方法、装置、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114296646B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115576503A (zh) * | 2022-12-09 | 2023-01-06 | 深圳市泛联信息科技有限公司 | 数据存储方法、装置、存储介质及存储设备 |
CN116204693A (zh) * | 2023-04-27 | 2023-06-02 | 中国信息通信研究院 | 基于工业互联网的标识解析方法和装置、设备和介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544324A (zh) * | 2013-11-11 | 2014-01-29 | 北京搜狐新媒体信息技术有限公司 | 一种内核态的数据访问方法、装置及系统 |
CN105138292A (zh) * | 2015-09-07 | 2015-12-09 | 四川神琥科技有限公司 | 磁盘数据读取方法 |
CN105939365A (zh) * | 2015-06-29 | 2016-09-14 | 杭州迪普科技有限公司 | 主控板用户态从业务板内核态获取数据的方法及装置 |
CN109388499A (zh) * | 2017-08-04 | 2019-02-26 | 东软集团股份有限公司 | 报文转发方法及装置、计算机可读存储介质、电子设备 |
CN109840156A (zh) * | 2017-11-29 | 2019-06-04 | 腾讯科技(武汉)有限公司 | 一种数据缓存方法及其设备、存储介质、终端 |
US20190250857A1 (en) * | 2019-04-26 | 2019-08-15 | Intel Corporation | TECHNOLOGIES FOR AUTOMATIC WORKLOAD DETECTION AND CACHE QoS POLICY APPLICATION |
CN110196681A (zh) * | 2018-04-11 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 业务写操作的磁盘数据写入控制方法及装置、电子设备 |
CN112131145A (zh) * | 2020-09-08 | 2020-12-25 | 北京易捷思达科技发展有限公司 | 应用于ceph的缓存方法及装置 |
CN112416863A (zh) * | 2020-10-19 | 2021-02-26 | 网宿科技股份有限公司 | 数据存储方法及缓存服务器 |
-
2021
- 2021-12-24 CN CN202111599724.9A patent/CN114296646B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544324A (zh) * | 2013-11-11 | 2014-01-29 | 北京搜狐新媒体信息技术有限公司 | 一种内核态的数据访问方法、装置及系统 |
CN105939365A (zh) * | 2015-06-29 | 2016-09-14 | 杭州迪普科技有限公司 | 主控板用户态从业务板内核态获取数据的方法及装置 |
CN105138292A (zh) * | 2015-09-07 | 2015-12-09 | 四川神琥科技有限公司 | 磁盘数据读取方法 |
CN109388499A (zh) * | 2017-08-04 | 2019-02-26 | 东软集团股份有限公司 | 报文转发方法及装置、计算机可读存储介质、电子设备 |
CN109840156A (zh) * | 2017-11-29 | 2019-06-04 | 腾讯科技(武汉)有限公司 | 一种数据缓存方法及其设备、存储介质、终端 |
CN110196681A (zh) * | 2018-04-11 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 业务写操作的磁盘数据写入控制方法及装置、电子设备 |
US20190250857A1 (en) * | 2019-04-26 | 2019-08-15 | Intel Corporation | TECHNOLOGIES FOR AUTOMATIC WORKLOAD DETECTION AND CACHE QoS POLICY APPLICATION |
CN112131145A (zh) * | 2020-09-08 | 2020-12-25 | 北京易捷思达科技发展有限公司 | 应用于ceph的缓存方法及装置 |
CN112416863A (zh) * | 2020-10-19 | 2021-02-26 | 网宿科技股份有限公司 | 数据存储方法及缓存服务器 |
Non-Patent Citations (3)
Title |
---|
LING ZHAN 等: ""The research and implementation of metadata cache backup technology based on CEPH file system"", 《IEEE》, pages 1 - 5 * |
唐蜜: ""基于客户端缓存与请求调度的Ceph文件系统读时延优化策略研究"", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 2018, pages 137 - 79 * |
张晓 等: ""Ceph分布式存储系统性能优化技术研究综述"", 《计算机科学》, vol. 48, no. 2, pages 1 - 11 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115576503A (zh) * | 2022-12-09 | 2023-01-06 | 深圳市泛联信息科技有限公司 | 数据存储方法、装置、存储介质及存储设备 |
CN116204693A (zh) * | 2023-04-27 | 2023-06-02 | 中国信息通信研究院 | 基于工业互联网的标识解析方法和装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114296646B (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930676B (zh) | 多处理器间的通信方法、装置、系统及存储介质 | |
CN114296646B (zh) | 基于io业务的缓存方法、装置、服务器和存储介质 | |
EP2284725A1 (en) | Client, brokerage server and method for providing cloud storage | |
US20200076881A1 (en) | Method, device and vehicle for message deduplication | |
CN114064302B (zh) | 一种进程间通信的方法及装置 | |
US20190227918A1 (en) | Method for allocating memory resources, chip and non-transitory readable medium | |
CN115827506A (zh) | 数据写入方法、数据读取方法、装置、处理核和处理器 | |
JP2002007182A (ja) | 外部記憶装置の共有ファイル管理方式 | |
CN112256460A (zh) | 进程间通信方法、装置、电子设备及计算机可读存储介质 | |
WO2014100954A1 (zh) | 数据控制方法及系统 | |
US9021492B2 (en) | Dual mode reader writer lock | |
CN117492661A (zh) | 数据写入方法、介质、装置和计算设备 | |
US20200319944A1 (en) | User-space parallel access channel for traditional filesystem using capi technology | |
CN114936189A (zh) | 应用程序的操作方法、装置、计算机设备和可读存储介质 | |
JP5621191B2 (ja) | 情報通信処理装置、情報通信端末、情報通信システム、機能切替方法及び機能切替プログラム | |
US20220261489A1 (en) | Capability management method and computer device | |
CN115495406A (zh) | 一种基于PCIe的报文传输方法、装置、设备及存储介质 | |
CN116486868A (zh) | 计算高速链路(CXL)上的高速非易失性存储器(NVMe) | |
US8862785B2 (en) | System and method for redirecting input/output (I/O) sequences | |
TW202230140A (zh) | 管理記憶體的方法及非暫時性電腦可讀媒體 | |
WO2020221033A1 (zh) | 管理设备对远端存储设备进行管理的方法 | |
CN109558375B (zh) | 一种优化的文件存储方法、存储介质、设备及系统 | |
WO2023201648A1 (zh) | 文件的操作装置、计算机设备和操作设备 | |
WO2024060193A1 (zh) | 应用于计算机设备的操作方法、装置和计算机设备 | |
WO2023201653A1 (zh) | 文件的操作方法、装置、计算机设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |