CN118098314A - 一种存储设备管理方法及装置 - Google Patents

一种存储设备管理方法及装置 Download PDF

Info

Publication number
CN118098314A
CN118098314A CN202211491614.5A CN202211491614A CN118098314A CN 118098314 A CN118098314 A CN 118098314A CN 202211491614 A CN202211491614 A CN 202211491614A CN 118098314 A CN118098314 A CN 118098314A
Authority
CN
China
Prior art keywords
storage device
background management
management task
control command
data
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
Application number
CN202211491614.5A
Other languages
English (en)
Inventor
黄恩走
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211491614.5A priority Critical patent/CN118098314A/zh
Publication of CN118098314A publication Critical patent/CN118098314A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种存储设备管理方法及装置。其中方法为:主机设备获取来自存储设备的通知消息,通知消息指示主机设备存在待控制的后台管理任务。后台管理任务为在存储设备上执行的任务,但存储设备并不会直接执行后台管理任务。而是主机设备确定存储设备的IO服务状态满足设定调度策略时,主机设备才向存储设备发送后台管理任务的第一控制命令,而设定调度策略是基于设定QoS要求得到的。通过host调度存储设备的后台任务及其产生的后台IO命令,减少存储设备后台IO命令和前台IO命令冲突的概率,从而提升存储设备的QoS和可用性。

Description

