CN107861841B - 一种SSD Cache中数据映射的管理方法及系统 - Google Patents
一种SSD Cache中数据映射的管理方法及系统 Download PDFInfo
- Publication number
- CN107861841B CN107861841B CN201711085491.4A CN201711085491A CN107861841B CN 107861841 B CN107861841 B CN 107861841B CN 201711085491 A CN201711085491 A CN 201711085491A CN 107861841 B CN107861841 B CN 107861841B
- Authority
- CN
- China
- Prior art keywords
- ssd
- module
- hdd
- label
- modules
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 20
- 238000013506 data mapping Methods 0.000 title claims abstract description 17
- 239000007787 solid Substances 0.000 title claims abstract description 17
- 238000013507 mapping Methods 0.000 claims abstract description 94
- 238000002372 labelling Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 26
- 238000011084 recovery Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种SSD Cache中数据映射的管理方法及系统,包括:预先将硬盘驱动器HDD中的存储空间和固态硬盘SSD Cache中的存储空间相应地划分为N个HDD模块和M个SSD模块,并分别对其进行顺序标号,N<M;将N个HDD模块中的数据一一缓存至M个SSD模块中未缓存过数据的SSD模块,建立HDD模块与SSD模块之间的标号映射关系;将标号映射关系保存至SSD Cache,以便于在系统启动后,将SSD Cache保存的标号映射关系恢复至内存。在系统重启或者掉电的情况下,SSD Cache中的数据不会丢失,因此,本发明在系统启动后将保存的标号映射关系恢复至内存,从而提高了系统的访问效率。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种SSD Cache中数据映射的管理方法及系统。
背景技术
在存储系统中,存储器包括基于闪存的SSD(Solid State Drives,固态硬盘)及HDD(Hard DiskDrive,硬盘驱动器)。由于基于闪存的SSD,即SSD Cache的读取速度远快于HDD的读取速度,通常将HDD中的数据缓存至SSD Cache,以便于通过SSD Cache读取数据,从而建立了HDD中的数据与SSD Cache中缓存的数据的映射关系。现有技术中,为了提高系统的访问效率,通常将建立的映射关系保存至内存。但是,在系统重启或者掉电的情况下,内存中的数据会丢失,需要系统重新建立HDD中的数据与SSD Cache中缓存的数据的映射关系,但是建立映射关系的时间比较长,从而降低了系统的访问效率。
因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种SSD Cache中数据映射的管理方法及系统,可以在系统启动后将SSD Cache保存的标号映射关系恢复至内存,不需要系统重新建立HDD中的数据与SSD Cache中缓存的数据的映射关系,从而提高了系统的访问效率。
为解决上述技术问题,本发明提供了一种SSD Cache中数据映射的管理方法,包括:
预先将硬盘驱动器HDD中的存储空间和固态硬盘SSD Cache中的存储空间相应地划分为N个HDD模块和M个SSD模块,并分别对其进行顺序标号,其中,N、M均为大于1的整数且N<M;
将N个所述HDD模块中的数据一一缓存至M个所述SSD模块中未缓存过数据的SSD模块,建立所述HDD模块与所述SSD模块之间的标号映射关系;
将所述标号映射关系保存至所述SSD Cache,以便于在系统启动后,将所述SSDCache保存的标号映射关系恢复至内存。
优选地,所述将所述标号映射关系保存至所述SSD Cache的过程具体为:
将所述标号映射关系组织成一颗树的形式保存至所述SSD Cache,其中,所述树的m个叶子节点的保存内容均包括头部描述信息和按照所述SSD模块的标号从小到大顺序对应的HDD模块的标号,且没有所述标号映射关系的SSD模块在所述叶子节点中空出存储位置,每个所述叶子节点的HDD模块的标号的保存容量max相同,且第i个叶子节点对应的SSD模块的标号小于第i+1个叶子节点对应的SSD模块的标号,所述树的非叶子节点的保存内容均包括节点描述信息和用于索引的(key,value)键值对集合,value为存储第key个叶子节点的SSD模块的标号,所述非叶子节点中父节点的索引范围包含该父节点的子节点的索引范围,所述头部描述信息和所述节点描述信息均包括存储所在节点的SDD模块的标号,m、i均为正整数,i<m<M。
优选地,将每个所述叶子节点及所述非叶子节点均按照数组的方式保存;
则max=(叶子节点所占存储空间-头部描述信息所占存储空间)/一个数组元素所占存储空间,其中,一个数组元素包括一个HDD模块的标号或者一个空出的存储位置;
非叶子节点的(key,value)键值对集合的保存容量最大值=(非叶子节点所占空间-节点描述信息所占存储空间)/一个(key,value)键值对集合所占的存储空间。
优选地,所述头部描述信息还包括一个数组元素所占的存储空间、所在叶子节点的max、所在叶子节点保存的数组元素的实际数量及所在叶子节点的标示值。
优选地,一个所述数组元素包括64位的整数,其中,所述整数的前48位为该数组元素包含的HDD模块的标号、后16位为该标号对应的HDD模块中保存的数据的数据状态。
优选地,所述节点描述信息还包括一个(key,value)键值对集合所占的存储空间、所在非叶子节点的保存容量最大值、所在非叶子节点保存的(key,value)键值对集合的实际数量及所在非叶子节点的标示值。
优选地,该方法还包括:
当所述HDD模块与所述SSD模块之间建立新的标号映射关系时,将新建立关系的HDD模块的标号添加至与其对应的空出的存储位置。
优选地,该方法还包括:
当已建立的标号映射关系发生变化时,更新变化的标号映射关系对应的叶子节点。
为解决上述技术问题,本发明还提供了一种SSD Cache中数据映射的管理系统,包括:
标号单元,用于预先将硬盘驱动器HDD中的存储空间和固态硬盘SSDCache中的存储空间相应地划分为N个HDD模块和M个SSD模块,并分别对其进行顺序标号,其中,N、M均为大于1的整数且N<M;
建立单元,用于将N个所述HDD模块中的数据一一缓存至M个所述SSD模块中未缓存过数据的SSD模块,建立所述HDD模块与所述SSD模块之间的标号映射关系;
恢复单元,用于将所述标号映射关系保存至所述SSD Cache,以便于在系统启动后,将所述SSD Cache保存的标号映射关系恢复至内存。
优选地,所述将所述标号映射关系保存至所述SSD Cache的过程具体为:
将所述标号映射关系组织成一颗树的形式保存至所述SSD Cache,其中,所述树的m个叶子节点的保存内容均包括头部描述信息和按照所述SSD模块的标号从小到大顺序对应的HDD模块的标号,且没有所述标号映射关系的SSD模块在所述叶子节点中空出存储位置,每个所述叶子节点的HDD模块的标号的保存容量max相同,且第i个叶子节点对应的SSD模块的标号小于第i+1个叶子节点对应的SSD模块的标号,所述树的非叶子节点的保存内容均包括节点描述信息和用于索引的(key,value)键值对集合,value为存储第key个叶子节点的SSD模块的标号,所述非叶子节点中父节点的索引范围包含该父节点的子节点的索引范围,所述头部描述信息和所述节点描述信息均包括存储所在节点的SDD模块的标号,m、i均为正整数,i<m<M。
本发明提供了一种SSD Cache中数据映射的管理方法,包括:预先将硬盘驱动器HDD中的存储空间和固态硬盘SSD Cache中的存储空间相应地划分为N个HDD模块和M个SSD模块,并分别对其进行顺序标号,其中,N、M均为大于1的整数且N<M;将N个HDD模块中的数据一一缓存至M个SSD模块中未缓存过数据的SSD模块,建立HDD模块与SSD模块之间的标号映射关系;将标号映射关系保存至SSD Cache,以便于在系统启动后,将SSDCache保存的标号映射关系恢复至内存。
与现有技术中的内存存储映射关系相比,本发明提前将HDD中的存储空间和SSDCache中的存储空间相应地划分为多个HDD模块和多个SSD模块,并分别对HDD模块和SSD模块进行标号。然后,将HDD模块中的数据一一缓存至SSD模块中未缓存过数据的SSD模块,从而建立HDD模块与SSD模块之间的标号映射关系,并将建立的标号映射关系保存至SSDCache。在系统重启或者掉电的情况下,SSD Cache中的数据不会丢失,因此,本发明便可以在系统启动后将SSD Cache保存的标号映射关系恢复至内存,不需要系统重新建立HDD中的数据与SSD Cache中缓存的数据的映射关系,从而提高了系统的访问效率。
本发明还提供了一种SSD Cache中数据映射的管理系统,与上述管理方法具有相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种SSD Cache中数据映射的管理方法的流程图;
图2为本发明提供的一种SSD Cache中数据映射的管理系统的结构示意图。
具体实施方式
本发明的核心是提供一种SSD Cache中数据映射的管理方法及系统,可以在系统启动后将SSD Cache保存的标号映射关系恢复至内存,不需要系统重新建立HDD中的数据与SSD Cache中缓存的数据的映射关系,从而提高了系统的访问效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明提供的一种SSD Cache中数据映射的管理方法的流程图,该方法包括:
步骤S1:预先将硬盘驱动器HDD中的存储空间和固态硬盘SSD Cache中的存储空间相应地划分为N个HDD模块和M个SSD模块,并分别对其进行顺序标号,其中,N、M均为大于1的整数且N<M;
需要说明的是,这里的预先是提前划分好的,只需要划分一次,除非根据实际情况需要修改,否则不需要重新划分。
具体地,本申请提前将HDD中的存储空间划分为N个HDD模块,并对其进行顺序标号,这里的顺序标号可以对N个HDD模块从0开始标号,一直标记至N-1,也可以对N个HDD模块从1开始标号,一直标记至N。同样地,本申请也提前将SSD Cache中的存储空间划分为M个SSD模块,并对其进行顺序标号。由于HDD模块中保存的数据要缓存至SSD模块,HDD模块的个数应小于SSD模块的个数,即N<M,且一个HDD模块的存储空间应不大于一个SSD模块的存储空间。
最优地,将HDD中的存储空间和SSD中的存储空间分别按照提前设置的粒度划分为一个个相同大小的存储空间,即HDD模块和SSD模块。至于具体的粒度设置,本申请在此不做特别的限定,根据实际情况而定。
步骤S2:将N个HDD模块中的数据一一缓存至M个SSD模块中未缓存过数据的SSD模块,建立HDD模块与SSD模块之间的标号映射关系;
具体地,分别将N个HDD模块中的数据缓存至M个SSD模块,为了保证HDD模块数据的完整性,缓存过数据的SSD模块将不再缓存HDD模块中的数据,从而建立了HDD模块和SSD模块的一一映射关系,这里的映射关系是指HDD模块的标号与SSD模块的标号之间的关系,简称标号映射关系。
比如,标号为1的HDD模块与标号为5的SSD模块之间具有标号映射关系,说明标号为5的SSD模块中缓存的是标号为1的HDD模块中的数据。当系统想要访问标号为1的HDD模块中的数据时,根据建立的标号映射关系,使系统可以通过直接访问标号为5的SSD模块中的数据,从而得到标号为1的HDD模块中的数据,提高了系统的访问效率。
步骤S3:将标号映射关系保存至SSD Cache,以便于在系统启动后,将SSD Cache保存的标号映射关系恢复至内存。
具体地,考虑到在系统关机或者掉电的情况下,SSD Cache中的数据不会丢失,将建立的标号映射关系保存至SSD Cache。当系统启动后,SSD Cache中仍旧保存着标号映射关系,直接将其保存的标号映射关系恢复至内存即可,不需要系统重新建立HDD中的数据与SSD Cache中缓存的数据的映射关系,从而提高了系统的访问效率。
本发明提供了一种SSD Cache中数据映射的管理方法,包括:预先将硬盘驱动器HDD中的存储空间和固态硬盘SSD Cache中的存储空间相应地划分为N个HDD模块和M个SSD模块,并分别对其进行顺序标号,其中,N、M均为大于1的整数且N<M;将N个HDD模块中的数据一一缓存至M个SSD模块中未缓存过数据的SSD模块,建立HDD模块与SSD模块之间的标号映射关系;将标号映射关系保存至SSD Cache,以便于在系统启动后,将SSDCache保存的标号映射关系恢复至内存。
与现有技术中的内存存储映射关系相比,本发明提前将HDD中的存储空间和SSDCache中的存储空间相应地划分为多个HDD模块和多个SSD模块,并分别对HDD模块和SSD模块进行标号。然后,将HDD模块中的数据一一缓存至SSD模块中未缓存过数据的SSD模块,从而建立HDD模块与SSD模块之间的标号映射关系,并将建立的标号映射关系保存至SSDCache。在系统重启或者掉电的情况下,SSD Cache中的数据不会丢失,因此,本发明便可以在系统启动后将SSD Cache保存的标号映射关系恢复至内存,不需要系统重新建立HDD中的数据与SSD Cache中缓存的数据的映射关系,从而提高了系统的访问效率。
在上述实施例的基础上:
作为一种优选地实施例,将标号映射关系保存至SSD Cache的过程具体为:
将标号映射关系组织成一颗树的形式保存至SSDCache,其中,树的m个叶子节点的保存内容均包括头部描述信息和按照SSD模块的标号从小到大顺序对应的HDD模块的标号,且没有标号映射关系的SSD模块在叶子节点中空出存储位置,每个叶子节点的HDD模块的标号的保存容量max相同,且第i个叶子节点对应的SSD模块的标号小于第i+1个叶子节点对应的SSD模块的标号,树的非叶子节点的保存内容均包括节点描述信息和用于索引的(key,value)键值对集合,value为存储第key个叶子节点的SSD模块的标号,非叶子节点中父节点的索引范围包含该父节点的子节点的索引范围,头部描述信息和节点描述信息均包括存储所在节点的SDD模块的标号,m、i均为正整数,i<m<M。
具体地,将标号映射关系组织成一棵树的形式保存至SSD Cache。一棵树包括非叶子节点和叶子节点,非叶子节点为有子节点的节点,叶子节点为没有子节点的节点。子节点是相对于父节点来说的,为父节点的下一层节点。
本申请中的一棵树的叶子节点保存的是按照SSD模块的标号从小到大顺序对应的HDD模块的标号,也即每个叶子节点中的HDD模块的标号是按照SSD模块的标号从小到大的顺序存储的,且位于左边的叶子节点对应的SSD模块的标号小于位于右边的叶子节点对应的SSD模块的标号。
由于HDD模块中的数据缓存至SSD模块时,是随机选择SSD模块缓存的,所以SSD模块很有可能不连续对应HDD模块。当按照SSD模块的标号从小到大顺序排列其对应的HDD模块的标号时,出现没有标号映射关系的SSD模块时,在叶子节点中为其空出存储HDD模块的标号的位置。每个叶子节点的HDD模块的标号的保存容量max相同,也即每个叶子节点能够保存的HDD模块的标号的最大值相同。
叶子节点的保存内容不仅包括HDD模块的标号,还包括头部描述信息,头部描述信息中保存的是SSD模块的标号,该标号所对应的SSD模块为存储该叶子节点的模块,也即头部描述信息相当于所在叶子节点的位置信息。
本申请中的一棵树的非叶子节点为索引信息,起到索引所需叶子节点的作用。非叶子节点通过保存(key,value)键值对集合实现索引功能,其中,key与value具有一一对应的关系,key代表的是第key个叶子节点,value代表的是存储第key个叶子节点的SSD模块的标号。本申请中键值对集合的key可以保存在非叶子节点的前部分,键值对集合的value可以保存在非叶子节点的后部分,本发明在此不做特别的限定。
可见,已知每个叶子节点的HDD模块的标号的保存容量max,可以根据SSD模块的标号除以max的结果取整得到该SSD模块的标号对应的叶子节点,然后根据保存的(key,value)键值对集合得到对应的叶子节点所在的SSD模块的标号,从而索引到该SSD模块的标号对应的叶子节点。
比如,SSD模块的标号及叶子节点的个数均从0开始标记,叶子节点的HDD模块的标号的保存容量max取10。则标记为0的叶子节点中保存的是标号为0-9的SSD模块对应的HDD模块的标号。当需要标号为9的SSD模块对应的HDD模块的标号时,用9/10的结果取整数部分,整数部分为0,说明标号为9的SSD模块对应的HDD模块的标号保存在标记为0的叶子节点,标记为0的叶子节点位置信息可以通过0对应的(key,value)键值对集合获得。
当保存的标号映射关系比较多时,需要索引的叶子节点的数量也比较多,由于非叶子节点的存储空间有限,所以非叶子节点分布在树的不同层中。非叶子节点中父节点的索引范围包含该父节点的子节点的索引范围。因此,索引范围逐层缩小,最终索引到所需叶子节点。
非叶子节点的保存内容不仅包括(key,value)键值对集合,还包括节点描述信息,节点描述信息中保存的是SSD模块的标号,该标号所对应的SSD模块为存储该非叶子节点的模块,也即节点描述信息相当于所在非叶子节点的位置信息。
作为一种优选地实施例,将每个叶子节点及非叶子节点均按照数组的方式保存;
则max=(叶子节点所占存储空间-头部描述信息所占存储空间)/一个数组元素所占存储空间,其中,一个数组元素包括一个HDD模块的标号或者一个空出的存储位置;
非叶子节点的(key,value)键值对集合的保存容量最大值=(非叶子节点所占空间-节点描述信息所占存储空间)/一个(key,value)键值对集合所占的存储空间。
具体地,将每个叶子节点按照数组的方式保存,即叶子节点包含的头部描述信息及HDD模块的标号均按照数组形式保存。则max=(叶子节点所占存储空间-头部描述信息所占存储空间)/一个数组元素所占存储空间,这里的数组元素包括HDD模块的标号或者空出的存储位置。
同样地,将每个非叶子节点按照数组的方式保存,即非叶子节点包含的节点描述信息及(key,value)键值对集合均按照数组形式保存。则非叶子节点的保存容量最大值=(非叶子节点所占空间-节点描述信息所占存储空间)/一个(key,value)键值对集合所占的存储空间。这里的(key,value)键值对集合所占的存储空间=key所占的存储空间+value所占的存储空间。
当然,叶子节点和非叶子节点的保存形式可以为其他形式,本发明在此不做特别的限定。
作为一种优选地实施例,头部描述信息还包括一个数组元素所占的存储空间、所在叶子节点的max、所在叶子节点保存的数组元素的实际数量及所在叶子节点的标示值。
具体地,叶子节点的头部描述信息还包括HDD模块的标号或者空出的存储位置所占的存储空间,所在叶子节点保存HDD模块的标号的最大容量,所在叶子节点保存的HDD模块的标号的实际数量,及标示所在节点为叶子节点的标示值。
作为一种优选地实施例,一个数组元素包括64位的整数,其中,整数的前48位为该数组元素包含的HDD模块的标号、后16位为该标号对应的HDD模块中保存的数据的数据状态。
具体地,一个数组元素包括64位的整数,这个64位整数的前48位为该数组元素包含的HDD模块的标号,整数的后16位为该标号对应的HDD模块中保存的数据的数据状态,从数据状态可以得知保存的数据是否为脏数据和是否为有效的信息。当对HDD模块执行写操作时,HDD模块中的数据被更改,导致该HDD模块的数据和对应的SSD模块的数据不一致,该HDD模块此时被称为脏块,脏块中保存的数据称为脏数据。
作为一种优选地实施例,节点描述信息还包括一个(key,value)键值对集合所占的存储空间、所在非叶子节点的保存容量最大值、所在非叶子节点保存的(key,value)键值对集合的实际数量及所在非叶子节点的标示值。
具体地,非叶子节点的节点描述信息还包括一个(key,value)键值对集合所占的存储空间,所在非叶子节点保存(key,value)键值对集合的最大容量,所在非叶子节点保存的(key,value)键值对集合的实际数量,及标示所在节点为非叶子节点的标示值。
作为一种优选地实施例,该方法还包括:
当HDD模块与SSD模块之间建立新的标号映射关系时,将新建立关系的HDD模块的标号添加至与其对应的空出的存储位置。
具体地,在原有标号映射关系的基础上,HDD模块与SSD模块之间会建立新的标号映射关系,新的标号映射关系对应的是之前没有标号映射关系的SSD模块。由于本申请在叶子节点中为之前没有标号映射关系的SSD模块空出存储位置,所以将新建立关系的HDD模块的标号添加至与其对应的空出的存储位置即可,保证了标号映射关系的完整性。
作为一种优选地实施例,该方法还包括:
当已建立的标号映射关系发生变化时,更新变化的标号映射关系对应的叶子节点。
具体地,考虑到原有的标号映射关系会发生改变,本申请将关系变化的SSD模块对应的HDD模块的标号置换出该SSD模块之前对应的HDD模块的标号,从而更新了变化的标号映射关系对应的叶子节点,保证了标号映射关系的正确性。
请参照图2,图2为本发明提供的一种SSD Cache中数据映射的管理系统的结构示意图,该系统包括:
标号单元1,用于预先将硬盘驱动器HDD中的存储空间和固态硬盘SSDCache中的存储空间相应地划分为N个HDD模块和M个SSD模块,并分别对其进行顺序标号,其中,N、M均为大于1的整数且N<M;
建立单元2,用于将N个HDD模块中的数据一一缓存至M个SSD模块中未缓存过数据的SSD模块,建立HDD模块与SSD模块之间的标号映射关系;
恢复单元3,用于将标号映射关系保存至SSD Cache,以便于在系统启动后,将SSDCache保存的标号映射关系恢复至内存。
作为一种优选地实施例,将标号映射关系保存至SSD Cache的过程具体为:
将标号映射关系组织成一颗树的形式保存至SSDCache,其中,树的m个叶子节点的保存内容均包括头部描述信息和按照SSD模块的标号从小到大顺序对应的HDD模块的标号,且没有标号映射关系的SSD模块在叶子节点中空出存储位置,每个叶子节点的HDD模块的标号的保存容量max相同,且第i个叶子节点对应的SSD模块的标号小于第i+1个叶子节点对应的SSD模块的标号,树的非叶子节点的保存内容均包括节点描述信息和用于索引的(key,value)键值对集合,value为存储第key个叶子节点的SSD模块的标号,非叶子节点中父节点的索引范围包含该父节点的子节点的索引范围,头部描述信息和节点描述信息均包括存储所在节点的SDD模块的标号,m、i均为正整数,i<m<M。
还需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种SSD Cache中数据映射的管理方法,其特征在于,包括:
预先将硬盘驱动器HDD中的存储空间和固态硬盘SSD Cache中的存储空间相应地划分为N个HDD模块和M个SSD模块,并分别对其进行顺序标号,其中,N、M均为大于1的整数且N<M;
将N个所述HDD模块中的数据一一缓存至M个所述SSD模块中未缓存过数据的SSD模块,建立所述HDD模块与所述SSD模块之间的标号映射关系;
将所述标号映射关系保存至所述SSD Cache,以便于在系统启动后,将所述SSD Cache保存的标号映射关系恢复至内存;
所述将所述标号映射关系保存至所述SSD Cache的过程具体为:
将所述标号映射关系组织成一颗树的形式保存至所述SSD Cache,其中,所述树的m个叶子节点的保存内容均包括头部描述信息和按照所述SSD模块的标号从小到大顺序对应的HDD模块的标号,且没有所述标号映射关系的SSD模块在所述叶子节点中空出存储位置,每个所述叶子节点的HDD模块的标号的保存容量max相同,且第i个叶子节点对应的SSD模块的标号小于第i+1个叶子节点对应的SSD模块的标号,所述树的非叶子节点的保存内容均包括节点描述信息和用于索引的(key,value)键值对集合,value为存储第key个叶子节点的SSD模块的标号,所述非叶子节点中父节点的索引范围包含该父节点的子节点的索引范围,所述头部描述信息和所述节点描述信息均包括存储所在节点的SDD模块的标号,m、i均为正整数,i<m<M;
相应的,所述管理方法还包括:
当需要目标SSD模块对应的目标HDD模块的标号时,将所述目标SSD模块的标号除以max的结果取整,得到所述目标HDD模块的标号保存在的目标叶子节点对应的key值;其中,目标SSD模块为任一SSD模块;
根据保存的(key,value)键值对集合,得到所述目标叶子节点的位置信息。
2.如权利要求1所述的方法,其特征在于,将每个所述叶子节点及所述非叶子节点均按照数组的方式保存;
则max=(叶子节点所占存储空间-头部描述信息所占存储空间)/一个数组元素所占存储空间,其中,一个数组元素包括一个HDD模块的标号或者一个空出的存储位置;
非叶子节点的(key,value)键值对集合的保存容量最大值=(非叶子节点所占空间-节点描述信息所占存储空间)/一个(key,value)键值对集合所占的存储空间。
3.如权利要求2所述的方法,其特征在于,所述头部描述信息还包括一个数组元素所占的存储空间、所在叶子节点的max、所在叶子节点保存的数组元素的实际数量及所在叶子节点的标示值。
4.如权利要求3所述的方法,其特征在于,一个所述数组元素包括64位的整数,其中,所述整数的前48位为该数组元素包含的HDD模块的标号、后16位为该标号对应的HDD模块中保存的数据的数据状态。
5.如权利要求3所述的方法,其特征在于,所述节点描述信息还包括一个(key,value)键值对集合所占的存储空间、所在非叶子节点的保存容量最大值、所在非叶子节点保存的(key,value)键值对集合的实际数量及所在非叶子节点的标示值。
6.如权利要求1-5任一项所述的方法,其特征在于,该方法还包括:
当所述HDD模块与所述SSD模块之间建立新的标号映射关系时,将新建立关系的HDD模块的标号添加至与其对应的空出的存储位置。
7.如权利要求6所述的方法,其特征在于,该方法还包括:
当已建立的标号映射关系发生变化时,更新变化的标号映射关系对应的叶子节点。
8.一种SSD Cache中数据映射的管理系统,其特征在于,包括:
标号单元,用于预先将硬盘驱动器HDD中的存储空间和固态硬盘SSD Cache中的存储空间相应地划分为N个HDD模块和M个SSD模块,并分别对其进行顺序标号,其中,N、M均为大于1的整数且N<M;
建立单元,用于将N个所述HDD模块中的数据一一缓存至M个所述SSD模块中未缓存过数据的SSD模块,建立所述HDD模块与所述SSD模块之间的标号映射关系;
恢复单元,用于将所述标号映射关系保存至所述SSD Cache,以便于在系统启动后,将所述SSD Cache保存的标号映射关系恢复至内存;
所述将所述标号映射关系保存至所述SSD Cache的过程具体为:
将所述标号映射关系组织成一颗树的形式保存至所述SSD Cache,其中,所述树的m个叶子节点的保存内容均包括头部描述信息和按照所述SSD模块的标号从小到大顺序对应的HDD模块的标号,且没有所述标号映射关系的SSD模块在所述叶子节点中空出存储位置,每个所述叶子节点的HDD模块的标号的保存容量max相同,且第i个叶子节点对应的SSD模块的标号小于第i+1个叶子节点对应的SSD模块的标号,所述树的非叶子节点的保存内容均包括节点描述信息和用于索引的(key,value)键值对集合,value为存储第key个叶子节点的SSD模块的标号,所述非叶子节点中父节点的索引范围包含该父节点的子节点的索引范围,所述头部描述信息和所述节点描述信息均包括存储所在节点的SDD模块的标号,m、i均为正整数,i<m<M;
相应的,所述管理系统还用于:
当需要目标SSD模块对应的目标HDD模块的标号时,将所述目标SSD模块的标号除以max的结果取整,得到所述目标HDD模块的标号保存在的目标叶子节点对应的key值;其中,目标SSD模块为任一SSD模块;
根据保存的(key,value)键值对集合,得到所述目标叶子节点的位置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711085491.4A CN107861841B (zh) | 2017-11-07 | 2017-11-07 | 一种SSD Cache中数据映射的管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711085491.4A CN107861841B (zh) | 2017-11-07 | 2017-11-07 | 一种SSD Cache中数据映射的管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107861841A CN107861841A (zh) | 2018-03-30 |
CN107861841B true CN107861841B (zh) | 2022-04-22 |
Family
ID=61701177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711085491.4A Active CN107861841B (zh) | 2017-11-07 | 2017-11-07 | 一种SSD Cache中数据映射的管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107861841B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108646981B (zh) * | 2018-04-28 | 2021-09-03 | 深圳市茁壮网络股份有限公司 | 一种数据缓存节点管理方法、数据缓存方法和缓存管理节点 |
CN109657114B (zh) * | 2018-08-21 | 2023-11-03 | 国家计算机网络与信息安全管理中心 | 一种抽取网页半结构化数据的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010106604A1 (ja) * | 2009-03-17 | 2010-09-23 | 日本電気株式会社 | ストレージシステム |
CN106227677A (zh) * | 2016-07-20 | 2016-12-14 | 浪潮电子信息产业股份有限公司 | 一种变长缓存元数据管理的方法 |
CN106663054A (zh) * | 2014-07-02 | 2017-05-10 | 纯存储公司 | 在非易失性固态储存器中的非易失性ram存储器和闪存存储器 |
CN107193758A (zh) * | 2017-05-19 | 2017-09-22 | 记忆科技(深圳)有限公司 | 一种固态硬盘的映射表管理方法及固态硬盘 |
-
2017
- 2017-11-07 CN CN201711085491.4A patent/CN107861841B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010106604A1 (ja) * | 2009-03-17 | 2010-09-23 | 日本電気株式会社 | ストレージシステム |
CN106663054A (zh) * | 2014-07-02 | 2017-05-10 | 纯存储公司 | 在非易失性固态储存器中的非易失性ram存储器和闪存存储器 |
CN106227677A (zh) * | 2016-07-20 | 2016-12-14 | 浪潮电子信息产业股份有限公司 | 一种变长缓存元数据管理的方法 |
CN107193758A (zh) * | 2017-05-19 | 2017-09-22 | 记忆科技(深圳)有限公司 | 一种固态硬盘的映射表管理方法及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN107861841A (zh) | 2018-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10101930B2 (en) | System and method for supporting atomic writes in a flash translation layer | |
US8838936B1 (en) | System and method for efficient flash translation layer | |
US11301379B2 (en) | Access request processing method and apparatus, and computer device | |
CN104346357B (zh) | 一种嵌入式终端的文件存取方法及系统 | |
KR101599177B1 (ko) | 복합식 비휘발성 저장 디바이스를 위한 데이터 이송 | |
US10558561B2 (en) | Systems and methods for storage metadata management | |
ES2676057T3 (es) | Método de memorización de datos, aparato de memorización de datos y dispositivo de memorización | |
US11698728B2 (en) | Data updating technology | |
CN107153707B (zh) | 一种针对非易失内存的哈希表构建方法及系统 | |
US9213501B2 (en) | Efficient storage of small random changes to data on disk | |
CN109165321B (zh) | 一种基于非易失内存的一致性哈希表构建方法和系统 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN107844436B (zh) | 一种缓存中脏数据的组织管理方法、系统及存储系统 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CA2978927A1 (en) | Data check method and storage system | |
CN103605478B (zh) | 存储地址标示、配置方法和数据存取方法及系统 | |
CN107861841B (zh) | 一种SSD Cache中数据映射的管理方法及系统 | |
CN111241088A (zh) | 数据写入方法、数据查询方法、装置及设备 | |
CN103823641A (zh) | 一种在线扩容的虚拟卷系统及其实现方法 | |
CN106547484A (zh) | 一种基于raid5的实现内存数据可靠性方法及系统 | |
CN111444114A (zh) | 一种非易失性内存中数据的处理方法、装置及系统 | |
Son et al. | A tiny-capacitor-backed non-volatile buffer to reduce storage writes in smartphones | |
CN117539690B (zh) | 多磁盘数据的合并恢复方法、装置、设备、介质和产品 | |
CN110321058B (zh) | 一种数据处理方法及其装置 | |
CN104636074B (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 |