CN115934007A - 分布式存储系统的数据存储方法、系统、设备及存储介质 - Google Patents
分布式存储系统的数据存储方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115934007A CN115934007A CN202310247233.0A CN202310247233A CN115934007A CN 115934007 A CN115934007 A CN 115934007A CN 202310247233 A CN202310247233 A CN 202310247233A CN 115934007 A CN115934007 A CN 115934007A
- Authority
- CN
- China
- Prior art keywords
- hard disk
- data
- cluster
- written
- state
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式存储系统的数据存储方法、系统、设备及存储介质,应用于存储技术领域,分布式存储系统中包括多个硬盘集群,1个硬盘集群中包括多个型号相同的硬盘,且均在同一批次加入分布式存储系统,包括:接收待写入数据并划分出数据类型当待写入数据的数据类型为第i数据类型时,判断当前是否存在第i状态的硬盘集群;如果是,则选取出1个第i状态的硬盘集群;将待写入数据写入选取出的该第i状态的硬盘集群中;其中,待写入数据在第一时长内的修改次数预估值越低,该待写入数据被写入磨损度越高的硬盘集群中。应用本申请的方案,实现了分布式存储系统的全局磨损均衡,保障硬盘耐久度,可以避免出现频繁进行坏盘更换的情况。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种分布式存储系统的数据存储方法、系统、设备及存储介质。
背景技术
闪存介质经过了四代的发展,当前大规模使用的是TLC(Triple Level Cell,三层式储存单元),QLC(Quad Level Cell,四层式储存单元)也即将进入量产。每一代和上一代相比,数据密度更高,价格更便宜,耐久度更低,性能变低,能效比在提高,这些都是由闪存的物理特性所决定的。但QLC有两个主要缺点,一个是性能低,一个耐久度差。关于耐久度差,即P/E(Program/Erase cycle,固态存储擦除周期)在快速下降,目前使用的办法是在一个SSD(Solid-State Drives,固态硬盘驱动器)盘内做磨损均衡,目前的QLC的P/E已经下降到了1000左右,但是在分布式系统中上述做法所取得的效果有限,分布式系统中存在成千上万的QLC SSD盘,而每个盘所写的数据量不均衡,并且由于新盘和旧盘的原因,使得有的盘很快就坏了,有的盘可以用很久,QLC的低成本特性就体现不出来,并且频繁地进行坏盘的更换也增大了运维成本。
综上所述,如何有效地提高硬盘的耐久度,避免频繁地进行坏盘的更换,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种分布式存储系统的数据存储方法、系统、设备及存储介质,以有效地提高硬盘的耐久度,避免频繁地进行坏盘的更换。
为解决上述技术问题,本发明提供如下技术方案:
一种分布式存储系统的数据存储方法,所述分布式存储系统中包括多个硬盘集群,所述硬盘集群中包括多个型号相同的硬盘,且同一所述硬盘集群中的各个硬盘均在同一批次加入所述分布式存储系统,所述分布式存储系统的数据存储方法包括:
接收待写入数据,并划分出所述待写入数据的数据类型;其中,在设定的N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值,N为不小于2的正整数;
当所述待写入数据的数据类型为第i数据类型时,判断当前是否存在第i状态的硬盘集群;
如果是,则选取出1个第i状态的硬盘集群;
将所述待写入数据写入选取出的该第i状态的硬盘集群中;其中,在设定的N种状态的硬盘集群中,第i+1状态的硬盘集群的磨损度低于第i状态的硬盘集群的磨损度,i为正整数。
优选的,所述划分出所述待写入数据的数据类型,包括:
基于所述待写入数据的文件名,划分出所述待写入数据的数据类型。
优选的,所述基于所述待写入数据的文件名,划分出所述待写入数据的数据类型,包括:
当所述待写入数据的文件名与预设的第j数据库匹配时,将所述待写入数据的数据类型划分为第j数据类型;其中,j为正整数且1≤j≤N-1;
当所述待写入数据的文件名与预设的N-1个数据库均不匹配时,将所述待写入数据的数据类型划分为第N数据类型。
优选的,还包括:
以文件名作为训练样本,以训练样本在第一时长内的修改次数统计值作为所述训练样本的训练标签,对预设的深度学习模型进行训练;
在所述深度学习模型训练完毕之后,依次输入各个不同的文件名至训练完毕的所述深度学习模型,并基于所述深度学习模型的输出结果,进行N-1个所述数据库的数据更新。
优选的,还包括:
接收针对第j数据库的调整指令,并根据所述调整指令进行第j数据库的数据项增加操作和/或数据项删除操作和/或数据项修改操作。
优选的,N=3,第1数据类型为只读数据类型,第2数据类型为冷数据类型,第3数据类型为热数据类型,硬盘集群的第1状态为Greadonly状态,硬盘集群的第2状态为Gcold状态,硬盘集群的第3状态为Ghot状态。
优选的,还包括:
当所述待写入数据为第1数据类型,且判断出当前不存在第1状态的硬盘集群时,将所述待写入数据写入Ghot状态或者Gcold状态的硬盘集群中。
优选的,还包括:
当所述待写入数据为第2数据类型,且判断出当前不存在第2状态的硬盘集群时,将所述待写入数据写入Ghot状态的硬盘集群中。
优选的,还包括:
当所述待写入数据为第3数据类型,且判断出当前不存在第3状态的硬盘集群时,反馈写失败的提示信息。
优选的,所述选取出1个第i状态的硬盘集群,包括:
以硬盘集群的磨损度越低则优先级越高的规则,选取出1个第i状态的硬盘集群。
优选的,所述以硬盘集群的磨损度越低则优先级越高的规则,选取出1个第i状态的硬盘集群,包括:
针对第i状态的各个硬盘集群,按照磨损度从小到大的顺序依次进行查找;
当查找到任意1个第i状态的硬盘集群的当前集群写队列深度VGcur_queue_depth<预设的最大集群写队列深度VGmax_queue_depth时,停止查找并将该硬盘集群作为选取出的1个第i状态的硬盘集群;
当各个第i状态的硬盘集群均进行了查找之后,不存在当前集群写队列深度VGcur_queue_depth<预设的最大集群写队列深度VGmax_queue_depth的硬盘集群时,则将集群繁忙度VGbusy最小的硬盘集群作为选取出的1个第i状态的硬盘集群;
其中,硬盘集群的集群繁忙度VGbusy表示的是所述硬盘集群的当前集群写队列深度VGcur_queue_depth除以所述最大集群写队列深度VGmax_queue_depth之后所得到的数值。
优选的,将所述待写入数据写入选取出的该第i状态的硬盘集群中,包括:
以硬盘的磨损度越低则优先级越高的规则,从选取出的该第i状态的硬盘集群中选取出目标硬盘;
将所述待写入数据写入选取出的所述目标硬盘中。
优选的,所述以硬盘的磨损度越低则优先级越高的规则,从选取出的该第i状态的硬盘集群中选取出目标硬盘,包括:
针对选取出的该第i状态的硬盘集群中的各个硬盘,按照磨损度从小到大的顺序依次进行查找;
当查找到该第i状态的硬盘集群中的任意1个硬盘的当前硬盘写队列深度VDcur_queue_depth<预设的最大硬盘写队列深度VDmax_queue_depth时,停止查找并将该硬盘作为选取出的目标硬盘;
当该第i状态的硬盘集群中的各个硬盘均进行了查找之后,不存在当前硬盘写队列深度VDcur_queue_depth<预设的最大硬盘写队列深度VDmax_queue_depth的硬盘时,则将硬盘繁忙度VDbusy最小的硬盘作为选取出的目标硬盘;
其中,硬盘的硬盘繁忙度VDbusy表示的是所述硬盘的当前硬盘写队列深度VDcur_queue_depth除以所述最大硬盘写队列深度VDmax_queue_depth之后所得到的数值。
优选的,所述分布式存储系统中的各个所述硬盘集群均设置在第一介质层,所述分布式存储系统中还设置有SCM介质层,以通过SCM介质层存储目标类型的数据,并通过所述SCM介质层处理未块对齐的写入数据。
优选的,所述第一介质层为PLC介质层或者为QLC介质层。
优选的,在每1个硬盘集群中,数据均按照设定大小的块进行存储,分布式存储系统的数据存储方法还包括:
确定出第i状态的硬盘集群中的各个块的P/E次数,并统计出该硬盘集群中的各个块的P/E次数的平均值;
当该第i状态的硬盘集群中存在P/E次数与所述平均值之间的差值低于设定的第一数值的块时,则将在P/E次数与所述平均值之间的差值低于设定的第一数值的各个块均作为待迁移块;
如果当前存在第i+1状态的硬盘集群,则将所述硬盘集群中的各个所述待迁移块,迁移至第i+1状态的硬盘集群中。
优选的,还包括:
在确定出各个所述待迁移块之后,如果当前不存在第i+1状态的硬盘集群,则将该第i状态的硬盘集群中的K个P/E次数最大的块,与该第i状态的硬盘集群中的K个所述待迁移块中的数据进行互换,以完成K个所述待迁移块在该第i状态的硬盘集群的内部迁移;
其中,K表示的是该第i状态的硬盘集群中所确定出的所述待迁移块的数量。
一种分布式存储系统的数据存储系统,所述分布式存储系统中包括多个硬盘集群,所述硬盘集群中包括多个型号相同的硬盘,且同一所述硬盘集群中的各个硬盘均在同一批次加入所述分布式存储系统,所述分布式存储系统的数据存储系统包括:
类型划分模块,用于接收待写入数据,并划分出所述待写入数据的数据类型;其中,在设定的N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值,N为不小于2的正整数;
硬盘集群状态判断模块,用于当所述待写入数据的数据类型为第i数据类型时,判断当前是否存在第i状态的硬盘集群;如果是,则触发硬盘集群选择模块;
所述硬盘集群选择模块,用于选取出1个第i状态的硬盘集群;
写入模块,用于将所述待写入数据写入选取出的该第i状态的硬盘集群中;其中,在设定的N种状态的硬盘集群中,第i+1状态的硬盘集群的磨损度低于第i状态的硬盘集群的磨损度,i为正整数。
一种分布式存储系统的数据存储设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述所述的分布式存储系统的数据存储方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的分布式存储系统的数据存储方法的步骤。
应用本发明实施例所提供的技术方案,考虑到为了充分实现闪存介质的高性价比特性,不能局限于在一个硬盘内做磨损均衡,而是需要基于分布式存储系统做全局的磨损均衡。具体的,本申请的方案中将分布式存储系统划分为多个硬盘集群,进行硬盘集群的管理相较于直接进行各个硬盘的管理,所需要的管理数据即元数据量较低,便于实现。并且,针对任意1个硬盘集群,硬盘集群中包括多个型号相同的硬盘,且同一硬盘集群中的各个硬盘均在同一批次加入分布式存储系统,通过这样的设置,有利于方便地实现硬盘集群中的各个硬盘的磨损均衡,再通过实现硬盘集群之间的磨损均衡,便可以实现整个分布式存储系统的全局磨损均衡,也就保障了硬盘的耐久度,可以避免频繁地进行坏盘的更换的情况。
具体的,在进行硬盘集群之间的磨损均衡时,本申请是将硬盘集群划分为N种状态,接收待写入数据之后,会划分待写入数据的数据类型,当待写入数据划分为第i数据类型时,判断当前是否存在第i状态的硬盘集群,如果存在,则会选取出1个第i状态的硬盘集群。由于不同数据类型反映的是待写入数据未来修改频繁程度的不同,并且具体的,N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值。而在设定的N种状态的硬盘集群中,第i+1状态的硬盘集群的磨损度低于第i状态的硬盘集群的磨损度。可以看出,对于几乎不需要修改的数据,即待写入数据在第一时长内的修改次数预估值很低时,待写入数据会被划分为第1数据类型,因此会被写入第1状态的硬盘集群中,第1状态的硬盘集群的磨损度最高,即说明第1状态的硬盘集群已写了大量的数据量,因此写入的是几乎不需要修改的数据。对硬盘进行写操作会磨损硬盘而读操作不会磨损硬盘,可以看出,由于对于磨损度较高的硬盘集群,写入的是几乎不需要修改的数据,使得即便硬盘集群磨损度较高,也仍然可以进行读,从而充分发挥其剩余价值。相应的,待写入数据需要被修改地越频繁,即待写入数据在第一时长内的修改次数预估值越高时,待写入数据便会被写入磨损度越低的硬盘集群中,以便对磨损度低的硬盘集群进行更为充分的使用,实现了分布式存储系统的全局磨损均衡。
综上所述,本申请将分布式存储系统划分为多个硬盘集群,有利于方便地实现分布式存储系统的全局磨损均衡,也就保障了分布式存储系统中的硬盘的耐久度,可以避免出现频繁地进行坏盘的更换的情况。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种分布式存储系统的数据存储方法的实施流程图;
图2为本发明一种具体实施方式中实现全局磨损均衡的原理框架图;
图3为本发明一种具体实施方式中的分布式存储系统的多层闪存架构示意图;
图4为本发明中一种分布式存储系统的数据存储系统的结构示意图;
图5为本发明中一种分布式存储系统的数据存储设备的结构示意图;
图6为本发明中一种计算机可读存储介质的结构示意图。
具体实施方式
本发明的核心是提供一种分布式存储系统的数据存储方法,将分布式存储系统划分为多个硬盘集群,有利于方便地实现分布式存储系统的全局磨损均衡,也就保障了分布式存储系统中的硬盘的耐久度,可以避免出现频繁地进行坏盘的更换的情况。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种分布式存储系统的数据存储方法的实施流程图,分布式存储系统中包括多个硬盘集群,硬盘集群中包括多个型号相同的硬盘,且同一硬盘集群中的各个硬盘均在同一批次加入分布式存储系统,该分布式存储系统的数据存储方法可以包括以下步骤:
步骤S101:接收待写入数据,并划分出待写入数据的数据类型;
其中,在设定的N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值,N为不小于2的正整数。
具体的,本申请的方案中,定义了硬盘集群的概念,分布式存储系统中可以包括多个硬盘集群,而1个硬盘集群中则可以包括多个型号相同的硬盘。
需要说明的是,对于不同的硬盘集群,所包含的硬盘数量和型号均可以不同,即可以是不同厂商的盘,不同大小的盘,不同时间加入集群,根据实际需要进行设置即可,并不影响本发明的实施,而同一硬盘集群中的各个硬盘,型号均相同,也即同一硬盘集群,是由一组相同容量,相同属性的硬盘组成。
同一硬盘集群中的各个硬盘均在同一批次加入分布式存储系统,并且由于本申请实现了分布式存储系统全局的磨损均衡,因此同一硬盘集群中的各个硬盘的磨损程度是相近的,如果需要替换,也是同时进行替换。
本申请描述的硬盘的具体类型可以根据需要进行设定和调整,通常均为SSD硬盘,当然在其他具体实施方式中可以是其他类型的硬盘,但需要指出的是,由于机械硬盘不存在摩擦损耗的问题,写入次数基本没有限制,而本申请实现磨损均衡应对的是存在写入次数限制的固态硬盘,因此本申请的方案中的硬盘通常均为存在写入次数限制的固态硬盘。
接收待写入数据之后,需要划分出待写入数据的数据类型。可参阅图2,为实现全局磨损均衡的原理框架图,图2中的介质使用者表示的是进行待写入数据的数据类型的划分,然后通过一个标记传给图2的闪存分配模块,使得闪存分配模块根据该标记得知待写入数据的数据类型,进而决定应当将待写入数据写入哪一个硬盘集群。
本申请的方案中,为了实现全局的磨损均衡,数据越需要频繁修改,越应当写入磨损度低的硬盘集群中,换而言之,本申请进行待写入数据的数据类型的划分,是按照待写入数据未来的修改频繁程度来划分的。即,不同的数据类型,反映的是待写入数据不同的修改频繁程度,因此,对待写入数据的数据类型进行划分,也就是按照待写入数据未来修改频繁程度的不同,进行数据类型的划分。
在设定的N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值,N为不小于2的正整数,即至少需要设定2种数据类型,N表示的是数据类型的总类型数。
也就是说,待写入数据为第i数据类型时,说明待写入数据在第一时长内的修改次数预估值位于第i预估值区间中,而按照从1至N的顺序,N个预估值区间从小到大排序。
可以看出,待写入数据为第1数据类型时,待写入数据在第一时长内的修改次数预估值最小,表示待写入数据几乎不需要修改,待写入数据为第N数据类型时,待写入数据在第一时长内的修改次数预估值最大,表示待写入数据需要频繁修改。
为了按照待写入数据的修改频繁程度,进行待写入数据的数据类型的划分,具体实现方式上可以有多种,例如在本发明的一种具体实施方式中,步骤S101中描述的划分出待写入数据的数据类型,可以具体包括:
基于待写入数据的文件名,划分出待写入数据的数据类型。
如上文的描述,本申请进行待写入数据的数据类型划分,是按照待写入数据未来的修改频繁程度来划分的,而该种实施方式考虑到,待写入数据是否需要频繁修改,可以在文件名中进行一定程度的体现,因此,可以基于待写入数据的文件名来预测待写入数据的修改频繁程度,也即划分出待写入数据的数据类型,在实现上会较为方便。
进一步的,在本发明的一种具体实施方式中,基于待写入数据的文件名,划分出待写入数据的数据类型,可以具体包括:
当待写入数据的文件名与预设的第j数据库匹配时,将待写入数据的数据类型划分为第j数据类型;其中,j为正整数且1≤j≤N-1;
当待写入数据的文件名与预设的N-1个数据库均不匹配时,将待写入数据的数据类型划分为第N数据类型。
本申请的N为不小于2的正整数,可以表示数据类型的总类型数,同时,本申请的N也是硬盘集群的总状态数,也就是说,设定的数据类型总共有几种,设定的硬盘集群的状态便有几种。通过判断待写入数据的文件名是否与相应的数据库匹配,在实现上非常简单,即该种实施方式可以方便、快速地预测出待写入数据的具体类型。
该种实施方式考虑到,可以预先设置N-1个数据库,这样使得待写入数据的文件名与某1个数据库匹配时,便可以确定待写入数据的数据类型为对应于该数据库的数据类型,即,如果待写入数据的文件名与N-1个数据库中的第j数据库匹配时,则将待写入数据的数据类型划分为第j数据类型。
此外需要指出的是,该种实施方式中之所以设置了N-1个数据库,而不是N个数据库,是考虑到无论设置N-1个数据库还是N个数据库,都仍然可能存在待写入数据的文件名与任意数据库均不匹配的情况,即所设置的数据库很难全面地涵盖实际应用中的各种待写入数据的文件名。
而如果出现找不到相匹配数据库的情况,说明待写入数据的修改频繁程度无法进行预判,因此为了避免对磨损度高的硬盘集群带来过多的磨损,该种实施方式中,将发生这种情况的待写入数据划分为第N数据类型,也即使得后续待写入数据会被写入第N状态的硬盘集群中,第N状态的硬盘集群是各种状态的硬盘集群中,磨损度最低的硬盘集群。
由于该种实施方式中,需要将文件名与任意数据库均不匹配的待写入数据的数据类型划分为第N数据类型,因此该种实施方式中便无需设置N个数据库,而是设置N-1个数据库即可,即只要待写入数据的文件名与预设的N-1个数据库均不匹配,无论待写入数据具体是无法预测未来的修改频繁程度,还是未来确实需要进行非常频繁的修改,均直接划分为第N数据类型。
此外,N-1个数据库中的具体内容,可以由工作人员基于经验进行设定,并且也支持进行数据库内容的动态调整,以更好地适应实际需求。例如在本发明的一种具体实施方式中,还可以包括:
接收针对第j数据库的调整指令,并根据调整指令进行第j数据库的数据项增加操作和/或数据项删除操作和/或数据项修改操作。
调整指令可以由工作人员进行下发,当接收到下发的针对第j数据库的调整指令时,便可以根据调整指令,对第j数据库的数据项进行增加,和/或删除,和/或修改的操作。
还需要说明的是,待写入数据的文件名与预设的第j数据库是否匹配,具体的匹配规则也可以根据实际需要进行设定,例如一种场合中,第j数据库中设置了一种或者多种文件名后缀,只要待写入数据的文件名的后缀,与第j数据库中的任意一种文件名后缀一致,便认为待写入数据的文件名与预设的第j数据库匹配。
例如一种具体场合中N=3,则需要设置2个数据库,分别称为第1数据库和第2数据库。例如待写入数据的文件名的后缀为avi,bmp等格式时,便可以确定待写入数据的文件名与第1数据库匹配,则将待写入数据的划分为第1数据类型,后续便需要将待写入数据写入第1状态的硬盘集群中。而例如待写入数据的文件名的后缀为bak,log等格式时,便可以确定待写入数据的文件名与第2数据库匹配,则将待写入数据的划分为第2数据类型,后续便需要将待写入数据写入第2状态的硬盘集群中。
当然,基于文件名后缀进行匹配只是一种较为简单的实现方式举例,其他具体实施方式中,还可以设置其他更为复杂的匹配方式。例如可以分析文件名的头部,结合文件名头部的分析结果和文件名后缀,来确定待写入数据的文件名是否与相应数据库匹配。又如,可以分析文件名的整体规律,来确定待写入数据的文件名是否与相应数据库匹配。
在本发明的一种具体实施方式中,还可以包括:
以文件名作为训练样本,以训练样本在第一时长内的修改次数统计值作为训练样本的训练标签,对预设的深度学习模型进行训练;
在深度学习模型训练完毕之后,依次输入各个不同的文件名至训练完毕的深度学习模型,并基于深度学习模型的输出结果,进行N-1个数据库的数据更新。
如上文的描述,N-1个数据库中的具体内容均支持进行动态调整,而该种实施方式考虑到,如果基于工作人员的经验对N-1个数据库中的具体内容进行设定和调整,工作量较大,并且调整效果也受到工作人员业务水平的影响。
对此,该种实施方式中,可以基于深度学习模型实现N-1个数据库的数据更新。具体的,可以建立深度学习模型,并且进行训练。在训练的过程中,训练样本便是各个文件名,而训练标签便是训练样本在第一时长内的修改次数统计值,这样使得深度学习模型训练完毕之后,输入文件名至训练完毕的深度学习模型,深度学习模型便可以输出对应于该文件名的预测结果,该预测结果便表示的是对具有该文件名的数据未来在第一时长内的修改次数的估计。
依次输入各个不同的文件名至训练完毕的深度学习模型之后,便可以基于深度学习模型的输出结果,进行N-1个数据库的数据更新,即,依据深度学习模型的输出结果,将不同的文件名置入相应的数据库中。
步骤S102:当待写入数据的数据类型为第i数据类型时,判断当前是否存在第i状态的硬盘集群;如果是,则执行步骤S103。
步骤S103:选取出1个第i状态的硬盘集群。
划分了待写入数据的数据类型之后,如果待写入数据为第i数据类型,则只要当前存在第i状态的硬盘集群,后续便可以将待写入数据写入第i状态的硬盘集群中。
如上文的描述,本申请的方案中,在设定的N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值,即第1数据类型的待写入数据几乎不需要修改,而第N数据类型的待写入数据需要被修改地最为频繁。
而在设定的N种状态的硬盘集群中,第i+1状态的硬盘集群的磨损度低于第i状态的硬盘集群的磨损度,i为正整数。也就是,第i状态的硬盘集群反映的是该硬盘集群的磨损度位于第i磨损度区间,因此,一共有N个磨损度区间,并且按照从1至N的顺序,N个磨损度区间是从大到小排序的。
可以看出,待写入数据需要修改地越频繁,也即表示待写入数据在第一时长内的修改次数预估值会越高,便会选出磨损度越低的硬盘集群用来存储该待写入数据。
硬盘集群的磨损度也即该硬盘集群的磨损程度,硬盘集群的磨损度越高,说明硬盘集群后续可以进行的写操作的次数越低,也即硬盘集群的寿命越低。在一种具体场合中,可以通过硬盘集群中已经写了多少数据,来表示硬盘集群的磨损程度。即一种具体场合中,硬盘集群的磨损度Vwl,可以定义为:硬盘集群的已写数据量/该硬盘集群中所有硬盘的可写入数据总量的总和,也就是说,硬盘集群当前已经写入了越多的数据,硬盘集群的磨损度Vwl越高,最高便是100%。
此外如上文的描述,N是所设定的数据类型的总类型数,同时也是硬盘集群的总状态数。而在实际应用中,考虑到本申请对待写入数据的数据类型进行划分,相当于是对待写入数据在未来的修改频繁程程度进行预测,而可以理解的是,待写入数据写入分布式存储系统之后,实际上的修改频繁程度在不同场合,不同时间段中均可能不同,因此实际应用中,不必将待写入数据的数据类型划分地过于精细,也即硬盘集群的总状态数不必划分地过多,并且硬盘集群的总状态数过多也不便于管理,因此,一种具体实施方式中,N可以设置为3,此时,第1数据类型具体为只读数据类型,第2数据类型具体为冷数据类型,第3数据类型具体为热数据类型,硬盘集群的第1状态为Greadonly状态,硬盘集群的第2状态为Gcold状态,硬盘集群的第3状态为Ghot状态。
可以看出,该种实施方式中,对于写入之后将来几乎不会修改的数据,数据类型便是第1数据类型,即只读数据类型,会被写入Greadonly状态的硬盘集群中,例如备份文件便属于这样的数据。
Greadonly状态的硬盘集群磨损度较高,但是仍然可以进行读,读操作不会影响硬盘寿命,将写入之后将来几乎不会修改的数据写入Greadonly状态的硬盘集群中,有利于充分发挥这类硬盘集群的价值。
相应的,该例子中,写入之后会修改,但不会过于频繁修改的数据,数据类型是第2数据类型,即冷数据类型,会被写入Gcold状态的硬盘集群中。
而写入之后会较为频繁地进行修改的数据,数据类型是第3数据类型,即热数据类型,会被写入Ghot状态的硬盘集群中。
本申请的后文中,也均以N=3的实施方式为例进行说明。由于N=3,因此,当硬盘集群的磨损度Vwl<V1时,硬盘集群的状态为Ghot状态;当V1≤Vwl <V2时,硬盘集群的状态为Gcold状态;当Vwl≥V2时,硬盘集群的状态为Greadonly状态,此处描述的V1和V2为预设的2个参数阈值,可以由工作人员根据需要进行设定和调整,可以理解的是,所设定的V1<V2。
还需要说明的是,当待写入数据为第i数据类型时,当前的第i状态的硬盘集群可能有多个,则需要按照设定的规则选取出1个第i状态的硬盘集群,以将待写入数据写入选取出的该第i状态的硬盘集群中,具体的选取规则可以根据实际需要进行设定和调整。
例如在本发明的一种具体实施方式中,考虑到如果有多个第i状态的硬盘集群,虽然这些硬盘集群的磨损度属于相同的磨损度区间,但是各个第i状态的硬盘集群的磨损度仍然存在差异。对此,该种实施方式中为了更为有效地实现分布式存储系统的全局磨损均衡,考虑到可以以硬盘集群的磨损度越低则优先级越高的规则,选取出1个第i状态的硬盘集群,也就是说,对于各个第i状态的硬盘集群,可以按照磨损度从低到高进行排序,优先选取磨损度低的硬盘集群,以更加有效地实现分布式存储系统的全局磨损均衡。
图2的实施方式中,便存在3个Ghot状态的硬盘集群,依次标记为G1,G2和G3,G1中设置了6个SSD,依次标记为d1至d6,G2中则设置了4个SSD,依次标记为d1至d4,G3中则设置了7个SSD,依次标记为d1至d7。图2中,便是将3个Ghot状态的硬盘集群按照磨损度Vwl从小到大进行次序排列,以优先选取磨损度低的硬盘集群。
此外可以理解的是,由于硬盘集群的磨损度会发生变化,因此,对于相同状态的各个硬盘集群的Vwl排序,也可以实时或者周期性地进行排序的动态更新。
进一步的,在本发明的一种具体实施方式中,以硬盘集群的磨损度越低则优先级越高的规则,选取出1个第i状态的硬盘集群,可以具体包括:
针对第i状态的各个硬盘集群,按照磨损度从小到大的顺序依次进行查找;
当查找到任意1个第i状态的硬盘集群的当前集群写队列深度VGcur_queue_depth<预设的最大集群写队列深度VGmax_queue_depth时,停止查找并将该硬盘集群作为选取出的1个第i状态的硬盘集群;
当各个第i状态的硬盘集群均进行了查找之后,不存在当前集群写队列深度VGcur_queue_depth<预设的最大集群写队列深度VGmax_queue_depth的硬盘集群时,则将集群繁忙度VGbusy最小的硬盘集群作为选取出的1个第i状态的硬盘集群;
其中,硬盘集群的集群繁忙度VGbusy表示的是硬盘集群的当前集群写队列深度VGcur_queue_depth除以最大集群写队列深度VGmax_queue_depth之后所得到的数值。
该种实施方式中,不仅考虑了硬盘集群的磨损度,还考虑了硬盘集群的当前集群写队列深度,有利于保证高并发度,也即有利于实现分布式存储系统的高IOPS(Input/Output Operations Per Second,每秒读写操作次数)和高带宽。
具体的,针对第i状态的各个硬盘集群,会按照磨损度从小到大的顺序依次进行查找,查找的目的,是为了确定硬盘集群的当前集群写队列深度VGcur_queue_depth,是否小于预设的最大集群写队列深度VGmax_queue_depth。
以图2为例,在Ghot状态的3个硬盘集群中,先查找的是磨损度最低的硬盘集群G1,如果G1的当前集群写队列深度VGcur_queue_depth小于预设的最大集群写队列深度VGmax_queue_depth,则说明G1当前并不繁忙,因此可以停止查找,并将G1作为按照预设规则选取出的1个第i状态的硬盘集群,使得后续可以将待写入数据写入G1。
而如果G1当前非常繁忙,出现了当前集群写队列深度VGcur_queue_depth等于甚至超过最大集群写队列深度VGmax_queue_depth的情况,即便G1的磨损度低于G2和G3,但如果此时选取G1来写入待写入数据,会加重G1的繁忙程度,造成队列的堵塞,不利于实现分布式存储系统的高IOPS和高带宽。
因此,该种实施方式中,此时会继续查找G2,如果G2的当前集群写队列深度VGcur_queue_depth小于预设的最大集群写队列深度VGmax_queue_depth,则说明G2当前并不繁忙,因此可以停止查找,并将G2作为按照预设规则选取出的1个第i状态的硬盘集群,使得后续可以将待写入数据写入G2。
如果G1,G2,G3都进行了查找,均为繁忙状态,即不存在当前集群写队列深度VGcur_queue_depth<预设的最大集群写队列深度VGmax_queue_depth的硬盘集群时,则将集群繁忙度VGbusy最小的硬盘集群作为按照预设规则选取出的1个第i状态的硬盘集群。
硬盘集群的集群繁忙度VGbusy表示的是硬盘集群的当前集群写队列深度VGcur_queue_depth除以最大集群写队列深度VGmax_queue_depth之后所得到的数值,即VGbusy=VGcur_queue_depth/VGmax_queue_depth。
最大集群写队列深度VGmax_queue_depth与硬件相关,表示的是1个硬盘集群能够同时处理的最大写请求数量,具体取决于该硬盘集群的计算资源和存储资源。
步骤S104:将待写入数据写入选取出的该第i状态的硬盘集群中。
选取出了1个用于存储待写入数据的硬盘集群之后,便可以将待写入数据写入选取出的硬盘集群中。
在本发明的一种具体实施方式中,步骤S104可以具体包括:
以硬盘的磨损度越低则优先级越高的规则,从选取出的该第i状态的硬盘集群中选取出目标硬盘;
将待写入数据写入选取出的目标硬盘中。
该种实施方式考虑到,确定出了用于存储待写入数据的硬盘集群之后,便是从该硬盘集群中选取出用于存储待写入数据的具体硬盘,而考虑到虽然相同的硬盘集群中的各个硬盘的磨损度大体相同,但仍然存在一定程度的差异,为了更加有效地保障硬盘集群中的各个硬盘的磨损均衡,该种实施方式中,优先选取的是磨损度低的硬盘作为选取出的目标硬盘。也就是说,对于选取出的硬盘集群中的各个硬盘,可以按照磨损度从低到高进行排序,优先选取磨损度低的硬盘,以更加有效地实现分布式存储系统的全局磨损均衡。
此外可以理解的是,由于硬盘的磨损度会发生变化,因此,对于硬盘集群中的各个硬盘的磨损度排序,也可以实时或者周期性地进行该排序的动态更新。
进一步的,在本发明的一种具体实施方式中,以硬盘的磨损度越低则优先级越高的规则,从选取出的该第i状态的硬盘集群中选取出目标硬盘,包括:
针对选取出的该第i状态的硬盘集群中的各个硬盘,按照磨损度从小到大的顺序依次进行查找;
当查找到该第i状态的硬盘集群中的任意1个硬盘的当前硬盘写队列深度VDcur_queue_depth<预设的最大硬盘写队列深度VDmax_queue_depth时,停止查找并将该硬盘作为选取出的目标硬盘;
当该第i状态的硬盘集群中的各个硬盘均进行了查找之后,不存在当前硬盘写队列深度VDcur_queue_depth<预设的最大硬盘写队列深度VDmax_queue_depth的硬盘时,则将硬盘繁忙度VDbusy最小的硬盘作为选取出的目标硬盘;
其中,硬盘的硬盘繁忙度VDbusy表示的是硬盘的当前硬盘写队列深度VDcur_queue_depth除以最大硬盘写队列深度VDmax_queue_depth之后所得到的数值。
该种实施方式中,与前文的实施方式中从第i状态的各个硬盘集群中选取1个硬盘集群的原理相同,即对于硬盘集群中的各个硬盘,在选取出目标硬盘时,不仅考虑了硬盘的磨损度,还考虑了硬盘的当前硬盘写队列深度,有利于保证高并发度,也即有利于实现分布式存储系统的高IOPS和高带宽。
具体的,选取出1个第i状态的硬盘集群之后,针对选取出的该第i状态的硬盘集群中的各个硬盘,会按照磨损度从小到大的顺序依次进行查找,查找的目的,是为了确定硬盘的当前硬盘写队列深度VDcur_queue_depth,是否小于预设的最大硬盘写队列深度VDmax_queue_depth。
最先查找的是磨损度最低的硬盘,如果该硬盘的当前硬盘写队列深度VDcur_queue_depth小于预设的最大硬盘写队列深度VDmax_queue_depth。则说明该硬盘当前并不繁忙,因此可以停止查找,并将该硬盘作为目标硬盘,使得后续可以将待写入数据写入该硬盘。
而如果磨损度最低的硬盘当前非常繁忙,出现了当前硬盘写队列深度VDcur_queue_depth等于甚至超过最大硬盘写队列深度VDmax_queue_depth的情况,如果此时选取该硬盘来写入待写入数据,会加重该硬盘的繁忙程度,造成队列的堵塞,不利于实现分布式存储系统的高IOPS和高带宽。
因此,该种实施方式中,此时会继续查找其他硬盘,原理与上文相同,不再重复说明。
同样的,如果硬盘集群中的各个硬盘均进行了查找,均为繁忙状态,即不存在当前硬盘写队列深度VDcur_queue_depth<预设的最大硬盘写队列深度VDmax_queue_depth的硬盘时,则将硬盘繁忙度VDbusy最小的硬盘作为目标硬盘。
硬盘繁忙度VDbusy表示的是硬盘的当前硬盘写队列深度VDcur_queue_depth除以最大硬盘写队列深度VDmax_queue_depth之后所得到的数值,即VDbusy=VDcur_queue_depth/VDmax_queue_depth。
最大硬盘写队列深度VDmax_queue_depth与硬件相关,表示的是1个硬盘能够同时处理的最大写请求数量,具体取决于该硬盘的计算资源和存储资源。
可以理解的是,本申请方案中,硬盘集群的状态会随着时间的推移发生变化,仍然以N=3为例,刚开始时,一个新加入分布式存储系统的硬盘集群的状态是Ghot状态,随着数据的磨损,硬盘集群的磨损度Vwl会越来越高,当其大于或者等于V1时,其状态其改为Gcold状态。当硬盘集群的磨损度Vwl大于或者等于V2时,其状态其改为Greadonly状态。实际应用中,当状态为Greadonly状态的硬盘集群数量过多时,系统可以报警并提示更新SSD盘。
在本发明的一种具体实施方式中,还可以包括:
当待写入数据为第2数据类型,且判断出当前不存在第2状态的硬盘集群时,将待写入数据写入Ghot状态的硬盘集群中。
如上文的描述,硬盘集群的状态会随着时间的推移发生变化,而分布式存储系统刚建立时,由于各个硬盘集群均未写入数据,因此磨损度均很低,即此时各个硬盘集群的状态均为Ghot状态。此时,如果待写入数据被划分为第2数据类型,由于当前不存在第2状态的硬盘集群,即不存在Gcold状态的硬盘集群,因此,可以将待写入数据写入Ghot状态的硬盘集群中。
在本发明的一种具体实施方式中,还可以包括:
当待写入数据为第1数据类型,且判断出当前不存在第1状态的硬盘集群时,将待写入数据写入Ghot状态或者Gcold状态的硬盘集群中。
该种实施方式考虑到,当待写入数据被划分为第1数据类型时,如果当前不存在第1状态的硬盘集群,即不存在Greadonly状态的硬盘集群,则可以将待写入数据写入Ghot状态或者Gcold状态的硬盘集群中。
此外需要说明的是,当前不存在第1状态的硬盘集群,可能是各个硬盘集群的磨损度均比较低,例如N=3的例子中,可能是各个硬盘集群的磨损度均比较低,只有Ghot状态或者Gcold状态的硬盘集群;也可能是存在磨损度很高的硬盘,但该硬盘完全写满了无法再写入新的数据,此时也可以视为是当前不存在第1状态的硬盘集群,需要将待写入数据写入Ghot状态或者Gcold状态的硬盘集群中。
在本发明的一种具体实施方式中,还可以包括:
当待写入数据为第3数据类型,且判断出当前不存在第3状态的硬盘集群时,反馈写失败的提示信息。
该种实施方式考虑到,当待写入数据为第3数据类型时,如果当前不存在第3状态的硬盘集群,即不存在Ghot状态的硬盘集群,则说明分布式存储系统的存储空间已经被大量使用,剩余空间不足,因此为了避免数据丢失,该种实施方式中会直接反馈写失败的提示信息。
此外实际应用中,还可以向系统报警,以提醒工作人员及时增加额外的资源至分布式存储系统。
在本发明的一种具体实施方式中,分布式存储系统中的各个硬盘集群均设置在第一介质层,分布式存储系统中还设置有SCM介质层,以通过SCM介质层存储目标类型的数据,并通过SCM介质层处理未块对齐的写入数据。
本申请的方案中所使用的闪存介质通常可以为QLC或者PLC(Penta Level Cell,五层式储存单元),由于实现了全局磨损均衡,因此在具有高数据密度,高能效比,低价格的情况下,保障了使用寿命,也即实现了较高的性价比。
而该种实施方式中进一步地考虑到,硬盘集群中的数据通常是按照设定大小的块进行存储,在分布式存储系统中还可以设置有SCM(Storage-Class Memory,存储级内存)介质层,通过SCM介质层处理未块对齐的写入数据,可以有效地提高IOPS。大块IO(Input/Output,输入/输出)划分为各个块之后,可能会剩余部分,这部分便是未块对齐的写入数据,也即边界没有对齐的IO,此外,有的小块IO也属于未块对齐的写入数据。
此外在部分实施方式中,对于需要修改地极其频繁的数据,也可以不存储至第一介质层,即不存储至SSD中,而是直接放置在SCM中,以实现这类数据的高速读写,也有利于进一步提高分布式存储系统的寿命。
可参阅图3,为一种具体实施方式中的分布式存储系统的多层闪存架构示意图,在图3的实施方式中,便设置了第一介质层和SCM介质层。且图3的第一介质层具体为PLC介质层,也是实际应用中通常会选择的方案,PLC介质层具有高数据密度,高能效比,低价格的优点,而通过本申请的全局磨损均衡的策略,有效地保障了PLC介质层的使用寿命,提高了其性价比。此外, 部分场合中,第一介质层也可以为QLC介质层。
在本发明的一种具体实施方式中,在每1个硬盘集群中,数据均按照设定大小的块进行存储,分布式存储系统的数据存储方法还包括:
确定出第i状态的硬盘集群中的各个块的P/E次数,并统计出该硬盘集群中的各个块的P/E次数的平均值;
当该第i状态的硬盘集群中存在P/E次数与平均值之间的差值低于设定的第一数值的块时,则将在P/E次数与平均值之间的差值低于设定的第一数值的各个块均作为待迁移块;
如果当前存在第i+1状态的硬盘集群,则将硬盘集群中的各个待迁移块,迁移至第i+1状态的硬盘集群中。
该种实施方式中进一步地考虑到,在前述实施方式中,是对待写入数据的数据类型进行划分,相当于是预测待写入数据未来的修改频繁程度,可以理解的是,预测结果会存在偏差,并且即便是相同的待写入数据,在不同场合下,不同时间段,其实际的修改频繁程度也可能是不同的,因此,该种实施方式中,会进行数据的迁移。
P/E次数也可以称为循环擦写次数,如果某个块的P/E次数很低,说明该块中的数据未被频繁修改,反之,如果某个块的P/E次数很高,说明该块中的数据被频繁修改。
具体的,针对第i状态的硬盘集群,会确定出第i状态的硬盘集群中的各个块的P/E次数,并且统计出该硬盘集群中的各个块的P/E次数的平均值。如果某1个块的P/E次数远低于平均值,该块便会作为待迁移块。如果当前存在第i+1状态的硬盘集群,则将该第i状态的硬盘集群中的各个待迁移块,迁移至第i+1状态的硬盘集群中。
例如对于图2的G1中,有2个块的P/E次数特别低,说明这2个块修改频繁程度很低,因此将这2个块的数据迁移至Gcold状态的硬盘集群中。
进一步的,在本发明的一种具体实施方式中,还可以包括:
在确定出各个待迁移块之后,如果当前不存在第i+1状态的硬盘集群,则将该第i状态的硬盘集群中的K个P/E次数最大的块,与该第i状态的硬盘集群中的K个待迁移块中的数据进行互换,以完成K个待迁移块在该第i状态的硬盘集群的内部迁移;
其中,K表示的是该第i状态的硬盘集群中所确定出的待迁移块的数量。
例如,对于Greadonly状态的硬盘集群,便无法进行迁移,即对于第N状态的硬盘集群,因为不存在第N+1状态的硬盘集群,便无法进行迁移。
又如,第i状态为Gcold状态时,对于Gcold状态的某个硬盘集群,确定出了若干个待迁移块之后,检测出各个Greadonly状态的硬盘集群的存储空间均已用尽,便也视为不存在第i+1状态的硬盘集群,则会执行该种实施方式的操作,即在硬盘集群的内部进行迁移。换而言之,如果迁移目的地不存在或者迁移目的地的空间已满,待迁移块将会将在源硬盘集群内进行迁移。
进行内部迁移时,是将第i状态的硬盘集群中的K个P/E次数最大的块,与硬盘集群中的K个待迁移块中的数据进行互换,从而进一步地保障了硬盘集群中的各个块的磨损均衡。
例如某个硬盘集群中有100个块,其中,1号块的P/E次数为2,2号块的P/E次数为3,3号块的P/E次数为90,4号块的P/E次数为80,剩余的96个块的P/E次数例如均为30。则该种实施方式中,1号块和2号块是待迁移块,该硬盘集群中的2个P/E次数最大的块是3号块和4号块,因此,需要将1号块和2号块的数据,与3号块和4号块的数据进行互换,例如具体可以将1号块的数据与3号块的数据互换,将2号块的数据与4号块的数据互换,以完成2个待迁移块在该硬盘集群的内部迁移。
应用本发明实施例所提供的技术方案,考虑到为了充分实现闪存介质的高性价比特性,不能局限于在一个硬盘内做磨损均衡,而是需要基于分布式存储系统做全局的磨损均衡。具体的,本申请的方案中将分布式存储系统划分为多个硬盘集群,进行硬盘集群的管理相较于直接进行各个硬盘的管理,所需要的管理数据即元数据量较低,便于实现。并且,针对任意1个硬盘集群,硬盘集群中包括多个型号相同的硬盘,且同一硬盘集群中的各个硬盘均在同一批次加入分布式存储系统,通过这样的设置,有利于方便地实现硬盘集群中的各个硬盘的磨损均衡,再通过实现硬盘集群之间的磨损均衡,便可以实现整个分布式存储系统的全局磨损均衡,也就保障了硬盘的耐久度,可以避免频繁地进行坏盘的更换的情况。
具体的,在进行硬盘集群之间的磨损均衡时,本申请是将硬盘集群划分为N种状态,接收待写入数据之后,会划分待写入数据的数据类型,当待写入数据划分为第i数据类型时,判断当前是否存在第i状态的硬盘集群,如果存在,则会选取出1个第i状态的硬盘集群。由于不同数据类型反映的是待写入数据未来修改频繁程度的不同,并且具体的,N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值。而在设定的N种状态的硬盘集群中,第i+1状态的硬盘集群的磨损度低于第i状态的硬盘集群的磨损度。可以看出,对于几乎不需要修改的数据,即待写入数据在第一时长内的修改次数预估值很低时,待写入数据会被划分为第1数据类型,因此会被写入第1状态的硬盘集群中,第1状态的硬盘集群的磨损度最高,即说明第1状态的硬盘集群已写了大量的数据量,因此写入的是几乎不需要修改的数据。对硬盘进行写操作会磨损硬盘而读操作不会磨损硬盘,可以看出,由于对于磨损度较高的硬盘集群,写入的是几乎不需要修改的数据,使得即便硬盘集群磨损度较高,也仍然可以进行读,从而充分发挥其剩余价值。相应的,待写入数据需要被修改地越频繁,即待写入数据在第一时长内的修改次数预估值越高时,待写入数据便会被写入磨损度越低的硬盘集群中,以便对磨损度低的硬盘集群进行更为充分的使用,实现了分布式存储系统的全局磨损均衡。
综上所述,本申请将分布式存储系统划分为多个硬盘集群,有利于方便地实现分布式存储系统的全局磨损均衡,也就保障了分布式存储系统中的硬盘的耐久度,可以避免出现频繁地进行坏盘的更换的情况。
相应于上面的方法实施例,本发明实施例还提供了一种分布式存储系统的数据存储系统,可与上文相互对应参照。
分布式存储系统中包括多个硬盘集群,硬盘集群中包括多个型号相同的硬盘,且同一硬盘集群中的各个硬盘均在同一批次加入分布式存储系统,可参阅图4,该分布式存储系统的数据存储系统包括:
类型划分模块401,用于接收待写入数据,并划分出待写入数据的数据类型;其中,在设定的N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值,N为不小于2的正整数;
硬盘集群状态判断模块402,用于当待写入数据的数据类型为第i数据类型时,判断当前是否存在第i状态的硬盘集群;如果是,则触发硬盘集群选择模块403;
硬盘集群选择模块403,用于选取出1个第i状态的硬盘集群;
写入模块404,用于将待写入数据写入选取出的该第i状态的硬盘集群中;其中,在设定的N种状态的硬盘集群中,第i+1状态的硬盘集群的磨损度低于第i状态的硬盘集群的磨损度,i为正整数。
在本发明的一种具体实施方式中,类型划分模块401划分出待写入数据的数据类型,包括:
基于待写入数据的文件名,划分出待写入数据的数据类型。
在本发明的一种具体实施方式中,类型划分模块401基于待写入数据的文件名,划分出待写入数据的数据类型,包括:
当待写入数据的文件名与预设的第j数据库匹配时,将待写入数据的数据类型划分为第j数据类型;其中,j为正整数且1≤j≤N-1;
当待写入数据的文件名与预设的N-1个数据库均不匹配时,将待写入数据的数据类型划分为第N数据类型。
在本发明的一种具体实施方式中,还包括第一更新模块,用于:
以文件名作为训练样本,以训练样本在第一时长内的修改次数统计值作为训练样本的训练标签,对预设的深度学习模型进行训练;
在深度学习模型训练完毕之后,依次输入各个不同的文件名至训练完毕的深度学习模型,并基于深度学习模型的输出结果,进行N-1个数据库的数据更新。
在本发明的一种具体实施方式中,还包括第二更新模块,用于:
接收针对第j数据库的调整指令,并根据调整指令进行第j数据库的数据项增加操作和/或数据项删除操作和/或数据项修改操作。
在本发明的一种具体实施方式中,N=3,第1数据类型为只读数据类型,第2数据类型为冷数据类型,第3数据类型为热数据类型,硬盘集群的第1状态为Greadonly状态,硬盘集群的第2状态为Gcold状态,硬盘集群的第3状态为Ghot状态。
在本发明的一种具体实施方式中,还包括第一执行模块,用于:
当待写入数据为第1数据类型,且判断出当前不存在第1状态的硬盘集群时,将待写入数据写入Ghot状态或者Gcold状态的硬盘集群中。
在本发明的一种具体实施方式中,还包括第二执行模块,用于:
当待写入数据为第2数据类型,且判断出当前不存在第2状态的硬盘集群时,将待写入数据写入Ghot状态的硬盘集群中。
在本发明的一种具体实施方式中,还包括第三执行模块,用于:
当待写入数据为第3数据类型,且判断出当前不存在第3状态的硬盘集群时,反馈写失败的提示信息。
在本发明的一种具体实施方式中,硬盘集群选择模块403具体用于:
以硬盘集群的磨损度越低则优先级越高的规则,选取出1个第i状态的硬盘集群。
在本发明的一种具体实施方式中,硬盘集群选择模块403具体用于:
针对第i状态的各个硬盘集群,按照磨损度从小到大的顺序依次进行查找;
当查找到任意1个第i状态的硬盘集群的当前集群写队列深度VGcur_queue_depth<预设的最大集群写队列深度VGmax_queue_depth时,停止查找并将该硬盘集群作为选取出的1个第i状态的硬盘集群;
当各个第i状态的硬盘集群均进行了查找之后,不存在当前集群写队列深度VGcur_queue_depth<预设的最大集群写队列深度VGmax_queue_depth的硬盘集群时,则将集群繁忙度VGbusy最小的硬盘集群作为选取出的1个第i状态的硬盘集群;
其中,硬盘集群的集群繁忙度VGbusy表示的是硬盘集群的当前集群写队列深度VGcur_queue_depth除以最大集群写队列深度VGmax_queue_depth之后所得到的数值。
在本发明的一种具体实施方式中,写入模块404具体用于:
以硬盘的磨损度越低则优先级越高的规则,从选取出的该第i状态的硬盘集群中选取出目标硬盘;
将待写入数据写入选取出的目标硬盘中。
在本发明的一种具体实施方式中,写入模块404具体用于:
针对选取出的该第i状态的硬盘集群中的各个硬盘,按照磨损度从小到大的顺序依次进行查找;
当查找到该第i状态的硬盘集群中的任意1个硬盘的当前硬盘写队列深度VDcur_queue_depth<预设的最大硬盘写队列深度VDmax_queue_depth时,停止查找并将该硬盘作为选取出的目标硬盘;
当该第i状态的硬盘集群中的各个硬盘均进行了查找之后,不存在当前硬盘写队列深度VDcur_queue_depth<预设的最大硬盘写队列深度VDmax_queue_depth的硬盘时,则将硬盘繁忙度VDbusy最小的硬盘作为选取出的目标硬盘;
其中,硬盘的硬盘繁忙度VDbusy表示的是硬盘的当前硬盘写队列深度VDcur_queue_depth除以最大硬盘写队列深度VDmax_queue_depth之后所得到的数值。
在本发明的一种具体实施方式中,分布式存储系统中的各个硬盘集群均设置在第一介质层,分布式存储系统中还设置有SCM介质层,以通过SCM介质层存储目标类型的数据,并通过SCM介质层处理未块对齐的写入数据。
在本发明的一种具体实施方式中,第一介质层为PLC介质层或者为QLC介质层。
在本发明的一种具体实施方式中,在每1个硬盘集群中,数据均按照设定大小的块进行存储,还包括迁移模块,用于:
确定出第i状态的硬盘集群中的各个块的P/E次数,并统计出该硬盘集群中的各个块的P/E次数的平均值;
当该第i状态的硬盘集群中存在P/E次数与平均值之间的差值低于设定的第一数值的块时,则将在P/E次数与平均值之间的差值低于设定的第一数值的各个块均作为待迁移块;
如果当前存在第i+1状态的硬盘集群,则将硬盘集群中的各个待迁移块,迁移至第i+1状态的硬盘集群中。
在本发明的一种具体实施方式中,迁移模块还用于:
在确定出各个待迁移块之后,如果当前不存在第i+1状态的硬盘集群,则将该第i状态的硬盘集群中的K个P/E次数最大的块,与该第i状态的硬盘集群中的K个待迁移块中的数据进行互换,以完成K个待迁移块在该第i状态的硬盘集群的内部迁移;
其中,K表示的是该第i状态的硬盘集群中所确定出的待迁移块的数量。
相应于上面的方法和系统实施例,本发明实施例还提供了一种分布式存储系统的数据存储设备以及一种计算机可读存储介质,可与上文相互对应参照。
该分布式存储系统的数据存储设备可以包括:
存储器501,用于存储计算机程序;
处理器502,用于执行计算机程序以实现上述的分布式存储系统的数据存储方法的步骤。
可参阅图6,该计算机可读存储介质60上存储有计算机程序61,计算机程序61被处理器执行时实现如上述任一实施例中的分布式存储系统的数据存储方法的步骤。这里所说的计算机可读存储介质60包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明的保护范围内。
Claims (20)
1.一种分布式存储系统的数据存储方法,其特征在于,所述分布式存储系统中包括多个硬盘集群,所述硬盘集群中包括多个型号相同的硬盘,且同一所述硬盘集群中的各个硬盘均在同一批次加入所述分布式存储系统,所述分布式存储系统的数据存储方法包括:
接收待写入数据,并划分出所述待写入数据的数据类型;其中,在设定的N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值,N为不小于2的正整数;
当所述待写入数据的数据类型为第i数据类型时,判断当前是否存在第i状态的硬盘集群;
如果是,则选取出1个第i状态的硬盘集群;
将所述待写入数据写入选取出的该第i状态的硬盘集群中;其中,在设定的N种状态的硬盘集群中,第i+1状态的硬盘集群的磨损度低于第i状态的硬盘集群的磨损度,i为正整数。
2.根据权利要求1所述的分布式存储系统的数据存储方法,其特征在于,所述划分出所述待写入数据的数据类型,包括:
基于所述待写入数据的文件名,划分出所述待写入数据的数据类型。
3.根据权利要求2所述的分布式存储系统的数据存储方法,其特征在于,所述基于所述待写入数据的文件名,划分出所述待写入数据的数据类型,包括:
当所述待写入数据的文件名与预设的第j数据库匹配时,将所述待写入数据的数据类型划分为第j数据类型;其中,j为正整数且1≤j≤N-1;
当所述待写入数据的文件名与预设的N-1个数据库均不匹配时,将所述待写入数据的数据类型划分为第N数据类型。
4.根据权利要求3所述的分布式存储系统的数据存储方法,其特征在于,还包括:
以文件名作为训练样本,以训练样本在第一时长内的修改次数统计值作为所述训练样本的训练标签,对预设的深度学习模型进行训练;
在所述深度学习模型训练完毕之后,依次输入各个不同的文件名至训练完毕的所述深度学习模型,并基于所述深度学习模型的输出结果,进行N-1个所述数据库的数据更新。
5.根据权利要求3所述的分布式存储系统的数据存储方法,其特征在于,还包括:
接收针对第j数据库的调整指令,并根据所述调整指令进行第j数据库的数据项增加操作和/或数据项删除操作和/或数据项修改操作。
6.根据权利要求1所述的分布式存储系统的数据存储方法,其特征在于,N=3,第1数据类型为只读数据类型,第2数据类型为冷数据类型,第3数据类型为热数据类型,硬盘集群的第1状态为Greadonly状态,硬盘集群的第2状态为Gcold状态,硬盘集群的第3状态为Ghot状态。
7.根据权利要求6所述的分布式存储系统的数据存储方法,其特征在于,还包括:
当所述待写入数据为第1数据类型,且判断出当前不存在第1状态的硬盘集群时,将所述待写入数据写入Ghot状态或者Gcold状态的硬盘集群中。
8.根据权利要求6所述的分布式存储系统的数据存储方法,其特征在于,还包括:
当所述待写入数据为第2数据类型,且判断出当前不存在第2状态的硬盘集群时,将所述待写入数据写入Ghot状态的硬盘集群中。
9.根据权利要求6所述的分布式存储系统的数据存储方法,其特征在于,还包括:
当所述待写入数据为第3数据类型,且判断出当前不存在第3状态的硬盘集群时,反馈写失败的提示信息。
10.根据权利要求1所述的分布式存储系统的数据存储方法,其特征在于,所述选取出1个第i状态的硬盘集群,包括:
以硬盘集群的磨损度越低则优先级越高的规则,选取出1个第i状态的硬盘集群。
11.根据权利要求10所述的分布式存储系统的数据存储方法,其特征在于,所述以硬盘集群的磨损度越低则优先级越高的规则,选取出1个第i状态的硬盘集群,包括:
针对第i状态的各个硬盘集群,按照磨损度从小到大的顺序依次进行查找;
当查找到任意1个第i状态的硬盘集群的当前集群写队列深度VGcur_queue_depth<预设的最大集群写队列深度VGmax_queue_depth时,停止查找并将该硬盘集群作为选取出的1个第i状态的硬盘集群;
当各个第i状态的硬盘集群均进行了查找之后,不存在当前集群写队列深度VGcur_queue_depth<预设的最大集群写队列深度VGmax_queue_depth的硬盘集群时,则将集群繁忙度VGbusy最小的硬盘集群作为选取出的1个第i状态的硬盘集群;
其中,硬盘集群的集群繁忙度VGbusy表示的是所述硬盘集群的当前集群写队列深度VGcur_queue_depth除以所述最大集群写队列深度VGmax_queue_depth之后所得到的数值。
12.根据权利要求1所述的分布式存储系统的数据存储方法,其特征在于,将所述待写入数据写入选取出的该第i状态的硬盘集群中,包括:
以硬盘的磨损度越低则优先级越高的规则,从选取出的该第i状态的硬盘集群中选取出目标硬盘;
将所述待写入数据写入选取出的所述目标硬盘中。
13.根据权利要求12所述的分布式存储系统的数据存储方法,其特征在于,所述以硬盘的磨损度越低则优先级越高的规则,从选取出的该第i状态的硬盘集群中选取出目标硬盘,包括:
针对选取出的该第i状态的硬盘集群中的各个硬盘,按照磨损度从小到大的顺序依次进行查找;
当查找到该第i状态的硬盘集群中的任意1个硬盘的当前硬盘写队列深度VDcur_queue_depth<预设的最大硬盘写队列深度VDmax_queue_depth时,停止查找并将该硬盘作为选取出的目标硬盘;
当该第i状态的硬盘集群中的各个硬盘均进行了查找之后,不存在当前硬盘写队列深度VDcur_queue_depth<预设的最大硬盘写队列深度VDmax_queue_depth的硬盘时,则将硬盘繁忙度VDbusy最小的硬盘作为选取出的目标硬盘;
其中,硬盘的硬盘繁忙度VDbusy表示的是所述硬盘的当前硬盘写队列深度VDcur_queue_depth除以所述最大硬盘写队列深度VDmax_queue_depth之后所得到的数值。
14.根据权利要求1所述的分布式存储系统的数据存储方法,其特征在于,所述分布式存储系统中的各个所述硬盘集群均设置在第一介质层,所述分布式存储系统中还设置有SCM介质层,以通过SCM介质层存储目标类型的数据,并通过所述SCM介质层处理未块对齐的写入数据。
15.根据权利要求14所述的分布式存储系统的数据存储方法,其特征在于,所述第一介质层为PLC介质层或者为QLC介质层。
16.根据权利要求1至15任一项所述的分布式存储系统的数据存储方法,其特征在于,在每1个硬盘集群中,数据均按照设定大小的块进行存储,分布式存储系统的数据存储方法还包括:
确定出第i状态的硬盘集群中的各个块的P/E次数,并统计出该硬盘集群中的各个块的P/E次数的平均值;
当该第i状态的硬盘集群中存在P/E次数与所述平均值之间的差值低于设定的第一数值的块时,则将在P/E次数与所述平均值之间的差值低于设定的第一数值的各个块均作为待迁移块;
如果当前存在第i+1状态的硬盘集群,则将所述硬盘集群中的各个所述待迁移块,迁移至第i+1状态的硬盘集群中。
17.根据权利要求16所述的分布式存储系统的数据存储方法,其特征在于,还包括:
在确定出各个所述待迁移块之后,如果当前不存在第i+1状态的硬盘集群,则将该第i状态的硬盘集群中的K个P/E次数最大的块,与该第i状态的硬盘集群中的K个所述待迁移块中的数据进行互换,以完成K个所述待迁移块在该第i状态的硬盘集群的内部迁移;
其中,K表示的是该第i状态的硬盘集群中所确定出的所述待迁移块的数量。
18.一种分布式存储系统的数据存储系统,其特征在于,所述分布式存储系统中包括多个硬盘集群,所述硬盘集群中包括多个型号相同的硬盘,且同一所述硬盘集群中的各个硬盘均在同一批次加入所述分布式存储系统,所述分布式存储系统的数据存储系统包括:
类型划分模块,用于接收待写入数据,并划分出所述待写入数据的数据类型;其中,在设定的N种数据类型中,第i+1数据类型的待写入数据在第一时长内的修改次数预估值,高于第i数据类型的待写入数据在第一时长内的修改次数预估值,N为不小于2的正整数;
硬盘集群状态判断模块,用于当所述待写入数据的数据类型为第i数据类型时,判断当前是否存在第i状态的硬盘集群;如果是,则触发硬盘集群选择模块;
所述硬盘集群选择模块,用于选取出1个第i状态的硬盘集群;
写入模块,用于将所述待写入数据写入选取出的该第i状态的硬盘集群中;其中,在设定的N种状态的硬盘集群中,第i+1状态的硬盘集群的磨损度低于第i状态的硬盘集群的磨损度,i为正整数。
19.一种分布式存储系统的数据存储设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至17任一项所述的分布式存储系统的数据存储方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的分布式存储系统的数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310247233.0A CN115934007B (zh) | 2023-03-15 | 2023-03-15 | 分布式存储系统的数据存储方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310247233.0A CN115934007B (zh) | 2023-03-15 | 2023-03-15 | 分布式存储系统的数据存储方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115934007A true CN115934007A (zh) | 2023-04-07 |
CN115934007B CN115934007B (zh) | 2023-05-23 |
Family
ID=85825556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310247233.0A Active CN115934007B (zh) | 2023-03-15 | 2023-03-15 | 分布式存储系统的数据存储方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934007B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100332749A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks |
CN102393809A (zh) * | 2011-12-02 | 2012-03-28 | 浪潮集团有限公司 | 一种提高云存储ssd设备使用寿命的方法 |
CN108255419A (zh) * | 2017-12-19 | 2018-07-06 | 深圳忆联信息系统有限公司 | 一种用于tlc类型ssd的磨损均衡方法及ssd |
CN108334278A (zh) * | 2017-12-15 | 2018-07-27 | 中兴通讯股份有限公司 | 一种存储系统均衡管理方法和装置 |
CN111880748A (zh) * | 2020-07-30 | 2020-11-03 | 北京计算机技术及应用研究所 | 一种用于分布式存储系统的固态硬盘磨损均衡方法 |
CN112817880A (zh) * | 2021-03-17 | 2021-05-18 | 深圳市安信达存储技术有限公司 | 一种固态硬盘及其磨损平衡方法和终端设备 |
CN114924691A (zh) * | 2022-03-31 | 2022-08-19 | 杭州电子科技大学 | 一种raid5中数据条带重构的磨损均衡方法 |
-
2023
- 2023-03-15 CN CN202310247233.0A patent/CN115934007B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100332749A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks |
CN102393809A (zh) * | 2011-12-02 | 2012-03-28 | 浪潮集团有限公司 | 一种提高云存储ssd设备使用寿命的方法 |
CN108334278A (zh) * | 2017-12-15 | 2018-07-27 | 中兴通讯股份有限公司 | 一种存储系统均衡管理方法和装置 |
CN108255419A (zh) * | 2017-12-19 | 2018-07-06 | 深圳忆联信息系统有限公司 | 一种用于tlc类型ssd的磨损均衡方法及ssd |
CN111880748A (zh) * | 2020-07-30 | 2020-11-03 | 北京计算机技术及应用研究所 | 一种用于分布式存储系统的固态硬盘磨损均衡方法 |
CN112817880A (zh) * | 2021-03-17 | 2021-05-18 | 深圳市安信达存储技术有限公司 | 一种固态硬盘及其磨损平衡方法和终端设备 |
CN114924691A (zh) * | 2022-03-31 | 2022-08-19 | 杭州电子科技大学 | 一种raid5中数据条带重构的磨损均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115934007B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11150836B2 (en) | Deterministic optimization via performance tracking in a data storage system | |
US10877683B2 (en) | Tiered storage optimization and migration | |
US9767174B2 (en) | Efficient query processing using histograms in a columnar database | |
CN102640120B (zh) | 计算增设/减设的存储容量的管理系统 | |
CN105653591B (zh) | 一种工业实时数据分级存储及迁移方法 | |
US10140034B2 (en) | Solid-state drive assignment based on solid-state drive write endurance | |
JP2017123151A (ja) | メモリ管理での重複排除のための参照ブロックの参照セットへの集約 | |
US20180356992A1 (en) | Multi-Device Platform | |
US10902324B2 (en) | Dynamic data snapshot management using predictive modeling | |
US20200012598A1 (en) | Garbage Collection Method for Storage Medium, Storage Medium, and Program Product | |
US11137926B1 (en) | Systems and methods for automatic storage tiering | |
US11016679B2 (en) | Balanced die set execution in a data storage system | |
US20160019206A1 (en) | Methods and systems to identify and use event patterns of application workflows for data management | |
CN116737064B (zh) | 一种固态硬盘的数据管理方法和系统 | |
CN114546295B (zh) | 一种基于zns固态硬盘的智能写分配方法和装置 | |
US11726970B2 (en) | Incremental transfer of database segments | |
CN104679847A (zh) | 一种构建在线实时更新海量音频指纹库的方法和设备 | |
Herodotou | AutoCache: Employing machine learning to automate caching in distributed file systems | |
US20240037067A1 (en) | File system provisioning for workload | |
CN107346342A (zh) | 一种基于存储计算的文件调用方法与系统 | |
US10872015B2 (en) | Data storage system with strategic contention avoidance | |
KR20220040348A (ko) | 데이터 스트림 관리 방법 및 장치 | |
CN115934007B (zh) | 分布式存储系统的数据存储方法、系统、设备及存储介质 | |
CN111651126A (zh) | 存储器的写操作方法、系统、电子设备和介质 | |
CN112506875A (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 |