CN112039999A - 一种内核态访问分布式块存储系统的方法及系统 - Google Patents
一种内核态访问分布式块存储系统的方法及系统 Download PDFInfo
- Publication number
- CN112039999A CN112039999A CN202010919808.5A CN202010919808A CN112039999A CN 112039999 A CN112039999 A CN 112039999A CN 202010919808 A CN202010919808 A CN 202010919808A CN 112039999 A CN112039999 A CN 112039999A
- Authority
- CN
- China
- Prior art keywords
- data
- distributed block
- block storage
- target data
- reading request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004590 computer program Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种内核态访问分布式块存储系统的方法、系统、计算机设备及存储介质,所述分布式块存储系统包括计算节点和分布式块存储集群,所述方法应用于所述计算节点,该方法包括:接收数据访问方发出的数据读请求;判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。本发明通过在内核态块驱动层实现数据的缓存机制,减少内核态与用户态的切换次数,有效利用资源,有效提高访问效率的同时,使得分布式块设备使用方式和本地磁盘使用习惯一致,降低使用成本。
Description
技术领域
本发明涉及分布式存储技术领域,特别涉及一种内核态访问分布式块存储系统的方法、系统、计算机设备及存储介质。
背景技术
现有技术中,在实现分布式块存储时一般通过用户态接口提供对块设备的操作访问。这种实现因为在用户态,所以易于编码实现,不影响内核稳定性而受到青睐。但是这种实现的缺点是用户读写消息会在用户态和内核态切换多次,增加了消息时延。同时,对于客户端的实现上,很多是简单的消息收发,很少有在客户端实现缓存等的机制。
因此亟需提出一种新的访问分布式块存储系统的方法,以解决上述问题。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种内核态访问分布式块存储系统的方法、系统、计算机设备以及存储介质,以克服现有技术中存在的用户读写消息会在用户态和内核态切换多次,增加了消息时延以及客户端的实现上,很多是简单的消息收发,很少有在客户端实现缓存等的机制等问题。
为解决上述一个或多个技术问题,本发明采用的技术方案是:
第一方面,提供了一种内核态访问分布式块存储系统的方法,所述分布式块存储系统包括计算节点和分布式块存储集群,该方法包括如下步骤:
接收数据访问方发出的数据读请求;
判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;
若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
进一步的,所述向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方包括:
根据所述数据读请求在预先配置的线程池中生成对应的线程;
通过执行所述线程向所述分布式块存储集群请求与所述数据读请求对应的目标数据并返回给所述数据访问方。
进一步的,所述向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方还包括:
通过执行所述线程向所述分布式块存储集群请求到与所述数据读请求对应的目标数据后,将所述目标数据写入所述缓存中。
进一步的,所述方法还包括:
接收数据访问方发出的数据写请求,所述数据写请求包括待写入所述分布式块存储集群的待处理数据;
将所述待处理数据写入所述计算节点的缓存中,并在预先配置的线程池中生成对应的线程;
通过执行所述线程将所述待处理数据写入所述分布式块存储集群中。
进一步的,所述在预先配置的线程池中生成对应的线程前,所述方法还包括:
根据所述数据写请求生成对应的数据写任务;
定时执行所述数据写任务对所述待处理数据进行预处理;
所述通过执行所述线程将所述待处理数据写入所述分布式块存储集群中包括:
通过执行所述线程将预处理后的所述待处理数据写入所述分布式块存储集群中。
进一步的,所述计算节点包括安装有Linux系统的计算机设备,所述方法还包括缓存的实现过程,包括:
在所述Linux系统的设备驱动层加载预先配置的内核模块,所述内核模块包括缓存。
进一步的,所述内核模块可以通过预设的通信协议与所述分布式块集群通信,以便进行读和/或写操作。
第二方面,提供了一种分布式块存储系统,所述系统包括计算节点和分布式块存储集群,所述计算节点包括:
数据接收模块,用于接收数据访问方发出的数据读请求;
数据判断模块,用于判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;
数据返回模块,用于返回所述目标数据给所述数据访问方;
请求发送模块,用于向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
接收数据访问方发出的数据读请求;
判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;
若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
接收数据访问方发出的数据读请求;
判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;
若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
本发明实施例提供的技术方案带来的有益效果是:
1、本发明实施例提供的内核态访问分布式块存储系统的方法、系统、计算机设备及存储介质,通过接收数据访问方发出的数据读请求,判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据,若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方,通过在内核态块驱动层实现数据的缓存机制,减少内核态与用户态的切换次数,有效利用资源,有效提高访问效率的同时,使得分布式块设备使用方式和本地磁盘使用习惯一致,降低使用成本。
2、本发明实施例提供的内核态访问分布式块存储系统的方法、系统、计算机设备及存储介质,通过在所述Linux系统的设备驱动层加载预先配置的内核模块,所述内核模块包括缓存,所述内核模块可以通过预设的通信协议与所述分布式块集群通信,直接在计算节点(相当于客户端)实现缓存等功能,让原本由服务端处理的任务前移到客户端,提高整个集群的服务能力和响应速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的分布式块存储系统的架构图;
图2是根据一示例性实施例示出的内核态访问分布式块存储系统的方法的流程图;
图3是根据一示例性实施例示出的内核态访问分布式块存储系统的方法的另一流程图;
图4是根据一示例性实施例示出的计算机设备的内部结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如背景技术所述,通过用户态接口提供对块设备的操作访问,当用户读写消息时会在用户态和内核态切换多次,增加了消息时延,而分布式块存储对于读写延迟具有很高的要求,特别是在数据库业务的使用场景下。
为了尽可能缩短时延,本发明实施例中创造性的提出了一种内核态访问分布式块存储系统的方法,该方法在内核态块设备驱动层增加对分布式块设备的支持。同时,它让使用分布式块设备和使用本地磁盘的方式一致,减少了运维开销和使用成本。本发明实施例中主要在设备驱动层增加分布式块设备的自定义的内核模块,使得内核可以识别分布式设备,直接对分布式块存储集群进行读写等操作,减少用户态和内核态切换次数,降低时延。
图1是根据一示例性实施例示出的分布式块存储系统的架构图,参照图1所示,本发明实施例中,该分布式块存储系统至少包括计算节点和分布式块存储集群,分布式块存储集群包括多个分布式块存储设备,以在Linux内核态实现分布式块存储设备驱动为例,即计算节点为安装有Linux系统的计算机设备时,所述计算节点包括块设备层(Block layer)和块设备驱动层(Block driver),在块设备驱动层配置内核模块,通过该内核模块,可以实现在块设备驱动层(即客户端)实现缓存、预读、写合并等功能,让原本有服务端处理的任务前移到客户端,提高整个集群的服务能力和响应速度。
具体的,上述方案可通过如下步骤实现:
步骤一、实现分布式块存储客户端内核模块,该内核模块包括不限于如下功能:链路管理功能、消息收发功能、数据缓存功能、预读功能、写缓存功能等。
具体的,为了提高分布式块设备的读写性能,在块设备驱动层进行内核模块开发,该内核模块对外提供对块存储设备的操作接口,包括但不限于:打开块存储设备、关闭块存储设备、读操作、写操作等。该内核模块至少可以实现以下功能:
1、该内核模块可以与分布式块存储集群各节点之间建立多链路通信,提高并发能力;
2、该内核模块可以实现为多线程方式,线程主要分为两类:IO收发线程和IO处理线程。这两类线程各组成一个线程池,即IO收发线程池,负责网络数据的收发,IO处理线程池负责数据的具体处理,如控制报文解析,报文处理,EC处理等;
3、该内核模块可以实现本地数据的缓存机制。使用过程中,读操作优先命中本地缓存,如未命中再向集群发送读请求。写操作先缓存在本地内存或SSD中,再由定时任务对写数据进行合并、聚合、去冗,再向集群发送写请求。
这里需要说明的是,作为一种较优的实施方式,本发明实施例中,对于缓存机制,具体实施时,可以采取B树存储,LRU方式缓存热点数据。
步骤二、加载分布式块存储设备内核模块。
具体的,本发明实施例中,可以使用modprobe命令加载分布式块存储设备内核模块.将定义好的内核模块加载至块设备驱动层(Block driver),从而在块设备驱动层(Block driver)中增加对分布式块设备的支持,调用分布式块设备模块接口。加载后,编译内核代码,并更新内核,重新启动机器,这里的机器指需要使用块设备的计算节点。
其中,modprobe是linux的一个命令,可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。
步骤三、通过自定义命令将上述分布式块存储设备map到本地系统中。
具体的,本发明实施例中,内核模块实现一个map命令,将分布式块存储集群中已存在的块设备映射到本地计算节点中,磁盘列表中新增的设备就是分布式块设备。操作完成后,即可以像本地磁盘一样使用分布式块设备了,也就是说如操作本地磁盘一样读写分布式块设备即可。
实施例二
图2和图3是根据一示例性实施例示出的内核态访问分布式块存储系统的方法的流程图,参照图2和图3所示,该方法包括如下步骤:
S1:接收数据访问方发出的数据读请求。
具体的,以计算节点为安装有Linux系统的计算机设备为例,本发明实施例中,计算节点中预先配置一内核模块,该内核模块可以在块设备驱动层(即客户端)实现缓存、预读、写合并等功能。在数据访问方发出数据读请求后,该数据读请求经块设备层(Blocklayer)传递至块设备驱动层(Block driver),由该内核模块进行接收并处理。
S2:判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据。
具体的,本发明实施例中,设置内核模块具有本地数据的缓存机制。内核模块接收到该数据读请求后,对所述数据读请求进行解析处理,根据解析结果判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据。
S3:若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
具体的,若是在缓存中查找到与所述数据读请求对应的目标数据,则直接将该目标数据返回给所述数据访问方,从而不需要向分布式块存储集群请求目标数据,减少内核态与用户态的切换次数,有效利用资源,有效提高访问效率。若是在缓存中没有查找到与所述数据读请求对应的目标数据时,此时才向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
作为一种较优的实施方式,本发明实施例中,所述向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方包括:
根据所述数据读请求在预先配置的线程池中生成对应的线程;
通过执行所述线程向所述分布式块存储集群请求与所述数据读请求对应的目标数据并返回给所述数据访问方。
具体的,本发明实施例中,内核模块可以实现为多线程方式,线程主要分为两类:IO收发线程和IO处理线程。这两类线程各组成一个线程池,即IO收发线程池,负责网络数据的收发,IO处理线程池负责数据的具体处理,如控制报文解析,报文处理,EC处理等。当在缓存中没有查找到与所述数据读请求对应的目标数据时,根据所述数据读请求在预先配置的线程池中生成对应的线程,然后通过执行所述线程向所述分布式块存储集群请求与所述数据读请求对应的目标数据,并将分布式块存储集群返回的目标数据发送给所述数据访问方。
作为一种较优的实施方式,本发明实施例中,所述向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方还包括:
通过执行所述线程向所述分布式块存储集群请求到与所述数据读请求对应的目标数据后,将所述目标数据写入所述缓存中。
具体的,本发明实施例中,从分布式块存储集群请求到与所述数据读请求对应的目标数据后,还需要将该目标数据写入到缓存中,以便后续接收到目标数据的读请求时,可以直接从缓存中命中该数据,减少用户态和内核态切换次数。具体操作时,可以通过处理线程将目标数据写入缓存。
作为一种较优的实施方式,本发明实施例中,所述方法还包括:
接收数据访问方发出的数据写请求,所述数据写请求包括待写入所述分布式块存储集群的待处理数据;
将所述待处理数据写入所述计算节点的缓存中,并在预先配置的线程池中生成对应的线程;
通过执行所述线程将所述待处理数据写入所述分布式块存储集群中。
具体的,同样的,本发明实施例中,当内核模块接收到数据访问方发出的数据写请求时,先将写请求携带的待处理数据写入所述计算节点的缓存(即内核模块的缓存)中,然后在预先配置的线程池中生成对应的线程,通过执行所述线程将所述待处理数据写入所述分布式块存储集群中。
作为一种较优的实施方式,本发明实施例中,所述在预先配置的线程池中生成对应的线程前,所述方法还包括:
根据所述数据写请求生成对应的数据写任务;
定时执行所述数据写任务对所述待处理数据进行预处理;
所述通过执行所述线程将所述待处理数据写入所述分布式块存储集群中包括:
通过执行所述线程将预处理后的所述待处理数据写入所述分布式块存储集群中。
具体的,本发明实施例中,对所述待处理数据进行预处理包括对待处理数据进行合并、聚合、去冗等操作,这里不再一一赘述。
作为一种较优的实施方式,本发明实施例中,所述计算节点包括安装有Linux系统的计算机设备,所述方法还包括缓存的实现过程,包括:
在所述Linux系统的设备驱动层加载预先配置的内核模块,所述内核模块包括缓存。
作为一种较优的实施方式,本发明实施例中,所述内核模块可以通过预设的通信协议与所述分布式块集群通信,以便进行读和/或写操作。
实施例三
本发明实施例中,还提供了一种分布式块存储系统的结构示意图,所述系统包括计算节点和分布式块存储集群,所述计算节点包括:
数据接收模块,用于接收数据访问方发出的数据读请求;
数据判断模块,用于判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;
数据返回模块,用于返回所述目标数据给所述数据访问方;
请求发送模块,用于向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
作为一种较优的实施方式,本发明实施例中,所述请求发送模块具体用于:
根据所述数据读请求在预先配置的线程池中生成对应的线程;
通过执行所述线程向所述分布式块存储集群请求与所述数据读请求对应的目标数据并返回给所述数据访问方。
作为一种较优的实施方式,本发明实施例中,所述请求发送模块还用于:
通过执行所述线程向所述分布式块存储集群请求到与所述数据读请求对应的目标数据后,将所述目标数据写入所述缓存中。
作为一种较优的实施方式,本发明实施例中,所述数据接收模块还用于:
接收数据访问方发出的数据写请求,所述数据写请求包括待写入所述分布式块存储集群的待处理数据;
所述计算节点还包括:
数据写入模块,用于将所述待处理数据写入所述计算节点的缓存中,并在预先配置的线程池中生成对应的线程,以及通过执行所述线程将所述待处理数据写入所述分布式块存储集群中。
作为一种较优的实施方式,本发明实施例中,所述计算节点还包括:
任务生成模块,用于根据所述数据写请求生成对应的数据写任务;
预处理模块,用于定时执行所述数据写任务对所述待处理数据进行预处理;
所述数据写入模块还用于:
通过执行所述线程将预处理后的所述待处理数据写入所述分布式块存储集群中。
作为一种较优的实施方式,本发明实施例中,所述计算节点包括安装有Linux系统的计算机设备,所述Linux系统的设备驱动层加载有预先配置的内核模块,所述内核模块包括缓存。
作为一种较优的实施方式,本发明实施例中,所述内核模块可以通过预设的通信协议与所述分布式块集群通信,以便进行读和/或写操作。
实施例四
图4是根据一示例性实施例示出的计算机设备的内部结构示意图,参照图4所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种执行计划的优化方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
作为一种较优的实施方式,本发明实施例中,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收数据访问方发出的数据读请求;
判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;
若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
根据所述数据读请求在预先配置的线程池中生成对应的线程;
通过执行所述线程向所述分布式块存储集群请求与所述数据读请求对应的目标数据并返回给所述数据访问方。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
通过执行所述线程向所述分布式块存储集群请求到与所述数据读请求对应的目标数据后,将所述目标数据写入所述缓存中。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
接收数据访问方发出的数据写请求,所述数据写请求包括待写入所述分布式块存储集群的待处理数据;
将所述待处理数据写入所述计算节点的缓存中,并在预先配置的线程池中生成对应的线程;
通过执行所述线程将所述待处理数据写入所述分布式块存储集群中。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
根据所述数据写请求生成对应的数据写任务;
定时执行所述数据写任务对所述待处理数据进行预处理;
通过执行所述线程将预处理后的所述待处理数据写入所述分布式块存储集群中。
作为一种较优的实施方式,本发明实施例中,所述计算节点包括安装有Linux系统的计算机设备,所述Linux系统的设备驱动层加载有预先配置的内核模块,所述内核模块包括缓存。
作为一种较优的实施方式,本发明实施例中,所述内核模块可以通过预设的通信协议与所述分布式块集群通信,以便进行读和/或写操作。
实施例五
本发明实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
接收数据访问方发出的数据读请求;
判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;
若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
根据所述数据读请求在预先配置的线程池中生成对应的线程;
通过执行所述线程向所述分布式块存储集群请求与所述数据读请求对应的目标数据并返回给所述数据访问方。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
通过执行所述线程向所述分布式块存储集群请求到与所述数据读请求对应的目标数据后,将所述目标数据写入所述缓存中。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
接收数据访问方发出的数据写请求,所述数据写请求包括待写入所述分布式块存储集群的待处理数据;
将所述待处理数据写入所述计算节点的缓存中,并在预先配置的线程池中生成对应的线程;
通过执行所述线程将所述待处理数据写入所述分布式块存储集群中。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
根据所述数据写请求生成对应的数据写任务;
定时执行所述数据写任务对所述待处理数据进行预处理;
通过执行所述线程将预处理后的所述待处理数据写入所述分布式块存储集群中。
作为一种较优的实施方式,本发明实施例中,所述计算节点包括安装有Linux系统的计算机设备,所述Linux系统的设备驱动层加载有预先配置的内核模块,所述内核模块包括缓存。
作为一种较优的实施方式,本发明实施例中,所述内核模块可以通过预设的通信协议与所述分布式块集群通信,以便进行读和/或写操作。
综上所述,本发明实施例提供的技术方案带来的有益效果是:
3、本发明实施例提供的内核态访问分布式块存储系统的方法、系统、计算机设备及存储介质,通过接收数据访问方发出的数据读请求,判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据,若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方,通过在内核态块驱动层实现数据的缓存机制,减少内核态与用户态的切换次数,有效利用资源,有效提高访问效率的同时,使得分布式块设备使用方式和本地磁盘使用习惯一致,降低使用成本。
本发明实施例提供的内核态访问分布式块存储系统的方法、系统、计算机设备及存储介质,通过在所述Linux系统的设备驱动层加载预先配置的内核模块,所述内核模块包括缓存,所述内核模块可以通过预设的通信协议与所述分布式块集群通信,直接在计算节点(相当于客户端)实现缓存等功能,让原本由服务端处理的任务前移到客户端,提高整个集群的服务能力和响应速度。
需要说明的是:本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种内核态访问分布式块存储系统的方法,所述分布式块存储系统包括计算节点和分布式块存储集群,其特征在于,所述方法包括如下步骤:
接收数据访问方发出的数据读请求;
判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;
若存在,则返回所述目标数据给所述数据访问方,否则,向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
2.根据权利要求1所述的内核态访问分布式块存储系统的方法,其特征在于,所述向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方包括:
根据所述数据读请求在预先配置的线程池中生成对应的线程;
通过执行所述线程向所述分布式块存储集群请求与所述数据读请求对应的目标数据并返回给所述数据访问方。
3.根据权利要求2所述的内核态访问分布式块存储系统的方法,其特征在于,所述向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方还包括:
通过执行所述线程向所述分布式块存储集群请求到与所述数据读请求对应的目标数据后,将所述目标数据写入所述缓存中。
4.根据权利要求1至3任一所述的内核态访问分布式块存储系统的方法,其特征在于,所述方法还包括:
接收数据访问方发出的数据写请求,所述数据写请求包括待写入所述分布式块存储集群的待处理数据;
将所述待处理数据写入所述计算节点的缓存中,并在预先配置的线程池中生成对应的线程;
通过执行所述线程将所述待处理数据写入所述分布式块存储集群中。
5.根据权利要求4所述的内核态访问分布式块存储系统的方法,其特征在于,所述在预先配置的线程池中生成对应的线程前,所述方法还包括:
根据所述数据写请求生成对应的数据写任务;
定时执行所述数据写任务对所述待处理数据进行预处理;
所述通过执行所述线程将所述待处理数据写入所述分布式块存储集群中包括:
通过执行所述线程将预处理后的所述待处理数据写入所述分布式块存储集群中。
6.根据权利要求1或2所述的内核态访问分布式块存储系统的方法,其特征在于,所述计算节点包括安装有Linux系统的计算机设备,所述方法还包括缓存的实现过程,包括:
在所述Linux系统的设备驱动层加载预先配置的内核模块,所述内核模块包括缓存。
7.根据权利要求6所述的内核态访问分布式块存储系统的方法,其特征在于,所述内核模块可以通过预设的通信协议与所述分布式块集群通信,以便进行读和/或写操作。
8.一种分布式块存储系统,所述系统包括计算节点和分布式块存储集群,其特征在于,所述计算节点包括:
数据接收模块,用于接收数据访问方发出的数据读请求;
数据判断模块,用于判断所述计算节点的缓存中是否存在与所述数据读请求对应的目标数据;
数据返回模块,用于返回所述目标数据给所述数据访问方;
请求发送模块,用于向所述分布式块存储集群发送所述数据读请求,以便获取与所述数据读请求对应的目标数据返回给所述数据访问方。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010919808.5A CN112039999A (zh) | 2020-09-03 | 2020-09-03 | 一种内核态访问分布式块存储系统的方法及系统 |
CA3129982A CA3129982A1 (en) | 2020-09-03 | 2021-09-03 | Method and system for accessing distributed block storage system in kernel mode |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010919808.5A CN112039999A (zh) | 2020-09-03 | 2020-09-03 | 一种内核态访问分布式块存储系统的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112039999A true CN112039999A (zh) | 2020-12-04 |
Family
ID=73591487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010919808.5A Pending CN112039999A (zh) | 2020-09-03 | 2020-09-03 | 一种内核态访问分布式块存储系统的方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112039999A (zh) |
CA (1) | CA3129982A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052291A (zh) * | 2020-09-03 | 2020-12-08 | 苏宁云计算有限公司 | 一种用户态访问分布式块存储系统的方法及系统 |
CN112463662A (zh) * | 2020-12-16 | 2021-03-09 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
CN116107764A (zh) * | 2023-04-03 | 2023-05-12 | 阿里云计算有限公司 | 数据处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544324A (zh) * | 2013-11-11 | 2014-01-29 | 北京搜狐新媒体信息技术有限公司 | 一种内核态的数据访问方法、装置及系统 |
CN106648886A (zh) * | 2016-10-20 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种分布式存储系统的实现方法及装置 |
CN111008233A (zh) * | 2019-11-24 | 2020-04-14 | 浪潮电子信息产业股份有限公司 | 一种kv数据库的访问方法、装置及设备 |
-
2020
- 2020-09-03 CN CN202010919808.5A patent/CN112039999A/zh active Pending
-
2021
- 2021-09-03 CA CA3129982A patent/CA3129982A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544324A (zh) * | 2013-11-11 | 2014-01-29 | 北京搜狐新媒体信息技术有限公司 | 一种内核态的数据访问方法、装置及系统 |
CN106648886A (zh) * | 2016-10-20 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种分布式存储系统的实现方法及装置 |
CN111008233A (zh) * | 2019-11-24 | 2020-04-14 | 浪潮电子信息产业股份有限公司 | 一种kv数据库的访问方法、装置及设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052291A (zh) * | 2020-09-03 | 2020-12-08 | 苏宁云计算有限公司 | 一种用户态访问分布式块存储系统的方法及系统 |
CN112463662A (zh) * | 2020-12-16 | 2021-03-09 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
CN112463662B (zh) * | 2020-12-16 | 2024-04-05 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
CN116107764A (zh) * | 2023-04-03 | 2023-05-12 | 阿里云计算有限公司 | 数据处理方法及系统 |
CN116107764B (zh) * | 2023-04-03 | 2023-09-26 | 阿里云计算有限公司 | 数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CA3129982A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112039999A (zh) | 一种内核态访问分布式块存储系统的方法及系统 | |
US7383290B2 (en) | Transaction processing systems and methods utilizing non-disk persistent memory | |
US7596657B2 (en) | Increased storage capacity for solid state disks using data compression | |
KR20180117641A (ko) | 원격으로 액세스되는 데이터의 효율적인 라이브-이송 | |
US20050071550A1 (en) | Increasing through-put of a storage controller by autonomically adjusting host delay | |
CN112052291A (zh) | 一种用户态访问分布式块存储系统的方法及系统 | |
CN110941395B (zh) | 动态随机存取存储器、内存管理方法、系统及存储介质 | |
US10891150B2 (en) | Storage control method and storage controller for user individual service environment | |
US10198180B2 (en) | Method and apparatus for managing storage device | |
CN108733585B (zh) | 缓存系统及相关方法 | |
US20220253252A1 (en) | Data processing method and apparatus | |
CN116414735A (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
CN112765090B (zh) | 一种目标地址的预取方法、系统、设备及介质 | |
US11294812B2 (en) | Obtaining cache resources for expected writes to tracks in a write set after the cache resources were released for the tracks in the write set | |
US20230244417A1 (en) | Storage node, storage device, and network chip | |
CN111459400A (zh) | 在存储服务器中进行基于管线的存取管理的方法及设备 | |
CN115981559A (zh) | 分布式数据存储方法、装置、电子设备和可读介质 | |
CN111611104B (zh) | 一种InfluxDB数据备份方法、系统及终端设备 | |
CN115793957A (zh) | 写数据的方法、装置及计算机存储介质 | |
KR20180037571A (ko) | 데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법 | |
CN112748989A (zh) | 基于远程内存的虚拟机内存管理方法、系统、终端及介质 | |
CN110825660A (zh) | 一种基于HBase的朱丽叶暂停优化方法、系统及设备 | |
CN117472597B (zh) | 输入输出请求处理方法、系统、电子设备及存储介质 | |
US11899589B2 (en) | Systems, methods, and devices for bias mode management in memory systems | |
CN113253923B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201204 |
|
RJ01 | Rejection of invention patent application after publication |