一种pl反向元数据的存储方法、系统、设备及存储介质

文档序号:970845 发布日期:2020-11-03 浏览:11次 >En<

阅读说明:本技术 一种pl反向元数据的存储方法、系统、设备及存储介质 (PL reverse metadata storage method, system, device and storage medium ) 是由 意刘如 孙京本 李佩 于 2020-07-28 设计创作,主要内容包括:本申请公开了一种PL反向元数据的存储方法,应用于基于LSA的全闪存储系统中,包括:在生成PL反向元数据并置入缓存时,按照预设的分配规则为PL反向元数据分配对应的树目录以及在树目录下的树;针对任意一棵树,当该颗树满足设定的刷盘条件时,将该颗树中的全部PL反向元数据从缓存下刷至磁盘中;分配规则中设定了M个树目录,全闪存储系统中具有N个CPU核心,每个CPU核心用于负责该CPU核心对应的各个树目录的数据处理,且每个CPU核心至少与一个树目录对应,M和N均为不小于2的正整数。应用本申请的方案,有利于提高下刷效率,提升系统性能。本申请还提供了一种PL反向元数据的存储系统、设备及存储介质,具有相应效果。(The application discloses a storage method of PL reverse metadata, which is applied to a full flash storage system based on LSA, and comprises the following steps: when generating PL reverse metadata and placing the PL reverse metadata into a cache, distributing a corresponding tree directory and a tree under the tree directory for the PL reverse metadata according to a preset distribution rule; for any tree, when the tree meets a set disk-brushing condition, brushing all PL reverse metadata in the tree from a buffer to a disk; m tree directories are set in the allocation rule, the full flash memory system is provided with N CPU cores, each CPU core is used for data processing of each tree directory corresponding to the CPU core, each CPU core at least corresponds to one tree directory, and M and N are positive integers not less than 2. By the scheme, lower brushing efficiency is improved, and system performance is improved. The application also provides a storage system, equipment and a storage medium of the PL reverse metadata, and the storage system, the equipment and the storage medium have corresponding effects.)

一种PL反向元数据的存储方法、系统、设备及存储介质

技术领域

本发明涉及存储技术领域,特别是涉及一种PL反向元数据的存储方法、系统、设备及存储介质。

背景技术

