CN114817195A - 一种分布式存储缓存管理的方法、系统、存储介质及设备 - Google Patents
一种分布式存储缓存管理的方法、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN114817195A CN114817195A CN202210364721.5A CN202210364721A CN114817195A CN 114817195 A CN114817195 A CN 114817195A CN 202210364721 A CN202210364721 A CN 202210364721A CN 114817195 A CN114817195 A CN 114817195A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- granularity
- distributed
- storage
- 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 70
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 230000008030 elimination Effects 0.000 claims description 9
- 238000003379 elimination reaction Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 230000002085 persistent effect Effects 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 68
- 238000010586 diagram Methods 0.000 description 16
- 238000012544 monitoring process Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式存储缓存管理的方法、系统、存储介质及设备,方法包括:在分布式底层存储集群中基于文件的额定大小选定对象粒度及条带宽度;基于对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理;响应于接收到客户端发出的读请求,根据读请求在缓存中查找;响应于缓存中不存在读请求对应的数据,对分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据读请求在缓存中查找;响应于在缓存中查找到读请求对应的数据,从缓存中返回对应的数据及缓存命中。本发明节约缓存空间、提高预取命中率、提高存储整体的IO性能。
Description
技术领域
本发明涉及服务器技术领域,尤其涉及分布式存储技术领域,具体涉及分布式存储的缓存管理技术领域。
背景技术
随着云计算、数字化转型,产生的数据量呈指数级增长,因此,对海量数据存储有新的技术要求。传统存储虽然技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显,如扩展性差、成本高、存在单点故障和性能瓶颈等。为了克服上述缺点,满足海量数据的存储需求,当前技术背景下出现了分布式存储技术。分布式存储系统,通常包括主控服务器、存储服务器,以及多个客户端组成。其本质是将大量的文件,均匀分布到多个存储服务器上。
目前,分布式对象存储系统已经普遍应用于生成环境中,具有高扩展性,高可用性,高可靠性的特点,与此同时,分布式对象存储系统能够应用于多种场景,在商业化模式的推动下,对分布式存储系统的性能要求越来越高。
分布式对象存储可以提供块、文件和对象三种功能接口的存储,其中文件系统相对与本地文件系统具有很好的扩展能力,而且,在NAS场景下,通过网络C/S架构,分布式文件系统具有功能丰富、无限扩展、无容量限制的特点。针对文件系统的操作比较成熟,应用广泛,针对文件IO操作(元数据和数据访问)性能的要求具有重要的研究价值。一般性,提高数据IO的访问性能,可采用数据预取,增加缓存层手段来实现,提高客户端预取命中率,减少IO次数进而提升性能。
现有技术中,在传统存储文件系统中,根据IO预取数据的特点,通过链表结构设置预取数据优先级,然后使用缓存淘汰算法进行预取数据的调度方法,提升缓存数据的命中率。在海量小文件场景下,通过合并多个小文件为个大块文件来减少元数据IO次数,充分利用客户端缓存,降低存储IO次数,该方法能有效提升预取命中率,读访问时延低,在特定的小文件应用场景能够提高存储性能。分布式存储系统,会通过条带化技术,将数据存储到分布式集群中,现有技术中,根据存储节点的存储水位来达到数据均衡分布的目的,在不同的存储节点硬件设备不是完全一致的情况下,是不可行的,为了解决分布式存储系统中数据均衡,同时又能保证存储性能,提出了一致性hash环算法存储均衡数据,根据数据访问热度进行数据预取,解决存储IO性能和存储数据分布的问题。然而现有的算法仍然存在改进和提高的空间。
因此,针对现有技术中的上述缺点、问题,需要提出一种优化的分布式存储缓存管理的方法,尽可能优化缓存数据的管理,合理进行缓存淘汰,节约缓存空间,从而提高预取命中率,进而提高存储IO性能。
发明内容
有鉴于此,本发明的目的在于提出一种改进的分布式存储缓存管理的方法、系统、存储介质及设备,从而解决现有技术中上述问题等。
基于上述目的,一方面,本发明提供了一种分布式存储缓存管理的方法,其中该方法包括以下步骤:
在分布式底层存储集群中基于文件的额定大小选定对象粒度及条带宽度;
基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理;
响应于接收到客户端发出的读请求,根据所述读请求在缓存中查找;
响应于所述缓存中不存在所述读请求对应的数据,对所述分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据所述读请求在缓存中查找;
响应于在缓存中查找到所述读请求对应的数据,从所述缓存中返回所述对应的数据及缓存命中。
在根据本发明的分布式存储缓存管理的方法的一些实施例中,所述方法进一步包括:
设置缓存管理单元和用于缓存数据的最小缓存单元,所述缓存管理单元负责数据的访问频率和/或缓存命中频率统计,将访问频率和/或缓存命中频率高的数据缓存优先级提高,其中所述缓存管理单元包含所述最小缓存单元,其中所述最小缓存单元的大小小于等于对象大小。
在根据本发明的分布式存储缓存管理的方法的一些实施例中,所述方法进一步包括:
通过LRU缓存淘汰算法进行缓存管理。
在根据本发明的分布式存储缓存管理的方法的一些实施例中,所述方法进一步包括:
通过时间戳KV键值对遍历排序的方式,定时检查脏数据的容量,直到脏数据缓存下刷到底层磁盘进行持久化存储。
在根据本发明的分布式存储缓存管理的方法的一些实施例中,响应于所述缓存中不存在所述读请求对应的数据,对所述分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据所述读请求在缓存中查找进一步包括:
对于每个读请求进行以对象为粒度的方式的预取管理以构建缓存时涉及单一对象,其中根据条带单元大小进行预取,对象在条带单元的数据是连续的。
在根据本发明的分布式存储缓存管理的方法的一些实施例中,所述基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理进一步包括:
将所述对象单元以对象粒度采用Hash函数一致性算法映射到放置组;
所述放置组通过Crush分布式算法映射到不同集群节点的磁盘上,每个磁盘上存在存储守护进程以将数据以对象的形式存储到集群中每个节点的物理磁盘上。
在根据本发明的分布式存储缓存管理的方法的一些实施例中,所述基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理进一步包括:
文件的元数据inode(索引节点)号具有唯一性,采用inode.pgid的方式进行存储,使得不同的文件数据不会条带化到同一个对象中,并且一个对象在分布式存储条带中的数据是连续的。
本发明的另一方面,还提供了一种分布式存储缓存管理的系统,其中包括:
缓存管理配置模块,所述缓存管理配置模块配置为在分布式底层存储集群中基于文件的额定大小选定对象粒度及条带宽度;
数据底层存储模块,所述数据底层存储模块配置为基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理;
用户请求响应模块,所述用户请求响应模块配置为响应于接收到客户端发出的读请求,根据所述读请求在缓存中查找;
底层数据预取模块,所述底层数据预取模块配置为响应于所述缓存中不存在所述读请求对应的数据,对所述分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据所述读请求在缓存中查找;
缓存数据返回模块,所述缓存数据返回模块配置为响应于在缓存中查找到所述读请求对应的数据,从所述缓存中返回所述对应的数据及缓存命中。
本发明的再一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任一项根据本发明的分布式存储缓存管理的方法。
本发明的又一方面,还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任一项根据本发明的分布式存储缓存管理的方法。
本发明至少具有以下有益技术效果:针对前述问题和现有技术,特别针对大规模分布式存储文件系统,本发明根据分布式存储对象条带化特点,对数据进行合理预取,自适应调整预取数据范围,对预取到缓存的数据进行优化管理,合理利用缓存淘汰算法,节约缓存空间,提高预取命中率,进而提高存储IO性能。通过统计数据IO的访问热度,文件通过分片上传到分布式存储当中以对象为粒度进行管理,利用对象粒度的预取算法,提高预取命中率。优化缓存对象管理方法,通过对预期的数据进行自适应调整,对缓存数据进行合理使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
在图中:
图1示出了根据本发明的分布式存储文件系统访问架构示意图;
图2示出了根据本发明的分布式存储缓存管理的方法的实施例的示意性框图;
图3示出了根据本发明的分布式存储缓存管理的方法的实施例的缓存管理单元和最小缓存单元的示意图;
图4示出了现有的分布式存储缓存管理的多客户端预取的多对象请求的示意图;
图5示出了根据本发明的分布式存储缓存管理的方法的实施例的多客户端预取对象独立性的示意图;
图6示出了根据本发明的分布式存储缓存管理的方法的实施例的分布式存储文件系统IO缓存流程示意图;
图7示出了根据本发明的分布式存储缓存管理的系统的实施例的示意性框图;
图8示出了根据本发明的实现分布式存储缓存管理的方法的计算机可读存储介质的实施例的示意图;
图9示出了根据本发明的实现分布式存储缓存管理的方法的计算机设备的实施例的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
特别针对大规模分布式存储文件系统,本发明根据分布式存储对象条带化特点,对数据进行合理预取,自适应调整预取数据范围,对预取到缓存的数据进行优化管理,合理利用缓存淘汰算法,节约缓存空间,提高预取命中率,进而提高存储IO性能。通过统计数据IO的访问热度,文件通过分片上传到分布式存储当中以对象为粒度进行管理,利用对象粒度的预取算法,提高预取命中率。优化缓存对象管理方法,通过对预取的数据进行自适应调整,对缓存数据进行合理使用。本发明提出了一种基于分布式存储对象条带化的缓存管理方法。
一般来说,对分布式存储文件系统的操作主要包括数据、元数据操作,其中元数据是指描述文件的数据,例如文件的创建、修改、访问时间,文件大小等描述信息。本发明针对元数据的操作,都经过元数据服务器进行处理,在海量文件系统中,数据的访问符合局部性原理,即最近被访问的数据和相邻的数据段再被访问的几率更大。根据局部性原理的特性,本发明设计了以对象为粒度的条带缓存管理方法,提升缓存命中率。当未命中时,减少对底层数据磁盘的访问次数,提升分布式存储的整体性能。
在分布式文件系统中,客户端使用NFS(网络文件系统,英文Network FileSystem)作为客户端,通过NFS挂载可以实现分布式文件存储空间的操作,其中IO存储操作是通过网络RPC进行远程过程调用。当NFS请求发送到分布式存储服务端时,包括以下几个模块:元数据集群、磁盘存储集群、集群监控服务,其中,元数据集群管理文件系统元数据的请求,磁盘存储集群是有硬件磁盘存储设备构成,集群监控服务用以管理集群状态信息,维护集群的整体映射关系。NFS服务文件操作请求,均会调用分布式存储系统提供的标准统一接口动态lib库作为分布式存储的Client(客户端)请求,所有的Client元数据请求均通过元数据集群进行处理,元数据服务的inode信息存储在缓存空间中。Client请求如果在元数据集群中命中则直接返回,若未命中,则从底层磁盘存储集群获取,磁盘空间性能低于缓存空间。图1示出了根据本发明的分布式存储文件系统访问架构示意图。
在本发明的分布式存储文件系统中,NFS的文件操作请求,在底层存储集群中的存储单元为对象,该对象粒度大小可设置,分布式文件系统存储为了发挥磁盘阵列的性能,采用数据条带化的策略,将文件数据进行分片为多个对象文件。
在条带过小的情况下,当连续的存储地址写入大块数据时,需要拆分成小块数据后,才写入到存储磁盘集群。假设条带单元设置为4k,写入一个64K文件,需要向多个磁盘存储模块发送16个4k大小的请求,会导致写入次数增加,进而影响写入性能。
在条带过大的情况下,写入小文件时在临界范围内写入的小块数据,将会向同一个对象进行写入,一个对象包含多个小文件时,会出现阻塞IO问题。假设一个4M的对象,短时间内出现600次连续的4k数据刷新。这600次操作将发送到同一个存储磁盘,在同一个归置组(包含多个存储磁盘单元)数据刷新操作是同步阻塞的,在短时间内会阻塞请求处理性能。如果每个请求的处理为3ms,那么600次请求在最后一个请求被开始处理时,至少已经等待了1800ms。根据上述分析,选取合理的条带宽度,条带数量是非常关键的。合理的配置将有效的增加集群的处理带宽,以及请求的处理质量,提升性能。
为此,本发明的第一方面,提供了一种分布式存储缓存管理的方法100。图2示出了根据本发明的分布式存储缓存管理的方法的实施例的示意性框图。在如图2所示的实施例中,该方法包括:
步骤S110:在分布式底层存储集群中基于文件的额定大小选定对象粒度及条带宽度;
步骤S120:基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理;
步骤S130:响应于接收到客户端发出的读请求,根据所述读请求在缓存中查找;
步骤S140:响应于所述缓存中不存在所述读请求对应的数据,对所述分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据所述读请求在缓存中查找;
步骤S150:响应于在缓存中查找到所述读请求对应的数据,从所述缓存中返回所述对应的数据及缓存命中。
总的来说,针对现有技术中存在的上述问题,首先在步骤S110中在分布式底层存储集群中基于文件的额定大小选定对象粒度及条带宽度。如前述已经分析过的,在分布式存储集群中选取合理的条带宽度,条带数量是非常关键的。合理的配置将有效的增加集群的处理带宽,以及请求的处理质量,提升性能。由于一般来讲一个分布式存储集群中存储的文件的大小相对比较规整,因此针对一个分布式存储集群可以规定所存储的文件的额定大小,该额定大小可以但不限于对应于集群中存储的文件的大小的平均值、中值或最大值。
随后在步骤S120中基于步骤S110中确定的所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理。
在此基础上,进入数据读取阶段。图6示出了根据本发明的分布式存储缓存管理的方法的实施例的分布式存储文件系统IO缓存流程示意图。从图6可知,为了实现缓存查找命中率,需要对缓存数据进行合理化管理,否则未命中的数据将从底层磁盘获取,并重新构建缓存,增加了IO次数影响整体存储性能。本发明对缓存数据进行分类,预取数据和缓存数据,预取数据指的是通过步骤S140预先获取的缓存数据,并未被再次访问到的数据;缓存数据则是已经被客户端命中过的数据。也就是说,如果预取数据被访问命中,则会转化为缓存数据。
也就是说,当接收到客户端发出的读请求时,在步骤S130中首先根据读请求在缓存中查找是否存在相对应的数据。如果缓存中不存在该读请求对应的数据,那么执行步骤S140对分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,然后再次根据读请求在缓存中查找。如果在步骤S130执行的在缓存中的查找或者在步骤S140执行的在缓存中的再次查找中查找到所述读请求对应的数据,那么就执行步骤S150从缓存中返回对应的数据及缓存命中。如果在特殊情况下,步骤S140执行的在缓存中的再次查找之后仍然没有查找到该读请求对应的数据,则代表步骤S140中执行的预取未能命中所需的数据,则再次执行该步骤S140,直至预取到相对应的数据。
进一步地,在根据本发明的分布式存储缓存管理的方法100的一些实施例中,所述方法进一步包括:设置缓存管理单元和用于缓存数据的最小缓存单元,所述缓存管理单元负责数据的访问频率和/或缓存命中频率统计,将访问频率和/或缓存命中频率高的数据缓存优先级提高,其中所述缓存管理单元包含所述最小缓存单元,其中所述最小缓存单元的大小小于等于对象大小。具体地说,根据本发明,通过对象缓存模块对缓存进行管理,最小缓存单元设置为(bm,buffermode),并规定bm<=objectsize对象大小。为了管理和缓存淘汰预取的数据,设置缓存管理单元(bu,bufferuse),且bm<=bu,其中bu主要负责数据的访问频率(缓存命中)统计,将访问频率(缓存命中)高的数据缓存优先级提高,使其更加能够被访问到。通过缓存的命中和数据预取来进行bu的统计,由于bu包含了bm最小缓存粒度单元,在整个对象大小范围内,扩大了预取数据的范围,同时保证了预取数据的命中率。图3示出了根据本发明的分布式存储缓存管理的方法的实施例的缓存管理单元和最小缓存单元的示意图。
根据本发明分布式存储文件系统,NFS的文件操作请求,在底层存储集群中的存储单元为对象。该对象粒度大小可设置,分布式文件系统存储为了发挥磁盘阵列的性能,采用数据条带化的策略,将文件数据进行分片为多个对象文件。例如,对象粒度设置为4MB,一个16MB的文件将会被分片为4个对象,低于该对象的文件,以最小对象粒度大小进行存储。其中,本发明指出,对象粒度大小(object_size)是分布式存储集群里的对象最大可配置尺寸(2MB、4MB等等),对象粒度必须足够大以便容纳很多条带单元、而且应该是条带单元的整数倍。条带宽度(stripe_unit)是可配置的单元尺寸(如64KB)。分布式存储文件系统客户端把数据等分成适合写入对象的条带单元,除了最后一个。条带宽度是对象尺寸的分片,这样对象才能包含很多条带单元。分布式文件存储的客户端把一系列条带单元写入由条带数量(stripe-count)所确定的一系列对象,这一系列的对象称为一个对象集。客户端写到对象集内的最后一个对象时,再返回到第一个。
在根据本发明的分布式存储缓存管理的方法100的一些实施例中,所述方法进一步包括:通过LRU缓存淘汰算法进行缓存管理。根据本发明本发明,通过对象缓存模块对缓存进行管理,在整个对象大小范围内,扩大了预取数据的范围,同时保证了预取数据的命中率,通过LRU(Least Recently Used)缓存淘汰算法进行管理。LRU算法即最近最少使用,是一种页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中其t值最大的,即最近最少使用的页面予以淘汰。
在根据本发明的分布式存储缓存管理的方法100的一些实施例中,所述方法进一步包括:通过时间戳KV键值对遍历排序的方式,定时检查脏数据的容量,直到脏数据缓存下刷到底层磁盘进行持久化存储。
在此,假设随着分布式文件系统访问的频率和时间延长,缓存中会存在脏数据需要进行下刷磁盘进行数据持久化,否则会存在数据不一致的风险,本发明设计一种缓存刷新规则,通过时间戳KV键值对的方式进行管理,并通过RB-tree算法进行索引,提高检索的效率,RB-tree的对时间戳进行遍历排序,定时检查脏数据的容量,直到脏数据缓存下刷到磁盘进行持久化存储。
图4和图5示出了分布式存储集群多客户端预取对象独立性分布式存储用户对数据的访问。通过预取数据进行IO性能的提升,把数据从速度慢的磁盘设备放入访问速度较快的设备,把数据从磁盘提前预取到内存缓存或SSD固态硬盘中。如果预取的数据范围不准确,客户端无法命中,预取的数据没有访问到,同时也占用了缓存空间,因此需要高效的预取和调整数据缓存范围。分布式对象存储集群,将NFS客户端的文件进行对象条带化到不同的对象中,以对象粒度采用Hash函数一致性算法映射到放置组(PlacementGroup)。放置组再通过Crush分布式算法映射到不同集群节点的磁盘上,每个磁盘有一个存储守护进程相当于将数据以对象的形式存储到集群中每个节点的物理磁盘上。基于数据分布的特点,假设预取数据范围涉及多个磁盘,依据条带化的特点,多个磁盘并行处理IO请求可以提高并发性,条带范围设置的越大,并发性会提升,范围越大会频繁替换缓存空间,造成缓存失效现象,例如通常情况下的多个NFS客户端并发多个请求,每个请求范围涉及多个对象,则分布如图4所示。而在本发明中,如果每个请求范围只涉及一个对象,如图5所示,缓存的预取管理请求是独立,可以避免集群直接的带宽占用、读放大的问题。根据条带单元大小进行预取,对象在条带单元的数据是连续的,以整数倍(n>=2)的方式进行预取,进一步,对预取的条带数据进行缓存管理,提高命中率和缓存空间最大化利用率。
因此,在根据本发明的分布式存储缓存管理的方法100的一些实施例中,步骤S140:响应于所述缓存中不存在所述读请求对应的数据,对所述分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据所述读请求在缓存中查找进一步包括:对于每个读请求进行以对象为粒度的方式的预取管理以构建缓存时涉及单一对象,其中根据条带单元大小进行预取,对象在条带单元的数据是连续的。
此外,在根据本发明的分布式存储缓存管理的方法100的一些实施例中,步骤S120:基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理进一步包括:
步骤S121:将所述对象单元以对象粒度采用Hash函数一致性算法映射到放置组;
步骤S122:所述放置组通过Crush分布式算法映射到不同集群节点的磁盘上,每个磁盘上存在存储守护进程以将数据以对象的形式存储到集群中每个节点的物理磁盘上。
此外,在根据本发明的分布式存储缓存管理的方法100的一些实施例中,步骤S120:基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理进一步包括:文件的元数据inode(索引节点)号具有唯一性,采用inode.pgid的方式进行存储,使得不同的文件数据不会条带化到同一个对象中,并且一个对象在分布式存储条带中的数据是连续的。
具体地说,本发明根据分布式存储文件系统对文件进行以对象为粒度进行存储时,不会将不同的文件进行条带化到同一个对象中,由于在同一个文件系统命令空闲中,文件的元数据inode号具有唯一性,对象命令采用inode.pgid的方式进行存储,保证不同的文件数据不会条带化到同一个对象中,并且一个对象在分布式存储条带中的数据是连续的,因此分布式文件系统以对象为粒度进行存储满足局部性原理。
以上方法通过分布式存储文件系统的数据访问流程,基于对象条带自动化预取规则和缓存淘汰更新算法,对典型NAS场景,NFS客户端数据的缓存和预取缓存分别做了改进,提升了数据访问性能和缓存命中率。
本发明的第二方面,还提供了一种分布式存储缓存管理的系统200。图7示出了根据本发明的分布式存储缓存管理的系统200的实施例的示意性框图。如图7所示,该系统包括:
缓存管理配置模块210,所述缓存管理配置模块210配置为在分布式底层存储集群中基于文件的额定大小选定对象粒度及条带宽度;
数据底层存储模块220,所述数据底层存储模块220配置为基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理;
用户请求响应模块230,所述用户请求响应模块230配置为响应于接收到客户端发出的读请求,根据所述读请求在缓存中查找;
底层数据预取模块240,所述底层数据预取模块240配置为响应于所述缓存中不存在所述读请求对应的数据,对所述分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据所述读请求在缓存中查找;
缓存数据返回模块250,所述缓存数据返回模块250配置为响应于在缓存中查找到所述读请求对应的数据,从所述缓存中返回所述对应的数据及缓存命中。
本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图8示出了根据本发明实施例提供的分布式存储缓存管理的方法的计算机可读存储介质的示意图。如图8所示,计算机可读存储介质300存储有计算机程序指令310,该计算机程序指令310可以被处理器执行。该计算机程序指令310被执行时实现上述任意一项实施例的方法。
应当理解,在相互不冲突的情况下,以上针对根据本发明的分布式存储缓存管理的方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的分布式存储缓存管理的系统和存储介质。
本发明实施例的第四个方面,还提供了一种计算机设备400,包括存储器420和处理器410,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例的方法。
如图9所示,为本发明提供的执行分布式存储缓存管理的方法的计算机设备的一个实施例的硬件结构示意图。以如图9所示的计算机设备400为例,在该计算机设备中包括一个处理器410以及一个存储器420,并还可以包括:输入装置430和输出装置440。处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图6中以通过总线连接为例。输入装置430可接收输入的数字或字符信息,以及产生与分布式存储缓存管理的有关的信号输入。输出装置440可包括显示屏等显示设备。
存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的资源监控方法对应的程序指令/模块。存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储资源监控方法的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的资源监控方法。
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种分布式存储缓存管理的方法,其特征在于,包括以下步骤:
在分布式底层存储集群中基于文件的额定大小选定对象粒度及条带宽度;
基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理;
响应于接收到客户端发出的读请求,根据所述读请求在缓存中查找;
响应于所述缓存中不存在所述读请求对应的数据,对所述分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据所述读请求在缓存中查找;
响应于在缓存中查找到所述读请求对应的数据,从所述缓存中返回所述对应的数据及缓存命中。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
设置缓存管理单元和用于缓存数据的最小缓存单元,所述缓存管理单元负责数据的访问频率和/或缓存命中频率统计,将访问频率和/或缓存命中频率高的数据缓存优先级提高,其中所述缓存管理单元包含所述最小缓存单元,其中所述最小缓存单元的大小小于等于对象大小。
3.根据权利要求2所述的方法,其特征在于,所述方法进一步包括:
通过LRU缓存淘汰算法进行缓存管理。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法进一步包括:
通过时间戳KV键值对遍历排序的方式,定时检查脏数据的容量,直到脏数据缓存下刷到底层磁盘进行持久化存储。
5.根据权利要求1至3任一项所述的方法,其特征在于,响应于所述缓存中不存在所述读请求对应的数据,对所述分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据所述读请求在缓存中查找进一步包括:
对于每个读请求进行以对象为粒度的方式的预取管理以构建缓存时涉及单一对象,其中根据条带单元大小进行预取,对象在条带单元的数据是连续的。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理进一步包括:
将所述对象单元以对象粒度采用Hash函数一致性算法映射到放置组;
所述放置组通过Crush分布式算法映射到不同集群节点的磁盘上,每个磁盘上存在存储守护进程以将数据以对象的形式存储到集群中每个节点的物理磁盘上。
7.根据权利要求1至3任一项所述的方法,其特征在于,所述基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理进一步包括:
文件的元数据inode号具有唯一性,采用inode.pgid的方式进行存储,使得不同的文件数据不会条带化到同一个对象中,并且一个对象在分布式存储条带中的数据是连续的。
8.一种分布式存储缓存管理的系统,其特征在于,包括:
缓存管理配置模块,所述缓存管理配置模块配置为在分布式底层存储集群中基于文件的额定大小选定对象粒度及条带宽度;
数据底层存储模块,所述数据底层存储模块配置为基于所述对象粒度和条带宽度将文件的数据分片为多个对象单元并采用以对象为粒度的方式写入所述分布式底层存储集群,其中该以对象为粒度的方式的写入满足局部性原理;
用户请求响应模块,所述用户请求响应模块配置为响应于接收到客户端发出的读请求,根据所述读请求在缓存中查找;
底层数据预取模块,所述底层数据预取模块配置为响应于所述缓存中不存在所述读请求对应的数据,对所述分布式底层存储集群以对象为粒度的方式进行预取管理并构建缓存,再次根据所述读请求在缓存中查找;
缓存数据返回模块,所述缓存数据返回模块配置为响应于在缓存中查找到所述读请求对应的数据,从所述缓存中返回所述对应的数据及缓存命中。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被执行时实现如权利要求1-7任意一项所述的分布式存储缓存管理的方法。
10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求1-7任意一项所述的分布式存储缓存管理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210364721.5A CN114817195A (zh) | 2022-04-08 | 2022-04-08 | 一种分布式存储缓存管理的方法、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210364721.5A CN114817195A (zh) | 2022-04-08 | 2022-04-08 | 一种分布式存储缓存管理的方法、系统、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817195A true CN114817195A (zh) | 2022-07-29 |
Family
ID=82535002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210364721.5A Withdrawn CN114817195A (zh) | 2022-04-08 | 2022-04-08 | 一种分布式存储缓存管理的方法、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817195A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383258A (zh) * | 2023-05-23 | 2023-07-04 | 菏泽全胜建筑装饰工程有限公司 | 基于bim的建筑施工数据管理方法及系统 |
CN116501696A (zh) * | 2023-06-30 | 2023-07-28 | 之江实验室 | 适用于分布式深度学习训练预取缓存管理的方法和装置 |
CN116561020A (zh) * | 2023-05-15 | 2023-08-08 | 合芯科技(苏州)有限公司 | 一种混合缓存粒度下的请求处理方法、设备及存储介质 |
-
2022
- 2022-04-08 CN CN202210364721.5A patent/CN114817195A/zh not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116561020A (zh) * | 2023-05-15 | 2023-08-08 | 合芯科技(苏州)有限公司 | 一种混合缓存粒度下的请求处理方法、设备及存储介质 |
CN116561020B (zh) * | 2023-05-15 | 2024-04-09 | 合芯科技(苏州)有限公司 | 一种混合缓存粒度下的请求处理方法、设备及存储介质 |
CN116383258A (zh) * | 2023-05-23 | 2023-07-04 | 菏泽全胜建筑装饰工程有限公司 | 基于bim的建筑施工数据管理方法及系统 |
CN116383258B (zh) * | 2023-05-23 | 2023-08-11 | 菏泽全胜建筑装饰工程有限公司 | 基于bim的建筑施工数据管理方法及系统 |
CN116501696A (zh) * | 2023-06-30 | 2023-07-28 | 之江实验室 | 适用于分布式深度学习训练预取缓存管理的方法和装置 |
CN116501696B (zh) * | 2023-06-30 | 2023-09-01 | 之江实验室 | 适用于分布式深度学习训练预取缓存管理的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8463846B2 (en) | File bundling for cache servers of content delivery networks | |
CN114817195A (zh) | 一种分布式存储缓存管理的方法、系统、存储介质及设备 | |
US8635402B2 (en) | Storage system and storage access method and program | |
US10409728B2 (en) | File access predication using counter based eviction policies at the file and page level | |
WO2021218038A1 (zh) | 一种存储系统、内存管理方法和管理节点 | |
US9069680B2 (en) | Methods and systems for determining a cache size for a storage system | |
US20040030731A1 (en) | System and method for accessing files in a network | |
CN104580437A (zh) | 一种云存储客户端及其高效数据访问方法 | |
US8402198B1 (en) | Mapping engine for a storage device | |
US20130290636A1 (en) | Managing memory | |
Fukuda et al. | Caching memcached at reconfigurable network interface | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
Dong et al. | Correlation based file prefetching approach for hadoop | |
CN111159176A (zh) | 一种海量流数据的存储和读取的方法和系统 | |
CN117539915B (zh) | 一种数据处理方法及相关装置 | |
CN114844846A (zh) | 一种基于可编程交换机的多级缓存分布式键值存储系统 | |
CN115858409A (zh) | 一种数据预取方法、计算节点和存储系统 | |
CN115080459A (zh) | 缓存管理方法及装置、计算机可读存储介质 | |
WO2015015727A1 (ja) | ストレージ装置、データアクセス方法およびプログラム記録媒体 | |
WO2022267508A1 (zh) | 元数据压缩方法及装置 | |
US10686906B2 (en) | Methods for managing multi-level flash storage and devices thereof | |
CN114356241A (zh) | 小对象数据的存储方法、装置、电子设备和可读介质 | |
CN115438039A (zh) | 存储系统的数据索引结构的调整方法和装置 | |
Chuchuk et al. | Caching for dataset-based workloads with heterogeneous file sizes | |
US9069676B2 (en) | Mapping engine for a storage device |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220729 |