一种存储设备管理方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种存储设备管理方法及装置。
背景技术
存储设备可以存储主机设备所需要的数据,且数据可以被主机设备读取。存储设备由主控制器和存储介质构成。举例来说,固态硬盘(solid state disk,SSD)可以由SSD主控制器和多个闪存颗粒构成。主控制器可以处理来自主机设备的输入/输出(input/output,IO)请求,也可以实现存储设备的后台管理功能,例如可以实现数据巡检功能(datascrubbing,DS)等。
然而存储设备在实现后台管理功能时,存储设备的IO服务质量(quality ofservice,QoS)容易受到影响。存储设备存取数据时,会执行IO命令。IO命令可能由来自主机设备的IO请求触发,这类IO命令称为前台IO命令。IO命令也可能由主控制器基于存储设备自身的后台管理功能产生,这类命令称为后台IO命令。前台IO命令和后台IO命令产生可能会冲突,从而影响存储设备的IO QoS,进而影响存储设备的可用性。从而亟需一种能够提升存储设备IO QoS的存储设备管理方法。
发明内容
本申请提供了一种存储设备管理方法及装置,用以解决存储设备的IO QoS受到影响的问题。
第一方面,本申请实施例提供一种存储设备管理方法,该方法可以应用于本申请第二方面提供的存储设备管理装置。该方法包括:
主机设备获取来自存储设备的通知消息,所述通知消息指示所述主机设备存在待控制的后台管理任务,所述后台管理任务为在所述存储设备上执行的任务;所述主机设备若确定所述存储设备的IO服务状态满足设定调度策略,则通过预设接口,向所述存储设备发送所述后台管理任务的第一控制命令,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令用于指示所述存储设备启动所述后台管理任务,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。
上述方法中,存储设备存在待执行的后台管理任务时,并不会直接执行所有的后台管理任务,而是收到主机设备发送的第一控制命令时才通过预设接口执行。并且,由于第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。那么所述存储设备可以通过第一控制指令,确定启动所述后台管理任务。而第一控制命令是主机设备确定存储设备的IO服务状态满足设定调度策略时发送的,设定调度策略是基于设定QoS要求得到。因此,主机设备向所述存储设备发送第一控制命令时,前台IO命令和后台IO命令冲突也会减少,从而提升存储设备的IO QoS。
可选的,所述第一控制命令指示了以下至少一项:所述存储设备中所出现的事件,所述事件与所述后台管理任务映射;所述后台管理任务的至少一个操作命令;所述存储设备执行所述后台管理任务的能力指标;所述存储设备执行所述后台管理任务的运行时长。
上述方式下,通过第一控制命令可以指示上述几项信息中的至少一项,可以指示更具体的信息,能够使得存储设备更准确地执行后台管理任务。
可选的,所述能力指标包括以下至少一项:所述存储设备执行所述后台管理任务的性能指标;所述存储设备运行后台管理任务的频率;所述存储设备运行后台管理任务的可靠性指标。
可选的,所述后台管理任务为:对所述存储设备中出现数据故障的第一存储单元进行数据恢复,所述第一控制命令指示了所述能力指标,所述能力指标包括数据恢复速率。
通过上述方式,在存储设备中第一存储单元出现数据故障时,通过第一控制命令,可以准确地按照指示的数据恢复速率对第一存储单元进行数据恢复。
可选的,所述后台管理任务为:对所述存储设备中可靠性降低的第一存储单元中的错误数据进行纠正,并将所述第一存储单元的所有正确数据搬移到第二存储单元,所述第一控制命令指示了所述能力指标,所述能力指标包括数据搬移速率。
通过上述方式,可以在第一存储单元可靠性降低时,对第一存储单元中的错误数据进行纠正,并将所述第一存储单元的所有正确数据搬移到第二存储单元,通过第一控制命令,可以准确地按照指示的数据搬移速率对第一存储单元进行数据搬移。
可选的,所述后台管理任务为:在所述存储设备温度异常时,对所述存储设备进行温度调整,所述第一控制命令指示了所述能力指标,所述能力指标包括流控速率,所述流控速率用于确定所述存储设备的IO能力限制程度。
通过上述方式,可以在所述存储设备温度异常时,对所述存储设备进行温度调整,从而通过第一控制命令,可以准确地按照指示的流控速率对存储设备的IO能力进行限制。
可选的,所述主机设备若确定所述存储设备的IO服务状态不满足所述设定调度策略,且所述存储设备仍在执行所述后台管理任务,则通过所述预设接口,向所述存储设备发送所述后台管理任务的第二控制命令,所述第二控制命令用于指示所述存储设备停止所述后台管理任务,所述第二控制命令的数据结构符合所述预设接口的规范。
通过上述方式,主机设备可以在存储设备的IO服务状态不满足设定调度策略,且所述存储设备仍在执行所述后台管理任务时,向存储设备发送第二控制命令,及时指示存储设备停止后台管理任务,使得存储设备的IO服务状态更好。
可选的,所述IO服务状态满足所述设定调度策略为:所述存储设备的IO指标满足设定QoS要求,所述IO指标包括以下至少一项:所述主机设备向所述存储设备发送的IO请求数量;所述主机设备从所述存储设备读取数据的读取带宽;所述主机设备向所述存储设备写入数据的写入带宽;所述主机设备从所述存储设备读取数据的读取时延;所述主机设备向所述存储设备写入数据的写入时延。
IO指标可以包括上述几项信息中的至少一项,可以控制IO指标是否满足设定QoS要求的条件,从而能够提升主机设备控制后台管理任务的灵活性。
可选的,所述存储设备的QoS指标满足设定QoS要求,包括:
所述IO请求数量小于第一阈值;和\或所述读取带宽小于第二阈值;和\或所述写入带宽小于第三阈值;和\或所述读取时延大于第一时长;和\或所述写入时延大于第二时长;所述IO指标是基于所述设定调度策略动态变化的。
IO指标满足设定QoS要求包括上述几种情形中的至少一种情形,并且IO指标是基于所述设定调度策略动态变化的,所以能够进一步提升主机设备控制后台管理任务的灵活性。
第二方面,本申请实施例提供另一种存储设备管理方法,该方法可以应用于存储设备,该方法包括:存储设备确定存在待执行的后台管理任务后,生成通知消息,并向主机设备发送所述通知消息,所述通知消息指示所述主机设备存在待控制的所述后台管理任务;
所述存储设备接收来自所述主机设备的所述后台管理任务的第一控制命令后,启动所述后台管理任务,所述存储设备的IO服务状态满足设定调度策略,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。
第三方面,本申请实施例提供一种存储设备管理装置,该装置具有实现上述第一方面的方法实例中的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括确定模块、生成模块和接口模块,这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第四方面,本申请实施例提供一种存储设备,包括:接口单元,用于确定存在待执行的后台管理任务后,生成通知消息,并向主机设备发送所述通知消息,所述通知消息指示所述主机设备存在待控制的所述后台管理任务;处理单元,用于接收来自所述主机设备的所述后台管理任务的第一控制命令后,启动所述后台管理任务,所述存储设备的IO服务状态满足设定调度策略,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。
第五方面,本申请实施例提供一种存储设备管理系统,包括:主机设备和存储设备;所述存储设备,用于确定存在待执行的后台管理任务后,生成通知消息,并向所述主机设备发送所述通知消息,所述通知消息指示所述主机设备存在待控制的所述后台管理任务;所述主机设备,用于若确定所述存储设备的IO服务状态满足设定调度策略,则通过预设接口,向所述存储设备发送所述后台管理任务的第一控制命令,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令用于指示所述存储设备启动所述后台管理任务,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口;所述存储设备,还用于启动所述后台管理任务。
第六方面,本申请实施例提供一种电子设备,所述电子设备包括:一个或多个处理器;一个或多个存储器;其中,所述一个或多个存储器存储有一个或多个计算机指令,当所述一个或多个计算机指令被所述一个或多个处理器执行时,使得所述电子设备执行如上述第一方面或第二方面中任一项所述的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机指令,当计算机指令在计算机上运行时,使得所述计算机执行如上述第一方面或第二方面中任一项所述的方法。
第八方面,本申请实施例提供一种芯片,所述芯片包括处理器,所述处理器与存储器耦合,用于读取并执行所述存储器中存储的软件程序,以实现上述第一方面或第二方面中任一项所述的方法。
第九方面,本申请实施例提供一种计算机程序产品,当计算机读取并执行所述计算机程序产品时,使得计算机执行上述第一方面或第二方面中任一项所述的方法。
以上第二方面到第九方面的有益效果,请参见第一方面的有益效果,不重复赘述。
附图说明
图1为本申请实施例提供的存储设备管理方法适用的一种存储系统的架构示意图;
图2为存储系统中存储设备为固态硬盘时的结构示意图;
图3为存储设备中IO命令的生成示意图;
图4为存储设备中闪存芯片的结构示意图;
图5为存储设备中闪存翻译层的示意图;
图6为本申请实施例提供的一种存储设备管理方法所对应的交互示意图;
图7为本申请实施例一提供的一种存储设备管理方法所对应的场景示意图;
图8为本申请实施例一提供的一种存储设备管理方法所对应的步骤流程示意图;
图9为本申请实施例二提供的一种存储设备管理方法所对应的场景示意图;
图10为本申请实施例二提供的一种存储设备管理方法所对应的步骤流程示意图;
图11为本申请实施例三提供的一种存储设备管理方法所对应的场景示意图;
图12为本申请实施例三提供的一种存储设备管理方法所对应的步骤流程示意图;
图13为本申请实施例提供的一种数据处理装置的结构示意图;
图14为本申请提供的一种存储设备的结构示意图;
图15为本申请提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个或两个以上(包含两个);“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例中的术语多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个。例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C,A和B,A和C,B和C,或A和B和C。同理,对于“至少一种”等描述的理解,也是类似的。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
如图1所示,为本申请实施例提供的一种存储设备管理方法适用的系统。应理解,图1示出的存储系统以分布式存储系统中的一种情形为例说明,本申请实施例提供的存储设备管理方法还可以应用于分布式存储系统中的其它情形,也可以应用于集中式存储系统,在此不进行限定。如图1所示,本申请实施例提供的分布式存储系统包括一个或多个主机设备110(图1中以三个主机设备110为例描述),各个主机设备110之间可以相互通信。主机设备110可以为一种既具有计算能力又具有存储能力的设备,如服务器、计算机设备等。示例型的,ARM服务器或者X86服务器都可以作为这里的主机设备110。
主机设备110可以包括存储设备100,例如主机设备110为计算机设备时,存储设备100为计算机设备中的硬盘。主机设备110也可以和存储设备100分离,例如存储设备100为计算机设备之外的移动硬盘。图1中以主机设备110包括存储设备100为例说明,主机设备110可以至少包括处理器112、内存113、网卡114和存储设备100,处理器112、内存113、网卡114和存储设备100之间通过总线连接。主机设备110中,处理器112和内存113用于提供计算资源。具体地,处理器112是一个中央处理器(central processing unit,CPU),用于处理来自主机设备110外部(应用服务器或者其他主机设备110)的数据访问请求,也用于处理主机设备110内部生成的请求。示例性的,处理器112接收写数据请求时,会将这些写数据请求中的数据暂时保存在内存113中。当内存113中的数据总量达到一定阈值时,处理器112将内存113中存储的数据发送给存储设备100进行持久化存储。除此之外,处理器112还用于数据进行计算或处理,例如元数据管理、重复数据删除、数据压缩、数据校验、虚拟化存储空间以及地址转换等。图1中仅示出了一个CPU 112,在实际应用中,CPU112的数量往往有多个,其中,一个CPU 112又具有一个或多个CPU核。本实施例不对CPU的数量,以及CPU核的数量进行限定。
内存113是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(read only memory,ROM)。然而,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(static randomaccess memory,SRAM)等。另外,内存113还可以是双列直插式存储器模块或双线存储器模块(dual in-linememory module,DIMM),即由DRAM组成的模块,还可以是固态硬盘(solidstate disk,SSD)。实际应用中,存储主机设备110中可配置多个内存113,以及不同类型的内存113。本申请实施例不对内存113的数量和类型进行限定。此外,可对内存113进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,内存113中存储的数据也不会丢失。
网卡114用于与其他应用主机设备110通信。例如接收来自主机设备110外部(应用服务器或者其他主机设备110)的数据访问请求。
存储设备100用于提供存储资源,例如存储数据。它可以是磁盘或者其他类型的存储介质,例如固态硬盘或者叠瓦式磁记录存储设备等。
下面详细介绍存储设备的示例结构,如图2所示,示出了存储设备100为SSD的情形。应理解,图2示出的情形仅是存储设备100的一种示例。SSD包括主控制器(可以简称:主控)101和存储介质。
主控制器101用于运行管理任务,如管理数据存储、维护SSD性能和使用寿命等。主控制器101可以是一种嵌入式微芯片,它包括处理器1011。处理器1011的功能可以理解为命令中心,用于产生SSD的所有操作命令。
操作命令以IO命令为例说明。操作命令可以分为前台IO命令和后台IO命令。如图3所示,主机设备110可以向主控制器101发送IO请求,例如IO请求为请求读取某个存储单元的数据。主控制器101可以基于IO请求生成IO命令,这类由IO请求触发的IO命令,称为前台IO命令。主控制器101也可以基于SSD100的内部管理功能,生成后台管理任务对应的一个或多个IO命令,这类基于内部管理功能所产生的IO命令,称为后台IO命令。例如,处理器1011可通过其中的固件(firmware)来执行后台管理任务,例如数据恢复,垃圾回收(garbagecollection)以及磨损均衡(wear leveling)等后台管理任务。
主控制器101还包括主机接口1012和若干个通道控制器。其中,主机接口1012用于与主机设备通信。这里的主机设备可以指服务器、个人电脑或者阵列控制器等任何设备。通过若干个通道控制器,主控制器101可以并行操作多块闪存芯片102,从而提高底层的带宽。举个例子,假设主控制器101与flash颗粒之间有8个通道,那么主控制器101通过这8通道并行地向8个闪存芯片102读写数据。应理解,图2示出的存储设备以SSD这种情形为例说明,图2示出的存储设备还可以为机械硬盘等其它情形。
图2中以存储介质为闪存(nand flash)为例介绍。如图2所示,nand flash包括多个闪存芯片(die)102,用于存储数据。nand flash的种类有多种,本申请实施例中对nandflash的种类不做限定。举例来说,按照维度划分,可以分为2D nand flash、3D nandflash;按照层数划分,可以分为单层单元(single-level cell,SLC)、多层单元(multi-level cell,MLC)等。
如图4所示,一个die可包含多个区域(plane),多plane是一种能够有效提升性能的设计。如图4所示,一个die内部分成了2个plane,而且2个plane内的block编号是单双交叉的,因此在操作时,可以进行一单一双交叉操作来提升性能。一个plane包含多个块(block),而一个block由若干个页(page)组成。page的尺寸,block的容量,die的容量都可以有不同的规格,本申请实施例不予限定。
主机设备会对SSD中的数据进行访问。例如,主机设备可能往SSD中的block中写入数据,在一个block写满的时候,SSD主控制器101会挑选下一个block继续写入。页是数据写入的最小单位。换言之,主控制器101是以页为粒度往block里面写入数据的。block是数据擦除的最小单位。主控制器101在擦除数据时,每次只能擦除整个block。本申请实施例提供的一种存储设备管理方法所针对的操作对象在此不做限定。例如,操作对象可以为一个或多个page,也可以为一个或多个block,或者一个或多个plane,或者一个或多个die等。
SSD中的数据可以基于逻辑块地址(logical block address,LBA)访问,每个LBA代表着一个扇区(以512B为例),而在SSD内部,主控制器以页(以4KB为例)为单位访问SSD。因此,应用服务器每次写入一个数据时,SSD主控制器会找一个page将该数据写入,page的地址被称为物理块地址(physical block address,PBA)。SSD内部记录了一条LBA到PBA的映射。有了这样一个映射后,下次主机需要读某个LBA的数据时,SSD就知道从闪存芯片的哪个位置把数据读取上来。PBA与LBA之间的映射关系可以采用闪存翻译层(flashtranslation layer,FTL)来记录,主控制器101可以基于FTL对数据进行访问。例如可以记录PBAA与LBAA之间的映射关系。图5是FTL的示意图,FTL位于处理器1011的固件中。如图5所示,主机设备每写入一个新数据,就会产生一个新的映射关系,这个映射关系会加入(第一次写)或者更改(覆盖写)FTL。当读取某个数据时,SSD首先查找FTL中该数据的LBA所对应的PBA,然后再根据PBA读取相应的数据。
下面结合图6,详细描述本申请实施例提供的一种存储设备管理方法。
步骤601:存储设备确定存在待执行的后台管理任务,并生成后台管理任务对应的通知消息。
后台管理任务有多种可能情形,以存储设备为SSD为例,SSD内部的后台管理任务的可能情形以下列情形为例描述。需要说明的是,下列情形只是后台管理任务的几种示例,并不限定于这几种情形。
情形一:待执行的后台管理任务为数据恢复任务。
SSD包括几种类型的存储单元,例如存储单元可能为die,可能为block,可能为page。这些存储单元中可能存在故障的可能性。举例来说,SSD可以基于数据巡检功能,检验存储单元是否出现故障,可以进行周期性检验。存储单元是否出现故障的检验方式在此不进行限定。在这种情形下,SSD的主控制器可以执行数据恢复任务,例如恢复第一存储单元的数据。
情形二:待执行的后台管理任务为数据搬移任务。
SSD中存储单元的数据可靠性可能会降低,可靠性降低的检验方式在此不进行限定。在这种情形下,例如当第一存储单元的可靠性降低时,SSD的主控制器可以执行数据搬移任务,将第一存储单元的正确数据写入第二存储单元。
情形三:待执行的后台管理任务为温度调整任务。
SSD中部件的温度可能会异常,可能是控制器温度异常或存储单元温度异常等。温度异常的检验方式在此不进行限定。举例来说,当第一存储单元大于预设温度阈值时,SSD的主控制器可以执行温度调整任务,从而降低第一存储单元的温度。
步骤602:存储设备向主机设备发送通知消息。
其中,通知消息可以指示所述主机设备存在待控制的后台管理任务,而后台管理任务为在所述存储设备上执行的任务。也就是说,通知消息指示有一个后台管理任务需要在存储设备上执行,但后台管理任务执行的控制权交由主机设备,由主机设备控制后台管理任务的执行时机。
步骤601~步骤602可以由存储设备中的主控制器执行。
步骤603:主机设备若确定所述主机设备的IO服务状态满足设定调度策略,则通过预设接口,向所述存储设备发送所述后台管理任务的第一控制命令。
所述第一控制命令用于指示所述存储设备启动所述后台管理任务。第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。通过预先定义的预设接口,主机设备便能控制存储设备启动后台管理任务。
IO服务状态满足设定调度策略的情形有多种。
举例来说,在一些可能的情形中,I所述设定调度策略是基于设定QoS要求得到,所述第一控制命令用于指示所述存储设备启动所述后台管理任务,IO服务状态可以通过IO指标描述。例如主机设备单位时间(例如1秒)内向存储设备发送的IO请求数量,也可以为主机设备在单位时间内输出带宽的占用率。设定调度策略可以由设定QoS要求得到。例如QoS要求为主机设备单位时间内向存储设备发送的IO请求数量小于预设IO请求阈值,也可以指主机设备在单位时间内输出带宽的占用率小于预设输出带宽占用率。IO指标可以为在单位时间(例如1秒)的实时IO指标,也可以为在一个时段(例如10秒)内单位时间的平均IO指标。举例来说,主机设备的IO指标可以为主机设备在10:00:00~10:00:01内向存储设备发送的IO请求数量,也可以为主机设备在10:00:00~10:00:10这个时段内向存储设备发送的每秒IO请求平均数量。
举例来说,计算主机设备的IO指标所对应的单位时间记为第一单位时间,主机设备向存储设备发送第一控制命令所对应的单位时间记为第二单位时间。第一单位时间可以与第二单位时间相邻,且第二单位时间在第一单位时间之后。举例来说,主机设备确定在10:00:00~10:00:01的前台IO请求数量为30,小于预设IO请求阈值50,可以在相邻的下一秒10:00:01~10:00:02内向存储设备发送所述后台管理任务对应的第一控制命令。主机设备也可以在间隔的几个单位时间之后选取第二单位时间,例如选取10:00:05~10:00:06为第二单位时间,来向存储设备发送所述后台管理任务对应的第一控制命令。
IO服务状态满足设定调度策略的情形还有多种。在一些情形下,设定调度策略可以基于业务需求得到。例如,应用请求的等级可以划分为多个优先级,主机设备收到一个优先级大于预设优先级的应用请求。可以设置优先级大于预设优先级的应用请求时,主机设备便确定存储设备的IO服务状态满足设定调度策略,在此不进行限定。
步骤603可以由主机设备中的处理器执行。
步骤604:存储设备启动后台管理任务。
后台管理任务可以有多种情形,具体可以参照步骤601描述的几种情形。
在一些情形中,主机设备还可能控制存储设备停止后台管理任务,例如执行步骤605~步骤606。
步骤605:所述主机设备若确定所述存储设备的IO服务状态不满足所述设定调度策略,且所述存储设备仍在执行所述后台管理任务,则通过所述预设接口,向所述存储设备发送所述后台管理任务的第二控制命令。
其中,第二控制命令用于指示所述存储设备停止所述后台管理任务,所述第二控制命令的数据结构符合所述预设接口的规范。步骤605为可选的步骤,步骤605可以由主机设备自主执行,也可以由存储设备发送指示消息后被动执行。例如,主机设备在设定时长内未收到后台管理任务的任务执行结果,便确定所述存储设备仍在执行所述后台管理任务且执行异常,便向存储设备发送后台管理任务的第二控制命令。主机设备也可以在收到存储设备的异常执行消息时执行步骤605。
步骤606:存储设备停止后台管理任务。
存储设备在执行后台管理任务完毕后,还可以执行步骤607。
步骤607:存储设备向主机设备发送后台管理任务的任务执行结果。例如,任务执行结果指示了后台管理任务执行成功或失败,还可以指示后台管理任务执行时长等信息,在此不进行限定。
步骤607为可选的步骤,存储设备也可以不向主机设备发送任务执行结果。步骤607可以由存储设备自主执行,也可以由主机设备发送查询消息后被动执行。
步骤605~步骤606可以由存储设备中的主控制器执行。
如图7所示,为本申请实施例一所对应的场景示意图。本申请实施例一对应的场景可以适用于图1示出的存储系统。本申请实施例一所对应的场景示出了主机设备和存储设备。
主机设备上运行了主机(host)IO子系统,具体可以由主机设备中的处理器运行host IO子系统。host IO子系统是主机设备中对接存储设备的功能模块,可以和存储设备进行IO交互。host IO子系统可以有多种类型,例如当主机设备的操作系统为Linux时,hostIO子系统可以为Linux IO子系统。
存储设备以非易失性内存标准(nonvolatile memory express,NVMe)SSD为例说明,在此不进行限定。需要说明的是,NVMe SSD可以采用外围组件互联总线(peripheralcomponent interconnect express,PCIE)物理接口,并采用NVMe交互协议标准与主机设备通信。NVMe SSD包括NVMe接口(interface)模块、存储介质和主控制器。
本申请实施例一中,NVMe interface模块中可以预先定义预设接口,预设接口有其规范。NVMe SSD可以对主机设备开放相应的预设接口。如此,由于预设接口限定了预设规范,主机设备和存储设备都能支持预设接口。主机设备便能向存储设备发送符合预设规范的控制命令,NVMe SSD收到控制命令后也能够理解控制命令的含义,从而可以基于控制命令执行后台管理任务。因此,主机设备能够基于控制命令实现对NVMe SSD的具体控制。NVMeSSD收到来自主机设备的控制命令后,便能执行后台管理任务,例如执行数据恢复任务。
以图7示出的场景为例,NVMe SSD的NVMe interface模块可以包括IO接口和管理(admin)接口,IO接口和admin接口都可以对主机设备开放。IO接口的功能可以包括传输数据;例如,NVMe SSD可以调用IO接口向主机设备发送数据,主机设备可以调用IO接口向NVMeSSD发送数据。admin接口的功能可以包括传输、生成以及解析控制命令。例如,主机设备可以调用admin接口向NVMe SSD发送控制命令,NVMe SSD也可以调用admin接口接收控制命令。预设接口可以包含在NVMe interface模块的IO接口和admin接口中。本申请实施例一中,控制命令可以为数据恢复任务所对应的控制命令。
admin接口定义的命令参数可以包括控制类型、存储单元的标识、事件标识和性能指标等。其中,控制类型可以用于后台管理任务启动或停止,还可以用于指示后台管理任务的类型,例如指示后台管理任务为数据恢复任务。存储单元的标识可以用于指示后台管理任务所应用的存储单元的标识,例如die的序号。事件标识用于指示NVMe SSD发生过的事件,例如数据故障。事件标识与后台管理任务的类型可以预先建立映射关系,例如数据故障与数据恢复任务可以建立映射关系。因此,事件标识也可以用于指示后台管理任务的类型。性能指标用于指示为了执行后台管理任务所需要的性能指标;例如性能指标可以为数据恢复速率,数据恢复速率为指示NVMe SSD对数据恢复任务所应用的存储单元进行数据恢复的速率。性能指标的大小可以基于主机设备的负载信息来确定,例如可以设置性能指标的大小与主机设备的负载信息成正相关。主机设备的负载信息可以有多种描述方式。例如,主机设备的负载信息可以为主机设备的IO负载大小,也可以为IO负载率等,在此不进行限定。下面详细举例描述admin接口的形式:
admin接口的形式可以为bgTask_Control(device,event_no,cmd,tgt_argv[])。需要说明的是,这种API形式的接口是nvme驱动软件基于预设接口的一种接口形式,在此只是一种示例,并不限定admin接口的形式。其中,device为NVMe SSD的设备标识;event_no表示来自NVMe SSD对应的事件号,标识了NVMe SSD内部发生的事件,例如,0x1表示die故障事件,die故障事件可以与对故障die进行数据恢复的数据恢复任务映射,0x表示采用十六进制;cmd是命令字,例如0x1表示启动数据恢复任务,0x2表示停止数据恢复任务;tgt_argv[]是控制命令的命令参数,tgt_argv可以为一个数组,用于描述数据恢复任务的执行参数。其中,tgt_argv[0]为die的标识号(例如die的序号),tgt_argv[1]为die的数据恢复速率。
NVMe interface模块所应用的数据存储在NVMe SSD的存储介质中。下面对NVMeSSD的存储介质进行详细描述,本申请实施例一中,NVMe SSD的存储介质以nand flash为例说明。nand flash颗粒中包含多个die,而一个die中包含多个block,而一个block中包含多个最小读写单元page。这些存储单元均存在故障的可能性。本申请实施例一中数据恢复所对应的存储单元可以为die或block或page,在此不做限定。
本申请实施例一中,如图7所示,NVMe SSD的nand flash颗粒包含4个die。NVMeSSD中的多个存储单元可以采用磁盘阵列(redundant arrays of independent disks,RAID)机制,增强这些存储单元中数据的可靠性。RAID机制的策略有多种,例如RAID机制可以应用在多个nand flash颗粒的相同序号die上。例如,图7中各nand flash中序号2的die可以通过RAID机制组成了一个条带。这样该条带中序号2的die之间就有了数据纠错关系。那么在NVMe SSD中,一旦该条带中的某个序号2的die故障了。例如图7中第一条带的第一die,主控制器就无法再从该第一die中读出正确数据。这样,NVMe SSD便产生了数据恢复任务。数据恢复任务具体可以包括:基于RAID机制,NVMe SSD可以根据第一条带中除了第一die的其他die,恢复出第一die正确的数据,并将第一die正确的数据存储到第二die。数据恢复任务还可以包括:建立第二die与第一条带中除了第一die的其他die之间的数据纠错关系。
上述在NVMe SSD的存储介质应用的数据恢复任务可以由主控制器执行。如图7所示,主控制器包括FTL模块、异常处理模块、数据巡检模块和介质管理模块。
FTL模块用于根据逻辑地址查找映射的物理地址。
数据巡检模块用于对NVMe SSD中存储介质的数据正确性进行检验,数据巡检模块可以周期性检验。
介质管理模块用于检测NVMe SSD中的存储单元是否发生了故障。例如,当存储单元的电路短路,或者从存储单元中读取数据的时延大于设定时延阈值,或者存储单元中的数据错误等情况,均可以确定存储单元发生了故障。
异常处理模块用于执行数据恢复任务。举例来说,当第一条带中第一die出现故障时,SSD控制器读取出第一条带中除了第一die之外的其他die的数据,通过RAID机制计算出第一die的正确数据,并把第一die的正确数据写入第二die中。在该过程中,主机设备并不会感知第一die故障的发生和第一die数据恢复的过程。
主控制器的其他功能模块不一一列出。NVMe interface模块和主控制器在物理上可以合在一起,也可以物理上分离,图7中仅以NVMe interface模块和主控制器在物理上分离为例来示意。
下面结合图8详细描述图7示出的实施例一的场景所对应的步骤流程。如图8所示,本申请实施例一所对应的步骤流程可以如下:
步骤801:NVMe SSD检测到第一die发生故障。
举例来说,第一die的电路短路,或者从第一die中读取数据的时延大于设定时延阈值,或者第一die中的数据读取错误等情况,则确定第一die发生了故障。步骤801可以由NVMe SSD中的介质管理模块执行。
步骤802:NVMe SSD向主机设备发送通知消息。
其中,通知消息用于指示NVMe SSD发生了第一die异常。
步骤802的具体过程可以如下:
NVMe interface模块可以基于NVMe标准,以异步事件方式,向主机设备中的hostIO子系统发送异常事件(通知消息)。上述过程只是步骤802实现的一种示例,本申请实施例一并不限定NVMe SSD向主机设备发送通知消息的方式。另外,步骤802的触发方式也不做限定,例如步骤802可以由NVMe SSD执行完步骤801后主动触发,也可以在接收到来自主机设备的查询消息后被动触发。
步骤803:主机设备通过预设接口,生成数据恢复任务对应的控制命令。
步骤803可以由主机设备的处理器执行。
步骤803的具体过程可以如下:
如图7的相关描述,NVMe SSD已经对host IO子系统开放了预设接口。主机设备和NVMe SSD均具备了理解控制命令的能力,从而主机设备能够通过控制命令来控制NVMe SSD启动后台管理任务。预设接口可以是软件接口也可以是硬件接口。
以软件形式的应用程序接口(application interface,API)为例,Host IO子系统可以根据NVMe SSD上报的通知消息,给预设接口传入命令参数。举例来说,调用接口的具体情形可以为:bgTask_Control(‘/dev/nvme0’,1,1,info),其中info用于描述数据恢复任务的执行参数。例如,info[0]=2,info[1]=8。其中,info[0]=2指示NVMe SSD对序号2的die进行数据恢复,info[1]=8指示数据恢复速率为8,速率的单位在此不做限定,例如8MB/s。数据恢复速率可以设置和NVMe SSD的负载信息呈负相关的关系。另外,数据恢复速率只是性能指标一种情形,还可以设置其它后台IO操作命令的性能指标,例如读取时延阈值,在此不进行限定。
步骤804:主机设备在确定主机设备的IO服务状态满足设定调度策略时,则向NVMeSSD发送控制命令。
IO服务状态满足设定调度策略有多种可能情形。以一种可能情形为例,存储设备的IO指标满足设定QoS要求时,说明NVMe SSD的前台IO命令较少。此时,主机设备向NVMeSSD发送控制命令,存储设备启动后台管理任务,存储设备执行的后台IO命令与前台IO命令的冲突也较少。
步骤805:NVMe SSD根据控制命令,执行数据恢复任务。
步骤805的具体过程可以参照图7的相关描述,在此不再赘述。
步骤806:NVMe SSD向主机设备发送数据恢复任务的任务执行结果。
举例来说,NVMe SSD可以通过NVMe标准中的异步事件机制,向host IO子系统发送事件响应消息(任务执行结果)。
步骤806为可选的步骤,NVMe SSD也可以不上报任务执行结果,例如将任务执行结果存储在存储器中。
通过图8示出的流程,主机设备可以基于本申请实施例一的NVMe SSD,在步骤流程中获得更优的QoS。本申请实施例一中,NVMe SSD把第一die故障后对应的后台管理任务交给Host IO子系统控制。
如图9所示,为本申请实施例二所对应的场景示意图。本申请实施例二对应的场景包括主机设备和存储设备。和本申请实施例一类似,本申请实施例二也以存储设备以NVMeSSD且存储介质是nand flash为例说明,本申请实施例二中NVMe SSD的具体模块可以参照本申请实施例一中的NVMe SSD,在此不再赘述。本申请实施例二中,待执行的后台管理任务可以为数据搬移任务。数据搬移任务可以参照图6示出的步骤流程中情形二的相关描述,在此不再赘述。
图9示出的场景中,NVMe SSD的die中,存在一些可靠性降低的block,那么便需要执行数据搬移任务,对这些可靠性降低的block的数据进行搬移。举例来说,当第一die中出现了第一block可靠性降低时,数据搬移任务可以包括:将第一block的数据恢复为正确数据后,搬移到第二block中。
数据搬移任务的执行流程可以由主控制器执行,本申请实施例二中的主控制器可以为本申请实施例一中的主控制器。如图9所示,主控制器包括FTL模块、异常处理模块、数据巡检模块和介质管理模块。数据搬移任务的执行流程可以由异常处理模块来执行。
下面结合图10详细描述图9示出的实施例二的场景所对应的步骤流程。如图10所示,本申请实施例二所对应的步骤流程如下:
步骤1001:NVMe SSD检测到第一die中第一block可靠性降低。
举例来说,第一block可靠性降低可以指,第一block中的错误比特超过预设数量阈值,也可以指第一block内的数据在预设时长阈值内未被搬移。本申请实施例二不进行限定。
步骤1002:NVMe SSD向主机设备发送通知消息。
其中,通知消息用于指示第一die中第一block可靠性降低。
步骤1002的具体执行过程可以参照步骤802。
步骤1003:主机设备调用预设接口,生成数据搬移任务对应的控制命令。
举例来说,步骤1003所对应的预设接口可以为admin接口。admin接口的形式可以为bgTask_Control(device,event_no,cmd,tgt_argv[]),其接口具体介绍可以参照图8的相关描述。其中,device为NVMe SSD的设备标识;event_no表示来自NVMe SSD对应的事件号,标识了NVMe SSD内部发生的事件,例如,0x3表示block可靠性降低事件,block可靠性降低事件可以与对可靠性降低的block进行数据搬移的数据搬移任务映射,0x表示采用十六进制;cmd是命令字,例如0x3表示启动数据搬移任务,0x4表示停止数据搬移任务;tgt_argv[]是控制命令的命令参数,tgt_argv可以为一个数组,用于描述数据搬移任务的执行参数。其中,tgt_argv[0]为die的标识号(例如die的序号),tgt_argv[1]为die的数据搬移速率。
bgTask_Control(‘/dev/nvme1’,2,1,info),其中info用于描述数据搬移任务的执行参数。例如,info[0]=4,info[1]=5。其中,info[0]=2指示NVMe SSD对序号4的die进行数据搬移,info[1]=8指示数据搬移速率为5,速率的单位在此不做限定,例如5MB/s。数据搬移速率可以设置和NVMe SSD的负载信息呈负相关的关系。另外,数据搬移速率只是性能指标一种情形,还可以设置其它后台IO命令的性能指标,例如读取时延,在此不进行限定。
步骤1004:主机设备在确定主机设备的IO服务状态满足设定调度策略时,则向NVMe SSD发送控制命令。
IO服务状态满足设定调度策略有多种可能情形,具体可以参照步骤804示出的步骤。
步骤1005:NVMe SSD根据控制命令,执行数据搬移任务。
步骤1006:NVMe SSD向主机设备发送数据恢复任务的任务执行结果。
步骤1004~步骤1006中的控制命令内容不同,但具体执行过程是类似的。步骤1004~步骤1006的具体过程可以参照步骤806的相关描述,在此不再赘述。
如图11所示,为本申请实施例三所对应的场景示意图。本申请实施例三对应的场景包括主机设备和存储设备。与本申请实施例一和本申请实施例二类似,本申请实施例三也以存储设备以NVMe SSD且存储介质是nand flash为例说明,本申请实施例三中NVMe SSD的具体模块可以参照本申请实施例一和本申请实施例二中的NVMe SSD,在此不再赘述。本申请实施例三中,待执行的后台管理任务可以为温度调整任务。温度调整任务可以参照图6示出的步骤流程中情形三的相关描述,在此不再赘述。
图11示出的场景中,NVMe SSD的一些部件可能存在温度异常,例如存储单元可能会出现温度异常,控制器等部件也可能会出现温度异常。其中,温度异常可以是温度过高或温度过低。那么NVMe SSD便需要执行温度调整任务,对这些温度异常的存储单元进行温度调整。举例来说,当第一flash颗粒异常时,温度调整任务可以包括:控制SSD的带宽,可以控制SSD的读取带宽和\或写入带宽。例如,第一flash颗粒温度大于预设阈值,降低SSD的写入带宽。
温度调整任务的执行流程可以由主控制器执行。如图11所示,本申请实施例三中,主控制器包括FTL模块、异常处理模块、流控模块和硬件管理模块。
硬件管理模块用于检测NVMe SSD的温度异常,以及通知interface模块。
NVMe interface模块用于向主机设备发送通知消息。
异常处理模块用于获取来自主机设备的控制命令,并向流控模块发送流控信息,流控信息指示了NVMe SSD的读写带宽。
流控模块根据流控信息,控制NVMe SSD的读写带宽。
如图12所示,本申请实施例三所对应的步骤流程可以如下:
步骤1201:NVMe SSD检测到NVMe SSD的温度异常。
举例来说,当NVMe SSD中第一flash颗粒的温度大于预设温度阈值时,确定NVMeSSD的温度异常。
步骤1202:NVMe SSD向主机设备发送通知消息。
其中,通知消息用于指示NVMe SSD中第一flash颗粒温度异常。
步骤1202的具体执行过程可以参照步骤802。
步骤1203:主机设备调用预设接口,生成温度调整任务对应的控制命令。
举例来说,步骤1203所对应的预设接口可以为admin接口。admin接口的形式可以为bgTask_Control(device,event_no,cmd,tgt_argv[]),其接口具体介绍可以参照图8的相关描述。其中,device为NVMe SSD的设备标识;event_no表示来自NVMe SSD对应的事件号,标识了NVMe SSD内部发生的事件,例如,0x4表示NVMe SSD温度异常事件,NVMe SSD温度异常事件可以与对NVMe SSD的进行温度调整的温度调整任务映射,0x表示采用十六进制;cmd是控制类型,例如0x5表示启动温度调整任务,0x6表示停止温度调整任务;tgt_argv[]是控制命令的命令参数,tgt_argv可以为一个数组,用于描述温度调整任务的执行参数。其中,tgt_argv[0]为die的标识号(例如die的序号),tgt_argv[1]为流控速率,流控速率表征了读写带宽的控制程度。
bgTask_Control(‘/dev/nvme2’,3,1,info),其中info用于描述温度调整任务的执行参数。例如,info[0]=4,info[1]=5。其中,info[0]=2指示NVMe SSD对序号4的die进行温度调整,info[1]=8指示温度调整速率为5,速率的单位在此不做限定,例如5MB/s。流控速率可以设置和NVMe SSD的负载信息呈负相关的关系。另外,温度调整速率只是性能指标一种情形,还可以设置其它后台IO命令的性能指标,例如读取时延,在此不进行限定。
步骤1204:主机设备在确定主机设备的IO服务状态满足设定调度策略时,则向NVMe SSD发送控制命令。步骤1204中,IO服务状态满足设定调度策略的情形可以为,主机设备确定NVMe SSD温度过高时,可以下发控制命令给NVMe SSD来进行流控,指示NVMe SSD降温。
步骤1204的具体执行过程可以参照步骤804。
步骤1205:NVMe SSD根据控制命令,执行温度调整任务。
步骤1205的具体过程可以步骤805的相关描述,在此不再赘述。
步骤1206:NVMe SSD向主机设备发送温度调整任务的任务执行结果。
步骤1206的具体过程可以步骤806的相关描述,在此不再赘述。
基于上述内容和相同构思,图13为本申请提供的一种存储设备管理装置的结构示意图。该装置可用于实现上述方法实施例中的方法,因此也能实现上述方法实施例所具备的有益效果。该装置具体包括:
获取模块1301,用于获取来自存储设备的通知消息,所述通知消息指示主机设备存在待控制的后台管理任务,所述后台管理任务为在所述存储设备上执行的任务;
处理模块1302,用于若确定所述存储设备的IO服务状态满足设定调度策略,则通过预设接口,向所述存储设备发送所述后台管理任务的第一控制命令,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令用于指示所述存储设备启动所述后台管理任务,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。
一种可能的设计中,所述第一控制命令指示了以下至少一项:所述存储设备中所出现的事件,所述事件与所述后台管理任务映射;所述后台管理任务的至少一个操作命令;所述存储设备执行所述后台管理任务的能力指标;所述存储设备执行所述后台管理任务的运行时长。
一种可能的设计中,所述IO服务状态满足所述设定调度策略为:所述存储设备的IO指标满足设定QoS要求,所述IO指标包括以下至少一项:所述主机设备向所述存储设备发送的IO请求数量;所述主机设备从所述存储设备读取数据的读取带宽;所述主机设备向所述存储设备写入数据的写入带宽;所述主机设备从所述存储设备读取数据的读取时延;所述主机设备向所述存储设备写入数据的写入时延。
一种可能的设计中,所述存储设备的IO指标满足设定QoS要求,包括:
所述IO请求数量小于第一阈值;和\或所述读取带宽小于第二阈值;和\或所述写入带宽小于第三阈值;和\或所述读取时延大于第一时长;和\或所述写入时延大于第二时长;所述IO指标是基于所述设定调度策略动态变化的。
在一些情形中,所述处理模块1302还可能向所述存储设备发送所述后台管理任务的第二控制命令,具体来说,处理模块1302还用于:
若确定所述存储设备的IO服务状态不满足所述设定调度策略,且所述存储设备仍在执行所述后台管理任务,则通过所述预设接口,向所述存储设备发送所述后台管理任务的第二控制命令,所述第二控制命令用于指示所述存储设备停止所述后台管理任务,所述第二控制命令的数据结构符合所述预设接口的规范。
后台管理任务存在多种可能的情形。
一种可能的情形中,所述后台管理任务为:对所述存储设备中出现数据故障的第一存储单元进行数据恢复,所述第一控制命令指示了所述能力指标,所述能力指标包括数据恢复速率。
另一种可能的情形中,所述后台管理任务为:对所述存储设备中可靠性降低的第一存储单元中的错误数据进行纠正,并将所述第一存储单元的所有正确数据搬移到第二存储单元,所述第一控制命令指示了所述能力指标,所述能力指标包括数据搬移速率。
再一种可能的情形中,所述后台管理任务为:在所述存储设备温度异常时,对所述存储设备进行温度调整,所述第一控制命令指示了所述能力指标,所述能力指标包括流控速率,所述流控速率用于确定所述存储设备的IO能力限制程度。
如图14所示,本申请实施例提供一种存储设备,包括:接口单元1401,用于确定存在待执行的后台管理任务后,生成通知消息,并向主机设备发送所述通知消息,所述通知消息指示所述主机设备存在待控制的所述后台管理任务;处理单元1402,用于接收来自所述主机设备的所述后台管理任务的第一控制命令后,启动所述后台管理任务,所述存储设备的IO服务状态满足设定调度策略,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。
本申请实施例提供一种存储设备管理系统,包括主机设备和存储设备(存储设备可以为硬盘等)。其中,所述存储设备,用于确定存在待执行的后台管理任务后,生成通知消息,并向所述主机设备发送所述通知消息,所述通知消息指示所述主机设备存在待控制的所述后台管理任务;所述主机设备,用于若确定所述存储设备的IO服务状态满足设定调度策略,则通过调用预设接口,向所述存储设备发送所述后台管理任务的第一控制命令,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令用于指示所述存储设备启动所述后台管理任务,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口;所述存储设备,还用于启动所述后台管理任务。
本申请实施例还提供一种电子设备,该电子设备可以具有如图15所示的结构,该电子设备可以是计算机设备,也可以是能够支持计算机设备实现上述方法的芯片或芯片系统。
如图15所示的电子设备1500可以包括至少一个处理器1501,所述至少一个处理器1501用于与存储器耦合,读取并执行所述存储器中的指令以实现本申请实施例提供的传播时延确定方法的步骤。可选的,该电子设备还可以包括通信接口1502,用于支持该电子设备进行信令或者数据的接收或发送。电子设备中的通信接口1502,可用于实现与其他电子设备的进行交互。处理器1501可用于实现电子设备执行如前面任意方法实施例中主机设备或存储设备所实现的步骤。可选的,该电子设备通还可以包括存储器1503,其中存储有计算机指令,存储器1503可以与处理器1501和/或通信接口1502耦合,用于支持处理器1501调用存储器1503中的计算机指令以实现如前面任意方法实施例中主机设备或存储设备所实现的步骤;另外,存储器1503还可以用于存储本申请方法实施例所涉及的数据,例如,用于存储支持通信接口1502实现交互所必须的数据、指令,和/或,用于存储电子设备执行本申请实施例所述方法所必须的配置信息。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机指令,这些计算机指令被计算机调用执行时,可以使得计算机完成上述方法实施例、方法实施例的任意一种可能的设计中所涉及的方法。本申请实施例中,对计算机可读存储介质不做限定,例如,可以是RAM(random-access memory,随机存取存储器)、ROM(read-only memory,只读存储器)等。
本申请实施例还提供一种芯片,该芯片可以包括处理器,所述处理器与存储器耦合,用于读取并执行所述存储器中存储的软件程序,用于完成上述方法实施例、方法实施例的任意一种可能的实现方式中所涉及的方法,其中,“耦合”是指两个部件彼此直接或间接地结合,这种结合可以是固定的或可移动性的。
本申请实施例还提供一种计算机程序产品,当计算机读取并执行所述计算机程序产品时,使得计算机执行上述方法实施例、方法实施例的任意一种可能的实现方式中所涉及的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机指令的形式实现。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SSD)等。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于终端设备中。可选地,处理器和存储媒介也可以设置于终端设备中的不同的部件中。
这些计算机指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