随着SSD硬盘的普及,全闪存储系统成为一种趋势。LSA是全闪存储系统中的一种关键技术,它通过元数据,可以将随机小块写转换成连续大块写,从而提高存储系统性能及SSD盘的寿命。元数据为描述数据的数据,其中,LP元数据用于将客户端下发的LBA((Logical Block Address,逻辑块地址)映射成PBA(Physics Block Address,物理块地址),即LP元数据的L指的是LBA,P指的是PBA。PL则是反向元数据,存储的是PBA到LBA的映射,通常用于垃圾回收等。

在大规格的存储系统中,由于元数据的量非常大,内存不可能完全存储,因此元数据是需要最终落盘的。目前,并没有专门设计PL反向元数据的落盘方案,即采用的是常规的针对缓存数据的落盘方案,例如通过一个设定的线程,将PL反向元数据下刷到磁盘中,这样的方案的刷写性能仍然有待提高。

综上所述,如何有效地进行PL反向元数据的存储,提高下刷效率,是目前本领域技术人员急需解决的技术问题。

发明内容

本发明的目的是提供一种PL反向元数据的存储方法、系统、设备及存储介质,以提高下刷效率,提升系统性能。

为解决上述技术问题,本发明提供如下技术方案:

一种PL反向元数据的存储方法,应用于基于LSA的全闪存储系统中,包括:

在生成PL反向元数据并置入缓存时,按照预设的分配规则为所述PL反向元数据分配对应的树目录以及在所述树目录下的树;

针对任意一棵树,当该颗树满足设定的刷盘条件时,将该颗树中的全部PL反向元数据从缓存下刷至磁盘中;

其中,所述分配规则中设定了M个树目录,所述全闪存储系统中具有N个CPU核心,每个CPU核心用于负责该CPU核心对应的各个树目录的数据处理,且每个CPU核心至少与一个树目录对应,M和N均为不小于2的正整数。

优选的,所述按照预设的分配规则为所述PL反向元数据分配对应的树目录以及在所述树目录下的树,包括:

基于所述PL反向元数据中的PBA,为所述PL反向元数据分配对应的树目录以及在所述树目录下的树,以使具有相邻的PBA的两个PL反向元数据会被分配到不同的树目录中。

优选的,所述按照预设的分配规则为所述PL反向元数据分配对应的树目录以及在所述树目录下的树,包括:

将所述PL反向元数据中的PBA的bit A至bit B构成的这一数值,作为为所述PL反向元数据分配的树目录;其中,A和B均为预设的正整数,且A<B;

基于所述PL反向元数据中的PBA,为所述PL反向元数据分配对应的所述树目录下的树。

优选的,所述基于所述PL反向元数据中的PBA,为所述PL反向元数据分配对应的所述树目录下的树,包括:

将所述PL反向元数据中的PBA的bit C至bit D,bit E至bit F共同构成的这一数值,作为为所述PL反向元数据分配的在所述树目录下的树;其中,C,D,E和F均为预设的正整数,且C≤D<E≤F。

优选的,针对任意一棵树,当该颗树满足设定的刷盘条件时,将该颗树中的全部PL反向元数据从缓存下刷至磁盘中,包括:

针对任意一棵树,当该颗树中的PL反向元数据的数量达到为该颗树配置的下刷阈值时,将该颗树中的全部PL反向元数据从缓存下刷至磁盘中。

优选的,针对同一树目录下的任意一棵树,在该树目录下,其他树的下刷阈值与该颗树的下刷阈值均不相同。

一种PL反向元数据的存储系统,应用于基于LSA的全闪存储系统中,包括:

分树模块,用于在生成PL反向元数据并置入缓存时,按照预设的分配规则为所述PL反向元数据分配对应的树目录以及在所述树目录下的树;

刷写模块,用于针对任意一棵树,当该颗树满足设定的刷盘条件时,将该颗树中的全部PL反向元数据从缓存下刷至磁盘中;

其中,所述分配规则中设定了M个树目录,所述全闪存储系统中具有N个CPU核心,每个CPU核心用于负责该CPU核心对应的各个树目录的数据处理,且每个CPU核心至少与一个树目录对应,M和N均为不小于2的正整数。

优选的,所述分树模块,具体用于:

在生成PL反向元数据并置入缓存时,基于所述PL反向元数据中的PBA,为所述PL反向元数据分配对应的树目录以及在所述树目录下的树,以使具有相邻的PBA的两个PL反向元数据会被分配到不同的树目录中。

一种PL反向元数据的存储设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现上述任一项所述的PL反向元数据的存储方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的PL反向元数据的存储方法的步骤。

应用本发明实施例所提供的技术方案,考虑到在多核CPU环境下,可以提高并发,数倍提高系统性能,因此基于N个CPU核心实现PL反向元数据的落盘。为了能让多个CPU核心并行工作,本申请将PL反向元数据划分成两个等级,即树目录的这一层以及树的这一层。在生成PL反向元数据并置入缓存时,可以按照预设的分配规则,为PL反向元数据分配对应的树目录以及在树目录下的树。每个CPU核心至少与一个树目录对应,每个CPU核心用于负责该CPU核心对应的各个树目录的数据处理,因此可以看出,通过对PL反向元数据的划分,使得本申请可以利用N个CPU核心并行工作,从而有利于提高下刷效率,提升系统性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明中一种PL反向元数据的存储方法的实施流程图;

图2为本发明中一种

具体实施方式

中的PL反向元数据的PBA的格式示意图;

图3为本发明中一种PL反向元数据的存储系统的结构示意图;

图4为本发明中一种PL反向元数据的存储设备的结构示意图。

具体实施方式

本发明的核心是提供一种PL反向元数据的存储方法,有利于提高下刷效率,提升系统性能。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明中一种PL反向元数据的存储方法的实施流程图,该PL反向元数据的存储方法可以应用于基于LSA的全闪存储系统中,包括以下步骤:

步骤S101:在生成PL反向元数据并置入缓存时,按照预设的分配规则为PL反向元数据分配对应的树目录以及在树目录下的树;

步骤S102:针对任意一棵树,当该颗树满足设定的刷盘条件时,将该颗树中的全部PL反向元数据从缓存下刷至磁盘中;

其中,分配规则中设定了M个树目录,全闪存储系统中具有N个CPU核心,每个CPU核心用于负责该CPU核心对应的各个树目录的数据处理,且每个CPU核心至少与一个树目录对应,M和N均为不小于2的正整数。

具体的,CPU核心N的具体取值,树目录的总数量M的具体取值均可以根据实际需要进行设定,本申请的目的是为了能让N个CPU核心并行工作,从而提升系统性能,因此每个CPU核心至少与一个树目录对应。当然,实际应用中,通常可以为每个CPU核心分配数量大体相同的树目录,例如一种具体场合中,设置了128个树目录,8个CPU核心时,每个CPU核心可以与16个树目录对应。当然,实际应用中,也可以根据实际需要,适当地进行每个CPU核心对应的树目录的数量的调整。

本申请描述的树目录与CPU对应,指的是:每个树目录都有其对应的一个线程,而每个线程都有该线程对应的CPU核心,也就是说,对于每个树目录而言,会有一个唯一确定的CPU核心用于负责该树目录的数据处理,即负责该树目录对应的线程的处理,因此便称该树目录与该CPU核心对应。

按照预设的分配规则为PL反向元数据分配对应的树目录以及在树目录下的树时,分配规则的具体形式可以根据实际需要进行设定和调整,但可以理解的是,为了尽量使得N个CPU核心并行工作,且兼顾各个CPU核心的均衡性,应当将产生的PL反向元数据尽量地均分至各个树目录中。

例如在本发明的一种具体实施方式中,步骤S101中描述的:按照预设的分配规则为PL反向元数据分配对应的树目录以及在树目录下的树,可以包括:

基于PL反向元数据中的PBA,为PL反向元数据分配对应的树目录以及在树目录下的树,以使具有相邻的PBA的两个PL反向元数据会被分配到不同的树目录中。

该种实施例方式中,考虑到LSA是全闪存储系统中的一种关键技术,可以将随机小块写转换成连续大块写,而随机写转为顺序写的这一特征就决定了在一定范围内,PBA的分配是顺序的。即生成的各个PL反向元数据中,PBA按照顺序分配。因此,该种实施方式中,可以基于PL反向元数据中的PBA,为PL反向元数据分配对应的树目录以及在树目录下的树,以使具有相邻的PBA的两个PL反向元数据会被分配到不同的树目录中。

例如一共有128个树目录,PBA的数值为0时,将PL反向元数据分配至树目录0,PBA的数值为1时,将PL反向元数据分配至树目录1,以此类推,PBA的数值为127时,将PL反向元数据分配至树目录127。PBA的数值为128时,将PL反向元数据分配至树目录0。可以看出,该种实施方式中,由于具有相邻的PBA的两个PL反向元数据会被分配到不同的树目录中,因此,可以使得PL反向元数据在M个树目录中均匀分布,也就使得可以利用N个CPU核心负责这M个树目录的数据处理,且保证了各个CPU核心的均衡性。

在本发明的一种具体实施方式中,步骤S101可以具体包括:

步骤一:将PL反向元数据中的PBA的bit A至bit B构成的这一数值,作为为PL反向元数据分配的树目录;其中,A和B均为预设的正整数,且A<B。

步骤二:基于PL反向元数据中的PBA,为PL反向元数据分配对应的树目录下的树。

该种实施方式中,考虑到前述实施方式中使具有相邻的PBA的两个PL反向元数据会被分配到不同的树目录中,虽然实现了PL反向元数据尽量地均衡地分配至不同的树目录中,但是,这样的方式通常需要根据整个PBA的数值来进行树目录的分配。该种实施方式中,仅需要根据PL反向元数据中的PBA的部分bit,即bitA至bitB,便可以确定出树目录,使得方案的实施更加简单。

例如图2的实施方式中,考虑到支持1PB的容量,8字节对齐的压缩规格,设置了一共64个bit的PBA格式。具体的,图2的实施方式中,bit 0至bit 2,这3个bits预留做扩展用,保持方案的扩展性。bit 3用于表示是否是压缩数据,即本申请的该种实施方式可以支持PBA的压缩。bit 4至bit 13这10个bits可表示0至1023的数值范围,再结合8字节对齐的约定,使得PBA的长度范围可以达到0至8K。

图2的实施方式中,bit 14至bit 63,这个50个bits,可表示0至1PB的范围,结合8字节对齐的约定,使得PBA可表示最大8PB的范围。

A和B的具体取值可以根据实际需要进行设定和调整,例如图2的实施方式中,bitA为bit 32,bit B为bit 38,即根据这7个bit,来选取128个树目录。,也即选取root page。该种实施方式中,根据PL反向元数据中的PBA的bit A至bit B构成的数值,为PL反向元数据分配树目录,也是考虑到随机写转为顺序写的这一特征,使得在一定范围内PBA的分配是顺序的,选取PBA中的部分bit来分配树目录,也可以使得相邻的PBA尽量分到不同的树目录中,即可以使得各个PL反向元数据大体上在各个树目录中较为均匀地分布,以保证各个CPU核心的均衡性。

而对于树目录下的树的分配,具体的规则也可以根据需要进行设定和调整,例如可以在树目录下均匀分配到各个树中。在该种实施方式,可以基于PL反向元数据中的PBA,为PL反向元数据分配对应的树目录下的树。

基于PL反向元数据中的PBA,为PL反向元数据分配对应的树目录下的树的具体方式也可以根据需要进行设定,例如可以根据PBA中的若干个bit的数值,来选取出树目录下的树。

进一步的,在本发明的一种具体实施方式中,上述步骤二可以具体包括:

将PL反向元数据中的PBA的bitC至bitD,bitE至bitF共同构成的这一数值,作为为PL反向元数据分配的在树目录下的树;其中,C,D,E和F均为预设的正整数,且C≤D<E≤F。

该种实施方式中,考虑到如果树的分配如同树目录的分配一样,也是按照PBA中的指定的若干个连续的bit分配,会使得树目录中的树被均匀地使用。该种实施方式中,由于D<E,即本申请是根据两部分的bit共同构成的数值来进行树的分配,便可以使得本申请可以在不同的PBA范围内使用不同数量的树。

例如图2的实施方式中,C为39,D为44,E为61,F为63,一共9个bits,用来选取每个树目录中的512棵树。由于分成了两部分,可以在不同PBA范围内使用不同数量的树,而不是全部使用512棵树,这样的方式有利于进一步地提高数据落盘的效率。

针对任意一棵树,当该颗树满足设定的刷盘条件时,便可以将该颗树中的全部PL反向元数据从缓存下刷至磁盘中。

设定的刷盘条件可以根据实际需要进行设定,例如在本发明的一种具体实施方式中,步骤S102可以具体包括:

针对任意一棵树,当该颗树中的PL反向元数据的数量达到为该颗树配置的下刷阈值时,将该颗树中的全部PL反向元数据从缓存下刷至磁盘中。

基于下刷阈值进行下刷,可以实现PL反向元数据的批量下刷,有利于提高下刷效率。

进一步的,本申请考虑到,应用了本申请的前述方案之后,PL反向元数据被较为均衡地分配至不同树目录下的不同树中,如果设置统一的下刷阈值,在执行步骤S102时,就容易出现许多树同时达到下刷阈值的情况,导致瞬间大量树同时刷盘,造成系统的性能波动。

因此,该种实施方式中,使用了梯度阈值的策略,使不同的树的刷盘阈值不同,从而使刷盘相对均衡,保持一定的并发度,提高系统整体性能。具体的,该种实施方式中,针对同一树目录下的任意一棵树,在该树目录下,其他树的下刷阈值与该颗树的下刷阈值均不相同。

应用本发明实施例所提供的技术方案,考虑到在多核CPU环境下,可以提高并发,数倍提高系统性能,因此基于N个CPU核心实现PL反向元数据的落盘。为了能让多个CPU核心并行工作,本申请将PL反向元数据划分成两个等级,即树目录的这一层以及树的这一层。在生成PL反向元数据并置入缓存时,可以按照预设的分配规则,为PL反向元数据分配对应的树目录以及在树目录下的树。每个CPU核心至少与一个树目录对应,每个CPU核心用于负责该CPU核心对应的各个树目录的数据处理,因此可以看出,通过对PL反向元数据的划分,使得本申请可以利用N个CPU核心并行工作,从而有利于提高下刷效率,提升系统性能。

相应于上面的方法实施例,本发明实施例还提供了一种PL反向元数据的存储系统,可与上文相互对应参照。

参见图3所示,为本发明中一种PL反向元数据的存储系统的结构示意图,应用于基于LSA的全闪存储系统中,包括:

分树模块301,用于在生成PL反向元数据并置入缓存时,按照预设的分配规则为PL反向元数据分配对应的树目录以及在树目录下的树;

刷写模块302,用于针对任意一棵树,当该颗树满足设定的刷盘条件时,将该颗树中的全部PL反向元数据从缓存下刷至磁盘中;

其中,分配规则中设定了M个树目录,全闪存储系统中具有N个CPU核心,每个CPU核心用于负责该CPU核心对应的各个树目录的数据处理,且每个CPU核心至少与一个树目录对应,M和N均为不小于2的正整数。

在本发明的一种具体实施方式中,分树模块301,具体用于:

在生成PL反向元数据并置入缓存时,基于PL反向元数据中的PBA,为PL反向元数据分配对应的树目录以及在树目录下的树,以使具有相邻的PBA的两个PL反向元数据会被分配到不同的树目录中。

在本发明的一种具体实施方式中,分树模块301,包括:

树目录分配单元,用于将PL反向元数据中的PBA的bit A至bit B构成的这一数值,作为为PL反向元数据分配的树目录;其中,A和B均为预设的正整数,且A<B;

树分配单元,用于基于PL反向元数据中的PBA,为PL反向元数据分配对应的树目录下的树。

在本发明的一种具体实施方式中,树分配单元,具体用于:

将PL反向元数据中的PBA的bit C至bit D,bit E至bit F共同构成的这一数值,作为为PL反向元数据分配的在树目录下的树;其中,C,D,E和F均为预设的正整数,且C≤D<E≤F。

在本发明的一种具体实施方式中,刷写模块302,具体用于:

针对任意一棵树,当该颗树中的PL反向元数据的数量达到为该颗树配置的下刷阈值时,将该颗树中的全部PL反向元数据从缓存下刷至磁盘中。

在本发明的一种具体实施方式中,针对同一树目录下的任意一棵树,在该树目录下,其他树的下刷阈值与该颗树的下刷阈值均不相同。

相应于上面的方法和系统实施例,本发明实施例还提供了一种PL反向元数据的存储设备以及一种计算机可读存储介质,可与上文相互对应参照。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现任一实施例中的PL反向元数据的存储方法的步骤。这里所说的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。

图4为一种PL反向元数据的存储设备的结构示意图,包括:

存储器401,用于存储计算机程序;

处理器402,用于执行计算机程序以实现上述任一实施例中的PL反向元数据的存储方法的步骤。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种内存申请方法、装置、电子设备和介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类