CN115729437A - 存储设备的控制方法、装置及存储设备 - Google Patents
存储设备的控制方法、装置及存储设备 Download PDFInfo
- Publication number
- CN115729437A CN115729437A CN202110988418.8A CN202110988418A CN115729437A CN 115729437 A CN115729437 A CN 115729437A CN 202110988418 A CN202110988418 A CN 202110988418A CN 115729437 A CN115729437 A CN 115729437A
- Authority
- CN
- China
- Prior art keywords
- mode
- storage space
- data
- medium
- free storage
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种存储设备的控制方法、装置、存储设备及计算机可读存储介质;涉及云技术领域中的存储技术,方法包括:获取所述存储设备的扩容率;获取所述存储设备中对应目标业务的业务数据的数据压缩率;根据所述数据压缩率与所述扩容率的比较结果,确定所述存储设备的空闲存储空间的介质模式转换方式;根据所述介质模式转换方式对所述空闲存储空间的介质模式进行转换处理;基于所述空闲存储空间在进行所述转换处理后所处的介质模式,响应所述目标业务的数据操作请求。通过本申请,能够通过对介质模式进行动态转换提升存储设备处理目标业务的数据操作请求的性能。
Description
技术领域
本申请涉及数据存储技术及云计算技术,尤其涉及一种存储设备的控制方法、装置、存储设备及计算机可读存储介质。
背景技术
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为基础设施即服务(IaaS,Infrastructure as a Service)平台),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
以存储设备为固态硬盘(SSD,Solid State Disk)/机械硬盘为例,相关技术中存储设备中的介质模式是固定的,但是不同业务应用于相同的介质模式时,有碍于满足不同业务的数据性能要求。
相关技术中缺乏通过固定存储设备满足不同业务的数据性能要求的有效方案。
发明内容
本申请实施例提供一种存储设备的控制方法、装置、存储设备及计算机可读存储介质,能够通过对介质模式进行动态转换提升存储设备处理目标业务的数据操作请求的性能。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种存储设备的控制方法,包括:
获取所述存储设备的扩容率;
获取所述存储设备中对应目标业务的业务数据的数据压缩率;
根据所述数据压缩率与所述扩容率的比较结果,确定所述存储设备的空闲存储空间的介质模式转换方式;
根据所述介质模式转换方式对所述空闲存储空间的介质模式进行转换处理;
基于所述空闲存储空间在进行所述转换处理后所处的介质模式,响应所述目标业务的数据操作请求。
本申请实施例提供一种存储设备的控制装置,包括:
获取模块,用于获取所述存储设备的扩容率;
所述获取模块,用于获取所述存储设备中对应目标业务的业务数据的数据压缩率;
确定模块,用于根据所述数据压缩率与所述扩容率的比较结果,确定所述存储设备的空闲存储空间的介质模式转换方式;
转换模块,用于根据所述介质模式转换方式对所述空闲存储空间的介质模式进行转换处理;
响应模块,用于基于所述空闲存储空间在进行所述转换处理后所处的介质模式,响应所述目标业务的数据操作请求。
在上述方案中,所述获取模块,还用于:执行以下处理中任意一种:在所述目标业务的至少一个历史时间周期内,获取所述存储设备中对应所述目标业务的业务数据的数据压缩率;在所述目标业务的至少一个历史数据写入量周期内,获取所述存储设备对应所述目标业务的业务数据的数据压缩率。
在上述方案中,所述确定模块,还用于:当所述数据压缩率大于所述扩容率时,将从第一介质模式转换至第二介质模式确定为所述存储设备的介质模式转换方式;当所述数据压缩率小于所述扩容率时,将从第二介质模式转换至第一介质模式确定为所述存储设备的介质模式转换方式;其中,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度。
在上述方案中,当所述介质模式转换方式为从第一介质模式转换至第二介质模式,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度时,所述转换模块,还用于:根据所述数据压缩率以及所述扩容率,确定用于进行所述转换处理所需要的第一空闲存储空间容量;其中,所述第一空闲存储空间容量为第一空闲存储空间的容量,所述第一空闲存储空间为处于所述第一介质模式的、且用于进行所述转换处理的空闲存储空间;将所述第一空闲存储空间标记为所述第二介质模式。
在上述方案中,所述转换模块,还用于:当所述第一空闲存储空间容量不大于处于所述第一介质模式的空闲存储空间容量时,将所述第一空闲存储空间标记为所述第二介质模式;当所述第一空闲存储空间容量大于处于所述第一介质模式的空闲存储空间容量时,对所述第一介质模式的存储空间进行回收处理,其中,经过回收处理后更新的所述第一空闲存储空间容量不大于处于所述第一介质模式的空闲存储空间容量,将经过回收处理后更新的所述第一空闲存储空间标记为所述第二介质模式。
在上述方案中,所述转换模块,还用于:将所述业务数据的数据量与所述扩容率的比值确定为所述业务数据的理论存储空间值;将所述业务数据的数据量与所述数据压缩率的比值确定所述业务数据的实际存储空间值;确定与所述理论存储空间值正相关、且与所述实际存储空间值负相关的第一空闲存储空间容量。
在上述方案中,当所述介质模式转换方式为从第二介质模式转换至第一介质模式,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度时,所述转换模块,还用于:根据所述数据压缩率以及所述扩容率,确定用于进行所述转换处理所需要的第二空闲存储空间容量;其中,所述第二空闲存储空间容量为第二空闲存储空间的容量,所述第二空闲存储空间为处于所述第二介质模式的、且用于进行所述转换的空闲存储空间;将所述第二空闲存储空间标记为所述第一介质模式。
在上述方案中,所述转换模块,还用于:当所述第二空闲存储空间容量不大于处于所述第二介质模式的空闲存储空间容量时,将所述第二空闲存储空间标记为所述第一介质模式;当所述第二空闲存储空间容量大于处于所述第二介质模式的空闲存储空间容量时,对所述第二介质模式的存储空间进行回收处理,其中,经过回收处理后更新的所述第二空闲存储空间容量不大于处于所述第二介质模式的空闲存储空间容量,将经过回收处理后更新的所述第二介质模式中第二存储空间值的空闲存储空间标记为所述第一介质模式。
在上述方案中,所述转换模块,还用于:将所述业务数据的数据量与所述扩容率的比值确定为所述业务数据的理论存储空间值;将所述业务数据的数据量与所述数据压缩率的比值确定所述业务数据的实际存储空间值;确定所述第一介质模式的存储密度与所述第二介质模式的存储密度的比值;确定与所述实际存储空间值正相关、与所述理论存储空间值负相关、且与所述比值负相关的第二空闲存储空间容量。
在上述方案中,所述转换模块,还用于:确定占用所述第二介质模式的存储空间的待回收数据;当所述待回收数据属于无效数据时,将所述待回收数据所占据的存储空间标记为空闲存储空间,并将所述待回收数据进行丢弃处理;当所述待回收数据属于有效数据,且所述待回收数据的访问频率低于访问频率阈值时,将所述待回收数据写入所述第一介质模式的空闲存储空间;当所述待回收数据属于有效数据、所述待回收数据的访问频率不低于访问频率阈值、且所述第二介质模式不具有空闲存储空间时,将所述待回收数据写入处于所述第一介质模式的空闲存储空间。
在上述方案中,当所述数据操作请求为数据读取请求时,所述响应模块,还用于:确定所述目标业务的目标读取数据的访问频率以及目标存储空间所处的介质模式,其中,所述目标存储空间用于存储所述数据读取请求的目标读取数据;当所述介质模式为第一介质模式时,获取第二介质模式的空闲存储空间容量;当所述目标读取数据的访问频率大于访问频率阈值、所述介质模式为第一介质模式、且第二介质模式的空闲存储空间容量不小于空闲存储空间阈值,将所述数据读取请求的目标读取数据写入所述第二介质模式的空闲存储空间;其中,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度。
在上述方案中,当所述数据操作请求为数据写入请求时,所述响应模块,还用于:当所述存储设备中存在处于第二介质模式的空闲存储空间时,按照对应所述第二介质模式的写入规则,将所述目标业务的目标写入数据写入所述存储设备中处于所述第二介质模式的空闲存储空间;当所述存储设备中不存在处于第二介质模式的空闲存储空间时,按照对应第一介质模式的写入规则,将所述目标业务的目标写入数据写入所述存储设备中处于所述第一介质模式的空闲存储空间;其中,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度。
本申请实施例提供一种存储设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的存储设备的控制方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的存储设备的控制方法。
本申请实施例具有以下有益效果:
根据目标业务的数据压缩率与扩容率的比较结果,确定存储设备的空闲存储空间的介质模式转换方式,并对空闲存储空间的介质模式进行转换处理,实现了对介质模式进行基于目标业务的动态转换的过程,因而在基于空闲存储空间在进行转换处理后所处的介质模式,响应目标业务的数据操作请求时,可以以通过与目标业务匹配的方式进行相应,有效提高存储设备的整体性能。
附图说明
图1是本申请实施例提供的存储设备的控制系统的结构示意图;
图2是本申请实施例提供的存储设备的结构示意图;
图3是本申请实施例提供的存储设备的逻辑存储结构的示意图
图4A-4C是本申请实施例提供的存储设备的控制方法的流程示意图;
图5是本申请实施例提供的存储设备的控制方法的介质模式比较示意图;
图6是本申请实施例提供的存储设备的控制方法的压缩示意图;
图7A-7C是本申请实施例提供的存储设备的控制方法的逻辑示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)存储设备,是基于闪存(Flash)芯片存储数据的设备,例如固态硬盘(SSD,SolidState Disk)。
2)主机,是与存储设备存在电连接的计算设备,例如服务器或终端设备,能够对存储设备进行读写操作。
3)数据块,也可以称为数据单元,是主机对存储设备进行读写的单位。
4)计算机闪存设备(NAND,NAND flash memory),非易失闪存颗粒,掉电后依然可以保持数据。
5)预留空间(OP,Over-Provisioning),存储设备中的OP指用户不可操作的容量,大小为物理实际容量减去用户可用容量,OP主要用于提高存储设备的随机写的性能,并用于垃圾回收等。
6)压缩率:数据能够被压缩的比例。
7)扩容率:具有压缩功能固态硬盘的逻辑空间(用户空间)大小与固态硬盘的实际物理空间大小的比值,不具有压缩功能的固态硬盘的扩容率为1。
8)介质模式:不同的介质模式具有不同的性能和容量等级,高性能模式指类似单层存储单元(SLC,Single-Level Cell)的低容量介质模式,低性能模式指类似四层存储单元(QLC,Quad-Level Cell)的高容量介质模式。
相关技术中并无对同一种NAND介质进行动态调整性能以及容量的方法,相关技术中调整固态硬盘的性能以及容量的方式包括以下两种:第一、在固态硬盘内部引至少一级缓存层,缓存层使用速度更快的存储介质,从而提高固态硬盘的性能;第二、在固态硬盘贴更多的NAND颗粒,将多贴的颗粒用于OP空间,可以提高随机写性能。
相关技术的缺陷在于:若引入至少一级缓存层,使得在硬件层面固态硬盘内部存在不同类型的存储介质,增加了固态硬盘硬件设计的复杂度和产品成本;若在固态硬盘贴更多的NAND颗粒,则相当增加实际的物理介质,从而相应增加了成本。
本申请实施例提供一种存储设备的控制方法、装置、存储设备和计算机可读存储介质,能够通过对介质模式进行动态转换提升存储设备处理目标业务的数据操作请求的性能,下面说明本申请实施例提供的存储设备的控制方法的示例性应用,本申请实施例提供的存储设备的控制方法可以由各种存储设备实施,例如可以实施为机械硬盘、固态硬盘等各种类型的存储设备。下面,将说明存储设备时示例性应用。
参见图1,图1是本申请实施例提供的存储设备的控制系统的结构示意图,存储设备的控制系统可以用于支撑各种数据的存储场景,在存储设备的控制系统中,存储设备300通过电连接主机设备200,终端400通过网络连接主机设备200,需要说明的是,存储设备300可以安装到主机设备200的机箱内部,存储设备300也可以是通过USB、雷电等接口从外部连接到主机设备200。
在一些实施例中,终端400将业务请求发送到主机设备200,主机设备200中的中央处理单元(CPU,Central Pocessing Unit)接收业务请求,以获取业务请求对应的写指令,主机设备200中的CPU还可以接收用户通过输入设备向CPU发送的读/写指令,主机设备200将写指令发送给存储设备300,存储设备300中的处理器获取存储设备的扩容率;获取存储设备中对应目标业务的业务数据的数据压缩率;根据数据压缩率与扩容率的比较结果,确定存储设备的空闲存储空间的介质模式转换方式;根据介质模式转换方式对空闲存储空间的介质模式进行转换处理;基于空闲存储空间在进行转换处理后所处的介质模式,响应主机设备后续发送的目标业务的数据操作请求,数据操作请求包括数据读取请求和数据写入请求,即主机设备200可以基于空闲存储空间在进行转换处理后所处的介质模式对业务数据进行相应的读/写操作。
在一些实施例中,主机设备200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。存储设备300可以作为云服务器的存储介质,被挂载到一个存储目录中,云服务器将数据存储至这个存储目录中。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端400与主机设备200之间可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制
接下来,说明本申请实施例提供的用于实施存储设备的控制方法的存储设备的结构,如前所述,本申请实施例提供的存储设备可以是图1中的存储设备300。参见图2,图2是本申请实施例提供的存储设备300的结构示意图,图2所示的存储设备300包括:处理器310、缓存器320、数据存储器330以及指令存储器340。
处理器310是存储设备300的主控制器,可以是一种嵌入式微芯片,可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Cir cuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)实现,其中以编程的方式存储了主控算法的各种可执行指令,即指令存储器340可以与处理器310采用FPGA集成一体,或者指令存储器340存储有可执行指令,作为独立于处理器310的物理元件。处理器310的功能就像命令中心,发出存储设备的所有操作请求,可以说处理器是存储设备的大脑中枢。
缓存器320用于缓存读/写数据,举例来说,缓存器320可以是DRAM缓存,部分存储设备中不包括缓存器。
数据存储器330,是存储设备的存储媒介,用于存储存储设备的数据,例如,业务数据,数据存储器330不仅决定了存储设备的使用寿命,而且对存储设备的性能影响也非常大,举例来说,数据存储器330可以是NAND闪存。
在一些实施例中,存储设备300的处理器310会给缓存器320(例如,DR AM)设置一个任务量,存储设备300接收到主机设备200发送的数据后,先将数据存储在缓存器320中进行相应的读写操作,当缓存器320中的数据超过设置的任务量时,再通过处理器310将缓存器320中的数据存储到数据存储器330中,以降低处理器的负担,提高存储设备处理数据的效率。
在一些实施例中,本申请实施例提供的存储设备的控制装置可以采用软件方式实现,图2示出了存储在处理器310中的存储设备的控制装置331,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块3311、确定模块3312、转换模块3313和响应模块3314,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
以存储设备是固态硬盘为例,说明本申请实施例提供的固态硬盘的逻辑存储结构。参见图3,图3是本申请实施例提供的固态硬盘的逻辑存储结构的示意图。其中,数据页(Page)为最小的读写单位,一个Page包括多个字节;数据块(Block)为最小的擦除单位,一个Block包括多个Page;数据面(Plane)是NAND能够根据读、写、擦除等命令进行操作的最小单位,一个Plane就是一个存储矩阵,一个Plane包括多个Block;晶粒(Die)是存储器内可执行命令并回报自身状态的最小独立单元,一个芯片里可以封装多个Die,一个Die包括两个Plane。而固态硬盘是由浮动门构成的,浮动门是一个逻辑电路,四周被二氧化硅包裹着,充电到一定电势的后表示0,电势降到一定的阈值以后,表示为1;由于固态硬盘的物理特性,长时间掉电后,浮动门中的电子会溢出,导致电势改变,即造成数据丢失。
下面,以由图1中的存储设备300执行本申请实施例提供的存储设备的控制方法为例说明。参见图4A,图4A是本申请实施例提供的存储设备的控制方法的一个流程示意图,将结合图4A示出的步骤101-步骤105进行说明。
在步骤101中,获取存储设备的扩容率。
作为示例,扩容率是具有压缩功能固态硬盘的逻辑空间(用户逻辑空间)大小与固态硬盘的实际物理空间大小的比值,不具有压缩功能的固态硬盘的扩容率为1,存储设备的驱动可以监控存储设备本身的扩容率。
在步骤102中,获取存储设备中对应目标业务的业务数据的数据压缩率。
作为示例,当向存储设备写入目标业务的业务数据时,获取存储设备中对应目标业务的业务数据的数据压缩率。
在一些实施例中,参见图4B,图4B是本申请实施例提供的存储设备的控制方法的一个流程示意图,步骤102中获取存储设备中对应目标业务的业务数据的数据压缩率,可以通过执行步骤1021或者步骤1022实现。
在步骤1021中,在目标业务的至少一个历史时间周期内,获取存储设备中对应目标业务的业务数据的数据压缩率。
作为示例,针对当前时间节点而言存在至少一个历史时间周期,用于计算数据压缩率的的业务数据可以来源于一个历史时间周期或者多个连续的历史时间周期,例如,以1分钟作为一个历史时间周期,在三点钟时获取两点五十九分至三点钟的业务数据的数据压缩率,基于所获取的数据压缩率执行后续步骤,在三点过一分时获取三点钟至三点过一分的业务数据的数据压缩率,基于所获取的数据压缩率执行后续步骤,从而实现整个方案的动态调整。
在步骤1022中,在目标业务的至少一个历史数据写入量周期内,获取存储设备对应目标业务的业务数据的数据压缩率。
作为示例,历史数据写入量周期是某个数据量,例如,历史数据写入量周期为100GB,针对当前数时间节点而言存在至少一个历史数据写入量周期,用于计算数据压缩率的的业务数据可以来源于一个历史数据写入量周期或者多个连续的历史数据写入量周期,例如,以100GB作为一个历史数据写入量周期,在累计数据写入量为500GB时,获取累计数据写入量为400GB后所写入的100GB的业务数据的数据压缩率,基于所获取的数据压缩率执行后续步骤,在累计数据写入量为600GB时,获取累计数据写入量为500GB后所写入的100GB的业务数据的数据压缩率,基于所获取的数据压缩率执行后续步骤,从而实现整个方案的动态调整。
在步骤103中,根据数据压缩率与扩容率的比较结果,确定存储设备的空闲存储空间的介质模式转换方式。
在一些实施例中,参见图4C,图4C是本申请实施例提供的存储设备的控制方法的一个流程示意图,步骤103中获取存储设备中对应目标业务的业务数据的数据压缩率,可以通过执行步骤1031-步骤1032实现。
在步骤1031中,当数据压缩率大于扩容率时,将从第一介质模式转换至第二介质模式确定为存储设备的介质模式转换方式。
作为示例,数据压缩率是数据压缩前的数据量与数据压缩后的数据量之间的比值,例如,一个4千字节的逻辑数据块,经过硬盘内的透明压缩之后,大小变为2千字节,即逻辑空间的4千字节数据只占用了物理空间的2千字节,数据压缩率为2,扩容率是固态硬盘的逻辑容量与固态硬盘的物理容量的比值。
在步骤1032中,当数据压缩率小于扩容率时,将从第二介质模式转换至第一介质模式确定为存储设备的介质模式转换方式。
作为示例,第一介质模式(低性能介质模式)的访问速度低于第二介质模式(高性能介质模式)的访问速度,且第一介质模式的存储密度高于第二介质模式的存储密度,第一介质模式的性能低于第二介质模式的性能,性能更高体现在访问速度更高、耐久度更高、可信度更高,存储密度更高的同时伴随着成本降低。
在一些实施例中,当数据压缩率等于扩容率时,确定不进行转换处理。
在步骤104中,根据介质模式转换方式对空闲存储空间的介质模式进行转换处理。
作为示例,转换处理包括不同介质模式之间的转换,例如,将第一介质模式的空闲存储空间标记为处于第二介质模式,将第二介质模式的空闲存储空间标记为处于第一介质模式,固态硬盘中的介质模式不局限于两种介质模式,即转换处理包括至少两种不同介质模式之间的转换,可以进行更加细粒度的划分,例如,划分为三种介质模式之间的互相转换,三种介质模式之间存在访问速度以及存储密度的差异,存储密度与访问速度成负相关关系。
作为示例,存储设备在硬件上结构采取向下兼容的模式,针对不同的硬件结构,具有不同的转换范围,例如,存储设备本身的硬件结构是QLC NAND颗粒,则在进行介质模式转换时,可以实现SLC介质模式、TLC介质模式、MLC介质模式与QLC介质模式之间的转换,存储设备本身的硬件结构是TLC NAND颗粒,则可以实现SLC介质模式、TLC介质模式与MLC介质模式之间的转换,存储设备在硬件结构上可以包括多种NAND颗粒,可以针对不同的NAND颗粒,确定对应的转换范围。
在一些实施例中,根据介质模式转换方式、数据压缩率以及扩容率,对空闲存储空间的介质模式进行转换处理。
在一些实施例中,当介质模式转换方式为从第一介质模式转换至第二介质模式,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度时,步骤104中根据介质模式转换方式对空闲存储空间的介质模式进行转换处理,可以通过以下技术方案实现:根据数据压缩率以及扩容率,确定用于进行转换处理所需要的第一空闲存储空间容量;其中,第一空闲存储空间容量为第一空闲存储空间的容量,第一空闲存储空间为处于第一介质模式的、且用于进行转换处理的空闲存储空间;将第一空闲存储空间标记为第二介质模式。
在一些实施例中,上述根据数据压缩率以及扩容率,确定用于执行介质模式转换处理所需要的第一空闲存储空间容量,可以通过以下技术方案实现:将业务数据的数据量与扩容率的比值确定为业务数据的理论存储空间值;将业务数据的数据量与数据压缩率的比值确定业务数据的实际存储空间值;确定与理论存储空间值正相关、且与实际存储空间值负相关的第一空闲存储空间容量。
作为示例,数据压缩率大于固态硬盘的扩容率时,固态硬盘的驱动可以将部分NAND空间由低性能介质模式(第一介质模式)转换为高性能介质模式(第二介质模式),其中,高性能介质模式为存储密度较低、访问速度更快的模式,低性能介质模式为存储密度较高、访问速度较慢的模式,由低性能介质模式转换得到的高性能介质模式的存储空间大小为(C1-C2)/R,计算得到的是高性能介质模式的存储空间大小,其中,C1为当前监控周期内写入的数据在相应固态硬盘扩容率下可以占用的物理空间,C2为当前监控周期内写入数据在固态硬盘中实际占用的物理空间,R为低性能介质模式与高性能介质模式的密度比,例如,QLC NAND可以工作在QLC介质模式(低性能介质模式),QLC NAN D还可以工作在SLC模式(高性能介质模式),对于逻辑空间扩容率为1的QL C固态硬盘(即固态硬盘的逻辑容量等于物理容量),若一个监控周期对应100GB的数据,且数据的压缩率为2:1(即100GB数据被压缩为50GB),则此时可以由QLC模式转换为SLC模式,转换得到的SLC模式的存储空间容量为(100-50)/4=12.5GB,所需要的QLC模式的存储空间容量为50GB,分母中的4表示QLC模式与SLC模式的存储密度比为4,对于逻辑扩容率为2的QLC固态硬盘(即固态硬盘的逻辑容量等于物理容量的2倍),若写入了100GB的数据,且数据的压缩率为4:1(即100GB数据被压缩为25GB),则此时由QLC模式转换为SLC模式,转换得到的SLC模式的存储空间容量为(100/2-100/4)/4=6.25GB,所需要的QLC模式的存储空间容量为25GB(SLC模式的存储空间容量的R倍)。
在一些实施例中,上述将第一空闲存储空间标记为第二介质模式,可以通过以下技术方案实现:当第一空闲存储空间容量不大于处于第一介质模式的空闲存储空间容量时,将第一空闲存储空间标记为第二介质模式;当第一空闲存储空间容量大于处于第一介质模式的空闲存储空间容量时,对第一介质模式的存储空间进行回收处理,其中,经过回收处理后更新的第一空闲存储空间容量不大于处于第一介质模式的空闲存储空间容量,将经过回收处理后更新的第一空闲存储空间标记为第二介质模式。
作为示例,在由低性能介质模式(第一介质模式)转换为高性能介质模式(第二介质模式)的过程中,若低性能介质模式的空闲存储空间足够,即第一空闲存储空间容量不大于处于第一介质模式的空闲存储空间容量,则可以直接将低性能介质模式的空闲存储空间中相应转换空间大小的存储空间从低性能介质模式转换为高性能介质模式,例如,将25GB的低性能介质模式的空闲存储空间转换成6.25GB的高性能介质模式,若低性能介质模式的空闲存储空间不足,即第一空闲存储空间容量大于处于第一介质模式的空闲存储空间容量,则需要对低性能介质模式的部分空间进行垃圾回收,回收结束后将相应转换空间大小的空闲存储空间转换为高性能介质模式。
作为示例,在对低性能介质模式(第一介质模式)的部分空间进行垃圾回收时,首先对存储在低性能介质模式的存储空间的数据进行分类,得到有效数据以及无效数据,对有效数据进行丢弃处理,对存储在低性能介质模式的存储空间的有效数据进行数据整合处理,从而将碎片化的数据整合为一个整体,从而占用一个连续的存储空间。
在一些实施例中,当介质模式转换方式为从第二介质模式转换至第一介质模式,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度时,步骤104中根据介质模式转换方式对空闲存储空间的介质模式进行转换处理,可以通过以下技术方案实现:根据数据压缩率以及扩容率,确定用于进行转换处理所需要的第二空闲存储空间容量;其中,第二空闲存储空间容量为第二空闲存储空间的容量,第二空闲存储空间为处于第二介质模式的、且用于进行转换的空闲存储空间;将第二空闲存储空间标记为第一介质模式。
在一些实施例中,上述根据数据压缩率以及扩容率,确定用于进行转换处理所需要的第二空闲存储空间容量,可以通过以下技术方案实现:将业务数据的数据量与扩容率的比值确定为业务数据的理论存储空间值;将业务数据的数据量与数据压缩率的比值确定业务数据的实际存储空间值;确定第一介质模式的存储密度与第二介质模式的存储密度的比值;确定与实际存储空间值正相关、与理论存储空间值负相关、且与比值负相关的第二空闲存储空间容量。
作为示例,当一个监控周期内写入数据的数据压缩率小于固态硬盘扩容率时,驱动将部分NAND空间由高性能介质模式转换为低性能介质模式,转换得到的低性能介质模式的存储空间的大小为(C2-C1)/R,其中,C1为当前监控周期内写入的数据在相应固态硬盘扩容率下可以占用的物理空间,C2为当前监控周期内写入的数据在固态硬盘中实际占用的物理空间,R为低性能介质模式与高性能介质模式的存储密度比,以逻辑扩容率为2的QLC固态硬盘为例,若一个监控周期对应100GB数据且数据的压缩率为1.5,则将高性能介质模式转换为低性能介质模式,转换得到的低性能介质模式的存储空间的大小为(100/1.5-100/2)/4≈4.2GB,所需要的高性能模式的存储空间容量为1.05GB(高性能模式的存储空间容量是低性能介质模式的存储空间的大小的1/R)。
在一些实施例中,上述将第二空闲存储空间标记为第一介质模式,可以通过以下技术方案实现:当第二空闲存储空间容量不大于处于第二介质模式的空闲存储空间容量时,将第二空闲存储空间标记为第一介质模式;当第二空闲存储空间容量大于处于第二介质模式的空闲存储空间容量时,对第二介质模式的存储空间进行回收处理,其中,经过回收处理后更新的第二空闲存储空间容量不大于处于第二介质模式的空闲存储空间容量,将经过回收处理后更新的第二介质模式中第二存储空间值的空闲存储空间标记为第一介质模式。
作为示例,在由高性能介质模式(第二介质模式)转换为低性能介质模式(第一介质模式)的过程中,若高性能介质模式的空闲存储空间足够,即第二空闲存储空间容量不大于处于第二介质模式的空闲存储空间容量,则可以直接将高性能介质模式的空闲存储空间中相应转换空间大小的存储空间从高性能介质模式转换为低性能介质模式,若高性能介质模式的空闲存储空间不足,即第二空闲存储空间容量大于处于第二介质模式的空闲存储空间容量,则需要对高性能介质模式的部分空间进行垃圾回收,回收结束后将高性能介质模式的空闲存储空间中相应转换空间大小的存储空间转换为低性能介质模式。
在一些实施例中,上述对第二介质模式的存储空间进行回收处理,可以通过以下技术方案实现:确定占用第二介质模式的存储空间的待回收数据;当待回收数据属于无效数据时,将待回收数据所占据的存储空间标记为空闲存储空间,并将待回收数据进行丢弃处理;当待回收数据属于有效数据,且待回收数据的访问频率低于访问频率阈值时,将待回收数据写入第一介质模式的空闲存储空间;当待回收数据属于有效数据、待回收数据的访问频率不低于访问频率阈值、且第二介质模式不具有空闲存储空间时,将待回收数据写入处于第一介质模式的空闲存储空间。
作为示例,第二介质模式不具有空闲存储空间表征第二介质模式的空闲存储空间小于待回收数据所需要的存储空间容量与第二空闲存储空间容量的总和。
作为示例,在高性能介质模式(第二介质模式)的存储空间进行垃圾回收时,对于需要搬移的有效数据,由判断模块根据数据逻辑地址的访问频率判断其是否属于热数据,如果不属于热数据,则将相应的数据写入低性能介质模式的存储空间。如果属于热数据,则继续判断高性能介质模式是否有空闲存储空间,若有高性能介质模式的空闲存储空间,则将相应数据写入高性能介质模式的空闲存储空间,否则写入低性能介质模式的空闲存储空间。
在步骤105中,基于空闲存储空间在进行转换处理后所处的介质模式,响应目标业务的数据操作请求。
在一些实施例中,基于空闲存储空间在进行转换处理后所处的介质模式,响应主机端的目标业务的数据操作请求,数据操作请求包括数据读取请求和数据写入请求中至少之一。
在一些实施例中,当数据操作请求为数据读取请求时,步骤105中基于空闲存储空间在进行转换处理后所处的介质模式,响应目标业务的数据操作请求,可以通过以下技术方案实现:确定目标业务的目标读取数据的访问频率以及目标存储空间所处的介质模式,其中,目标存储空间用于存储数据读取请求的目标读取数据;当介质模式为第一介质模式时,获取第二介质模式的空闲存储空间容量;当目标读取数据的访问频率大于访问频率阈值、介质模式为第一介质模式、且第二介质模式的空闲存储空间容量不小于空闲存储空间阈值,将数据读取请求的目标读取数据写入第二介质模式的空闲存储空间;其中,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度。
作为示例,第二介质模式的空闲存储空间容量不小于空闲存储空间阈值表征第二介质模式的空闲存储空间容量不小于写入目标读取数据所需要的处于第二介质模式的存储空间容量,即空闲存储空间阈值不小于写入目标读取数据所需要的处于第二介质模式的存储空间容量。
作为示例,由判断模块根据数据逻辑地址的访问频率判断其是否属于热数据(大于等于热数据的访问频率阈值),如果不属于热数据,直接读取相应数据并返回给主机端,如果属于热数据,则判断该数据是否处于高性能介质模式空间,如果处于高性能介质模式的存储空间,则直接返回数据给主机端,如果不处于高性能介质模式的存储空间,则在返回数据的同时继续判断高性能介质模式空间是否有足够空闲,若有足够的高性能介质模式的空闲存储空间,则将该需要读取的数据写入高性能介质模式的空闲存储空间。
在一些实施例中,当数据操作请求为数据写入请求时,步骤105中基于空闲存储空间在进行转换处理后所处的介质模式,响应目标业务的数据操作请求,可以通过以下技术方案实现:当存储设备中存在处于第二介质模式的空闲存储空间时,按照对应第二介质模式的写入规则,将目标业务的目标写入数据写入存储设备中处于第二介质模式的空闲存储空间;当存储设备中不存在处于第二介质模式的空闲存储空间时,按照对应第一介质模式的写入规则,将目标业务的目标写入数据写入存储设备中处于第一介质模式的空闲存储空间;其中,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度。
作为示例,存储设备中存在处于第二介质模式的空闲存储空间表征处于第二介质模式的空闲存储空间的容量不小于目标写入数据所需要的处于第二介质模式的存储空间容量。
作为示例,第一介质模式是低性能介质模式,第二介质模式是高性能介质模式,高性能介质模式相较于低介质模式具有更高的访问速度(读写速度),具有更高的可信度以及耐久度,但是高性能介质模式相较于低介质模式具有更低的存储密度,因此若存在处于高性能介质模式的空闲存储空间,则将目标写入数据直接写入处于高性能介质模式的空闲存储空间,否则将目标写入数据写入处于低性能介质模式的空闲存储空间,在进行数据写入时,写入至不同的介质模式的空闲存储空间时,按照各自介质模式对应的写入规则进行写入。
上述实施例是在已进行介质转换后相应数据操作请求,即根据空闲存储空间在进行转换处理后所处的介质模式,响应目标业务的数据操作请求,但是响应数据操作请求的步骤与介质转换的过程没有必然关联关系,响应数据操作请求是将数据写入存储设备以及从存储设备读取数据的过程,而介质转换的过程是对存储设备的存储空间进行介质模式转换的过程,两者之间互不影响。
在一些实施例中,针对还未进行介质模式转换的存储设备,当存储设备中存在处于第二介质模式的空闲存储空间时,按照对应第二介质模式的写入规则,将目标业务的目标写入数据写入存储设备中处于第二介质模式的空闲存储空间,当存储设备中不存在处于第二介质模式的空闲存储空间时,按照对应第一介质模式的写入规则,将目标业务的目标写入数据写入存储设备中处于第一介质模式的空闲存储空间;针对还未进行介质模式转换的存储设备,确定目标业务的目标读取数据的访问频率以及目标存储空间所处的介质模式,其中,目标存储空间用于存储数据读取请求的目标读取数据;当介质模式为第一介质模式时,获取第二介质模式的空闲存储空间容量;当目标读取数据的访问频率大于访问频率阈值、介质模式为第一介质模式、且第二介质模式的空闲存储空间容量不小于空闲存储空间阈值,将数据读取请求的目标读取数据写入第二介质模式的空闲存储空间;其中,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
在一些实施例中,本申请实施例提供的存储设备的控制方法可以应用在数据压缩性较好同时又存在热点数据读写需求的业务模型中,终端将业务请求发送到主机设备,主机设备中的中央处理单元(CPU,Central Pocessing Unit)接收业务请求,以获取业务请求对应的写指令,主机设备中的CPU还可以接收用户通过输入设备向CPU发送的读/写指令,主机设备将写指令发送给存储设备,存储设备中的处理器获取存储设备的当前的扩容率,同时获取存储设备中对应目标业务的业务数据的数据压缩率,根据数据压缩率与扩容率的比较结果,确定存储设备的空闲存储空间的介质模式转换方式,根据介质模式转换方式对空闲存储空间的介质模式进行转换处理;基于空闲存储空间在进行转换处理后所处的介质模式,响应主机设备后续发送的目标业务的数据操作请求,数据操作请求包括数据读取请求和数据写入请求,即主机设备可以基于空闲存储空间在进行转换处理后所处的介质模式对业务数据进行相应的读/写操作,针对数据压缩性较好的业务,固态硬盘中可以有更多的存储空间转换到高性能介质模式,同时将热点数据的访问分流到这些高性能介质模式对应的存储空间,可以提升固态硬盘对于业务的整体性能。
在一些实施例中,参见图5是本申请实施例提供的存储设备的控制方法的介质模式比较示意图,单层存储单元(SLC,Single-Level Cell)中每个存储单元可以存放1比特数据,双层存储单元(MLC,Multi-Level Cell),MLC中每个存储单元可以存放2比特数据,三层存储单元(TLC,Trinary-Level Cell)中每个存储单元可以存放3比特数据,四层存储单元(QLC,Quad-Level Cell)中每个存储单元可以存放4比特数据。从单层存储单元的介质模式至四层存储单元的介质模式,存储密度逐步上升,但性能逐步下降,包括耐久性降低、读写速度降低、可信度降低,从单层存储单元的介质模式至四层存储单元的介质模式,所消耗的资源成本逐步降低,业界中正逐渐更多地应用四层存储单元的固态硬盘,但受限于四层存储单元的固态硬盘在性能以及成本开销的局限性,从而导致能够使用四层存储单元的固态硬盘的应用场景受限,介质模式不局限于单层介质存储单元的介质模式至四层存储单元的介质模式,可以是多层存储单元的介质模式,例如每个存储单元存储5比特数据的五层存储单元的介质模式。
在一些实施例中,透明压缩是指在硬盘内的数据路径上进行压缩,即主机端将原始数据直接写入硬盘,硬盘内部的压缩引擎对数据进行压缩后再写入存储介质,在主机端进行数据读取时,硬盘首先从存储介质中读取压缩后的数据,然后由硬盘内的解压缩引擎进行解压缩后,再返回给主机端,在透明压缩中,数据的压缩和解压缩过程对于主机端是完全透明的,参加图6,图6是本申请实施例提供的存储设备的控制方法的压缩示意图,下面以2:1的数据压缩率为例(数据压缩前是压缩后的2倍)进行说明:一个4千字节的逻辑数据块,经过硬盘内的透明压缩之后,大小变为2千字节,即逻辑空间的4千字节数据只占用了物理空间的2千字节,从而在同等逻辑空间占用的前提下,具有透明压缩功能的硬盘只占用了相当于一半逻辑空间的物理空间,随着数据压缩率的提升,物理空间节省的效果会更加明显。
在一些实施例中,冷数据的读取频率低,需要的介质性能低,寿命要求低,只要容量足够就行,而热数据的读取频率高,需要的介质性能高,寿命要求高,通常热数据的数据量相对较小,需要的容量也相应较小;冷数据可以存储在QLC介质模式(低性能介质模式),热数据可以存储在SLC介质模式(高性能介质模式),动态平衡性能是基于高性能(SLC)与低性能(QLC)模式之间的转换实现的,也可以扩展为在PLC固态硬盘,高性能介质模式也不仅限于SLC介质模式,也可以是其它模式,高性能介质模式和低性能介质模式是相对概念,高低性能介质模式组合包括TLC介质模式/SLC介质模式,QLC介质模式/SLC介质模式,QLC介质模式/MLC介质模式等等。
在一些实施例中,参见图7A,图7A是本申请实施例提供的存储设备的控制方法的逻辑示意图,在步骤201中,计算上一个监控周期内数据的数据压缩率,在步骤202中,对数据的数据压缩率以及SSD的扩容率进行比较,当数据压缩率大于SSD的扩容率时,执行步骤203,在步骤203中,计算由低性能介质模式转换为高性能介质模式的存储空间大小,即所需的低性能介质模式的存储空间大小,在步骤205中,判断低性能介质模式的空闲存储空间是否不小于所需的低性能介质模式的存储空间大小,当低性能介质模式的空闲存储空间不小于所需的低性能介质模式的存储空间大小时,执行步骤209,在步骤209中,将相应的低性能介质模式的空闲存储空间标记为高性能介质模式,当低性能介质模式的空闲存储空间小于所需的低性能介质模式的存储空间大小时,执行步骤207,在步骤207中,对低性能介质模式的存储空间进行垃圾回收处理,在步骤209中,将相应的低性能介质模式的空闲存储空间标记为高性能介质模式,当数据压缩率小于SSD的扩容率时,执行步骤204,计算由高性能介质模式转换为低性能介质模式的存储空间大小,即所需的高性能介质模式的存储空间大小,在步骤206中,判断高性能介质模式的空闲存储空间是否不小于所需的高性能介质模式的存储空间大小,当高性能介质模式的空闲存储空间不小于所需的高性能介质模式的存储空间大小时,执行步骤210,在步骤210中,将相应的高性能介质模式的空闲存储空间标记为低性能介质模式,当高性能介质模式的空闲存储空间小于所需的高性能介质模式的存储空间大小时,执行步骤208,在步骤208中,对高性能介质模式的存储空间进行垃圾回收处理,在步骤210中,将相应的高性能介质模式的空闲存储空间标记为低性能介质模式。
在一些实施例中,对具有透明压缩功能的固态硬盘的性能与容量进行动态平衡的技术方案如下:固态硬盘的驱动包含监控模块,监控模块负责周期性地监控写入数据的可压缩率,固态硬盘的驱动还包含检测模块,检测模块用于判断数据的冷热程度,包括被读取数据以及被写入数据的冷热程度,监控模块的监控周期以时间为周期,例如,每10分钟为一个周期,监控模块的监控周期还可以以写入数据量为周期,例如,每写入100GB为一个周期。
当一个监控周期内写入数据的压缩率大于固态硬盘的扩容率时,固态硬盘的驱动可以将部分NAND空间由低性能介质模式转换为高性能介质模式,其中,高性能介质模式为存储密度较低、访问速度更快的模式,低性能介质模式为存储密度较高、访问速度较慢的模式,由低性能介质模式转换得到的高性能介质模式的存储空间大小为(C1-C2)/R,计算得到的是高性能介质模式的存储空间大小,其中,C1为当前监控周期内写入的数据在相应固态硬盘扩容率下可以占用的物理空间,C2为当前监控周期内写入数据在固态硬盘中实际占用的物理空间,R为低性能介质模式与高性能介质模式的密度比,例如,QLC NAND可以工作在QLC介质模式(低性能介质模式),QLC NAND还可以工作在SLC模式(高性能介质模式),对于逻辑空间扩容率为1的QLC固态硬盘(即固态硬盘的逻辑容量等于物理容量),若一个监控周期对应100GB的数据,且数据的压缩率为2:1(即100GB数据被压缩为50GB),则此时可以由QLC模式转换为SLC模式,转换得到的SLC模式的存储空间容量为(100-50)/4=12.5GB,所需要的QLC模式的存储空间容量为50GB,分母中的4表示QLC模式与SL C模式的存储密度比为4,对于逻辑扩容率为2的QLC固态硬盘(即固态硬盘的逻辑容量等于物理容量的2倍),若写入了100GB的数据,且数据的压缩率为4:1(即100GB数据被压缩为25GB),则此时由QLC模式转换为SLC模式,转换得到的SLC模式的存储空间容量为(100/2-100/4)/4=6.25GB,所需要的QLC模式的存储空间容量为25GB。
在一些实施例中,在由低性能介质模式转换为高性能介质模式的过程中,若低性能介质模式的空闲存储空间足够,则可以直接将低性能介质模式的空闲存储空间中相应转换空间大小的存储空间从低性能介质模式转换为高性能介质模式,例如,将25GB的低性能介质模式的空闲存储空间转换成6.25GB的高性能介质模式,若低性能介质模式的空闲存储空间不足,则需要对低性能介质模式的部分空间进行垃圾回收,回收结束后将相应转换空间大小的空闲存储空间转换为高性能介质模式。
在一些实施例中,当一个监控周期内写入数据的数据压缩率小于固态硬盘扩容率时,驱动将部分NAND空间由SLC介质模式转换为QLC介质模式,转换得到的QLC介质模式的存储空间的大小为(C2-C1)/R,其中,C1为当前监控周期内写入的数据在相应固态硬盘扩容率下可以占用的物理空间,C2为当前监控周期内写入的数据在固态硬盘中实际占用的物理空间,R为低性能介质模式与高性能介质模式的存储密度比,以逻辑扩容率为2的QLC固态硬盘为例,若一个监控周期对应100GB数据且数据的压缩率为1.5,则将SLC介质模式转换为QLC介质模式,转换得到的QLC介质模式的存储空间的大小为(100/1.5-100/2)/4≈4.2GB,所需要的SLC模式的存储空间容量为1.05GB。
在一些实施例中,在由高性能介质模式转换为低性能介质模式的过程中,若高性能介质模式的空闲存储空间足够,则可以直接将高性能介质模式的空闲存储空间中相应转换空间大小的存储空间从高性能介质模式转换为低性能介质模式,若高性能介质模式的空闲存储空间不足,则需要对高性能介质模式的部分空间进行垃圾回收,回收结束后将高性能介质模式的空闲存储空间中相应转换空间大小的存储空间转换为低性能介质模式。
在一些实施例中,参见图7B,图7B是本申请实施例提供的存储设备的控制方法的逻辑示意图,在步骤301中,接收数据读取的逻辑区块地址,在步骤302中,判断待读取的数据是否为热数据,当待读取的数据不为热数据时,执行步骤305,在步骤305中,直接读取数据并返回至主机端,当待读取的数据为热数据时,执行步骤303,在步骤303中,判断数据是否处于高性能介质模式的存储空间,当数据处于高性能介质模式的存储空间时,执行步骤305,在步骤305中,直接读取数据并返回至主机端,当数据未处于高性能介质模式的存储空间时,在步骤304中,判断高性能介质模式的空闲存储空间是否大于空闲存储空间阈值,当高性能介质模式的空闲存储空间不大于空闲存储空间阈值时,执行步骤305,在步骤305中,直接读取数据并返回至主机端,当高性能介质模式的空闲存储空间大于空闲存储空间阈值时,执行步骤306,在步骤306中,读取数据返回至主机端,并将数据写入高性能介质模式的存储空间。
在一些实施例中,对于数据的读取,由判断模块根据数据逻辑地址的访问频率判断其是否属于热数据(大于等于热数据的访问频率阈值),如果不属于热数据,直接读取相应数据并返回给主机端,如果属于热数据,则判断该数据是否处于高性能介质模式空间,如果处于高性能介质模式的存储空间,则直接返回数据给主机端,如果不处于高性能介质模式的存储空间,则在返回数据的同时继续判断高性能介质模式空间是否有足够空闲,若有足够的高性能介质模式的空闲存储空间,则将该需要读取的数据写入高性能介质模式的空闲存储空间。
在一些实施例中,对于数据的写入,若高性能介质模式空间有空闲,则将待写入的数据直接写入高性能介质模式的存储空间,否则将该数据写入低性能介质模式的存储空间。
在一些实施例中,参见图7C,图7C是本申请实施例提供的存储设备的控制方法的逻辑示意图,在步骤401中,选择进行垃圾回收的物理区间,在步骤402中,遍历物理区间内的数据,在步骤403中,判断数据是否为有效数据,当数据为无效数据时,执行步骤405,在步骤405中,丢弃无效数据,当数据为有效数据时,执行步骤404,在步骤404中,判断数据是否为热数据,当数据不为热数据时,执行步骤406,在步骤406中,将数据写入低性能介质模式的存储空间,当数据为热数据时,执行步骤407,在步骤407中,判断高性能介质模式的空闲存储空间是否小于空闲存储空间阈值,当高性能介质模式的空闲存储空间小于空闲存储空间阈值时,执行步骤408,在步骤408中,判断区间遍历是否结束,当区间遍历结束时,执行步骤410,在步骤410中,物理空间回收结束,将回收得到的存储空间标记为空闲存储空间,当高性能介质模式的空闲存储空间不小于空闲存储空间阈值时,执行步骤409,在步骤409中,将数据写入高性能介质模式的空闲存储空间,之后继续执行步骤408,当区间遍历未结束时,继续执行步骤402。
在高性能介质模式的存储空间进行垃圾回收时,对于需要搬移的有效数据,由判断模块根据数据逻辑地址的访问频率判断其是否属于热数据,如果不属于热数据,则将相应的数据写入低性能介质模式的存储空间。如果属于热数据,则继续判断高性能介质模式是否有空闲存储空间,若有高性能介质模式的空闲存储空间,则将相应数据写入高性能介质模式的空闲存储空间,否则写入低性能介质模式的空闲存储空间。
在一些实施例中,在对低性能介质模式的存储空间进行垃圾回收时,对于需要搬移的有效数据,直接写入低性能介质模式的空闲存储空间。
在一些实施例中,利用固态硬盘的驱动周期性地监控源数据的压缩率,同时自动分析数据的冷热度,基于压缩率可以判断当前业务与固态硬盘扩容率的匹配度,进而对介质进行动态转换;进而同一个固态硬盘内可基于实际存储需求自动实现介质模式的转换;基于数据冷热标签,可以将不同数据智能分流到处于不同模式的介质中;进而满足不同业务流数据的性能要求;本申请实施例提供的存储设备的控制方法在保证固态硬盘储容量的前提下,在数据源具有压缩特性的业务场景下,可实现动态调整固态硬盘的NAND介质处于不同的介质模式比例,从而最大化实现介质模式处于高性能介质模式的比例,降低QLC固态硬盘本身性能较低带来的影响,从而可以扩展QLC固态硬盘的应用范围,并引导QLC NAND应用于不同的业务模型。
本申请实施例提供的存储设备的控制方法中,将读取的热数据搬移至高性能介质模式空间,可以提升存在热点数据读取的应用的性能,例如,某个固态硬盘在QLC介质模式下NAND的典型读延时为130微秒,而SLC介质模式下NAND的典型读延时为65微秒,将热数据迁移至SLC介质模式的存储空间,可以降低一半的读延时,将数据直接写入高性能介质模式的存储空间,可以降低数据的写入延时,并提升数据的写入吞吐,从而提升应用在写入时的性能,例如,某个固态硬盘在QLC介质模式下NAND的典型写入延时为2500微秒,而在SLC介质模式下NAND的典型写入延时为216微秒,通过将数据写入SL C介质模式的存储空间,应用在写入的延时和吞吐上都会有成倍的提升。
下面继续说明本申请实施例提供的存储设备的控制装置331的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在处理器310的存储设备的控制装置331中的软件模块可以包括:获取模块3311,用于获取存储设备的扩容率;获取模块3311,用于获取存储设备中对应目标业务的业务数据的数据压缩率确定模块3312,用于根据数据压缩率与扩容率的比较结果,确定存储设备的空闲存储空间的介质模式转换方式;转换模块3313,用于根据介质模式转换方式对空闲存储空间的介质模式进行转换处理;响应模块3314,用于基于空闲存储空间在进行转换处理后所处的介质模式,响应目标业务的数据操作请求。
在一些实施例中,获取模块3311,还用于:执行以下处理中任意一种:在目标业务的至少一个历史时间周期内,获取存储设备中对应目标业务的业务数据的数据压缩率;在目标业务的至少一个历史数据写入量周期内,获取存储设备对应目标业务的业务数据的数据压缩率。
在一些实施例中,确定模块3312,还用于:当数据压缩率大于扩容率时,将从第一介质模式转换至第二介质模式确定为存储设备的介质模式转换方式;当数据压缩率小于扩容率时,将从第二介质模式转换至第一介质模式确定为存储设备的介质模式转换方式;其中,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度。
在一些实施例中,当介质模式转换方式为从第一介质模式转换至第二介质模式,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度时,转换模块3313,还用于:根据数据压缩率以及扩容率,确定用于进行转换处理所需要的第一空闲存储空间容量;其中,第一空闲存储空间容量为第一空闲存储空间的容量,第一空闲存储空间为处于第一介质模式的、且用于进行转换处理的空闲存储空间;将第一空闲存储空间标记为第二介质模式。
在一些实施例中,转换模块3313,还用于:当第一空闲存储空间容量不大于处于第一介质模式的空闲存储空间容量时,将第一空闲存储空间标记为第二介质模式;当第一空闲存储空间容量大于处于第一介质模式的空闲存储空间容量时,对第一介质模式的存储空间进行回收处理,其中,经过回收处理后更新的第一空闲存储空间容量不大于处于第一介质模式的空闲存储空间容量,将经过回收处理后更新的第一空闲存储空间标记为第二介质模式。
在一些实施例中,转换模块3313,还用于:将业务数据的数据量与扩容率的比值确定为业务数据的理论存储空间值;将业务数据的数据量与数据压缩率的比值确定业务数据的实际存储空间值;确定与理论存储空间值正相关、且与实际存储空间值负相关的第一空闲存储空间容量。
在一些实施例中,当介质模式转换方式为从第二介质模式转换至第一介质模式,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度时,转换模块3313,还用于:根据数据压缩率以及扩容率,确定用于进行转换处理所需要的第二空闲存储空间容量;其中,第二空闲存储空间容量为第二空闲存储空间的容量,第二空闲存储空间为处于第二介质模式的、且用于进行转换的空闲存储空间;将第二空闲存储空间标记为第一介质模式。
在一些实施例中,转换模块3313,还用于:当第二空闲存储空间容量不大于处于第二介质模式的空闲存储空间容量时,将第二空闲存储空间标记为第一介质模式;当第二空闲存储空间容量大于处于第二介质模式的空闲存储空间容量时,对第二介质模式的存储空间进行回收处理,其中,经过回收处理后更新的第二空闲存储空间容量不大于处于第二介质模式的空闲存储空间容量,将经过回收处理后更新的第二介质模式中第二存储空间值的空闲存储空间标记为第一介质模式。
在一些实施例中,转换模块3313,还用于:将业务数据的数据量与扩容率的比值确定为业务数据的理论存储空间值;将业务数据的数据量与数据压缩率的比值确定业务数据的实际存储空间值;确定第一介质模式的存储密度与第二介质模式的存储密度的比值;确定与实际存储空间值正相关、与理论存储空间值负相关、且与比值负相关的第二空闲存储空间容量。
在一些实施例中,转换模块3313,还用于:确定占用第二介质模式的存储空间的待回收数据;当待回收数据属于无效数据时,将待回收数据所占据的存储空间标记为空闲存储空间,并将待回收数据进行丢弃处理;当待回收数据属于有效数据,且待回收数据的访问频率低于访问频率阈值时,将待回收数据写入第一介质模式的空闲存储空间;当待回收数据属于有效数据、待回收数据的访问频率不低于访问频率阈值、且第二介质模式不具有空闲存储空间时,将待回收数据写入处于第一介质模式的空闲存储空间。
在一些实施例中,当数据操作请求为数据读取请求时,响应模块3314,还用于:确定目标业务的目标读取数据的访问频率以及目标存储空间所处的介质模式,其中,目标存储空间用于存储数据读取请求的目标读取数据;当介质模式为第一介质模式时,获取第二介质模式的空闲存储空间容量;当目标读取数据的访问频率大于访问频率阈值、介质模式为第一介质模式、且第二介质模式的空闲存储空间容量不小于空闲存储空间阈值,将数据读取请求的目标读取数据写入第二介质模式的空闲存储空间;其中,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度。
在一些实施例中,当数据操作请求为数据写入请求时,响应模块3314,还用于:当存储设备中存在处于第二介质模式的空闲存储空间时,按照对应第二介质模式的写入规则,将目标业务的目标写入数据写入存储设备中处于第二介质模式的空闲存储空间;当存储设备中不存在处于第二介质模式的空闲存储空间时,按照对应第一介质模式的写入规则,将目标业务的目标写入数据写入存储设备中处于第一介质模式的空闲存储空间;其中,第一介质模式的性能低于第二介质模式的性能,且第一介质模式的存储密度高于第二介质模式的存储密度。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。存储设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该存储设备执行本申请实施例上述的存储设备的控制方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的存储设备的控制方法,例如,如图4A-4C示出的存储设备的控制方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个存储设备上执行,或者在位于一个地点的多个存储设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个存储设备上执行。
综上所述,本申请实施例根据目标业务的数据压缩率与扩容率的比较结果,确定存储设备的空闲存储空间的介质模式转换方式,并对空闲存储空间的介质模式进行转换处理,实现了对介质模式进行基于目标业务的动态转换的过程,因而在基于空闲存储空间在进行转换处理后所处的介质模式,响应目标业务的数据操作请求时,可以以通过与目标业务匹配的方式进行相应,有效提高存储设备的整体工作性能。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种存储设备的控制方法,其特征在于,包括:
获取所述存储设备的扩容率;
获取所述存储设备中对应目标业务的业务数据的数据压缩率;
根据所述数据压缩率与所述扩容率的比较结果,确定所述存储设备的空闲存储空间的介质模式转换方式;
根据所述介质模式转换方式对所述空闲存储空间的介质模式进行转换处理;
基于所述空闲存储空间在进行所述转换处理后所处的介质模式,响应对应所述目标业务的数据操作请求。
2.根据权利要求1所述的方法,其特征在于,所述获取所述存储设备中对应目标业务的业务数据的数据压缩率,包括:
执行以下处理中任意一种:
在所述目标业务的至少一个历史时间周期内,获取所述存储设备中对应所述目标业务的业务数据的数据压缩率;
在所述目标业务的至少一个历史数据写入量周期内,获取所述存储设备对应所述目标业务的业务数据的数据压缩率。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据压缩率与所述扩容率的比较结果,确定所述存储设备的空闲存储空间的介质模式转换方式,包括:
当所述数据压缩率大于所述扩容率时,将从第一介质模式转换至第二介质模式确定为所述存储设备的介质模式转换方式;
当所述数据压缩率小于所述扩容率时,将从第二介质模式转换至第一介质模式确定为所述存储设备的介质模式转换方式;
其中,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度。
4.根据权利要求1所述的方法,其特征在于,当所述介质模式转换方式为从第一介质模式转换至第二介质模式,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度时,所述根据所述介质模式转换方式对所述空闲存储空间的介质模式进行转换处理,包括:
根据所述数据压缩率以及所述扩容率,确定用于进行所述转换处理所需要的第一空闲存储空间容量;
其中,所述第一空闲存储空间容量为第一空闲存储空间的容量,所述第一空闲存储空间为处于所述第一介质模式的、且用于进行所述转换处理的空闲存储空间;
将所述第一空闲存储空间标记为所述第二介质模式。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一空闲存储空间标记为所述第二介质模式,包括:
当所述第一空闲存储空间容量不大于处于所述第一介质模式的空闲存储空间容量时,将所述第一空闲存储空间标记为所述第二介质模式;
当所述第一空闲存储空间容量大于处于所述第一介质模式的空闲存储空间容量时,对所述第一介质模式的存储空间进行回收处理,其中,经过回收处理后更新的所述第一空闲存储空间容量不大于处于所述第一介质模式的空闲存储空间容量,将经过回收处理后更新的所述第一空闲存储空间标记为所述第二介质模式。
6.根据权利要求4所述的方法,其特征在于,所述根据所述数据压缩率以及所述扩容率,确定用于执行所述介质模式转换处理所需要的第一空闲存储空间容量,包括:
将所述业务数据的数据量与所述扩容率的比值确定为所述业务数据的理论存储空间值;
将所述业务数据的数据量与所述数据压缩率的比值确定所述业务数据的实际存储空间值;
确定与所述理论存储空间值正相关、且与所述实际存储空间值负相关的第一空闲存储空间容量。
7.根据权利要求1所述的方法,其特征在于,当所述介质模式转换方式为从第二介质模式转换至第一介质模式,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度时,所述根据所述介质模式转换方式对所述空闲存储空间的介质模式进行转换处理,包括:
根据所述数据压缩率以及所述扩容率,确定用于进行所述转换处理所需要的第二空闲存储空间容量;
其中,所述第二空闲存储空间容量为第二空闲存储空间的容量,所述第二空闲存储空间为处于所述第二介质模式的、且用于进行所述转换的空闲存储空间;
将所述第二空闲存储空间标记为所述第一介质模式。
8.根据权利要求7所述的方法,其特征在于,所述将所述第二空闲存储空间标记为所述第一介质模式,包括:
当所述第二空闲存储空间容量不大于处于所述第二介质模式的空闲存储空间容量时,将所述第二空闲存储空间标记为所述第一介质模式;
当所述第二空闲存储空间容量大于处于所述第二介质模式的空闲存储空间容量时,对所述第二介质模式的存储空间进行回收处理,其中,经过回收处理后更新的所述第二空闲存储空间容量不大于处于所述第二介质模式的空闲存储空间容量,将经过回收处理后更新的所述第二介质模式中第二存储空间值的空闲存储空间标记为所述第一介质模式。
9.根据权利要求7所述的方法,其特征在于,所述根据所述数据压缩率以及所述扩容率,确定用于进行所述转换处理所需要的第二空闲存储空间容量,包括:
将所述业务数据的数据量与所述扩容率的比值确定为所述业务数据的理论存储空间值;
将所述业务数据的数据量与所述数据压缩率的比值确定所述业务数据的实际存储空间值;
确定所述第一介质模式的存储密度与所述第二介质模式的存储密度的比值;
确定与所述实际存储空间值正相关、与所述理论存储空间值负相关、且与所述比值负相关的第二空闲存储空间容量。
10.根据权利要求8所述的方法,其特征在于,所述对所述第二介质模式的存储空间进行回收处理,包括:
确定占用所述第二介质模式的存储空间的待回收数据;
当所述待回收数据属于无效数据时,将所述待回收数据所占据的存储空间标记为空闲存储空间,并将所述待回收数据进行丢弃处理;
当所述待回收数据属于有效数据,且所述待回收数据的访问频率低于访问频率阈值时,将所述待回收数据写入所述第一介质模式的空闲存储空间;
当所述待回收数据属于有效数据、所述待回收数据的访问频率不低于访问频率阈值、且所述第二介质模式不具有空闲存储空间时,将所述待回收数据写入处于所述第一介质模式的空闲存储空间。
11.根据权利要求1所述的方法,其特征在于,当所述数据操作请求为数据读取请求时,所述基于所述空闲存储空间在进行所述转换处理后所处的介质模式,响应对应所述目标业务的数据操作请求,包括:
确定所述目标业务的目标读取数据的访问频率以及目标存储空间所处的介质模式,其中,所述目标存储空间用于存储所述数据读取请求的所述目标读取数据;
当所述介质模式为第一介质模式时,获取第二介质模式的空闲存储空间容量;
当所述目标读取数据的访问频率大于访问频率阈值、所述介质模式为第一介质模式、且第二介质模式的空闲存储空间容量不小于空闲存储空间阈值,将所述数据读取请求的目标读取数据写入所述第二介质模式的空闲存储空间;
其中,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度。
12.根据权利要求1所述的方法,其特征在于,当所述数据操作请求为数据写入请求时,所述基于所述空闲存储空间在进行所述转换处理后所处的介质模式,响应对应所述目标业务的数据操作请求,包括:
当所述存储设备中存在处于第二介质模式的空闲存储空间时,按照对应所述第二介质模式的写入规则,将所述目标业务的目标写入数据写入所述存储设备中处于所述第二介质模式的空闲存储空间;
当所述存储设备中不存在处于第二介质模式的空闲存储空间时,按照对应第一介质模式的写入规则,将所述目标业务的目标写入数据写入所述存储设备中处于所述第一介质模式的空闲存储空间;
其中,所述第一介质模式的性能低于所述第二介质模式的性能,且所述第一介质模式的存储密度高于所述第二介质模式的存储密度。
13.一种存储设备的控制装置,其特征在于,包括:
获取模块,用于获取所述存储设备的扩容率;
所述获取模块,用于获取所述存储设备中对应目标业务的业务数据的数据压缩率;
确定模块,用于根据所述数据压缩率与所述扩容率的比较结果,确定所述存储设备的空闲存储空间的介质模式转换方式;
转换模块,用于根据所述介质模式转换方式对所述空闲存储空间的介质模式进行转换处理;
响应模块,用于基于所述空闲存储空间在进行所述转换处理后所处的介质模式,响应所述目标业务的数据操作请求。
14.一种存储设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的存储设备的控制方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至12任一项所述的存储设备的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110988418.8A CN115729437A (zh) | 2021-08-26 | 2021-08-26 | 存储设备的控制方法、装置及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110988418.8A CN115729437A (zh) | 2021-08-26 | 2021-08-26 | 存储设备的控制方法、装置及存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115729437A true CN115729437A (zh) | 2023-03-03 |
Family
ID=85289970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110988418.8A Pending CN115729437A (zh) | 2021-08-26 | 2021-08-26 | 存储设备的控制方法、装置及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115729437A (zh) |
-
2021
- 2021-08-26 CN CN202110988418.8A patent/CN115729437A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107422983B (zh) | 用于租户感知存储共享平台的方法和装置 | |
AU2008308549B2 (en) | Solid state drive optimizer | |
WO2022017002A1 (zh) | 一种垃圾回收方法及装置 | |
CN111581126B (zh) | 一种基于ssd的日志数据保存方法、装置、设备和介质 | |
US9569381B2 (en) | Scheduler for memory | |
US10324661B2 (en) | Storage device and operating method thereof | |
CN114371813A (zh) | 写入流优先级的识别和分类 | |
CN105094709A (zh) | 一种固态盘存储系统的动态数据压缩方法 | |
KR20200110547A (ko) | 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치 | |
CN113419975B (zh) | 存储器的控制系统及地址映射方法和地址映射装置 | |
US11650915B2 (en) | Temperature-based data storage processing | |
CN115756312A (zh) | 数据访问系统、数据访问方法和存储介质 | |
KR20110124044A (ko) | 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버 | |
US20220129206A1 (en) | Resource allocation in memory systems based on operation modes | |
JP2023501416A (ja) | ソリッドステート・ストレージ・デバイス用メモリ・コントローラ | |
CN115421651A (zh) | 固态硬盘的数据处理方法、固态硬盘、电子设备及介质 | |
US20220100406A1 (en) | Hard disk control method and related device | |
CN103514140B (zh) | 用于实现可重构系统中配置信息多发射的重构控制器 | |
CN115857790A (zh) | 一种存储设备、数据存储方法及存储系统 | |
CN117472285A (zh) | 固态硬盘用智能运行加速方法、计算机设备及存储介质 | |
CN115729437A (zh) | 存储设备的控制方法、装置及存储设备 | |
CN113467699B (zh) | 一种提升可用存储容量方法及装置 | |
CN117348789A (zh) | 数据访问方法、存储设备、硬盘、存储系统及存储介质 | |
CN115729439A (zh) | 数据管理方法、装置及固态硬盘 | |
CN117555483A (zh) | 降低ssd功耗的方法及系统 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40083837 Country of ref document: HK |