CN111488125A - 一种基于Ceph集群的Cache Tier缓存优化方法 - Google Patents

一种基于Ceph集群的Cache Tier缓存优化方法 Download PDF

Info

Publication number
CN111488125A
CN111488125A CN202010281312.XA CN202010281312A CN111488125A CN 111488125 A CN111488125 A CN 111488125A CN 202010281312 A CN202010281312 A CN 202010281312A CN 111488125 A CN111488125 A CN 111488125A
Authority
CN
China
Prior art keywords
cache
pool
data
request
base
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.)
Granted
Application number
CN202010281312.XA
Other languages
English (en)
Other versions
CN111488125B (zh
Inventor
伍卫国
解超
严杰
苏海洲
张斌
张驰
杨州
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN202010281312.XA priority Critical patent/CN111488125B/zh
Publication of CN111488125A publication Critical patent/CN111488125A/zh
Application granted granted Critical
Publication of CN111488125B publication Critical patent/CN111488125B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于Ceph集群的Cache Tier缓存优化方法,获取Cache Tier现有的cache pool模式,将请求大小小于128k的请求作为小请求,将请求大小大于等于128k的请求作为大请求;执行写操作,将小请求写入cache pool中,将大请求通过缓存执行代理写操作写入base pool中;执行读操作,如果缓存命中,遍历对象分片信息,先去cache pool中读取,缓存读取结束后,去base pool中读取数据;最后将cache pool和base pool中读取的数据进行拼接、填充返回给客户端。本发明基于对不同大小的请求的处理方式来修改cache pool的读写模式,通过优化Cache Tier来提高Ceph集群的读写效率。

Description

一种基于Ceph集群的Cache Tier缓存优化方法
技术领域
本发明属于分布式系统存储技术领域,具体涉及一种基于Ceph集群的Cache Tier缓存优化方法。
背景技术
Ceph独特的去中心化分布式架构使其可以管理大规模的存储节点,同时它基于计算的扁平寻址的设计使得Ceph客户端可以直接和服务端的任何一个节点通信,因此Ceph具备性能和集群线性扩展的优秀特性。
在传统的Ceph集群中,为了实现不同存储池之间的隔离策略,用户数据并不是一步到位地写入OSD的本地存储设备,而是引入了一个中间结构PG(Placement Group),执行两次映射。首先将用户数据按照固定大小切割为对象,作为随机哈希函数输入,均匀映射至每个PG;然后,通过CRUSH算法将PG映射至不同的OSD。然而传统的Ceph集群没有缓存功能,使得Ceph的IO性能比较差。
Ceph为了提升集群内数据读写的I/O性能和降低客户端访问延时,Ceph集群的Cache Tier模块实现了自动分层存储技术,图1为传统的Ceph分层存储结构。其中上层缓存池(cache pool)由价格昂贵但I/O性能较高的SSD存储设备组成,而下层后端存储池(basepool)由价格低廉但I/O性能较低的HDD存储设备组成。图2为Cache Tier结构图,缓存池用于存储近期访问的热点数据,而后端存储池用于存储较少访问的冷数据。Ceph集群的分层缓存可以提高关键数据或者热点数据的性从而为Ceph客户端提供更好的IO性能,同时分层缓存是SSD在Ceph集群中最广泛的应用。
在分层的Ceph存储系统结构下,一方面缓存池采用LRU算法淘汰最近最少使用的对象。但是由于LRU算法的时间局部性固有的局限性,LRU缺乏对数据长时间粒度地分析,导致频繁访问的热数据可能被偶尔访问的冷数据淘汰,造成缓存污染。此时缓存池会因处理冷数据产生额外的开销,使得缓存池乃至系统的性能降低,同时使得热对象在缓存池的命中率不高,最后会造成存储集群I/O吞吐量下降。另一方面,SSD成本昂贵,分层缓存的cachepool层容量受限,在cache pool层存储了大量数据达到了缓存满的阈值时,就会执行刷新或者清除操作,频繁触发刷新或者清除操作导致Ceph的IO性能没有达到理想的结果。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于Ceph集群的Cache Tier缓存优化方法,提升Ceph集群的IO性能和降低客户端请求响应时延,对于改善Ceph分布式存储系统的整体性能具有重要意义,适用于写多读少的应用场景,如视频监控。
本发明采用以下技术方案:
一种基于Ceph集群的Cache Tier缓存优化方法,包括以下步骤:
S1、获取Cache Tier现有的cache pool模式,将请求大小小于128k的请求作为小请求,将请求大小大于等于128k的请求作为大请求;
S2、执行写操作,将小请求写入cache pool中,将大请求通过缓存执行代理写操作写入base pool中;
S3、执行读操作,如果缓存命中,遍历对象分片信息,先去cache pool中读取,缓存读取结束后,去base pool中读取数据;
S4、最后将从步骤S3中cache pool和base pool中读取的数据进行拼接和填充,在优化完成之后,当一个对象分为多次写入到Ceph集群中,小请求写入cache pool,大请求写入base pool;分别到cache pool和base pool中执行读操作,并将结果合并后返回给客户端。
具体的,步骤S2中,如果缓存没有命中,请求的对象在cache pool中不存在,请求的处理过程和缓存命中的处理过程一致,对于小请求,将请求的对象内容写到cache pool中,对于大请求,cache pool采用代理模式将请求的对象内容写入base pool。
具体的,步骤S2中,如果一个请求的对象同时存在于cache pool和base pool中,获取Bluestore中的对象分片信息,包括对象分片的编号、偏移、大小、存储位置和/或修改时间,如果没有编号、偏移、大小、存储位置和/或修改时间,则加入到Extent当中。
具体的,步骤S2中,当执行同一个对象的多次写请求时,如果这几次写入的对象数据有的存储在cache pool中,有的存储在base pool中,且写入的对象在cache pool和basepool中的数据有重合部分;判断存储在cache pool中的数据重合部分所属的对象分片和存储在base pool中数据重合部分所属的对象分片哪一个写入时间早。
进一步的,如果请求的对象先写的cache pool,后写的base pool,base pool中重合数据是新的,cache pool中重合数据是旧的,将base pool中产生重合的对象数据复制到cache pool中,更新cache pool中重合的对象数据,使cache pool中的数据始终是最新,复制完成之后,将base pool中重合的对象数据置为无效并更新base pool中数据重合部分所属的Extent的大小和偏移信息。
进一步的,如果请求的对象先写base pool,然后再写cache pool,cache pool中重合数据是最新的,base pool中重合数据是旧的,将base pool中重合的对象数据置为无效,更新base pool中数据重合部分所属的Extent的大小和偏移信息。
具体的,步骤S3中,如果缓存命中,客户端请求的对象数据存在于cache pool中,按照偏移从小到大的顺序遍历请求范围内的所有对象分派你,根据获取到的对象分片信息首先到cache pool中读取数据,读取出在cache pool中存在的对象数据,并将不在cachepool中的对象分片
加入缓存未命中列表;然后遍历base pool缓存未命中列表中的Extent,根据获取到的Extent信息以代理读的模式再去base pool中读取请求的数据。
具体的,步骤S3中,如果缓存未命中,通过缓存调用代理读到base pool中去读取请求的对象数据,并将获得的数据返回给客户端。
具体的,步骤S4中,当两个缓存池中的数据有重合部分时,如果cache pool中数据是最新的,将base pool中重合的数据置为无效并更新这个对象分片的大小和偏移信息。
具体的,步骤S4中,当两个缓存池中的数据有重合部分时,如果base pool中的数据是最新的,首先将base pool中重合的数据复制到cache pool中,更新cache pool中的数据;然后将base pool中的重合数据置为无效,更新对象分片的大小和偏移信息;读取客户端请求的对象时,遍历请求范围内的所有对象分片,首先根据对象分片信息去cache pool中读取数据,然后再去base pool中读取不在cache pool中的数据。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种基于Ceph集群的Cache Tier缓存优化方法,将小I/O写入cache pool,可以充分利用有限的缓存空间,减少刷新和清除操作的次数,提高请求的执行速度。
进一步的,不管请求对象是否发生缓存命中,都要将小于128KB的小请求写入cache pool中,实现请求根据大小进行分类存储。
进一步的,将一个对象中经常访问的小对象分片放到cache pool中,而那些不常请求的大对象分片存入base pool中,充分发挥不同存储介质的特性。
进一步的,执行同一个对象的多次写请求时,先将众多小请求都写入到cachepool,小请求在缓存中汇聚成为一个大的对象分片,在对象变冷时,会一次性的下刷到basepool中存储,缩短了对象在集群中落盘存储所需的时间。
进一步的,当对象中先到达Cache Tier的请求是小请求,就会被写入到cachepool,实现了将小I/O存入缓存层,在缓存中存储更多的请求数据。
进一步的,当对象中先到达Cache Tier的请求是大请求,则会被存储到basepool,实现了将大I/O绕过缓存直接放到后端存储层。
进一步的,执行读操作时,如果发生缓存命中,客户端会根据对象分片信息到cache pool和base pool中读取请求的数据。
进一步的,执行读操作时,如果没有发生缓存命中,则会通过缓存代理机制直接将请求再次发送到后端存储池,在base pool中完成对象的读操作。
进一步的,始终要将cache pool中的数据设置为最新的,这是为了保证cachepool能够发挥缓存作用,以便在接下来缓存可以正常执行刷新或者清除操作,即将缓存中的脏对象下刷到存储池,删除缓存中的干净对象。
进一步的,两个池中的数据发生重合,如果base pool中的数据是最新的,要更新cache pool中的这部分数据,并将存储池中的重合数据置为无效,从而确保缓存中的数据是最新的。
综上所述,本发明基于对不同大小的请求的处理方式来修改cache pool的读写模式,通过优化Cache Tier来提高Ceph集群的读写效率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为传统Ceph分层存储结构图;
图2为Cache Tier结构图;
图3为本发明的Cache Tier写操作流程图;
图4为本发明的Cache Tier写操作对象存储结构图;
图5为本发明的Ceph对象结构图;
图6为本发明的Cache Tier读操作流程图;
图7为本发明的Cache Tier对象存储结构图。
具体实施方式
本发明一种基于Ceph集群的Cache Tier缓存优化方法,在Cache Tier的基础上实现的,Ceph是一种统一的分布式存储系统,旨在提供良好的性能、可靠性和可伸缩性,其核心设计思想是去掉所有的中心点中以及充分发挥存储设备其自身的计算能力,可以同时支持块存储、文件存储、对象存储功能,具备自治自愈能力,而且没有性能瓶颈。Cache Tier是在Rados层的OSD端来缓存数据,HDD所在的OSD构成了存储层,SSD所在的OSD构成了缓存层,通过Pool将缓存与后端存储层绑定在一起实现了分层存储。Ceph集群的分层缓存可以提高关键数据或者热点数据的读写效率,通过数据的冷热分层存储对Ceph客户端提供更好的I/O性能,包括以下步骤:
S1、获取Cache Tier现有的cache pool模式,依据write back模式进行修改优化创建新的cache pool模式,来提高Ceph集群的IO性能;
现有cache pool模式有write back、forward、proxy、read only;对现有的缓存方案进行修改,根据请求的大小来进行分类处理,请求大小以128k为界,小于128k的为小请求,大于等于128k的为大请求,保证缓存池的空间足够大,并将cache pool数据满和数据脏的比率设置的足够高。这样可以降低缓存池flush和evict操作的次数,因此加快了Ceph集群的IO处理速度,降低客户端请求响应时延。
通过对不同大小的请求进行测试证明,根据128K划分请求时,IO性能最好。
S2、Ceph集群执行目标OSD对象的写操作
请参阅图3,首先判断是否缓存命中,如果缓存命中,也就是要写入的对象已经存在于cache pool中,继续判断该请求对象大小,根据请求的大小进行不同的处理,如果是小请求,直接将请求的对象内容写到cache pool中,如果是大请求,就要通过缓存执行代理写操作将请求的对象内容写到base pool中;
如果缓存没有命中,请求的对象在cache pool中不存在,此时请求的处理过程和缓存命中的处理过程是一致的,对于小请求,直接将请求的对象内容写到cache pool中,而对于大请求,cache pool则会采用代理模式将请求的对象内容写入base pool。
请参阅图4,小请求的对象内容存储在cache pool中,大请求的对象内容存储在base中,经过修改过后的写请求缓存模式将会导致一个对象可能同时存在于cache pool和base pool中。
因为现在同一个对象会存储于两个池中,所以需要获取Bluestore中记录的对象分片信息,包括对象分片的编号、偏移、大小、存储位置、修改时间,以便于之后可以从不同的池中读取请求的数据;如果没有这些信息,则将其加入到Extent当中。
请参阅图5,一个请求的对象由多个小分片组成,对象和对象分片是一对多的关系,每一个小分片都会存储到cache pool或者base pool中的其中一个,小于128k的分片存储到了cache pool中,大于等于128k的分片存储到了base pool中。
当执行同一个对象的多次写请求时,如果这几次写入的对象数据有的存储在cache pool中,有的存储在base pool中,并且这个写入的对象在两个池中的数据有重合的部分。此时,要判断存储在cache pool中的数据重合部分所属的对象分片和存储在basepool中数据重合部分所属的对象分片哪一个写入时间更早。
如果是先写的cache pool,后写的base pool,也就是现在base pool中那部分重合数据是新的,而cache pool中那部分重合数据是旧的,将base pool中产生重合的那部分对象数据复制到cache pool中,更新cache pool中重合的那部分对象数据,使cache pool中的数据始终是最新的,同时复制完成之后,将base pool中重合的那部分对象数据置为无效并更新base pool中数据重合部分所属的Extent的大小和偏移信息。
如果对象的先写的base pool,然后再写的cache pool,也就是现在cache pool中那部分重合数据是最新的,而base pool中那部分重合数据是旧的,将base pool中重合的那部分对象数据置为无效,同时要更新base pool中数据重合部分所属的Extent的大小和偏移信息。
S3、Ceph集群执行目标OSD对象的读操作;
请参阅图6,当来自客户端对象的读请求到来时,首先判断是否缓存命中,如果缓存未命中,也就是请求的对象数据不在cache pool当中,那么缓存就直接调用代理读去base pool中去读取所请求的对象数据,并将请求的结果返回给客户端。
如果缓存命中,也就的客户端请求的对象数据存在于cache pool中,按照偏移从小到大的顺序遍历请求范围内的所有对象分片,根据获取到的对象分片信息首先要到cache pool中读取数据,读取出在cache pool中存在的对象数据,并将不在cache pool中的对象分片加入缓存未命中列表。
之后不管base pool中有没有该对象数据都要遍历缓存未命中列表中的Extent,根据获取到的Extent信息以代理读的模式再去base pool中去读取请求的数据。
S4、最后将从两个缓存池中读取的数据进行拼接、填充返回给客户端;如果缓存没有命中,就直接到base pool中根据请求的偏移和大小通过代理模式读取数据并返回给客户端。
请参阅图7,展示了对象的存储过程,小对象分片存储在cache pool中,大对象分片存储在base pool中。
当两个缓存池中的数据有重合部分时,如果cache pool中数据是最新的,将basepool中重合的数据置为无效并更新这个对象分片的大小和偏移信息;
如果base pool中的数据是最新的,首先将base pool中重合的那部分数据复制到cache pool中,更新cache pool中的数据;然后将base pool中的那部分重合数据置为无效并新这个对象分片的大小和偏移信息。读取客户端请求的对象时,遍历请求范围内的所有对象分片,我们首先根据对象分片信息去cache pool中读取数据,然后再去base pool中读取不在cache pool中的数据;
之后将从两个池中读取到的数据在请求的输出列表中进行拼接,中间的空白部分填零,最后将结果返回给客户端。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了验证本发明的优点好处,下面将对Cache Tier缓存策略改进前后Ceph集群的性能进行对比测试。
实验环境:
内存OSD大小为8G,cache pool使用多副本数据备份策略(3副本,三块SSD),basepool则采用纠删码数据备份策略(EC 4+1,五块HDD),LUN大小为50G,测试压力为200路2M,缓存层配置如下:
Figure BDA0002446684180000101
Figure BDA0002446684180000111
实验结果:
单条测试时间为5分钟
Figure BDA0002446684180000112
综上所述,本发明一种基于Ceph集群的Cache Tier缓存优化方法,对客户端发送到Cache Tier中的写请求基于请求大小进行分类处理,为不同大小的写请求分别选择不同的存储池,将小I/O写入cache pool,而大I/O将会存放到base pool中。对于读请求,在发生缓存命中时,需要根据写优化后的对象分布情况到cache pool和base pool中读取数据,并将请求结果拼接、填充返回给客户端。Cache Tier的缓存策略在经过改进优化之后,缓存空间得到了很好的使用,减少了缓存进行Flush/Evict操作的次数,加快了集群读写请求的执行效率,降低了客户端请求响应延时,提高了系统的整体存储性能。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

Claims (10)

1.一种基于Ceph集群的Cache Tier缓存优化方法,其特征在于,包括以下步骤:
S1、获取Cache Tier现有的cache pool模式,将请求大小小于128k的请求作为小请求,将请求大小大于等于128k的请求作为大请求;
S2、执行写操作,将小请求写入cache pool中,将大请求通过缓存执行代理写操作写入base pool中;
S3、执行读操作,如果缓存命中,遍历对象分片信息,先去cache pool中读取,缓存读取结束后,去base pool中读取数据;
S4、最后将从步骤S3中cache pool和base pool中读取的数据进行拼接和填充,在优化完成之后,当一个对象分为多次写入到Ceph集群中,小请求写入cache pool,大请求写入base pool;分别到cache pool和base pool中执行读操作,并将结果合并后返回给客户端。
2.根据权利要求1所述的基于Ceph集群的Cache Tier缓存优化方法,其特征在于,步骤S2中,如果缓存没有命中,请求的对象在cache pool中不存在,请求的处理过程和缓存命中的处理过程一致,对于小请求,将请求的对象内容写到cache pool中,对于大请求,cachepool采用代理模式将请求的对象内容写入base pool。
3.根据权利要求1所述的基于Ceph集群的Cache Tier缓存优化方法,其特征在于,步骤S2中,如果一个请求的对象同时存在于cache pool和base pool中,获取Bluestore中的对象分片信息,包括对象分片的编号、偏移、大小、存储位置和/或修改时间,如果没有编号、偏移、大小、存储位置和/或修改时间,则加入到Extent当中。
4.根据权利要求1或2或3所述的基于Ceph集群的Cache Tier缓存优化方法,其特征在于,步骤S2中,当执行同一个对象的多次写请求时,如果这几次写入的对象数据有的存储在cache pool中,有的存储在base pool中,且写入的对象在cache pool和base pool中的数据有重合部分;判断存储在cache pool中的数据重合部分所属的对象分片和存储在basepool中数据重合部分所属的对象分片哪一个写入时间早。
5.根据权利要求4所述的基于Ceph集群的Cache Tier缓存优化方法,其特征在于,如果请求的对象先写的cache pool,后写的base pool,base pool中重合数据是新的,cachepool中重合数据是旧的,将base pool中产生重合的对象数据复制到cache pool中,更新cache pool中重合的对象数据,使cache pool中的数据始终是最新,复制完成之后,将basepool中重合的对象数据置为无效并更新base pool中数据重合部分所属的Extent的大小和偏移信息。
6.根据权利要求4所述的基于Ceph集群的Cache Tier缓存优化方法,其特征在于,如果请求的对象先写base pool,然后再写cache pool,cache pool中重合数据是最新的,basepool中重合数据是旧的,将base pool中重合的对象数据置为无效,更新base pool中数据重合部分所属的Extent的大小和偏移信息。
7.根据权利要求1所述的基于Ceph集群的Cache Tier缓存优化方法,其特征在于,步骤S3中,如果缓存命中,客户端请求的对象数据存在于cache pool中,按照偏移从小到大的顺序遍历请求范围内的所有对象分片信息,根据获取到的对象分片信息首先到cache pool中读取数据,读取出在cache pool中存在的对象数据,并将不在cache pool中的对象分片加入缓存未命中列表;然后遍历base pool缓存未命中列表中的Extent,根据获取到的Extent信息以代理读的模式再去basepool中读取请求的数据。
8.根据权利要求1所述的基于Ceph集群的Cache Tier缓存优化方法,其特征在于,步骤S3中,如果缓存未命中,通过缓存调用代理读到base pool中去读取请求的对象数据,并将获得的数据返回给客户端。
9.根据权利要求1所述的基于Ceph集群的Cache Tier缓存优化方法,其特征在于,步骤S4中,当两个缓存池中的数据有重合部分时,如果cache pool中数据是最新的,将basepool中重合的数据置为无效并更新这个对象分片的大小和偏移信息。
10.根据权利要求1所述的基于Ceph集群的Cache Tier缓存优化方法,其特征在于,步骤S4中,当两个缓存池中的数据有重合部分时,如果base pool中的数据是最新的,首先将base pool中重合的数据复制到cache pool中,更新cache pool中的数据;然后将basepool中的重合数据置为无效,更新对象分片的大小和偏移信息;读取客户端请求的对象时,遍历请求范围内的所有对象分片,首先根据对象分片信息去cache pool中读取数据,然后再去base pool中读取不在cache pool中的数据。
CN202010281312.XA 2020-04-10 2020-04-10 一种基于Ceph集群的Cache Tier缓存优化方法 Active CN111488125B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010281312.XA CN111488125B (zh) 2020-04-10 2020-04-10 一种基于Ceph集群的Cache Tier缓存优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010281312.XA CN111488125B (zh) 2020-04-10 2020-04-10 一种基于Ceph集群的Cache Tier缓存优化方法

Publications (2)

Publication Number Publication Date
CN111488125A true CN111488125A (zh) 2020-08-04
CN111488125B CN111488125B (zh) 2021-09-07

Family

ID=71794752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010281312.XA Active CN111488125B (zh) 2020-04-10 2020-04-10 一种基于Ceph集群的Cache Tier缓存优化方法

Country Status (1)

Country Link
CN (1) CN111488125B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463054A (zh) * 2020-11-27 2021-03-09 苏州浪潮智能科技有限公司 一种提升读写性能的方法和设备
CN112685337A (zh) * 2021-01-15 2021-04-20 浪潮云信息技术股份公司 一种存储集群中分级缓存读写数据的方法
CN113031857A (zh) * 2021-01-30 2021-06-25 柏科数据技术(深圳)股份有限公司 数据写入方法、装置、服务器及存储介质
CN114398007A (zh) * 2021-12-27 2022-04-26 南京邮电大学 一种基于LSM-tree的KV存储系统读性能的缓存优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252589A (zh) * 2008-03-25 2008-08-27 中国科学院计算技术研究所 数据缓存装置和采用该装置的网络存储系统及缓存方法
US20160173620A1 (en) * 2014-12-11 2016-06-16 International Business Machines Corporation Time-based data placement in a distributed storage system
US9639546B1 (en) * 2014-05-23 2017-05-02 Amazon Technologies, Inc. Object-backed block-based distributed storage
CN108089825A (zh) * 2018-01-11 2018-05-29 郑州云海信息技术有限公司 一种基于分布式集群的存储系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252589A (zh) * 2008-03-25 2008-08-27 中国科学院计算技术研究所 数据缓存装置和采用该装置的网络存储系统及缓存方法
US9639546B1 (en) * 2014-05-23 2017-05-02 Amazon Technologies, Inc. Object-backed block-based distributed storage
US20160173620A1 (en) * 2014-12-11 2016-06-16 International Business Machines Corporation Time-based data placement in a distributed storage system
CN108089825A (zh) * 2018-01-11 2018-05-29 郑州云海信息技术有限公司 一种基于分布式集群的存储系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
渡江云: ""Ceph分层存储分析",https://www.cnblogs.com/Mrjie/p/6007581.html", 《博客园》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463054A (zh) * 2020-11-27 2021-03-09 苏州浪潮智能科技有限公司 一种提升读写性能的方法和设备
CN112463054B (zh) * 2020-11-27 2023-01-06 苏州浪潮智能科技有限公司 一种提升读写性能的方法和设备
CN112685337A (zh) * 2021-01-15 2021-04-20 浪潮云信息技术股份公司 一种存储集群中分级缓存读写数据的方法
CN112685337B (zh) * 2021-01-15 2022-05-31 浪潮云信息技术股份公司 一种存储集群中分级缓存读写数据的方法
CN113031857A (zh) * 2021-01-30 2021-06-25 柏科数据技术(深圳)股份有限公司 数据写入方法、装置、服务器及存储介质
CN114398007A (zh) * 2021-12-27 2022-04-26 南京邮电大学 一种基于LSM-tree的KV存储系统读性能的缓存优化方法
CN114398007B (zh) * 2021-12-27 2023-09-12 南京邮电大学 一种基于LSM-tree的KV存储系统读性能的缓存优化方法

Also Published As

Publication number Publication date
CN111488125B (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
CN111488125B (zh) 一种基于Ceph集群的Cache Tier缓存优化方法
CN102521147B (zh) 一种使用高速非易失介质做缓存的管理方法
JP3697149B2 (ja) キャッシュ・メモリを管理する方法
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US8549222B1 (en) Cache-based storage system architecture
CN103136121B (zh) 一种固态盘的缓存管理方法
CN105930282B (zh) 一种用于nand flash的数据缓存方法
US9021222B1 (en) Managing incremental cache backup and restore
CN105893274B (zh) 一种面向异构内存系统建立检查点的装置
CN107784121A (zh) 一种基于非易失内存的日志文件系统的小写优化方法
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
WO2019062747A1 (zh) 数据访问方法以及计算机系统
Lee et al. Eliminating periodic flush overhead of file I/O with non-volatile buffer cache
WO2024066613A1 (zh) 多级缓存系统的访问方法、数据存储方法及装置
CN105955664B (zh) 一种基于段结构的瓦记录转换层的读写方法
CN109739696B (zh) 一种双控存储阵列固态硬盘缓存加速方法
US11379326B2 (en) Data access method, apparatus and computer program product
US9471252B2 (en) Use of flash cache to improve tiered migration performance
CN110134551B (zh) 一种持续数据保护方法及装置
Chen et al. Efficient and consistent NVMM cache for SSD-based file system
CN111443874B (zh) 基于内容感知的固态盘内存缓存管理方法、设备及固态盘
CN111611223B (zh) 非易失性数据的访问方法、系统、电子设备和介质
CN101377788A (zh) 一种机群文件系统中缓存管理的方法及系统
Lv et al. Zonedstore: A concurrent zns-aware cache system for cloud data storage
CN115480697A (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