System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 单边写模式缓存数据下刷方法、装置和设备制造方法及图纸_技高网

单边写模式缓存数据下刷方法、装置和设备制造方法及图纸

技术编号:43437310 阅读:9 留言:0更新日期:2024-11-27 12:44
本发明专利技术提供了一种单边写模式缓存数据下刷方法、装置和设备,用于解决的分布式存储系统缓存刷盘效率低的技术问题。本发明专利技术实施例中,聚合小I/O数据刷盘时,先向OSD申请零拷贝内存,直接将缓存中的离散小I/O数据通过RDMA单边写模式将数据写到OSD的零拷贝内存中,然后下发刷盘的控制消息给OSD,将数据持久化到OSD中。本发明专利技术能够减少离散小I/O刷盘过程中离散数据的网络传输开销,减少刷盘时延,提高缓存刷盘效率。

【技术实现步骤摘要】

本专利技术涉及存储,尤其涉及一种单边写模式缓存数据下刷方法、装置和设备


技术介绍

1、在分布式存储系统中,为提升小i/o时延,数据写入时通常先将数据缓存到存储节点的内存缓存(cache)中,同时通过预写日志(write ahead log,wal)将数据先持久化到日志文件中。数据读取时先检查是否命中缓存cache,命中时可直接从内存中返回数据,未命中缓存时才从硬盘上读取数据,这种分布式存储方式大大缩短了小i/o读写的i/o路径,降低了i/o时延。

2、由于分布式存储系统中缓存资源有限,缓存中的小i/o数据需要及时下刷到持久化存储介质(例如固态硬盘、磁盘等)中。为提升缓存下刷的效率,一般采用聚合下刷的方式,即将多个离散的小i/o数据聚合到一个对象中,一次性下发给对象存储设备(objectstorage device,osd),资源消耗型小i/o模型转换为宽带宽大i/o模型,从而提升缓存刷盘效率。

3、由于日益增长的性能需求,为适应高性能计算应用场景的需求,分布式系统中通常采用远程内存直接访问(remote direct memory access,rdma)技术进行节点间的数据传输,以提供更低的网络时延。

4、rdma技术规避了传统网络协议栈的处理,允许直接在应用层进行数据传输,从而显著降低了数据传输的延迟。通过直接内存访问,rdma可以充分利用底层硬件的高带宽能力,提供比传统网络协议更高的传输速率。rdma技术可时限零拷贝,允许数据直接从源地址复制到目标地址,中间不需要任何额外的内存拷贝操作,这样可以进一步提高传输效率。

5、rdma数据传输分为单边传输和双边传输两种类型,两种方式的差异如下:

6、单边传输:由发起方进行传输控制,将数据传输到接收方。单边传输模式又分为写模式/write模式和读模式/read模式。write模式是由发起方直接将本节点内存数据传输到远端的内存。read模式是从远端内存读取数据到本节点内存。单边模式下,cpu无需参与数据传输过程,可以有效降低cpu负载,提供更低时延和更高带宽的传输性能。

7、双边传输:发起方和接收方都参与数据传输的控制,发起方和接收方提前提供数据缓冲区,发起方将待发送数据写入发送缓冲去,接收方收到消息后从接收缓冲区中读取数据。此方式灵活可控,可以支持复杂的通信模型,但是数据传输过程中需要额外的开销和延迟。双边传输一般用于小i/o数据传输或者控制消息。

8、在分布式存储系统中,将小i/o聚合刷盘时,多个小i/o数据被聚合成一个大块数据,一般以rdma单边传输模式将数据从缓存传输到osd,以降级数据传输时延和提升刷盘性能。但是rdma单边传输也有一定的约束,在read模式下,要求本端用连续内存接收从远端读取的数据。在write模式下,要求远端有连续内存接收本端写入的数据。

9、小i/o聚合刷盘时,每个小i/o对应一段或多段连续内存,聚合后的对象包含众多离散内存段,聚合对象的数据在做rdma单边传输时存在如下问题:

10、在read模式下,缓存cache的刷盘请求需先下发到osd,刷盘请求中携带各个小i/o数据段的内存地址。osd收到刷盘请求后,先申请一段连续的内存空间,然后对cache中的每一段离散数据,都会发起一次rdma单边传输。聚合对象中离散数据段越多,需要的rdma单边传输次数越多,因此这种方式会极大地增加数据网络传输的开销,增加刷盘的时延,尤其是多副本情况下,网络数据传输次数会放大数十倍甚至数百倍。


技术实现思路

1、有鉴于此,本专利技术提供一种采用rdma单边写模式缓存数据下刷方法、装置和设备,用于解决的分布式存储系统缓存刷盘效率低的技术问题。

2、基于本专利技术实施例的一方面,本专利技术提供了一种单边写模式缓存数据下刷方法,该方法应用于分布式存储系统中的存储节点,该方法包括:

