基于固态硬盘的数据分类实现方法、装置和计算机设备制造方法及图纸

技术编号:37865903 阅读:11 留言:0更新日期:2023-06-15 20:55
本申请涉及一种基于固态硬盘的数据分类实现方法、装置、计算机设备和存储介质,其中该方法包括:将固态硬盘内的LBA按照指定长度划分为多个TRUNK;利用LBATRUNKTable记录TRUNK内数据的属性值,所述LBA TRUNKTable记录每个TRUNK的数据总写入量、命令总数量及连续命令数量;根据所述数据总写入量、命令总数量及连续命令数量的属性值对所述固态硬盘的数据进分类;以固定时间为周期更新所述LBATRUNKTable。本发明专利技术在服务器侧不修改业务逻辑的前提下实现了用户数据分类,提高了固态硬盘的IO效率,减小写放大进而提高了固态硬盘的寿命。的寿命。的寿命。

【技术实现步骤摘要】
基于固态硬盘的数据分类实现方法、装置和计算机设备


[0001]本专利技术涉及固态硬盘
,特别是涉及一种基于固态硬盘的数据分类实现方法、装置、计算机设备和存储介质。

技术介绍

[0002]SSD(Solid State Drive,固态硬盘)作为一种新型存储介质,其采用NAND颗粒作为数据存储,已经广泛应用于PC,笔记本,服务器等各个领域并逐渐取代HDD(Hard Disk Drive,机械硬盘)成为存储领域的主流应用产品,相比于传统HDD具有更高的读写速度,更低的功耗,更好的抗摔性等明显优点。
[0003]目前,在现有技术中需要依靠主机对用户数据进行分类,分类后使用NVMe协议中的多流特性将分类信息通知到固态硬盘。但是这种方法对主机应用软件和驱动的要求很高,对现有的架构冲击大,实现难度较高。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种基于固态硬盘的数据分类实现方法、装置、计算机设备和存储介质。
[0005]一种基于固态硬盘的数据分类实现方法,所述方法包括:
[0006]将固态硬盘内的LBA按照指定长度划分为多个TRUNK;
[0007]利用LBATRUNK Table记录TRUNK内数据的属性值,所述LBATRUNK Table记录每个TRUNK的数据总写入量、命令总数量及连续命令数量;
[0008]根据所述数据总写入量、命令总数量及连续命令数量的属性值对所述固态硬盘的数据进分类;
[0009]以固定时间为周期更新所述LBATRUNK Table。
[0010]在其中一个实施例中,所述根据所述数据总写入量、命令总数量及连续命令数量的属性值对所述固态硬盘的数据进分类的步骤还包括:
[0011]所述数据总写入量用于记录特定周期内该TRUNK内主机写入的数据总量,写入的数据量越多表示所述TRUNK的数据越热;
[0012]所述命令总数量用于记录主机写入的命令总数;
[0013]所述连续命令数量用于和命令总数量进行对比,越接近命令总数量则表示所述TRUNK的写命令越连续。
[0014]在其中一个实施例中,所述方法还包括:
[0015]如果在更新周期内收到主机写命令,则解析所述写命令的起始逻辑块地址和写数据的长度;
[0016]判断所述写命令是否和上一个写命令连续,如果连续则增加LBA TRUNK连续命令数量。
[0017]在其中一个实施例中,在所述如果连续则增加LBATRUNK连续命令数量的步骤之后
还包括:
[0018]所述LBA TRUNK的命令总数量加1,所述LBATRUNK的数据总写入量根据实际写命令的长度增加。
[0019]一种基于固态硬盘的数据分类实现装置,所述基于固态硬盘的数据分类实现装置包括:
[0020]划分模块,所述划分模块用于将固态硬盘内的LBA按照指定长度划分为多个TRUNK;
[0021]记录模块,所述记录模块用于利用LBATRUNK Table记录TRUNK内数据的属性值,所述LBATRUNK Table记录每个TRUNK的数据总写入量、命令总数量及连续命令数量;
[0022]数据分类模块,所述数据分类模块用于根据所述数据总写入量、命令总数量及连续命令数量的属性值对所述固态硬盘的数据进分类;
[0023]更新模块,所述更新模块用于以固定时间为周期更新所述LBA TRUNK Table。
[0024]在其中一个实施例中,所述数据分类模块还用于:
[0025]所述数据总写入量用于记录特定周期内该TRUNK内主机写入的数据总量,写入的数据量越多表示所述TRUNK的数据越热;
[0026]所述命令总数量用于记录主机写入的命令总数;
[0027]所述连续命令数量用于和命令总数量进行对比,越接近命令总数量则表示所述TRUNK的写命令越连续。
[0028]在其中一个实施例中,所述装置还包括解析判断模块,所述解析判断模块用于:
[0029]如果在更新周期内收到主机写命令,则解析所述写命令的起始逻辑块地址和写数据的长度;
[0030]判断所述写命令是否和上一个写命令连续,如果连续则增加LBA TRUNK连续命令数量。
[0031]在其中一个实施例中,所述解析判断模块还用于:
[0032]所述LBA TRUNK的命令总数量加1,所述LBATRUNK的数据总写入量根据实际写命令的长度增加。
[0033]一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
[0034]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
[0035]上述基于固态硬盘的数据分类实现方法、装置、计算机设备和存储介质将固态硬盘内的LBA按照指定长度划分为多个TRUNK;利用LBATRUNK Table记录TRUNK内数据的属性值,所述LBATRUNK Table记录每个TRUNK的数据总写入量、命令总数量及连续命令数量;根据所述数据总写入量、命令总数量及连续命令数量的属性值对所述固态硬盘的数据进分类;以固定时间为周期更新所述LBATRUNK Table。本专利技术在服务器侧不修改业务逻辑的前提下实现了用户数据分类,提高了固态硬盘的IO效率,减小写放大进而提高了固态硬盘的寿命。
附图说明
[0036]图1为一个实施例中基于固态硬盘的数据分类实现方法的流程示意图;
[0037]图2为另一个实施例中基于固态硬盘的数据分类实现方法的流程示意图;
[0038]图3为一个实施例中对用户数据进行分类的示意图;
[0039]图4为一个实施例中对LBATRUNK进行定义的示意图;
[0040]图5为一个实施例中基于固态硬盘的数据分类实现装置的结构框图;
[0041]图6为另一个实施例中基于固态硬盘的数据分类实现装置的结构框图;
[0042]图7为一个实施例中计算机设备的内部结构图。
具体实施方式
[0043]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0044]目前,在现有技术中需要依靠主机对用户数据进行分类,分类后使用NVMe协议中的多流特性将分类信息通知到固态硬盘。但是这种方法对主机应用软件和驱动的要求很高,对现有的架构冲击大,实现难度较高。
[0045]基于此,本专利技术提出了一种基于固态硬盘的数据分类实现方法,旨在可以不感知盘内的分类策略,同时不影响主机侧现有的业务逻辑和架构。
[0046]在一个实施例中,如图1所示,提供了一种基于固态硬盘的数据分类实现方法,该方法包括:
[0047]步骤102,将固态硬盘内的LBA按本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于固态硬盘的数据分类实现方法,所述方法包括:将固态硬盘内的LBA按照指定长度划分为多个TRUNK;利用LBATRUNKTable记录TRUNK内数据的属性值,所述LBATRUNK Table记录每个TRUNK的数据总写入量、命令总数量及连续命令数量;根据所述数据总写入量、命令总数量及连续命令数量的属性值对所述固态硬盘的数据进分类;以固定时间为周期更新所述LBATRUNKTable。2.根据权利要求1所述的基于固态硬盘的数据分类实现方法,其特征在于,所述根据所述数据总写入量、命令总数量及连续命令数量的属性值对所述固态硬盘的数据进分类的步骤还包括:所述数据总写入量用于记录特定周期内该TRUNK内主机写入的数据总量,写入的数据量越多表示所述TRUNK的数据越热;所述命令总数量用于记录主机写入的命令总数;所述连续命令数量用于和命令总数量进行对比,越接近命令总数量则表示所述TRUNK的写命令越连续。3.根据权利要求2所述的基于固态硬盘的数据分类实现方法,其特征在于,所述方法还包括:如果在更新周期内收到主机写命令,则解析所述写命令的起始逻辑块地址和写数据的长度;判断所述写命令是否和上一个写命令连续,如果连续则增加LBATRUNK连续命令数量。4.根据权利要求3所述的基于固态硬盘的数据分类实现方法,其特征在于,在所述如果连续则增加LBATRUNK连续命令数量的步骤之后还包括:所述LBATRUNK的命令总数量加1,所述LBATRUNK的数据总写入量根据实际写命令的长度增加。5.一种基于固态硬盘的数据分类实现装置,其特征在于,所述基于固态硬盘的数据分类实现装置包括:划分模块,所述划分模块用于将固态硬盘内的LBA按照指定长度划分为多个TRUNK;记录模块,所述记录模块用于利...

【专利技术属性】
技术研发人员:朱银波伍旭东余权张少壮
申请(专利权)人:成都芯忆联信息技术有限公司
类型:发明
国别省市:

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

1