Claims (21)

1.一种存储设备管理方法,其特征在于,包括:
主机设备获取来自存储设备的通知消息,所述通知消息指示所述主机设备存在待控制的后台管理任务,所述后台管理任务为在所述存储设备上执行的任务;
所述主机设备若确定所述存储设备的IO服务状态满足设定调度策略,则通过预设接口,向所述存储设备发送所述后台管理任务的第一控制命令,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令用于指示所述存储设备启动所述后台管理任务,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。
2.如权利要求1所述的方法,其特征在于,所述第一控制命令指示了以下至少一项:所述存储设备中所出现的事件,所述事件与所述后台管理任务映射;所述后台管理任务的至少一个操作命令;所述存储设备执行所述后台管理任务的能力指标;所述存储设备执行所述后台管理任务的运行时长。
3.如权利要求2所述的方法,其特征在于,所述后台管理任务为:对所述存储设备中出现数据故障的第一存储单元进行数据恢复,所述第一控制命令指示了所述能力指标,所述能力指标包括数据恢复速率。
4.如权利要求2所述的方法,其特征在于,所述后台管理任务为:对所述存储设备中可靠性降低的第一存储单元中的错误数据进行纠正,并将所述第一存储单元的所有正确数据搬移到第二存储单元,所述第一控制命令指示了所述能力指标,所述能力指标包括数据搬移速率。
5.如权利要求2所述的方法,其特征在于,所述后台管理任务为:在所述存储设备温度异常时,对所述存储设备进行温度调整,所述第一控制命令指示了所述能力指标,所述能力指标包括流控速率,所述流控速率用于确定所述存储设备的IO能力限制程度。
6.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
所述主机设备若确定所述存储设备的IO服务状态不满足所述设定调度策略,且所述存储设备仍在执行所述后台管理任务,则通过所述预设接口,向所述存储设备发送所述后台管理任务的第二控制命令,所述第二控制命令用于指示所述存储设备停止所述后台管理任务,所述第二控制命令的数据结构符合所述预设接口的规范。
7.如权利要求1至6任一项所述的方法,其特征在于,所述IO服务状态满足所述设定调度策略为:所述存储设备的IO指标满足设定QoS要求,所述IO指标包括以下至少一项:所述主机设备向所述存储设备发送的IO请求数量;所述主机设备从所述存储设备读取数据的读取带宽;所述主机设备向所述存储设备写入数据的写入带宽;所述主机设备从所述存储设备读取数据的读取时延;所述主机设备向所述存储设备写入数据的写入时延。
8.如权利要求7所述的方法,其特征在于,所述存储设备的IO指标满足设定QoS要求,包括:
所述IO请求数量小于第一阈值;和\或所述读取带宽小于第二阈值;和\或所述写入带宽小于第三阈值;和\或所述读取时延大于第一时长;和\或所述写入时延大于第二时长;所述IO指标是基于所述设定调度策略动态变化的。
9.一种存储设备管理方法,其特征在于,包括:
存储设备确定存在待执行的后台管理任务后,生成通知消息,并向主机设备发送所述通知消息,所述通知消息指示所述主机设备存在待控制的所述后台管理任务;
所述存储设备接收来自所述主机设备的所述后台管理任务的第一控制命令后,启动所述后台管理任务,所述存储设备的IO服务状态满足设定调度策略,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。
10.一种存储设备管理装置,其特征在于,包括:
获取模块,用于获取来自存储设备的通知消息,所述通知消息指示主机设备存在待控制的后台管理任务,所述后台管理任务为在所述存储设备上执行的任务;
处理模块,用于若确定所述存储设备的IO服务状态满足设定调度策略,则通过预设接口,向所述存储设备发送所述后台管理任务的第一控制命令,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令用于指示所述存储设备启动所述后台管理任务,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。
11.如权利要求10所述的装置,其特征在于,所述第一控制命令指示了以下至少一项:所述存储设备中所出现的事件,所述事件与所述后台管理任务映射;所述后台管理任务的至少一个操作命令;所述存储设备执行所述后台管理任务的能力指标;所述存储设备执行所述后台管理任务的运行时长。
12.如权利要求11所述的装置,其特征在于,所述后台管理任务为:对所述存储设备中出现数据故障的第一存储单元进行数据恢复,所述第一控制命令指示了所述能力指标,所述能力指标包括数据恢复速率。
13.如权利要求11所述的装置,其特征在于,所述后台管理任务为:对所述存储设备中可靠性降低的第一存储单元中的错误数据进行纠正,并将所述第一存储单元的所有正确数据搬移到第二存储单元,所述第一控制命令指示了所述能力指标,所述能力指标包括数据搬移速率。
14.如权利要求11所述的装置,其特征在于,所述后台管理任务为:在所述存储设备温度异常时,对所述存储设备进行温度调整,所述第一控制命令指示了所述能力指标,所述能力指标包括流控速率,所述流控速率用于确定所述存储设备的IO能力限制程度。
15.如权利要求10至14任一项所述的装置,其特征在于,所述处理模块还用于:
若确定所述存储设备的IO服务状态不满足所述设定调度策略,且所述存储设备仍在执行所述后台管理任务,则通过所述预设接口,向所述存储设备发送所述后台管理任务的第二控制命令,所述第二控制命令用于指示所述存储设备停止所述后台管理任务,所述第二控制命令的数据结构符合所述预设接口的规范。
16.如权利要求10至15任一项所述的装置,其特征在于,所述IO服务状态满足所述设定调度策略为:所述存储设备的IO指标满足设定QoS要求,所述IO指标包括以下至少一项:所述主机设备向所述存储设备发送的IO请求数量;所述主机设备从所述存储设备读取数据的读取带宽;所述主机设备向所述存储设备写入数据的写入带宽;所述主机设备从所述存储设备读取数据的读取时延;所述主机设备向所述存储设备写入数据的写入时延。
17.如权利要求16所述的装置,其特征在于,所述存储设备的IO指标满足设定QoS要求,包括:
所述IO请求数量小于第一阈值;和\或所述读取带宽小于第二阈值;和\或所述写入带宽小于第三阈值;和\或所述读取时延大于第一时长;和\或所述写入时延大于第二时长;所述IO指标是基于所述设定调度策略动态变化的。
18.一种存储设备,其特征在于,包括:
接口单元,用于确定存在待执行的后台管理任务后,生成通知消息,并向主机设备发送所述通知消息,所述通知消息指示所述主机设备存在待控制的所述后台管理任务;
处理单元,用于接收来自所述主机设备的所述后台管理任务的第一控制命令后,启动所述后台管理任务,所述存储设备的IO服务状态满足设定调度策略,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口。
19.一种存储设备管理系统,其特征在于,包括:主机设备和存储设备;
所述存储设备,用于确定存在待执行的后台管理任务后,生成通知消息,并向所述主机设备发送所述通知消息,所述通知消息指示所述主机设备存在待控制的所述后台管理任务;
所述主机设备,用于若确定所述存储设备的IO服务状态满足设定调度策略,则通过预设接口,向所述存储设备发送所述后台管理任务的第一控制命令,所述设定调度策略是基于设定QoS要求得到,所述第一控制命令用于指示所述存储设备启动所述后台管理任务,所述第一控制命令的数据结构符合所述预设接口的规范,所述主机设备和所述存储设备均支持所述预设接口;
所述存储设备,还用于启动所述后台管理任务。
20.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器;一个或多个存储器;其中,所述一个或多个存储器存储有一个或多个计算机指令,当所述一个或多个计算机指令被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1至8或9任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行如权利要求1至8或9任一项所述的方法。
CN202211491614.5A 2022-11-25 2022-11-25 一种存储设备管理方法及装置 Pending CN118098314A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211491614.5A CN118098314A (zh) 2022-11-25 2022-11-25 一种存储设备管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211491614.5A CN118098314A (zh) 2022-11-25 2022-11-25 一种存储设备管理方法及装置