3、存储引擎将本地缓存中待持久化的离散数据聚合为数据对象;

4、在需要执行缓存数据下刷时,存储引擎确定存储数据对象的目的osd,对于本地目的osd直接进行数据对象的持久化操作;对于远端目的osd,则发送申请零拷贝内存请求以使远端目的osd分配连续的零拷贝内存;所述本地目的osd和所述远端目的osd属于同一归置组pg;

5、存储引擎接收远端目的osd返回的申请零拷贝内存请求响应,响应中携带远端目的osd所分配的零拷贝内存地址,存储引擎将数据对象的数据通过rdma单边写模式写入到远端零拷贝内存中;

6、在完成数据对象的数据传输后,存储引擎向远端目的osd发送对象写请求以使远端目的osd将数据对象的数据持久化到硬盘中。

7、基于本专利技术实施例的另一方面,本专利技术还提供一种单边写模式缓存数据下刷装置,该装置应用于分布式存储中的存储节点,该装置包括:

8、缓存模块,用于在内存中缓存读/写的数据;

9、写时重定向模块,用于将本地缓存中待持久化的离散数据聚合为数据对象;

10、持久化客户端,用于在需要执行缓存数据下刷时,确定存储数据对象的目的osd,对于本地目的osd直接进行数据对象的持久化操作;对于远端目的osd,则发送申请零拷贝内存请求以使远端目的osd分配连续的零拷贝内存;所述本地目的osd和所述远端目的osd属于同一归置组pg;

11、所述持久化客户端还用于接收远端目的osd返回的申请零拷贝内存请求响应,响应中携带远端目的osd所分配的零拷贝内存地址,将数据对象的数据通过rdma单边写模式写入到远端零拷贝内存中;

12、所述持久化客户端在完成数据对象的数据传输后,向远端目的osd发送对象写请求以使远端目的osd将数据对象的数据持久化到硬盘中。

13、基于本专利技术实施例的另一方面,本专利技术还提供一种单边写模式缓存数据下刷方法,该方法应用于分布式存储系统中的远端目的osd,该方法包括:

14、远端目的osd接收发送方存储节点发送的申请零拷贝内存请求,根据申请的零拷贝内存的大小在本地零拷贝内存池中分配零拷贝内存,将分配的零拷贝内存地址通过申请零拷贝内存请求响应返回给源存储节点;

15、远端目的osd接收发送方存储节点发送的对象写请求,根据请求中携带的数据对象的数据在目的osd的零拷贝内存中的存储地址和大小,将数据持久化到硬盘中,数据持久化成功后,向发送方存储节点发送对象写请求响应。

16、进一步地,所述零拷贝内存池包括多种粒度的零拷贝内存池;

17、所述远端目的osd在本地零拷贝内存池中分配零拷贝内存的方法为:

18、根据申请的零拷贝内存大小确定零拷贝内存的分配粒度;

19、当对应粒度的零拷贝内存池中有足够的连续的零拷贝内存时,从对应粒度的零拷贝内存池中分配零拷贝内存;

20、当对应粒度的零拷贝内存池中没有足够的连续的零拷贝内存时,对所述对应粒度的零拷贝内存池进行扩展,在扩展后再进行分本文档来自技高网...

【技术保护点】

1.一种单边写模式缓存数据下刷方法,其特征在于,该方法应用于分布式存储系统中的存储节点,该方法包括:

2.一种单边写模式缓存数据下刷装置,其特征在于,该装置应用于分布式存储中的存储节点,该装置包括:

3.一种单边写模式缓存数据下刷方法,其特征在于,该方法应用于分布式存储系统中的远端目的OSD,该方法包括:

4.根据权利要求3所述的方法,其特征在于,

5.根据权利要求4所述的方法,其特征在于,

6.根据权利要求4所述的方法,其特征在于,

7.根据权利要求4所述的方法,其特征在于,

8.一种单边写模式缓存数据下刷装置,其特征在于,该装置应用于分布式存储系统中的远端目的OSD,该装置包括:

9.根据权利要求8所述的装置,其特征在于,

10.根据权利要求9所述的装置,其特征在于,所述装置还包括:

11.一种电子设备,其特征在于,包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;

【技术特征摘要】

1.一种单边写模式缓存数据下刷方法,其特征在于,该方法应用于分布式存储系统中的存储节点,该方法包括:

2.一种单边写模式缓存数据下刷装置,其特征在于,该装置应用于分布式存储中的存储节点,该装置包括:

3.一种单边写模式缓存数据下刷方法,其特征在于,该方法应用于分布式存储系统中的远端目的osd,该方法包括:

4.根据权利要求3所述的方法,其特征在于,

5.根据权利要求4所述的方法,其特征在于,

6.根据权利要求4所述...

【专利技术属性】
技术研发人员:张书扬
申请(专利权)人:新华三信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1