一种盘控联动的写日志实现方法及设备与流程

文档序号:32785764发布日期:2023-01-03 18:42阅读:29来源:国知局
一种盘控联动的写日志实现方法及设备与流程

1.本技术涉及存储技术领域,尤其涉及一种盘控联动的写日志实现方法及设备。


背景技术:

2.传统的journal(写日志)实现是在磁盘上分配一段固定的线性空间,由上层软件实现journal机制。journalio采用循环顺序追加写机制将主机随机io转换成顺序io写盘,每个journalio从尾部依次追加写。数据真正持久化到后端磁盘之后将对应的journal数据discard擦除,释放journal空间,以便journal尾部空间写满之后从头部继续追加写。
3.但是传统journalio写盘性能完全依赖磁盘自身性能,并且大多数场景下journalio大小远小于磁盘的最小粒度,导致严重的写放大。无法满足当前追求高性能、高并发的趋势。


技术实现要素:

4.本技术实施例提供一种盘控联动的写日志实现方法及设备,基于zns ssd自身的顺序追加写特性,实现journal的循环追加写功能,提升写journal性能。
5.本技术实施例提供一种盘控联动的写日志实现方法,应用于软件层实现追加写日志(journal)机制,底层对接znsssd磁盘,包括:
6.在软件层配置至少两个journal机制,且任一一个journal机制对应于所述znsssd磁盘的一个数据段(blob);
7.在前台io将任一journal机制对应的blob写满的情况下,基于所述至少两个journal机制的另一journal机制将前台io写入对应的blob。
8.可选的,还包括:
9.在将任一blob的数据持久化到后端磁盘后,对所述任一blob中的数据进行刷盘,以在刷盘后等待数据写入。
10.可选的,在软件层配置多个journal机制,且每个journal机制的大小的最小值接近于一条日志。
11.可选的,在journal整体刷盘的情况下,将对接的znsssd磁盘执行trim操作,或,writezero操作。
12.本技术实施例还提供一种终端设备,应用于软件层实现追加写日志(journal)机制,底层对接znsssd磁盘,所述终端设备包括处理器被配置为:
13.在软件层配置至少两个journal机制,且任一一个journal机制对应于所述znsssd磁盘的一个数据段(blob);
14.在前台io将任一journal机制对应的blob写满的情况下,基于所述至少两个journal机制的另一journal机制将前台io写入对应的blob。
15.可选的,在将任一blob的数据持久化到后端磁盘后,所述处理器还被配置为:对所述任一blob中的数据进行刷盘,以在刷盘后等待数据写入。
16.可选的,在软件层配置多个journal机制,且每个journal机制的大小的最小值接近于一条日志。
17.可选的,在journal整体刷盘的情况下,所述处理器还被配置为:将对接的znsssd磁盘执行trim操作,或,writezero操作。
18.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的盘控联动的写日志实现方法的步骤。
19.本技术实施例基于znsssd自身的顺序追加写特性,实现journal的循环追加写功能,提升写journal性能。
20.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
21.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
22.图1为本技术实施例写日志实现方法的双journal模式循环追加写示例;
23.图2为本技术实施例写日志实现方法的双journal模式向多journal模式优化示例。
具体实施方式
24.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
25.目前znsssd的journal对应的blob不支持部分discard功能且不支持覆盖写,无法实现单个blob的循环追加写,且journal区域写满之后需要阻塞前台io,等待journal对应的数据持久化到后端磁盘之后执行discard成功擦除journal上的数据才能继续处理前台io的写入。
26.本技术实施例提供一种盘控联动的写日志实现方法,应用于软件层实现追加写日志(journal)机制,底层对接znsssd磁盘,包括:
27.在软件层配置至少两个journal机制,且任一一个journal机制对应于所述znsssd磁盘的一个数据段(blob)。znsssd本身具有顺序写特性,且基于znsssd磁盘内部的dram缓存和保电机制提供了高性能、小粒度且能够保证数据持久化的journal功能。本技术的方法利用znsssd磁盘的自身特性来实现journal的高性能需求。上层软件层实现journal的追加写机制,底层对接znsssd磁盘,由znsssd内部dram缓存实现高性能journalio,保电机制满足journal数据持久化需求。
28.在前台io将任一journal机制对应的blob写满的情况下,基于所述至少两个
journal机制的另一journal机制将前台io写入对应的blob。在一些实施例中,还包括:在将任一blob的数据持久化到后端磁盘后,对所述任一blob中的数据进行刷盘,以在刷盘后等待数据写入。如图1所示,在blob1写满之后,可以将前台io写到blob2,从而实现不阻塞前台io,在数据持久化到后端磁盘和discardblob1的过程中前台io可持续写blob2,以双journal机制实现循环追加写。
29.在一些应用场景中,如果journal1对应的脏数据没有及时刷盘,而业务压力又比较大的场景下,journal2可能快速写满,此时前台io会挂起,会导致性能波谷。在一些实施例中,在软件层配置多个journal机制,且每个journal机制的大小的最小值接近于一条日志entry。如图2所示,还可以在软件层配置多个journal机制,并且一个journal机制对应于znsssd磁盘的一个blob,理想情况下每个journal机制的大小接近于一条entry,此时效果接近单个journal循环追加写的场景。具体的journal机制的大小可以根据实际需要设置,在此不做一一限定。
30.在一些实施例中,在journal整体刷盘的情况下,将对接的znsssd磁盘执行trim操作,或,writezero操作。本示例中双journal和多journal模式对接的磁盘类型同样适用于普通ssd、nvme等,在journal整体discard时可将对接的磁盘执行trim或writezero操作以提高下次写性能。
31.传统journal写nvme性能受限于nvme自身性能,单并发场景写nvme裸盘时延大于10us,而基于znsssd高性能journal利用本技术的方法对低于2kb数据的场景使用大概1.5us,大幅提升了写journal性能。
32.本技术实施例的方法通过借助znsssd自身的顺序追加写特性,实现了journal的循环追加写功能,提升了写journal性能,解决了单journal和双journal模式的性能波动问题。
33.本技术实施例还提供一种终端设备,应用于软件层实现追加写日志(journal)机制,底层对接znsssd磁盘,所述终端设备包括处理器被配置为:
34.在软件层配置至少两个journal机制,且任一一个journal机制对应于所述znsssd磁盘的一个数据段(blob);
35.在前台io将任一journal机制对应的blob写满的情况下,基于所述至少两个journal机制的另一journal机制将前台io写入对应的blob。
36.在一些实施例中,在将任一blob的数据持久化到后端磁盘后,所述处理器还被配置为:对所述任一blob中的数据进行刷盘,以在刷盘后等待数据写入。
37.在一些实施例中,在软件层配置多个journal机制,且每个journal机制的大小的最小值接近于一条日志。
38.在一些实施例中,在journal整体刷盘的情况下,所述处理器还被配置为:将对接的znsssd磁盘执行trim操作,或,writezero操作。
39.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的盘控联动的写日志实现方法的步骤。
40.本技术实施例的设备能够基于znsssd自身的顺序追加写特性,实现journal的循环追加写功能,提升写journal性能。
41.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
42.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
43.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本技术各个实施例所述的方法。
44.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本技术的保护之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1