CN111552442A - 一种基于ssd的缓存管理系统及方法 - Google Patents
一种基于ssd的缓存管理系统及方法 Download PDFInfo
- Publication number
- CN111552442A CN111552442A CN202010400005.9A CN202010400005A CN111552442A CN 111552442 A CN111552442 A CN 111552442A CN 202010400005 A CN202010400005 A CN 202010400005A CN 111552442 A CN111552442 A CN 111552442A
- Authority
- CN
- China
- Prior art keywords
- block
- solid state
- data
- index
- hard disk
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Abstract
本发明提供一种基于SSD的缓存管理系统及方法,系统包括:客户端、机械硬盘存储模块、固态硬盘存储模块,以及用于对所述机械硬盘存储模块和固态硬盘存储模块进行数据存储管理的缓存管理模块,当数据节点读取数据时,通过解析文件标识,查找目标数据;本发明中采用无元数据的结构,减少了元数据更新带来的SSD磨损,提高了SSD存储空间的利用率,大大缩短了进程重启加载时间,减少了内存占用;在读文件时,只需通过文件File ID就可以快速定位到文件是否存在于SSD上,以及在SSD上的写入位置和长度,以最直接的方式获取到文件,节省了复杂的查找算法,从而大幅度提高了查找效率。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种基于SSD的缓存管理系统及方法。
背景技术
传统的存储系统的存储资源一般只有机械硬盘(HDD)构成,在读IO密集型场景,磁盘往往会成为瓶颈。为了提升系统性能,减小请求响应时间、提高吞吐率等,大多存储系统采用在内存和普通的机械硬盘之间增加固态硬盘,作为二级缓存。固态硬盘(solid statedisk,简称SSD)是一种非易失性存储器,即可以保证数据断电不丢失,又可以提供比HDD更高的读写速度;但是固态硬盘的擦除次数有限,其寿命较HDD短。
针对SSD的以上特点,现有技术中的缓存管理方案大多为在写数据时,直接写入HDD;读数据时,需要统计数据热度,通过热度统计算法,将HDD中的冷数据回写到SSD中,就成了热数据;
但是,现有的存储方案存在以下问题:
1、采用统计热数据的方式,本身就具有滞后性。在冷数据还未成为热数据这段时间,多次读并未加速,在加载成为热数据之后,读的次数很少甚至不读的话,之后的读加速的实际意义不大。
2、统计数据热度,并将数据从HDD回写到SSD的过程,可能会增加磁盘读IO,会影响系统对外的瞬时读性能;
3、读SSD的前提,需要将SSD中数据与HDD中的数据映射关系加载到内存,或者是SSD元数据信息加载到内存,若数据粒度较小,数据量大,会导致内存占用高,程序重启再次加载耗时较长;
因此,需要一种适用于实时读取或准实时读数据且小IO密集型场景的存储方案,来解决上述技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明提供一种基于SSD的缓存管理系统及方法,以解决上述技术问题。
本发明提供的基于SSD的缓存管理系统,包括:
客户端、机械硬盘存储模块、固态硬盘存储模块,以及用于对所述机械硬盘存储模块和固态硬盘存储模块进行数据存储管理的缓存管理模块,所述机械硬盘存储模块包括一个或多个机械硬盘,所述固态硬盘存储模块包括一个或多个固态硬盘;
当数据节点读取数据时,通过解析文件标识,查找内存中是否有目标数据,所述文件标识包括固态硬盘索引和机械硬盘索引;
若内存中有目标数据,则直接返回数据;
若没有,则通过所述固态硬盘索引校验固态硬盘中是否存在,
如果固态硬盘中存在则从固态硬盘中读取数据;
如果固态硬盘中不存在则通过机械硬盘索引从机械硬盘中读取后,返回至客户端。
可选的,所述缓存管理模块预先在机械硬盘上根据写入数据生成机械硬盘索引;
当所述写入数据写入至固态硬盘时,根据固态硬盘中块的位置生成固态硬盘索引;
根据所述机械硬盘索引和固态硬盘索引,获取文件标识,并反馈至客户端。
可选的,所述固态硬盘索引包括文件所在的块信息和写入起始位置,所述块信息包括资源编号、块标识和偏移;所述机械硬盘索引包括文件的位置和长度。
可选的,通过客户端将文件标识发送至数据节点,数据节点解析文件标识后,若内存中没有目标数据,则通过校验固态硬盘索引中的资源编号和块标识是否存在,如果存在,则通过所述资源编号获取资源路径和文件写入偏移;如果资源编号和块标识已无效或不存在,则通过机械硬盘索引从机械硬盘中读取。
本发明还提供一种基于SSD的缓存管理方法,包括:
当数据节点读取数据时,通过解析文件标识,查找内存中是否有目标数据,所述文件标识包括固态硬盘索引和机械硬盘索引;
若内存中有目标数据,则直接返回数据;
若没有,则通过所述固态硬盘索引校验固态硬盘中是否存在,
如果固态硬盘中存在则从固态硬盘中读取数据;
如果固态硬盘中不存在则通过机械硬盘索引从机械硬盘中读取后,返回至客户端。
可选的,预先在机械硬盘上根据写入数据生成机械硬盘索引;
当所述写入数据写入至固态硬盘时,根据固态硬盘中块的位置生成固态硬盘索引;
根据所述机械硬盘索引和固态硬盘索引,获取文件标识。
可选的,所述固态硬盘索引包括文件所在的块信息和写入起始位置,所述块信息包括资源编号、块标识和偏移;所述机械硬盘索引包括文件的位置和长度。
可选的,将固态硬盘存储空间划分为多个大小相同的块,每个块包括首部索引区、中间数据区和尾部索引区,所述首部索引区包括块标识和数据长度,所述尾部索引区包括与首部索引区相同的块标识;
当初始化加载固态硬盘资源时,将每个块的索引信息加载至内存中,读取并验证块的首部索引区块标识的有效性,
若无效则将所述块标记为未使用;
若有效则继续验证尾部索引区中的块标识,如果与首部索引区中的块标识不相同,则将所述块标记为未使用,如果相同,则对数据长度的有效性进行验证,
若数据长度无效,则将所述块标记为未使用;
若数据长度有效,则根据首部索引区获取所述块归属的数据节点。
可选的,对所述块标识的序号按时间顺序进行单调递增编号,当数据节点向缓存管理模块请求缓存空间时,检查未使用容量是否足够,
若足够,则获取最近偏移的块,并将所述最近偏移的块信息返回至数据节点
若不够,则获取序号最老的块,如果所述最老的块未被使用,则直接返回给数据节点,如果已被使用,且被请求的数据节点使用,则生成新的块信息,返回给数据节点覆盖原有块,如果已被使用,且被其他数据节点使用时,如果使用中的数据节点不在线,则直接返回所述块;如果使用中的数据节点在线,则对块进行回收。
可选的,当客户端通过数据节点写数据时,通过预先设置的阈值对文件的大小进行数据过滤,对满足过滤条件的数据写入固态硬盘之前,判断是否有可用的块,
如果有,则直接将过滤后的文件聚合写入块中,并生成固态硬盘索引,
如果没有,则进行空间申请,若申请成功则直接在申请成功的块中写入数据,若申请失败,则判定固态硬盘写入失败,并返回只有机械硬盘索引的文件标识。
本发明的有益效果:本发明中的基于SSD的缓存管理系统及方法,采用无元数据的结构,减少了元数据更新带来的SSD磨损,提高了SSD存储空间的利用率,大大缩短了进程重启加载时间,减少了内存占用;在读文件时,只需通过文件File ID就可以快速定位到文件是否存在于SSD上,以及在SSD上的写入位置和长度,以最直接的方式获取到文件,节省了复杂的查找算法,从而大幅度提高了查找效率。
附图说明
图1是本发明实施例中基于SSD的缓存管理系统的读取数据的流程示意图。
图2是本发明实施例中基于SSD的缓存管理系统的缓存管理模块分配和回收Block的流程示意图。
图3是本发明实施例中基于SSD的缓存管理系统的写数据流程示意图。
图4是本发明实施例中基于SSD的缓存管理系统的SSD存储空间分布示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
本实施例中的基于SSD的缓存管理系统,包括:
客户端、机械硬盘存储模块、固态硬盘存储模块,以及用于对机械硬盘存储模块和固态硬盘存储模块进行数据存储管理的缓存管理模块,机械硬盘存储模块包括一个或多个机械硬盘(Hard Disk Drive,简称HDD),固态硬盘存储模块包括一个或多个固态硬盘(Solid State Disk,简称SSD);
当数据节点读取数据时,通过解析文件标识,查找内存中是否有目标数据,文件标识包括固态硬盘索引和机械硬盘索引;
若内存中有目标数据,则直接返回数据;
若没有,则通过所述固态硬盘索引校验固态硬盘中是否存在,
如果固态硬盘中存在则从固态硬盘中读取数据;
如果固态硬盘中不存在则通过机械硬盘索引从机械硬盘中读取后,返回至客户端。
在本实施例中,缓存管理模块预先在机械硬盘上根据写入数据生成机械硬盘索引;
当数据写入至固态硬盘时,根据固态硬盘中块的位置生成固态硬盘索引;
根据机械硬盘索引和固态硬盘索引,获取文件标识,并反馈至客户端。
在本实施例中,固态硬盘存储模块,也就是SSD存储空间被划分成多个大小相同的块,即Block,Block由前后索引区与中间数据区构成,首部索引区包含:块标识Block ID和数据长度Data Length,尾部索引区只有块标识Block ID,与首部的Block ID完全一致,做校验用。Block ID作为系统运行时整个SSD数据块唯一ID,是一个与时间戳类似不断增长的值。本实施例中的数据区存储的数据结构与存到HDD中的结构完全一致。
在本实施例中,SSD资源由缓存管理模块统一管理,包括格式化、初始化加载、分配和回收Block。SSD资源要满足被同一节点上多个数据节点读写,所以数据节点以Block粒度对SSD空间进行读写,一个Block只属于一个数据节点。在本实施例中,首次使用SSD格式时,只需要将每个Block头部的Block ID置为一个无效值,Data Length可以置为0或大于数据区长度的无效值。在缓存管理模块初始化加载SSD资源时,需要将每个Block的索引信息加载到内存中。首先读取Block头部索引,验证Block头部Block ID是否有效,无效就将该Block标记为未使用;头部的Block ID有效就继续读尾部的Block ID,首尾两个Block ID不相等,依然将该Block标志为未使用;若首位两个Block ID相等,就验证Data Length是否有效,无效还是将该Block标志为未使用;若Data Length有效,需要根据数据区头部信息判断出该Block属于那一个数据节点。
在本实施例中,如图2所示,缓存管理模块分配和回收Block的具体流程如下:
S11、数据节点向缓存管理模块请求缓存空间;
S12、缓存管理模块收到请求,首先检查未使用容量是否足够;容量足够就执行下一步,否则就跳到步骤S14;
S13、未使用容量足够,就找到一个最近偏移的Block,将Block信息返回给数据节点,其中Block信息包括:资源编号+Block ID+偏移,资源编号区别不同的SSD盘,Block ID作为当前Block的编号,偏移是该Block位于此盘上的首地址;
S14、使用容量已达到上限,找到序号最老的一个Block;
S15、最老的Block若未被使用,就直接返回给数据节点;
S16、最老的Block若已经被使用,先确定是否被请求的数据节点使用,若是就生成一个新的Block信息,返回给数据节点覆盖写该Block;
S17、若最老Block被其他数据节点使用,且该数据节点不在线,也直接返回该Block;
S18、若最老Block被其他数据节点使用,且数据节点在线,就需要缓存管理模块向其发起回收请求,数据节点响应成功,就可以返回该Block给请求的数据节点;若响应失败,转到步骤S19;
S19、响应失败,就直接返回给请求数据节点失败;
缓存管理模块在分配和回收Block时,通过Block ID的顺序性保证了写数据一直是顺序写,这种写模型的效率是最优的。本实施例中的同一Block多次申请命中同一个Block返回的序号是不同的,这里的序号是一个单调递增的数值,但达到上限会再从最小值循环。资源编号+偏移可以确定Block的偏移位置,Block ID可以确定该Block是否已被覆盖。由于Block ID的值会循环,可能会出现很久以前的Block信息与最新的重复,但是在安防行业数据有留存期,一般是180天,按目前设计的读写速度,在重复之前,数据已过期删除,因此,只要Block ID的范围足够大,即可保证资源编号+Block ID+偏移能唯一确定一个Block。
数据节点在初始化时,通过缓存管理模块获取该节点在SSD中已缓存Block信息,读数据时,通过Block信息验证数据是否存在SSD中。
在本实施例中,HDD索引+SSD索引组合成一个唯一的文件标识,即File ID,数据节点写数据时,向缓存管理模块动态申请Block空间流程如图3所示:
S21、数据节点收到客户端的写数据请求,首先将数据写到硬盘上,会根据文件在硬盘上的位置+文件长度会生成一个HDD索引,作为文件读取时的索引信息。
S22、本实施例针对小IO优化加速,因此,可以根据实际需要根据文件大小对数据进行过滤,大小范围可以自定义设置。若不满足过滤条件就直接返回仅由HDD索引生成的File ID,如果满足过滤条件,则继续执行步骤S23。
S23、文件写到SSD空间之前,首先判断是否有可用Block;若有可用Block,直接将小文件聚合写到Block中,文件在Block的位置也会生成一个SSD索引,HDD索引+SSD索引组合成一个唯一的File ID,,并返回给客户端;若无可用Block,就执行步骤S24。
S24、数据节点向缓存管理模块申请空间,若响应成功,就直接在返回的Block中写数据,并返回HDD索引+SSD索引组合的File ID;若响应失败,执行步骤S25。
S25、缓存管理模块响应失败,就返回只带HDD索引的File ID,标识数据写SSD失败。
本实施例中,写数据成功后返回给客户端的File ID是文件的唯一索引,通过FileID可以以最快的速度定位到图片在HDD和SSD上的位置,快速读取文件。File ID中的SSD索引包含:文件所在Block信息和写入起始位置,即资源编号+Block ID+文件写入偏移。
本实施例中,数据节点读数据流程如图1所示:
S31、用户就将File ID通过客户端发送给数据节点,数据节点首先解析File ID,通过File ID查找内存中是否有该数据;内存命中,就直接返回数据;否则执行下一步;
S32、若未命中内存,校验File ID中SSD索引的资源编号+Block ID是否存在,若存在,通过SSD索引中的资源编号找到资源路径+文件写入偏移,直接从SSD中读取数据,然后返回给客户端;
S33、若SSD索引已经无效或无SSD索引,则通过HDD索引直接在HDD中读取数据,返回给客户端。
在本实施例中,查找File ID中的SSD索引是否有效时,是通过校验SSD索引中的资源编号+Block ID是否存在。本实施例没有将SSD中的所有文件索引加载到内存中,只加载了当前数据节点中已写且未被回收的Block信息(资源编号+Block ID+偏移),大大减少了内存占用和查找速度。可选的,通过本实施例结合HTTP服务器,可以轻松支持RESTful接口,web读请求的URL中加上File ID即可。
在本实施例中,通过以块组织形式划分SSD空间,无元数据,索引区分散等特征,适用于安防领域的SSD缓存管理系统,能够有效的提升存储系统在读小IO密集场景的性能。
相应的,本实施例还提供一种基于SSD的缓存管理方法,包括:
当数据节点读取数据时,通过解析文件标识,查找内存中是否有目标数据,所述文件标识包括固态硬盘索引和机械硬盘索引;
若内存中有目标数据,则直接返回数据;
若没有,则通过所述固态硬盘索引校验固态硬盘中是否存在,
如果固态硬盘中存在则从固态硬盘中读取数据;
如果固态硬盘中不存在则通过机械硬盘索引从机械硬盘中读取后,返回至客户端。
预先在机械硬盘上根据写入数据生成机械硬盘索引;
当写入数据写入至固态硬盘时,根据固态硬盘中块的位置生成固态硬盘索引;
根据机械硬盘索引和固态硬盘索引,获取文件标识。
本实施例中的固态硬盘索引包括文件所在的块信息和写入起始位置,块信息包括资源编号、块标识和偏移;所述机械硬盘索引包括文件的位置和长度。
在本实施例中,将固态硬盘存储空间划分为多个大小相同的块,每个块包括首部索引区、中间数据区和尾部索引区,首部索引区包括块标识和数据长度,尾部索引区包括与首部索引区相同的块标识;
当初始化加载固态硬盘资源时,将每个块的索引信息加载至内存中,读取并验证块的首部索引区块标识的有效性,
若无效则将所述块标记为未使用;
若有效则继续验证尾部索引区中的块标识,如果与首部索引区中的块标识不相同,则将所述块标记为未使用,如果相同,则对数据长度的有效性进行验证,
若数据长度无效,则将块标记为未使用;
若数据长度有效,则根据首部索引区获取块归属的数据节点。
在本实施例中,对块标识的序号按时间顺序进行单调递增编号,当数据节点向缓存管理模块请求缓存空间时,检查未使用容量是否足够,
若足够,则获取最近偏移的块,并将最近偏移的块信息返回至数据节点
若不够,则获取序号最老的块,如果最老的块未被使用,则直接返回给数据节点,如果已被使用,且被请求的数据节点使用,则生成新的块信息,返回给数据节点覆盖原有块,如果已被使用,且被其他数据节点使用时,如果使用中的数据节点不在线,则直接返回所述块;如果使用中的数据节点在线,则对块进行回收。
在本实施例中,当客户端通过数据节点写数据时,通过预先设置的阈值对文件的大小进行数据过滤,对满足过滤条件的数据写入固态硬盘之前,判断是否有可用的块,
如果有,则直接将过滤后的文件聚合写入块中,并生成固态硬盘索引,
如果没有,则进行空间申请,若申请成功则直接在申请成功的块中写入数据,若申请失败,则判定固态硬盘写入失败,并返回只有机械硬盘索引的文件标识。
下面通过具体实施例进行进一步说明:
如图4所示,固态硬盘缓存空间管理和缓存数据读写是分离的。缓存数据的读写都是通过数据节点(Data Node,简称DN)去操作,固态硬盘存储资源的管理由SSD Manager实现。
在一个存储节点上,有且只有一个SSD Manager,负责管理该节点的所有SSD存储资源的分配和回收。相应的多个数据节点就通过SSD Manager申请或释放缓存资源。某个数据节点需要写缓存时,就向SSD Manager发送申请存储空间的请求,SSD Manager会将一个可用的Block信息响应给DN,包含资源编号+Block ID+偏移,例如资源编号是1,对应的盘符是/dev/sdb,Block ID是0x7B,偏移是0x 1EC000000。
写数据时,DN收到客户端的写数据请求,首先将数据写到硬盘上,并根据文件在硬盘上的位置+文件长度生成一个HDD索引;然后根据文件大小对数据进行过滤(大小范围由可用户自定义配置,配置为0时,不启用过滤功能),将小文件聚合写到之前申请的Block中,文件在Block的位置也会生成一个SSD索引,HDD索引+SSD索引组合成一个唯一的File ID,并返回给客户端。例如写入文件长度是0x400,文件缓存到Block中的1M位置,即0x100000,那么生成的File ID为:HDD_Path_400_1_7B_1EC100000(硬盘使用的私有文件系统,所以用HDD_Path表示文件在硬盘上的位置)
读数据时,用户就将File ID:HDD_Path_400_1_7B_1EC100000通过客户端发送给DN,DN首先解析File ID,通过File ID查找内存中是否有该数据;若未命中内存,就通过File ID中的SSD索引:1_7B_1EC100000,若资源编号1和Block ID 0x7B有效,就直接从盘/dev/sdb中的0x1EC100000偏移读取0x400长度数据;若SSD索引已经无效,就通过HDD索引直接读机械硬盘。
在上述实施例中,说明书对“本实施例”、“一实施例”等的提及表示结合实施例说明的特定特征、结构或特性包括在至少一些实施例中,但不必是全部实施例。“本实施例”的多次出现不一定全部都指代相同的实施例。说明书描述了部件、特征、结构或特性“可以”、“或许”或“能够”被包括,则该特定部件、特征、结构或特性“可以”、“或许”或“能够”被包括,则该特定部件、特征、结构或特性不是必须被包括的。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种基于SSD的缓存管理系统,其特征在于,包括:
客户端、机械硬盘存储模块、固态硬盘存储模块,以及用于对所述机械硬盘存储模块和固态硬盘存储模块进行数据存储管理的缓存管理模块,所述机械硬盘存储模块包括一个或多个机械硬盘,所述固态硬盘存储模块包括一个或多个固态硬盘;
当数据节点读取数据时,通过解析文件标识,查找内存中是否有目标数据,所述文件标识包括固态硬盘索引和机械硬盘索引;
若内存中有目标数据,则直接返回数据;
若没有,则通过所述固态硬盘索引校验固态硬盘中是否存在,
如果固态硬盘中存在则从固态硬盘中读取数据;
如果固态硬盘中不存在则通过机械硬盘索引从机械硬盘中读取后,返回至客户端。
2.根据权利要求1所述的基于SSD的缓存管理系统,其特征在于,
所述缓存管理模块预先在机械硬盘上根据写入数据生成机械硬盘索引;
当所述写入数据写入至固态硬盘时,根据固态硬盘中块的位置生成固态硬盘索引;
根据所述机械硬盘索引和固态硬盘索引,获取文件标识,并反馈至客户端。
3.根据权利要求2所述的基于SSD的缓存管理系统,其特征在于,所述固态硬盘索引包括文件所在的块信息和写入起始位置,所述块信息包括资源编号、块标识和偏移;所述机械硬盘索引包括文件的位置和长度。
4.根据权利要求3所述的基于SSD的缓存管理系统,其特征在于,通过客户端将文件标识发送至数据节点,数据节点解析文件标识后,若内存中没有目标数据,则通过校验固态硬盘索引中的资源编号和块标识是否存在,如果存在,则通过所述资源编号获取资源路径和文件写入偏移;如果资源编号和块标识已无效或不存在,则通过机械硬盘索引从机械硬盘中读取。
5.一种基于SSD的缓存管理方法,其特征在于,包括:
当数据节点读取数据时,通过解析文件标识,查找内存中是否有目标数据,所述文件标识包括固态硬盘索引和机械硬盘索引;
若内存中有目标数据,则直接返回数据;
若没有,则通过所述固态硬盘索引校验固态硬盘中是否存在,
如果固态硬盘中存在则从固态硬盘中读取数据;
如果固态硬盘中不存在则通过机械硬盘索引从机械硬盘中读取后,返回至客户端。
6.根据权利要求5中的基于SSD的缓存管理方法,其特征在于,
预先在机械硬盘上根据写入数据生成机械硬盘索引;
当所述写入数据写入至固态硬盘时,根据固态硬盘中块的位置生成固态硬盘索引;
根据所述机械硬盘索引和固态硬盘索引,获取文件标识。
7.根据权利要求5中的基于SSD的缓存管理方法,其特征在于,
所述固态硬盘索引包括文件所在的块信息和写入起始位置,所述块信息包括资源编号、块标识和偏移;所述机械硬盘索引包括文件的位置和长度。
8.根据权利要求6中的基于SSD的缓存管理方法,其特征在于,将固态硬盘存储空间划分为多个大小相同的块,每个块包括首部索引区、中间数据区和尾部索引区,所述首部索引区包括块标识和数据长度,所述尾部索引区包括与首部索引区相同的块标识;
当初始化加载固态硬盘资源时,将每个块的索引信息加载至内存中,读取并验证块的首部索引区块标识的有效性,
若无效则将所述块标记为未使用;
若有效则继续验证尾部索引区中的块标识,如果与首部索引区中的块标识不相同,则将所述块标记为未使用,如果相同,则对数据长度的有效性进行验证,
若数据长度无效,则将所述块标记为未使用;
若数据长度有效,则根据首部索引区获取所述块归属的数据节点。
9.根据权利要求6中的基于SSD的缓存管理方法,其特征在于,对所述块标识的序号按时间顺序进行单调递增编号,当数据节点向缓存管理模块请求缓存空间时,检查未使用容量是否足够,
若足够,则获取最近偏移的块,并将所述最近偏移的块信息返回至数据节点
若不够,则获取序号最老的块,如果所述最老的块未被使用,则直接返回给数据节点,如果已被使用,且被请求的数据节点使用,则生成新的块信息,返回给数据节点覆盖原有块,如果已被使用,且被其他数据节点使用时,如果使用中的数据节点不在线,则直接返回所述块;如果使用中的数据节点在线,则对块进行回收。
10.根据权利要求6中的基于SSD的缓存管理方法,其特征在于,当客户端通过数据节点写数据时,通过预先设置的阈值对文件的大小进行数据过滤,对满足过滤条件的数据写入固态硬盘之前,判断是否有可用的块,
如果有,则直接将过滤后的文件聚合写入块中,并生成固态硬盘索引,
如果没有,则进行空间申请,若申请成功则直接在申请成功的块中写入数据,若申请失败,则判定固态硬盘写入失败,并返回只有机械硬盘索引的文件标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010400005.9A CN111552442A (zh) | 2020-05-13 | 2020-05-13 | 一种基于ssd的缓存管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010400005.9A CN111552442A (zh) | 2020-05-13 | 2020-05-13 | 一种基于ssd的缓存管理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111552442A true CN111552442A (zh) | 2020-08-18 |
Family
ID=72000657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010400005.9A Pending CN111552442A (zh) | 2020-05-13 | 2020-05-13 | 一种基于ssd的缓存管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552442A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181315A (zh) * | 2020-10-30 | 2021-01-05 | 新华三大数据技术有限公司 | 一种数据刷盘方法及装置 |
CN112596682A (zh) * | 2020-12-28 | 2021-04-02 | 郝东东 | 一种区块链用存储装置及存储方法 |
CN113220233A (zh) * | 2021-05-14 | 2021-08-06 | 北京百度网讯科技有限公司 | 数据读取方法、装置及系统 |
CN113835614A (zh) * | 2020-09-17 | 2021-12-24 | 北京焱融科技有限公司 | 一种基于分布式文件存储客户端的ssd智能缓存方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105830067A (zh) * | 2015-06-05 | 2016-08-03 | 深圳市大疆创新科技有限公司 | 一种文件信息处理方法、装置及文件处理设备、系统 |
CN105892947A (zh) * | 2016-03-31 | 2016-08-24 | 华中科技大学 | 一种节能存储系统的ssd与hdd混合缓存管理方法及系统 |
CN107203532A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 索引系统的构建方法、搜索的实现方法及装置 |
CN108009008A (zh) * | 2016-10-28 | 2018-05-08 | 北京市商汤科技开发有限公司 | 数据处理方法和系统、电子设备 |
-
2020
- 2020-05-13 CN CN202010400005.9A patent/CN111552442A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105830067A (zh) * | 2015-06-05 | 2016-08-03 | 深圳市大疆创新科技有限公司 | 一种文件信息处理方法、装置及文件处理设备、系统 |
CN107203532A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 索引系统的构建方法、搜索的实现方法及装置 |
CN105892947A (zh) * | 2016-03-31 | 2016-08-24 | 华中科技大学 | 一种节能存储系统的ssd与hdd混合缓存管理方法及系统 |
CN108009008A (zh) * | 2016-10-28 | 2018-05-08 | 北京市商汤科技开发有限公司 | 数据处理方法和系统、电子设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835614A (zh) * | 2020-09-17 | 2021-12-24 | 北京焱融科技有限公司 | 一种基于分布式文件存储客户端的ssd智能缓存方法和系统 |
CN112181315A (zh) * | 2020-10-30 | 2021-01-05 | 新华三大数据技术有限公司 | 一种数据刷盘方法及装置 |
CN112181315B (zh) * | 2020-10-30 | 2022-08-30 | 新华三大数据技术有限公司 | 一种数据刷盘方法及装置 |
CN112596682A (zh) * | 2020-12-28 | 2021-04-02 | 郝东东 | 一种区块链用存储装置及存储方法 |
CN113220233A (zh) * | 2021-05-14 | 2021-08-06 | 北京百度网讯科技有限公司 | 数据读取方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111552442A (zh) | 一种基于ssd的缓存管理系统及方法 | |
US8843454B2 (en) | Elimination of duplicate objects in storage clusters | |
US7849282B2 (en) | Filesystem building method | |
CN108733306B (zh) | 一种文件合并方法及装置 | |
US20160364407A1 (en) | Method and Device for Responding to Request, and Distributed File System | |
CN106951375B (zh) | 在存储系统中删除快照卷的方法及装置 | |
CN105549905A (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
CN103399823B (zh) | 业务数据的存储方法、设备和系统 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN107832423B (zh) | 一种用于分布式文件系统的文件读写方法 | |
US9307024B2 (en) | Efficient storage of small random changes to data on disk | |
CN110109873B (zh) | 一种用于消息队列的文件管理方法 | |
CN109804359A (zh) | 用于将数据回写到存储设备的系统和方法 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
CN110018998A (zh) | 一种文件管理方法、系统及电子设备和存储介质 | |
CN106446044B (zh) | 存储空间回收方法及装置 | |
WO2018171296A1 (zh) | 一种文件合并方法及控制器 | |
CN113377292B (zh) | 一种单机存储引擎 | |
CN112148736B (zh) | 缓存数据的方法、设备及存储介质 | |
CN111198856A (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
CN111435286A (zh) | 一种数据存储方法、装置和系统 | |
CN111694806A (zh) | 一种事务日志的缓存方法、装置、设备和存储介质 | |
CN116226232A (zh) | 面向分布式数据库的持久内存数据存储方法及系统 | |
CN110795031A (zh) | 一种基于全闪存储的数据重删方法、装置和系统 | |
CN111488128B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200818 |