CN109753446A - 一种存储系统下刷缓存数据的方法 - Google Patents
一种存储系统下刷缓存数据的方法 Download PDFInfo
- Publication number
- CN109753446A CN109753446A CN201910002686.0A CN201910002686A CN109753446A CN 109753446 A CN109753446 A CN 109753446A CN 201910002686 A CN201910002686 A CN 201910002686A CN 109753446 A CN109753446 A CN 109753446A
- Authority
- CN
- China
- Prior art keywords
- cache blocks
- cache
- chained list
- block
- blocks
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000001680 brushing effect Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 5
- 238000003491 array Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 9
- 239000000976 ink Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种存储系统下刷缓存数据的方法,能获取存储系统的缓存中的目标缓存块,并查找目标缓存块所在的缓存块链表,进而从缓存块链表中查找地址偏移值连续的预设数量的缓存块,最后根据查找到的缓存块生成一个写指令并下发到磁盘阵列,以实现缓存数据的下刷,其中,预设数量为RAID条带长度与缓存块链表中缓存块的总数量之间较小的数值。可见,该方法在下刷过程中,能够查找连续的数量接近RAID条带长度的缓存块,并根据这些缓存块构建一个写指令,以实现同时向多个磁盘阵列下刷的目的,显著提高了缓存下刷的效率。此外,本发明还提供了一种存储系统下刷缓存数据的装置、存储服务器及存储系统,其作用与上述方法相对应。
Description
技术领域
本发明涉及存储领域,特别涉及一种存储系统下刷缓存数据的方法、装置、存储服务器及存储系统。
背景技术
存储系统包括用于存储数据的存储服务器和用于发出数据请求客户端,一般情况下,为了提升写请求的响应时间,数据写入存储服务器的缓存后就返回,写入缓存的数据再异步刷写到后端磁盘中。存储系统中缓存向磁盘阵列下刷数据的速度对存储系统的存储性能有极大影响,比如对客户端请求响应延时的影响,因此,如何提高存储系统向磁盘阵列的下刷速度,亟待本领域技术人员的解决。
发明内容
本发明的目的是提供一种存储系统下刷缓存数据的方法、装置、存储服务器及存储系统,用以解决传统的存储系统中缓存向磁盘阵列的下刷速度较低的问题。
为解决上述技术问题,本发明提供了一种存储系统下刷缓存数据的方法,包括:
获取存储系统的缓存中的目标缓存块,其中,所述目标缓存块为从所述缓存的存储空间划分得到的;
查找所述目标缓存块所在的缓存块链表,其中,所述缓存块链表包括多个缓存块;
从所述缓存块链表中查找地址偏移值连续的预设数量的缓存块,其中,所述预设数量的缓存块包括所述目标缓存块,所述预设数量为RAID条带长度与所述缓存块链表中缓存块的总数量之间较小的数值;
根据所述预设数量的缓存块,生成写指令并下发到磁盘阵列,以实现缓存数据的下刷。
可选的,所述查找所述目标缓存块所在的缓存块链表,包括:
获取所述目标缓存块的逻辑卷标识和地址偏移值;
根据所述逻辑卷标识和所述地址偏移值,计算所述目标缓存块所在的缓存块链表的标识信息;
根据所述标识信息,查找所述目标缓存块所在的缓存块链表。
可选的,在所述根据所述预设数量的缓存块,生成写指令并下发到磁盘阵列,以实现缓存数据的下刷之后,还包括:
将所述预设数量的缓存块中的各个缓存块分别写入对应的磁盘阵列。
可选的,所述从所述缓存块链表中查找地址偏移值连续的预设数量的缓存块,包括:
在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第一方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块的数量超过所述RAID条带长度或所述缓存块链表的第一方向不存在未查找到的缓存块为止;
若查找到的缓存块的数量未超过所述RAID条带长度,且所述缓存块链表的第一方向不存在未查找到的缓存块,则在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第二方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块数量超过所述RAID条带长度或所述缓存块链表的第二方向不存在未查找到的缓存块为止。
相应的,本发明还公开了一种存储系统下刷缓存数据的装置,包括:
目标缓存块获取模块:用于获取存储系统的缓存中的目标缓存块,其中,所述目标缓存块为从所述缓存的存储空间划分得到的;
缓存块链表查找模块:用于查找所述目标缓存块所在的缓存块链表,其中,所述缓存块链表包括多个缓存块;
缓存块查找模块:用于从所述缓存块链表中查找地址偏移值连续的预设数量的缓存块,其中,所述预设数量的缓存块包括所述目标缓存块,所述预设数量为RAID条带长度与所述缓存块链表中缓存块的总数量之间较小的数值;
写指令生成模块:用于根据所述预设数量的缓存块,生成写指令并下发到磁盘阵列,以实现缓存数据的下刷。
可选的,所述缓存块链表查找模块包括:
参数获取单元:用于获取所述目标缓存块的逻辑卷标识和地址偏移值;
计算单元:用于根据所述逻辑卷标识和所述地址偏移值,计算所述目标缓存块所在的缓存块链表的标识信息;
查找单元:用于根据所述标识信息,查找所述目标缓存块所在的缓存块链表。
可选的,所述装置还包括:
写入模块:用于将所述预设数量的缓存块中的各个缓存块分别写入对应的磁盘阵列。
可选的,所述缓存块查找模块包括:
第一方向查找单元:用于在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第一方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块的数量超过所述RAID条带长度或所述缓存块链表的第一方向不存在未查找到的缓存块为止;
第二方向查找单元:用于若查找到的缓存块的数量未超过所述RAID条带长度,且所述缓存块链表的第一方向不存在未查找到的缓存块,则在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第二方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块数量超过所述RAID条带长度或所述缓存块链表的第二方向不存在未查找到的缓存块为止。
此外,本发明还提供了一种存储服务器,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现如上所述的一种存储系统下刷缓存数据的方法的步骤。
最后,本发明还提供了一种存储系统,包括客户端,还包括如上所述的一种存储服务器。
本发明所提供的一种存储系统下刷缓存数据的方法,能够获取存储系统的缓存中的目标缓存块,并查找目标缓存块所在的缓存块链表,进而从缓存块链表中查找地址偏移值连续的预设数量的缓存块,最后根据上述预设数量的缓存块,生成一个写指令并下发到磁盘阵列,以实现缓存数据的下刷,其中,预设数量为RAID条带长度与缓存块链表中缓存块的总数量之间较小的数值。可见,该方法在将缓存向磁盘阵列下刷的过程中,能够查找连续的数量接近RAID条带长度的缓存块,并根据这些缓存块构建一个写指令,以实现同时向多个磁盘阵列下刷的目的,显著提高了缓存下刷的效率。
此外,本发明还提供了一种存储系统下刷缓存数据的装置、存储服务器及存储系统,其作用与上述方法相对应,这里不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种存储系统下刷缓存数据的方法实施例一的实现流程图;
图2为本发明所提供的一种存储系统下刷缓存数据的方法实施例二中缓存块的组织方式示意图;
图3为本发明所提供的一种存储系统下刷缓存数据的方法实施例二的查找缓存块的流程示意图;
图4为本发明所提供的一种存储系统下刷缓存数据的方法实施例二的实现流程图;
图5为本发明所提供的一种存储系统下刷缓存数据的装置实施例的功能框图;
图6为本发明所提供的一种存储服务器实施例的结构示意图;
图7为本发明所提供的一种存储系统实施例的系统架构示意图。
具体实施方式
本发明的核心是提供一种存储系统下刷缓存数据的方法、装置、存储服务器及存储系统,实现了在将缓存下刷到磁盘阵列的过程中,尽量查找到连续的数量接近RAID条带长度的缓存块,并将这些缓存块通过一个写指令同时下发到多个磁盘阵列,显著提高了缓存下刷的效率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明提供的一种存储系统下刷缓存数据的方法实施例一进行介绍,参见图1,实施例一包括:
步骤S101:获取存储系统的缓存中的目标缓存块。
本实施例应用于存储系统,该存储系统包括用于存储数据的存储服务器,还包括用于发出数据请求的客户端,更确切的说,本实施例应用于存储系统中的存储服务器。当客户端向存储服务器写入数据时,通常将数据写入存储服务器的缓存就返回请求,后续存储服务器再将缓存中的数据下刷到后端的磁盘阵列。
在本实施例中,把缓存的存储空间,按照一定的粒度进行划分,划分出的等粒度的存储空间称为缓存块,客户端写入的数据都存储在缓存块中。上述目标缓存块指的是缓存中需要下刷到磁盘阵列的多个缓存块中的一个缓存块,具体可以是其中的任意一个缓存块,本实施例对此不做限定。
步骤S102:查找所述目标缓存块所在的缓存块链表。
如上所述,本实施例将缓存的存储空间划分为多个缓存块,为了方便后续快速查找缓存块,本实施例将划分得到的缓存块通过缓存块链表进行组织。具体的,在用于描述缓存块的数据结构中存在两个参数,在查找缓存块的过程中,可以根据这两个参数计算出缓存块位于哪个缓存块链表,然后再从这个缓存块链表中查找出我们想要查找的缓存块,其中这两个参数分别为:用于描述该缓存块中的数据归属于哪个逻辑卷的参数,以及用于描述该数据在逻辑卷中的地址偏移的参数。
步骤S103:从所述缓存块链表中查找地址偏移值连续的预设数量的缓存块。
需要说明的是,上述预设数量的缓存块中包括前述目标缓存块,上述预设数量为RAID条带长度与前述缓存块链表中缓存块的总数量之间较小的数值。RAID条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去,这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O并行能力,从而获得非常好的性能。这里的RAID条带长度,是指一次存储过程所能存储的最大的数据量的数量。
步骤S104:根据所述预设数量的缓存块,生成写指令并下发到磁盘阵列,以实现缓存数据的下刷。
确切的说,是根据上述预设数量的缓存块中的数据构造写I/O,然后发送到磁盘阵列。
本实施例所提供一种存储系统下刷缓存数据的方法,能够获取存储系统的缓存中的目标缓存块,并查找目标缓存块所在的缓存块链表,进而从缓存块链表中查找地址偏移值连续的预设数量的缓存块,最后根据上述预设数量的缓存块,生成一个写指令并下发到磁盘阵列,以实现缓存数据的下刷,其中,预设数量为RAID条带长度与缓存块链表中缓存块的总数量之间较小的数值。可见,该方法在将缓存向磁盘阵列下刷的过程中,能够查找连续的数量接近RAID条带长度的缓存块,并根据这些缓存块构建一个写指令,以实现同时向多个磁盘阵列下刷的目的,显著提高了缓存下刷的效率。
下面开始详细介绍本发明提供的一种存储系统下刷缓存数据的方法实施例二,实施例二作为一个具体的应用实施例二展开,在介绍实施例二的实施过程之前,向对一些准备工作进行介绍。
在本实施例中,把缓存的存储空间按照一定的粒度(如32KB)进行划分,划分出的等粒度的存储空间叫做缓存块,客户端写入存储服务器的数据都存储在缓存块中。作为一种可选的实施方式,缓存块用如下所示的数据结构进行描述,该数据结构中lun_id表示该缓存块中缓存的数据属于哪个逻辑卷,lba表示该数据在逻辑卷中的地址偏移,Hash_link为该缓存块连接到hash表中的连接字段。
为了快速查找缓存块,本实施例将所有的缓存块都通过hash链表进行组织,如图2所示。在查找缓存块时,通过lun_id和lba计算出key值,根据key值找到对应的hash冲突链,再通过遍历hash冲突链查找对应的缓存块。
相较于实施例一,本实施例对从缓存块链表中查找“偏移地址连续的预设数量的缓存块”的过程进行了展开描述,如图3所示,该查找过程包括:
步骤S201:在缓存块链表中,从目标缓存块开始,沿着缓存块链表的第一方向按照地址偏移值变动一个偏移值单位的顺序,查找一个缓存块。
步骤S202:判断查找到的缓存块的总数量是否超过RAID条带长度,若未超过,进入步骤S203,否则进入步骤S205。
步骤S203:判断缓存块链表的第一方向是否存在未查找到的缓存块,若存在,则进入步骤S201,否则进入步骤S204。
步骤S204:在缓存块链表中,从目标缓存块开始,沿着缓存块链表的第二方向按照地址偏移值变动一个偏移值单位的顺序,查找一个缓存块,并在查找到一个缓存块后进入步骤S202。
步骤S205:停止查找,最终查找到的全部缓存块即为上述地址偏移连续的预设数量的缓存块。
本实施例以目标缓存块的地址偏移为基准,按照地址偏移逐渐增大或逐渐减小的顺序将缓存块链表换分为两个方向,分别为第一方向和第二方向。也就是说,上述沿着缓存块链表的第一方向查找缓存块的过程,实际上就是按照地址偏移逐渐增加或减小的顺序从缓存块链表中查找缓存块的过程,相应的,上述沿着缓存块链表的第二方向查找缓存块的过程,实际上就是按照地址偏移逐渐减小或增加的顺序从缓存块链表中查找缓存块的过程。
下面以第一方向为地址偏移逐渐增加的方向为例,详尽的介绍实施例二的实现过程。实施例二的目的在于,在将缓存中数据下刷到后端磁盘阵列时,根据RAID的条带大小,尽量按照RAID的条带大小组织本次刷写的缓存块。参见图4,该实施例包括:
步骤S301:从需要下刷的缓存块链表中获取一个缓存块。
假设缓存块的lun_id为1,lba为LBA_100。
步骤S302:在组条带时先按照LBA大小往后查找。
查找hash表中是否有lun_id为1,lba为LBA_101的缓存块,如果存在,继续往后查找lun_id为1,lba为LBA_102的缓存块,直到找不到为止或者达到一个条带的大小为止。
步骤S303:如果按照LBA的大小往后查找,因为找到连续的缓存块,没有达到一个条带的大小,那么按照LBA往前查找。
查找lun_id为1,lba为LBA_99的缓存块,如果存在,继续往后查找lun_id为1,lba为LBA_98的缓存块,直到找不到为止或者达到一个条带的大小为止。
步骤S304:通过按照LBA向后查找、向前查找,把找到的缓存块中LBA连续的数据,构造成一个写IO下发到后端磁盘阵列,把对应的数据写入后端磁盘阵列。
可见,本实施例提供的一种存储系统下刷缓存数据的方法,把缓存的地址空间按照等粒度划分为缓存块,按照缓存块中缓存数据所在后端存储阵列的地址为hash key,缓存块组织到hash表中,便于快速查找。刷写时,按照缓存块中LBA的大小,向后、向前查找LBA连续的缓存块,组织成一个RAID条带大小的缓存块下刷到后端磁盘阵列中,提升刷写速度。可见,本实施例为了提升缓存数据下刷到后端磁盘阵列的的速度,尽量按照后端RAID的条带大小来组织下刷的数据,下刷时按照RAID条带大小的粒度进行刷写,提升数据的刷写速度。
下面对本发明实施例提供的一种存储系统下刷缓存数据的装置进行介绍,下文描述的一种存储系统下刷缓存数据的装置与上文描述的一种存储系统下刷缓存数据的方法可相互对应参照。
参见图5,该装置实施例包括:
目标缓存块获取模块501:用于获取存储系统的缓存中的目标缓存块,其中,所述目标缓存块为从所述缓存的存储空间划分得到的。
缓存块链表查找模块502:用于查找所述目标缓存块所在的缓存块链表,其中,所述缓存块链表包括多个缓存块。
缓存块查找模块503:用于从所述缓存块链表中查找地址偏移值连续的预设数量的缓存块,其中,所述预设数量的缓存块包括所述目标缓存块,所述预设数量为RAID条带长度与所述缓存块链表中缓存块的总数量之间较小的数值。
写指令生成模块504:用于根据所述预设数量的缓存块,生成写指令并下发到磁盘阵列,以实现缓存数据的下刷。
作为一种可选的实施方式,所述缓存块链表查找模块502包括:
参数获取单元5021:用于获取所述目标缓存块的逻辑卷标识和地址偏移值。
计算单元5022:用于根据所述逻辑卷标识和所述地址偏移值,计算所述目标缓存块所在的缓存块链表的标识信息。
查找单元5023:用于根据所述标识信息,查找所述目标缓存块所在的缓存块链表。
作为一种可选的实施方式,所述装置还包括:
写入模块505:用于将所述预设数量的缓存块中的各个缓存块分别写入对应的磁盘阵列。
作为一种可选的实施方式,所述缓存块查找模块503包括:
第一方向查找单元5031:用于在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第一方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块的数量超过所述RAID条带长度或所述缓存块链表的第一方向不存在未查找到的缓存块为止。
第二方向查找单元5032:用于若查找到的缓存块的数量未超过所述RAID条带长度,且所述缓存块链表的第一方向不存在未查找到的缓存块,则在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第二方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块数量超过所述RAID条带长度或所述缓存块链表的第二方向不存在未查找到的缓存块为止。
本实施例的一种存储系统下刷缓存数据的装置用于实现前述的一种存储系统下刷缓存数据的方法,因此该装置中的具体实施方式可见前文中的一种存储系统下刷缓存数据的方法的实施例部分,例如,目标缓存块获取模块501、缓存块链表查找模块502、缓存块查找模块503、写指令生成模块504,分别用于实现上述一种存储系统下刷缓存数据的方法中步骤S101,S102,S103,S104。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的一种存储系统下刷缓存数据的装置用于实现前述的一种存储系统下刷缓存数据的方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本发明还提供了一种存储服务器实施例,下文描述的一种存储系统下刷缓存数据的装置与上文描述的一种存储系统下刷缓存数据的方法可相互对应参照。
参见图6,该存储服务器实施例包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现如上所述的一种存储系统下刷缓存数据的方法的步骤。
最后,本发明还提供了一种存储系统,如图7所示,该存储系统包括客户端701,还包括如上所述的一种存储服务器702。
本实施例的一种存储服务器、存储系统用于实现前述的一种存储系统下刷缓存数据的方法,因此该存储服务器、存储系统的具体实施方式可见前文中的一种存储系统下刷缓存数据的方法的实施例部分,且二者的作用与上述方法实施例相对应,这里不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种存储系统下刷缓存数据的方法、装置、存储服务器及存储系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种存储系统下刷缓存数据的方法,其特征在于,包括:
获取存储系统的缓存中的目标缓存块,其中,所述目标缓存块为从所述缓存的存储空间划分得到的;
查找所述目标缓存块所在的缓存块链表,其中,所述缓存块链表包括多个缓存块;
从所述缓存块链表中查找地址偏移值连续的预设数量的缓存块,其中,所述预设数量的缓存块包括所述目标缓存块,所述预设数量为RAID条带长度与所述缓存块链表中缓存块的总数量之间较小的数值;
根据所述预设数量的缓存块,生成写指令并下发到磁盘阵列,以实现缓存数据的下刷。
2.如权利要求1所述的方法,其特征在于,所述查找所述目标缓存块所在的缓存块链表,包括:
获取所述目标缓存块的逻辑卷标识和地址偏移值;
根据所述逻辑卷标识和所述地址偏移值,计算所述目标缓存块所在的缓存块链表的标识信息;
根据所述标识信息,查找所述目标缓存块所在的缓存块链表。
3.如权利要求2所述的方法,其特征在于,在所述根据所述预设数量的缓存块,生成写指令并下发到磁盘阵列,以实现缓存数据的下刷之后,还包括:
将所述预设数量的缓存块中的各个缓存块分别写入对应的磁盘阵列。
4.如权利要求3所述的方法,其特征在于,所述从所述缓存块链表中查找地址偏移值连续的预设数量的缓存块,包括:
在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第一方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块的数量超过所述RAID条带长度或所述缓存块链表的第一方向不存在未查找到的缓存块为止;
若查找到的缓存块的数量未超过所述RAID条带长度,且所述缓存块链表的第一方向不存在未查找到的缓存块,则在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第二方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块数量超过所述RAID条带长度或所述缓存块链表的第二方向不存在未查找到的缓存块为止。
5.一种存储系统下刷缓存数据的装置,其特征在于,包括:
目标缓存块获取模块:用于获取存储系统的缓存中的目标缓存块,其中,所述目标缓存块为从所述缓存的存储空间划分得到的;
缓存块链表查找模块:用于查找所述目标缓存块所在的缓存块链表,其中,所述缓存块链表包括多个缓存块;
缓存块查找模块:用于从所述缓存块链表中查找地址偏移值连续的预设数量的缓存块,其中,所述预设数量的缓存块包括所述目标缓存块,所述预设数量为RAID条带长度与所述缓存块链表中缓存块的总数量之间较小的数值;
写指令生成模块:用于根据所述预设数量的缓存块,生成写指令并下发到磁盘阵列,以实现缓存数据的下刷。
6.如权利要求5所述的装置,其特征在于,所述缓存块链表查找模块包括:
参数获取单元:用于获取所述目标缓存块的逻辑卷标识和地址偏移值;
计算单元:用于根据所述逻辑卷标识和所述地址偏移值,计算所述目标缓存块所在的缓存块链表的标识信息;
查找单元:用于根据所述标识信息,查找所述目标缓存块所在的缓存块链表。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
写入模块:用于将所述预设数量的缓存块中的各个缓存块分别写入对应的磁盘阵列。
8.如权利要求7所述的装置,其特征在于,所述缓存块查找模块包括:
第一方向查找单元:用于在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第一方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块的数量超过所述RAID条带长度或所述缓存块链表的第一方向不存在未查找到的缓存块为止;
第二方向查找单元:用于若查找到的缓存块的数量未超过所述RAID条带长度,且所述缓存块链表的第一方向不存在未查找到的缓存块,则在所述缓存块链表中,从所述目标缓存块开始,沿着所述缓存块链表的第二方向按照地址偏移值变动一个偏移值单位的顺序,逐个查找缓存块,直至查找到的缓存块数量超过所述RAID条带长度或所述缓存块链表的第二方向不存在未查找到的缓存块为止。
9.一种存储服务器,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现如权利要求1-4任意一项所述的一种存储系统下刷缓存数据的方法的步骤。
10.一种存储系统,其特征在于,包括客户端,还包括如权利要求9所述的一种存储服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910002686.0A CN109753446A (zh) | 2019-01-02 | 2019-01-02 | 一种存储系统下刷缓存数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910002686.0A CN109753446A (zh) | 2019-01-02 | 2019-01-02 | 一种存储系统下刷缓存数据的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109753446A true CN109753446A (zh) | 2019-05-14 |
Family
ID=66405121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910002686.0A Withdrawn CN109753446A (zh) | 2019-01-02 | 2019-01-02 | 一种存储系统下刷缓存数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753446A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158601A (zh) * | 2019-12-30 | 2020-05-15 | 北京浪潮数据技术有限公司 | 一种缓存中的io数据下刷方法、系统及相关装置 |
CN111159124A (zh) * | 2019-12-30 | 2020-05-15 | 浪潮电子信息产业股份有限公司 | Linux内核文件系统异步写缓存方法、装置及介质 |
CN114721598A (zh) * | 2022-04-19 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 一种多卷缓存下刷管理系统及方法 |
WO2024113702A1 (zh) * | 2022-11-29 | 2024-06-06 | 苏州元脑智能科技有限公司 | 数据存储方法及相关设备 |
-
2019
- 2019-01-02 CN CN201910002686.0A patent/CN109753446A/zh not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158601A (zh) * | 2019-12-30 | 2020-05-15 | 北京浪潮数据技术有限公司 | 一种缓存中的io数据下刷方法、系统及相关装置 |
CN111159124A (zh) * | 2019-12-30 | 2020-05-15 | 浪潮电子信息产业股份有限公司 | Linux内核文件系统异步写缓存方法、装置及介质 |
CN111159124B (zh) * | 2019-12-30 | 2022-04-22 | 浪潮电子信息产业股份有限公司 | Linux内核文件系统异步写缓存方法、装置及介质 |
CN114721598A (zh) * | 2022-04-19 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 一种多卷缓存下刷管理系统及方法 |
CN114721598B (zh) * | 2022-04-19 | 2024-10-18 | 苏州浪潮智能科技有限公司 | 一种多卷缓存下刷管理系统及方法 |
WO2024113702A1 (zh) * | 2022-11-29 | 2024-06-06 | 苏州元脑智能科技有限公司 | 数据存储方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753446A (zh) | 一种存储系统下刷缓存数据的方法 | |
CN107066393B (zh) | 提高地址映射表中映射信息密度的方法 | |
CN108647151A (zh) | 一种全闪系统元数据落盘方法、装置、设备及存储介质 | |
JP2015508924A (ja) | 複合不揮発性記憶装置のためのデータ移行 | |
CN109471843A (zh) | 一种元数据缓存方法、系统及相关装置 | |
CN104809179A (zh) | 访问哈希表的装置和方法 | |
CN107632791A (zh) | 一种存储空间的分配方法及系统 | |
US20120117297A1 (en) | Storage tiering with minimal use of dram memory for header overhead | |
CN107844436B (zh) | 一种缓存中脏数据的组织管理方法、系统及存储系统 | |
CN104461384B (zh) | 一种数据写入方法及存储设备 | |
CN115904255B (zh) | 一种数据请求方法、装置、设备及存储介质 | |
CN109213450A (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN109614045A (zh) | 一种元数据落盘方法、装置及相关设备 | |
CN107122130A (zh) | 一种数据重删方法及装置 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN109086462A (zh) | 一种分布式文件系统中元数据的管理方法 | |
CN108733324A (zh) | 一种固态硬盘的数据读写方法、装置、设备及存储介质 | |
CN107506466A (zh) | 一种小文件存储方法及系统 | |
CN112084121B (zh) | 硬盘预读方法、装置、计算机可读存储介质及电子设备 | |
CN106599301A (zh) | 多客户端并发数据读写加速方法及装置 | |
CN116340198B (zh) | 固态硬盘的数据写入方法、其装置及固态硬盘 | |
US10621096B2 (en) | Read ahead management in a multi-stream workload | |
CN108804571B (zh) | 一种数据存储方法、装置以及设备 | |
CN108268380A (zh) | 一种读写数据的方法和装置 | |
CN116627345A (zh) | 应用于海量value键值对的高性能KV缓存方法及装置 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190514 |
|
WW01 | Invention patent application withdrawn after publication |