Publications (1)

Publication Number Publication Date
CN118098314A true CN118098314A (zh) 2024-05-28

Family

ID=91159044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211491614.5A Pending CN118098314A (zh) 2022-11-25 2022-11-25 一种存储设备管理方法及装置

Country Status (1)

Country Link
CN (1) CN118098314A (zh)

Similar Documents

Publication Publication Date Title
US10042563B2 (en) Segmenting read requests and interleaving segmented read and write requests to reduce latency and maximize throughput in a flash storage device
US9733840B2 (en) Managing the write performance of an asymmetric memory system
US9875027B2 (en) Data transmitting method, memory control circuit unit and memory storage device
KR101447786B1 (ko) 파워 인터럽트 관리
US8495338B2 (en) Transaction log recovery
US11200003B2 (en) Bounded latency and command non service methods and apparatus
CN111475438B (zh) 提供服务质量的io请求处理方法及其装置
US10803972B2 (en) Flash memory module, storage system, and method of controlling flash memory
US20210240667A1 (en) User device including storage device and trim management method thereof
CN115909538A (zh) 车辆数据收集系统及其使用方法
CN115458013A (zh) 存储装置及其操作方法
CN106874223B (zh) 数据传输方法、存储器存储装置及存储器控制电路单元
US10956245B1 (en) Storage system with host-directed error scanning of solid-state storage devices
US20200004636A1 (en) Data Storage System with Strategic Contention Avoidance
CN118098314A (zh) 一种存储设备管理方法及装置
US20220179724A1 (en) Method for operating storage device and host device, and storage device
KR20150096177A (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
US20230297249A1 (en) Storage system and method of controlling storage system
US11348646B2 (en) Apparatus and method for managing program operation time and write latency in memory system
US20240111426A1 (en) Data Storage Device That Detects and Releases Bottlenecks In Hardware

Legal Events

Date Code Title Description
PB01 Publication