CN108628775A - 一种资源管理的方法和装置 - Google Patents
一种资源管理的方法和装置 Download PDFInfo
- Publication number
- CN108628775A CN108628775A CN201710172275.7A CN201710172275A CN108628775A CN 108628775 A CN108628775 A CN 108628775A CN 201710172275 A CN201710172275 A CN 201710172275A CN 108628775 A CN108628775 A CN 108628775A
- Authority
- CN
- China
- Prior art keywords
- queue
- host
- resource
- controller
- ioq
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种资源管理的方法和装置,能够提高资源的利用率。该方法应用于包括至少一个NVM子系统和至少一个主机的资源管理系统中,该NVM子系统中包括至少一个控制器和多个存储介质,该至少一个主机中的第一主机通过至少一个I/O队列对与第一NVM子系统中的第一控制器通信,该方法包括:资源管理装置监控该至少一个I/O队列对中第一队列的资源使用率,该第一队列的资源使用率用于标识为第一队列分配的存储空间使用的比率,其中,该第一队列包括该至少一个I/O队列对中的任意一个提交队列和/或任意一个完成队列;当监控到该第一队列的资源使用率满足预设条件时,释放该第一队列占用的存储空间。
Description
技术领域
本申请涉及存储领域,特别涉及一种资源管理的方法和装置。
背景技术
非易失性存储器总线(Non-Volatile Memory express,NVMe)是一种新型的接口总线规范。相比于传统的输入输出(input/output,I/O)接口,使用NVMe接口能够减少读写操作的时延。
目前,NVMe在本地存储访问以及远程存储访问中都已广泛应用。在NVMe中,访问设备在请求对存储设备进行读写访问时,例如主机请求对非易失性存储器子系统(NVMsubsystem)进行读写访问,是通过在管理队列对(queue pair)和I/O队列对中发送访问请求消息来实现的,管理队列对用于存储待处理的管理命令和已经完成的管理命令,每个控制器与主机之间仅配置有一个管理队列对,每个管理队列对中包括管理提交队列(adminsubmission queue,ASQ)和管理完成队列(admin completion queue,ACQ)。I/O队列对用于存储待处理的读写访问请求和已完成的读写访问请求,每个主机和控制器之间可配置一个或多个I/O队列对,每个I/O队列对中包括提交队列(submission queue,SQ)和完成队列(completion queue,CQ)。不论是本地访问还是远程访问,主机对不同的NVM子系统的访问、不同主机对同一个NVM子系统的访问,或者同一主机对同一NVM子系统的访问,都可能需要管理队列对和I/O队列对来实现。队列资源可以由主机中的内存(memory)或NVMe固态硬盘(solid state drive,SSD)提供。
然而,系统或者NVMe设备为每个队列分配的资源中存在预留资源。例如,主机申请队列深度为5个单元的SQ,每个单元中可以存储一个访问请求消息,但该SQ当前时刻仅存储一个对存储设备的访问请求消息时,空余4个可存储读写访问请求的队列资源未被使用。而系统中可为队列分配的资源是非常有限的,很有可能出现因大部分或全部的队列资源被预留而导致新增的主机无法申请到队列资源的问题。
发明内容
本申请提供一种资源管理的方法和装置,能够根据当前的资源使用率,及时释放闲置资源,以提高资源的利用率。
第一方面,提供了一种资源管理的方法,应用于包括至少一个非易失性存储器NVM子系统和至少一个主机的资源管理系统中,该NVM子系统中包括至少一个控制器和多个存储介质,所述至少一个控制器中的每个控制器用于管理至少一个存储介质,所述至少一个主机中的第一主机通过至少一个输入输出I/O队列对与所述至少一个NVM子系统中的第一NVM子系统中的第一控制器通信,第一NVM子系统为所述资源管理系统中任意一个NVM子系统,所述I/O队列对中包括至少一个提交队列和至少一个完成队列,每个提交队列用于存储所述第一主机待处理的访问请求消息,每个完成队列用于存储控制器已完成的所述第一主机发送的访问请求消息的结果;该方法包括:资源管理装置可以通过监控所述至少一个I/O队列对中第一队列的资源使用率,其中,第一队列包括所述至少一个I/O队列对中任意一个提交队列SQ和/或任意一个完成队列CQ;第一队列的资源使用率用于标识为所述第一队列分配的存储空间的使用比率;当监控到所述至少一个I/O队列对中的第一队列的资源使用率满足预设条件时,释放所述第一队列占用的存储空间。
因此,本申请提供的资源管理的方法,通过资源管理装置监控配置于主机和控制器之间的I/O队列对中的队列的资源使用率,在队列的资源使用率较低的情况下,释放该队列占用的存储空间,以便其他主机或者NVM子系统能够根据需要使用被释放的存储空间。从而实现对队列资源的管理和优化,通过及时地将闲置的资源释放,大大提供了资源的利用率;同时,也减小了访问延时,提高了用户体验。
需要说明的是,释放第一队列占用的存储空间可以包括:释放第一队列占用的部分存储空间,或者,释放第一队列占用的全部存储空间。释放部分还是全部存储空间可以由资源管理设备预先定义释放策略,也可以根据不同的资源使用率来自行确定。
在本申请中,释放第一队列占用的部分存储空间可以通过减小第一队列的队列深度的方式来实现,释放第一队列占用的全部存储空间可以通过删除第一队列的方式来实现。可以理解的是,释放第一队列占用的存储空间,也就是删除存储空间中已存在的内容,并清除队列将主机在创建队列以前定义好的队列与存储空间的映射关系删除掉,该存储空间不再被占用,可用于其他待创建的队列建立起新的映射关系。
在一种可能的实现方式中,所述第一队列的资源使用率包括在第一预设时段内所述第一主机与所述第一控制器使用所述第一队列传输信息的次数。
可选地,当所述资源管理装置在所述第一预设时段内监控到所述第一主机与所述第一控制器传输信息的次数小于或等于第一预设门限时,减少所述第一队列预先配置的最大队列深度;以及,当所述资源管理装置在所述第一预设时段内监控到所述第一主机与所述第一控制器传输信息的次数小于或等于第二预设门限时,删除所述第一队列;其中,所述第一预设门限大于所述第二预设门限,所述预先配置的最大队列深度用于标识所述第一队列中同一时间内能够存储的访问请求消息的个数的最大值。
因此,可以通过对第一队列传输信息的次数的监控来确定第一队列的资源使用率,并且通过设置不同的预设门限,可以实现对存储空间不同程度的释放。
在另一种可能的实现方式中,所述第一队列的资源使用率包括所述在第二预设时段内所述第一队列的有效队列深度比,所述第一队列的有效队列深度比为所述第一队列的实际使用的队列深度与预先配置的最大队列深度的比值。
可选地,当所述资源管理装置在所述第二预设时段内监控到所述第一队列的有效队列深度比小于或等于第三预设门限时,减少所述第一队列预先配置的最大队列深度;以及,当所述资源管理装置在所述第二预设时段内监控到所述第一队列的有效队列深度比小于或等于第四预设门限时,删除所述第一队列;其中,所述第三预设门限大于所述第四预设门限,所述预先配置的最大队列深度用于标识所述第一队列中同一时间内能够存储的访问请求消息的个数的最大值,所述实际使用的队列深度用于标识所述第一队列中实际存储的访问请求消息的个数。
因此,可以通过对第一队列的有效队列深度比的监控来确定第一队列的资源使用率,并且通过设置不同的预设门限,可以实现对存储空间不同程度的释放。
可选地,若所述第一队列的资源由所述第一主机提供,所述资源管理装置为所述第一主机的处理器;若所述第一队列的资源由所述NVM子系统提供,所述资源管理装置为所述第一控制器。
在本申请中第一队列的存储空间可以由第一主机提供,也可以由NVM子系统提供。该第一队列的存储空间的提供者可以对该第一队列的资源使用率进行监控,以在资源使用率较低时,释放该第一队列占用的存储空间。
可选地,若所述资源管理装置为所述第一控制器,在所述资源管理装置监控所述至少一个I/O队列对中的第一队列的资源使用率之前,第一控制器接收所述第一主机发送的资源监控命令,所述资源监控命令用于通知所述第一控制器监控所述至少一个I/O队列对中每个I/O队列对中第一队列的资源使用率。
可选地,所述第一控制器接收所述第一主机发送的异步事件请求AER消息,所述AER消息中包括用于指示所述资源监控命令的字段。
可选地,在所述释放所述第一队列占用的存储空间之后,所述资源管理装置向第二主机发送资源指示消息,以使得所述第二主机根据所述资源指示信息申请所需队列资源,所述资源指示消息指示被释放的存储空间大小,所述第二主机为所述资源管理系统中除所述第一主机之外任意一个主机。
因此,在释放第一队列占用的存储空间之后,该资源管理装置还可以向第二主机通知被释放的存储空间,从而便于第二主机根据需要使用该释放的存储空间,从而提高资源的使用率。
资源管理装置向第二主机发送资源指示信息的方式可以采用以下方式中的任意一种:
方式一:当所述资源管理装置为所述第一控制器时,所述第一控制器向第二控制器发送所述资源指示消息,以便于所述第二控制器向所述第二主机发送所述资源指示消息,所述第二控制器为所述第一NVM子系统中除所述第一控制器之外的任意一个控制器。
方式二:当所述资源管理装置为所述第一控制器时,所述第一控制器向所述第一主机发送所述资源指示消息,以便于所述第一主机向所述第二主机发送所述资源指示消息。
方式三:当所述资源管理装置为所述第一主机时,所述第一主机向所述第二主机发送所述资源指示消息。
通过上述内容的描述,资源管理装置可以监控第一队列的资源使用率,当该资源使用率满足预设条件时,可以释放全部或部分第一队列占用的存储空间,并在释放第一队列的队列资源之后,通知NVM子系统中除第一主机之外的任意一个第二主机,以便于第二主机可以使用第一队列已释放的存储资源成功申请队列对,完成第二主机的对目标存储设备的访问请求消息的处理。
第二方面,提供了一种资源管理的装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的资源管理的方法的各个模块。
因此,本申请提供的资源管理的装置,通过监控配置于主机和控制器之间的I/O队列对中队列的资源使用率,在队列的资源使用率较低的情况下,释放该队列占用的存储空间,以便其他主机或者NVM子系统能够根据需要使用被释放的资源。从而实现对队列资源的管理和优化,通过及时地将闲置的资源释放,大大提供了资源的利用率;同时,也减小了访问延时,提高了用户体验。
第三方面,提供了一种资源管理的控制器,所述控制器包括处理器、存储器、通信接口和总线。其中,处理器、存储器、通信接口通过总线进行通信,也可以通过无线传输等其他手段实现通信。该存储器用于存储指令,该处理器用于执行该存储器存储的指令。该存储器存储程序代码,且处理器可以调用存储器中存储的程序代码执行第一方面及第一方面任一种可能实现方式中的资源管理的方法。
第四方面,提供了一种计算机可读介质,所述计算机可读介质存储资源管理的装置执行的程序代码,所述程序代码包括用于执行第一方面及第一方面任一种可能实现方式中的资源管理的方法的指令。
第五方面,提供一种资源管理的主机,所述主机包括处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述主机运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述控制器中的硬件资源执行第一方面及第一方面任一种可能实现方式中的资源管理的方法。
第六方面,提供一种计算机可读介质,所述计算机可读介质存储资源管理的装置执行的程序代码,所述程序代码包括用于执行第一方面及第一方面任一种可能实现方式中的资源管理的方法的指令。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本发明实施例提供的一种承载在高速外围组件互连总线上的非易失性存储器总线的架构示意图;
图2为本发明实施例提供的一种资源管理的方法和装置的应用场景的架构示意图;
图3为本发明实施例提供的另一种资源管理的方法和装置的应用场景的架构示意图;
图4为本发明实施例提供的一种主机和NVM子系统之间的队列对的示意图;
图5为本发明实施例提供的另一种主机和NVM子系统之间的队列对的示意图;
图6为本发明实施例提供的另一种主机和NVM子系统之间的队列对的示意图;
图7为本发明实施例提供的一种资源管理的方法的流程示意图;
图8为本发明实施例提供的另一种资源管理的方法的流程示意图;
图9为本发明实施例提供的一种资源管理的装置的示意性框图;
图10为本发明实施例提供的一种资源管理的控制器的示意性框图;
图11为本发明实施例提供的一种资源管理的主机的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行详细描述。
为了便于理解本发明实施例,首先简单介绍适用于本发明实施例的场景。
图1为本发明实施例提供的一种承载在高速外围组件互连总线(PeripheralComponent Interface Express,PCIe)上的NVMe(NVMe over PCIe)的架构示意图。如图所示,在NVMe over PCIe架构中,主机中的中央处理单元(central processing unit,CPU)可以直接与NVMe设备(例如,NVMe SSD)通过PCIe总线连接。CPU也可以连接PCIe交换器(switch),NVMe设备可以通过PCIe交换器与CPU进行通信,或者NVMe设备通过下一级的PCIe交换器进行扩展,PCIe交换器可以把数据路由至下游多个NVMe设备,也可以将多个NVMe设备的数据传输给处理器。其中,CPU中可以集成根联合体(root complex,RC),RC用于管理NVMe over PCIe架构中各个端点设备,例如,RC为每个端点设备分配总线号和存储映射输入/输出空间,或向各个端点设备发送主机的访问请求消息。
应理解,图1中示出的NVMe over PCIe架构的示意图仅为示例说明,不应对本申请构成任何限定,例如,根联合体也可以是独立于CPU存在的硬件,本申请对于NVMe overPCIe架构并未特别限定。
在图1所示的场景架构中,处理器可以由主机提供。每个NVMe设备可以理解为一个NVM子系统,每个NVM子系统中包括一个或多个控制器(controller)以及一个或多个存储介质,例如,2D NAND Flash、3D NAND Flash、3DX Point、动态随机存取存储器(dynamicrandom access memory,DRAM)。主机可以通过与NVM子系统中的控制器交互,以完成主机对存储介质的读写访问。换句话说,每个NVM子系统可以通过控制器与主机进行通信。这里,通信包括信令的交互以及数据的传输。
在图1示出的场景架构中,主机可以是物理服务器,或者,运行在物理服务器上的虚拟机。控制器可以由NVMe设备提供,例如,可以为NVMe SSD上的一颗独立的物理控制芯片。
需要说明的是,通常情况下,每个NVMe设备包含一块独立的控制芯片,该控制芯片可以从逻辑上划分为一个或多个控制器,用于管理其对应的存储介质。在本发明实施例中,在未作出特别说明的情况下,“控制器”是指与存储介质对应的逻辑意义上的控制器。
这里,控制器与存储介质的“对应”关系可以这样理解:控制器所管理的存储介质与该存储介质的物理地址相关,例如,控制器#A管理的存储介质的物理地址可以为1-99;控制器#B管理的存储介质的物理地址可以为100-199。应理解,这里控制器与存储介质的物理地址之间的对应关系仅为示例,不应对本申请构成任何限定。本领域的技术人员可以理解,不同的控制器可以管理相同或不同物理地址的存储介质,本申请对此并未特别限定。以下,为了简洁,在未作出特别说明的情况下,控制器与存储介质的对应关系均可以理解为与存储介质的物理地址的对应关系。
应理解,这里所描述的将NVMe设备中一块独立的控制芯片划分为一个或多个控制器的情形仅为示例性说明,而不应对本申请构成任何限定,本申请并不排除在NVMe设备中将每个逻辑意义上的控制器做成一个独立的物理芯片的可能。
图2是本发明实施例提供的一种资源管理的方法的应用场景的架构示意图。如图所示,图2示出了承载在除PCIe之外的交换平面(fabric)上的NVMe(NVMe over Fabric,NoF)应用的一种架构示意图,例如,基于远程直接数据存取(remote direct memoryaccess,RDMA)的NVMe(NVMe over RDMA)或基于光纤的NVMe(NVMe over fibre channel,NVMe over FC)。在图2所示的NoF架构中,远程主机通过交换平面与一个或多个NVM子系统连接。换句话说,图2示出了远程访问存储资源的场景。其中,远程主机可以是物理服务器,或者,运行在物理服务器上的虚拟机。每一个远程主机可以包括:处理器、存储器、PCIe交换器和用于远程直接数据存取的网络接口卡(RDMA network interface card,RNIC)。每个NVM子系统即可以理解为一个独立的NVMe设备(例如,NVMe SSD)。每个NVM子系统也分别包括RNIC、控制器和存储介质。交换平面可以理解为网络,例如以太网或光纤网络。
需要说明的是,图1示出的主机是通过PCIe接口访问NVMe设备,也可以称为本地主机(local host)。与此相对,在文中结合图2描述的架构中,主机是通过交换平面访问NVMe设备的,可以称为远程主机(remote host)。
值得说明的是,图2中仅示出了一个远程主机通过交换平面与一个或多个NVM子系统连接的示意图,具体实施过程中,也可以是多个远程主机通过交换平面与一个或多个NVM子系统连接,为便于表述,在本发明的以下实施例中,以一个远程主机为例进行详细描述。
由图2可以看到,远程主机可以直接通过网络远程访问每个NVM子系统中的存储介质,每个NVM子系统可以通过RNIC和网络与主机之间传输信令和数据。换句话说,每个NVM子系统都是远程主机的目标(target)NVMe设备。
图3是本发明实施例提供的另一种资源管理的方法和装置的应用场景的架构示意图。在图3示出的架构中,包含NoF架构和嵌套在NoF架构中的NVMe over PCIe架构。
具体地,在NoF架构中,一个或多个远程主机通过交换平面和NVM磁盘簇(Just aBunch of Disks,JBOD)通信。其中,NVM JBOD为由多个NVMe设备组成的集合,NVM JBOD中包括多个NVM设备和一个转换模块,每个NVM设备中包括一个控制器和多个存储介质,转换模块用于将远程主机发送的携带读写访问请求的网络报文(例如:RDMA报文或FC报文)转换为PCIe报文,并将此PCIe报文发送给待访问的存储介质对应的控制器。
远程主机用于向NVM JBOD发送访问请求消息,远程主机的形态可以与图2中示出的远程主机的形态相似或相同。转换模块以及各NVMe设备都分别可以为独立的物理设备,通过PCIe总线连接在同一个母板中实现其相应的功能。若把NVM JBOD理解为一个服务器,则该转换模块可以理解为该服务器上的一块单板。若远程主机向该服务器中的NVMe设备发送访问请求消息,则需要先将该访问请求消息发送给该单板,再由该单板将该访问请求消息转发给目标NVMe设备。
其中,该转换模块包括处理器、存储器、RNIC和PCIe交换器,NVMe设备作为PCIe总线中的端点设备接入该PCIe交换器,每个NVMe设备可以包括控制器以及一个或多个存储介质,其中,控制器的实现方式与图1中相同,在此不再赘述。在图3所示的NoF架构下,转换模块和各个NVMe设备之间数据传输方式与图1中NVMe over PCIe结构相同,都是通过PCIe接口进行通信,每个NVMe设备相当于NVMe over PCIe架构下的NVM子系统,也就是NVMe overPCIe架构下的目标NVMe设备。转换模块需要将接收到的远程主机发送的NoF报文转为PCIe报文,再发送给给目标NVMe设备。
结合图1所示的NVMe over PCIe架构,图3所示的NoF架构中远程主机可以理解为一级主机,用于向NVM JBOD发送访问请求消息;NVM JBOD可以理解为与一级主机对应的一级NVM子系统,用于处理远程主机发送的访问请求消息。具体地,在NVM JBOD内部处理远程主机的访问请求消息时,访问请求消息的处理过程与NVMe over PCIe架构中处理方式相同,此时,转换模块相当NVMe over PCIe架构中的主机,用于接收访问请求消息,也可以将转换模块称为二级主机,相应的,NVM子系统中每个NVMe设备(例如NVMe SSD)可以称为二级NVM子系统。转换模块接收远程主机发送的访问请求消息,并将其转换为PCIe报文,然后发送给目标NVMe设备,由目标NVMe设备执行访问请求消息的读取或写入操作,以此完成远程主机的访问请求消息的处理。其中,转换模块将远程主机发送的携带访问请求消息的网络报文转换为PCIe报文的方式为现有技术,本申请中不再赘述。
进一步地,主机与控制器之间或远程主机与NVM子系统的信令交互可以通过配置于两者之间的队列资源来实现。具体地,数据处理过程中定义了两种队列对:输入输出队列对与管理队列对。其中,管理队列对用于存储待处理的管理命令和已经完成的管理命令,每个控制器与主机之间仅配置有一个管理队列对,每个管理队列对中包括管理提交队列和管理完成队列。I/O队列对用于存储待处理的读写访问请求和已完成的读写访问请求,每个主机和控制器之间可配置一个或多个I/O队列对,每个I/O队列对中包括提交队列(包括SQ和ASQ)和完成队列(包括CQ和ACQ)。SQ存放了主机待处理的访问请求消息,CQ存放了控制器已处理完成的主机下发的访问请求消息的结果。提交队列和完成队列是主机与控制器之间通信的桥梁。
在处理主机对NVM子系统的读写访问过程中,主机可以在主机和待访问的目标NVMe设备所对应的控制器之间配置至少一个I/O队列对,并配置不同优先级,优先保证高优先级的队列对的资源分配,主机可以根据读写访问请求和队列对的优先级,将该读写访问请求存储至对应优先级的I/O队列对中,以此保证高优先级的业务处理过程,提高处理效率。
主机和控制器之间也可以建立多个I/O队列对,主机创建I/O队列对的过程可以是在初始化阶段预先在每个控制器和主机之间创建一个或多个I/O队列对,也可以是在主机接收到访问请求消息时,再创建用于存储访问请求消息和处理结果的I/O队列对。主机创建I/O队列对的实质可以理解为在队列资源的存储区间中划分部分区域用于存储指定队列的消息。
当主机需要对某个NVM子系统中的存储介质进行读写访问时,主机需要创建与该NVM子系统之间的队列对。具体地,主机需要创建与该NVM子系统中的控制器之间的管理队列对和I/O队列对。对于I/O队列对,主机可以在创建的时候指定主机与控制器之间的队列对中提交队列和完成队列的映射关系,具体可以由主机在创建队列对时指定配对的队列标识(queue identifier,Queue ID),从而配置好提交队列和完成队列之间的映射关系。每个队列会配置其占用的队列资源的地址、队列深度,其中,队列深度用于指示该队列中可存储访问请求消息的单元的数量,存储每个请求消息的单元也称为entry。每个队列都有预先配置的最大队列深度,预先配置的最大队列深度用于标识该队列中同一时间内(或者说,同一时刻)能够存储的访问请求消息的个数的最大值。与之对应地,当前监控到的每个队列的实际队列深度用于标识该队列中当前实际存储的访问请求消息的个数。
可选地,每个队列还可以配置有优先级信息。
若主机要对某个NVMe设备中的多个存储介质并行进行读写操作时,例如,主机同时对多个存储介质中的数据或同一个存储介质中的多个数据进行读写操作,主机可以根据待访问的目标NVMe设备的物理地址,首先建立主机与NVMe设备的控制器之间的管理队列对和I/O队列对,该管理队列对可以包括一个ASQ和一个ACQ,该I/O队列对可以包括一个SQ和一个CQ,也可以包括多个SQ和一个CQ,或者,该主机和该控制器之间可以建立多个I/O队列对,每个I/O队列对包括一个SQ和一个CQ,然后,主机通过建立在主机和该控制器之间的一个或多个SQ向该控制器发送访问请求消息,该控制器可以通过CQ向主机发送完成消息。
或者,当该主机待访问的多个NVMe设备分别由不同的控制器来管理时,主机可以建立与不同的控制器之间的管理队列对和I/O队列对,每个控制器与主机之间至少创建有一个I/O队列对。然后,主机通过各I/O队列对中的SQ向对应的控制器发送访问请求消息,每个控制器可以通过CQ向主机发送完成消息。
值得说明的是,在NVMe over PCIe的架构中,每个I/O队列对中多个SQ可以对应一个CQ;在NoF架构中,每个I/O队列对中每个SQ可以对应一个CQ;并且,在NoF架构中,每个主机与每个控制器之间可能配置有一个或多个I/O队列对,每个I/O队列对中的一个SQ对应一个CQ。每个I/O队列对包含一个SQ和一个CQ,这是为了实现主机和控制器之间的并行高速交互,使得各队列对中存放的指令之间互不干扰,从而提高访问的执行效率。
在图1至图3示出的场景中,队列资源通常可以由主机中的存储器提供,例如,在主机的存储器中划分指定大小的存储区域,用于创建管理队列对或I/O队列对,每个队列可以与主机中划分的指定大小的存储区域中部分存储区域建立映射关系,当队列中存储单元需要存储访问请求消息时,将该访问请求消息存储至该队列映射的存储区域中;或者,队列资源也可以由NVM子系统提供,具体地,可以是NVM子系统中的NVMe设备(例如,NVMe SSD),例如,在NVM子系统中任意一个NVMe SSD中划分指定大小的存储区域,用于创建管理队列对或I/O队列对,本申请对此并未特别限定。当NVM子系统中存在多个控制器时,控制器之间可以共享用于创建队列对的存储区域。
可以理解的是,无论队列资源是由哪一方来提供,队列资源是从主机或NVM子系统的存储区域中预留指定大小的存储区域,用于进行主机和NVM子系统之间的通信,例如,包括信令交互和/或数据传输,因此,队列资源都会受限于提供方所提供的用于存储各个队列的存储资源的大小,队列的数量也是非常有限的。当系统分配的部分或全部的队列资源已经被当前的主机和控制器之间的队列占用但又未被充分利用时,新增的访问请求消息在处理时,主机可能就申请不到足够的可用资源,而已分配的队列资源中存在未被使用的闲置的资源,由此,可能造成该新增的访问请求消息得不到及时的响应,资源的利用率较低的问题。
在队列资源中,分配给每个队列中的每个单元的资源可以预先设定,当某个队列(例如,SQ)中单个单元所关联的存储空间足以存储一个访问请求消息时,该单元中存储有该访问请求信息的操作类型以及待操作的数据。因此,在本申请所描述的通信(或者说,信息传输)可以理解为信令的传输,或者,信令和数据的传输。以下,为了简洁,省略对相同或相似情况的说明。
主机与控制器通过队列对通信的具体流程如下:若主机提供队列资源,主机的处理器在接收访问请求消息之后,将该访问请求消息放入SQ中,然后再经过PCIe总线(对应于NVMe over PCIe架构)或者交换平面(对应于NoF架构)将该访问请求消息发送至NVMe设备中的控制器,再由控制器根据该访问请求消息执行相应的操作。控制器在完成该访问请求消息所请求完成的指令之后,可以通过PCIe总线或交换平面将完成消息发送给主机,该完成消息在到达主机之后被存入CQ中,最终通知给主机中的处理器。可以理解,若控制器提供队列资源,则主机与控制器通信的具体流程与上文描述相似,为了简洁,这里不再赘述。
因此,主机与控制器之间通过队列资源通信可以理解为信令或数据的完整的传输过程中的一部分,即用于实现两者间通信的一个流程。以下,为了简洁,省略对相同或相似情况的说明。
图4是本发明实施例提供的一种主机和NVM子系统之间的队列对的示意图。如图4所示,主机#1与NVM子系统#A通过管理队列对和I/O队列对通信。具体地,队列资源可由主机的存储器或NVM子系统提供,主机#1和NVM子系统#A中的控制器#1之间配置有一个管理队列对和一个I/O队列对。管理队列对中包括一个ASQ和一个ACQ。图4示出的是主机#1与控制器#1之间建立的I/O队列对,该I/O队列对包括两个SQ(SQ#A和SQ#B)和一个CQ。该I/O队列对的资源可以由主机或者NVM子系统#A中的NVMe设备提供。由于控制器#1和控制器#2在同一NVM子系统中,无论利用主机的存储器还是NVM子系统提供队列资源,控制器#1和控制器#2使用的队列资源都是由同一存储空间划分出来的,控制器#1和控制器#2之间存在资源竞争关系,若此时主机#1希望发起对NVM子系统#A中控制器#2所对应的存储介质的访问,该存储介质可记作存储介质#1,则主机#1需要建立与控制器#2之间的管理队列对和I/O队列对。但由于队列资源受限,若当前剩余队列资源已经不足以建立起主机#1和控制器#2之间的管理队列和I/O队列,则该主机#1对该存储介质#1的访问可能会得不到及时的响应导致处理失败。
值得说明的是,图4中仅示出了一个主机和一个NVM子系统之间的连接关系,对于多个主机和多个NVM子系统的连接关系与图4相同或相似,为了简洁,在此不再赘述。
图5是本发明实施例提供的另一种主机和NVM子系统之间的队列对的示意图。图5与图4所示的主机和NVM子系统之间的队列对的示意图的区别在于,图5中主机和NVM子系统之间存在多个I/O队列对。
具体地,队列资源可由主机的存储器或NVM子系统提供,主机#2与NVM子系统#B中的控制器#3之间配置有一个管理队列对和两个I/O队列对,其中,I/O队列对包括队列对#A和队列对#B。当主机#2和控制器#3之间需要创建新的I/O队列对或增加已有I/O队列对中队列的深度时,若队列资源由NVM子系统#B提供且剩余资源不足,则会导致新增的访问请求消息无法处理。而对于不同NVM子系统来说,若队列资源由主机的存储器提供,当主机#2需要与NVM子系统#C建立管理队列对和I/O队列对时,也会由于队列资源不足而导致创建队列对失败;若队列资源由NVM子系统提供,不同的NVM子系统各自在其NVMe SSD中划分指定大小的存储区域用于提供队列资源,如图5所示,当主机#2需要与NVM子系统#C的控制器#4之间建立队列对时,则可以利用NVM子系统#C所提供的队列资源建立新的队列对,NVM子系统#B和NVM子系统#C之间不存在队列资源竞争的关系。
在图2和图3示出的两种可能的架构中,同一个NVMe设备有可能会同时被多个主机访问,每个主机需要通过建立在主机与控制器之间的队列对来实现远程访问。而每个控制器在某一个特定的时刻只能与一个主机交互,每个主机可以分别通过建立在与各控制器之间的I/O队列对中的SQ向相应的控制器发送访问请求消息,每个控制器可以通过建立在与主机之间的I/O队列对中的CQ向主机发送完成消息。如果出现某一个或多个主机占用的队列资源中空闲资源较多,而导致新增的主机无法申请到队列资源时,就会导致该新增的主机的远程访问请求无法及时得到响应。
图6是本发明实施例提供的另一种主机和NVM子系统之间的队列对的示意图。图6与图4和图5的区别在于,图6中主机与两个NVM子系统之间分别存在至少一个I/O队列对。具体地,队列资源可由主机的存储器或NVM子系统提供。主机#3可以对NVM子系统#D和NVM子系统#E进行访问。主机#3和NVM子系统#D中的控制器#5之间配置有一个管理队列对和两个I/O队列对;主机#3和NVM#E中的控制器#6之间配置有一个管理队列对和一个I/O队列对。假设队列资源由NVM子系统提供,即主机#3与控制器#5之间的队列资源由NVM子系统#D提供,例如,队列资源由NVM子系统中NVMe SSD1提供;主机#3与控制器#6之间的队列资源由NVM子系统#E中NVMe SSD2提供。此时,若新增一个主机希望发起对NVM子系统#D中另一个控制器所对应的存储资源的访问,例如,新增主机#4需要对控制器#7对应的存储资源#3进行读写访问,则需要建立起主机#4与控制器#7之间的管理队列对和I/O队列对。但由于NVM子系统#D所提供的队列资源受限,若当前NVM子系统#D提供的队列资源中的可用资源已经不足以建立起主机#4与控制器#7之间的管理队列对和I/O队列对,则该主机#4对存储资源#3的访问可能会得不到及时的响应导致处理失败。若队列资源由主机的存储器提供,且主机#4所提供的队列资源中剩余资源不足以建立主机#4与控制器#7之间的管理队列对和I/O队列对,也会导致主机#4和控制器#7之间的访问请求消息处理失败。
通过上文结合附图的描述可以看到,无论是由主机的存储器提供队列资源,还是由NVM子系统中NVMe设备提供队列资源,因队列资源有限,新增主机的访问请求消息或者主机对新增的NVM子系统的访问请求消息就有可能申请不到足够的资源来创建管理队列对和I/O队列对,因此,通过主机发送的访问请求消息就可能不能得到及时的响应,造成访问延时,访问请求消息处理失败;另一方面,部分队列资源被占用却没有得到很好的利用,处于闲置状态,资源利用率不高。有鉴于此,本申请提供一种资源管理的方法,能够对队列资源进行管理和优化,以提高资源的利用率,从而对新增的访问请求能够及时响应,减小访问延时,提高用户体验。
需要说明的是,一个主机与一个控制器之间有且仅有一个管理队列对,该仅有的一个管理队列对占用资源有限,本申请所提供的资源管理方法主要针对I/O队列对所使用的资源。但是,这不应对本申请构成任何限定,本申请并不排除在未来的协议中定义更多个管理队列对的可能,并且,本申请所提供的资源管理的方法同样也可以适用于对多个管理队列对的资源进行管理。
下面结合图7和图8详细说明本发明实施例的资源管理的方法。
应理解,图7和图8示出了本发明实施例提供的资源管理的方法的流程示意图,但这些步骤或操作仅是示例,本发明实施例还可以执行其他操作或图7和图8中的各种操作的变形。此外,图7和图8中的各个步骤可以按照与图7呈现的不同的顺序来执行,并且有可能并非要执行图7和图8中的全部操作。
由上文描述可知,该队列资源的提供者不同,资源管理装置也由不同的设备来提供。以下,为便于理解,分别以控制器为资源管理装置以及处理器作为资源管理装置为例详细说明本发明实施例。
需要说明的是,在图3示出的架构中,远程主机与NVM JBOD中转换模块之间配置有管理队列对和I/O队列对,在NVM JBOD中,转换模块与NVMe设备之间也配置有管理队列对和I/O队列对。其中,在远程主机与NVM JBOD中转换模块之间配置管理队列对和I/O队列对时,转换模块中处理器或RNIC可以实现NVM设备中控制器的功能,用于与远程主机进行通信,远程主机的存储器和转换模块中存储器可以用于提供队列资源。图4至图6中所示出的主机与控制器之间的队列对的示意图同样适用于图3的架构。
图7是本发明实施例提供的一种资源管理的方法700的流程示意图。具体地,在图7示出的资源管理的方法中,资源管理装置为控制器,也就是说,该队列资源可以由NVM子系统中的NVMe设备提供。
应理解,本发明实施例的资源管理的方法700可以应用于图1至图3的架构中,其中,包括至少一个主机和至少一个NVM子系统,每个NVM子系统中包括至少一个控制器。以下,不失一般性,以第一主机和第一NVM子系统中的第一控制器之间的交互为例,详细说明本发明实施例的资源管理的方法。可以理解,第一主机为系统中任意一个主机,第一NVM子系统为系统中任意一个NVM子系统,第一控制器为第一主机执行访问请求消息的目标存储介质所对应的控制器,第一主机和第一控制器之间配置有一个管理队列对和至少一个I/O队列对,第一主机和第一控制器通过上述管理队列对和I/O队列对进行通信。
如图7所示,该方法700包括:
S710,第一控制器接收第一主机发送的资源监控命令,该资源监控命令用于通知第一控制器对至少一个I/O队列对中第一队列的资源使用率进行监控。
其中,第一主机可以向第一控制器发送异步事件请求(Asynchronous EventRequest,AER)消息,该AER消息中包括用于指示该资源监控命令的字段。
具体地,主机与控制器之间可以通过AER类型的消息进行信令交互,在该AER消息中,包含有多个字段,每个字段被定义用于指示不同的事件。本发明实施例可以使用现有的多个字段中的保留字段来指示该资源监控命令,或者也可以在现有的AER消息中新增字段用于指示该资源监控命令,本申请对此并未特别限定。
举例来说,现有的AER消息类型如下表所示:
值(Value) | 定义(Definition) |
0h | 错误状态(Error status) |
1h | 控制、健康状态(SMART/Health status) |
2h | 注意(Notice) |
3h-5h | 保留(Reserved) |
6h | I/O命令组具体状态(I/O Command Set specific status) |
7h | 供应商明细(Vendor specific) |
表中值为3h-5h均为AER消息类型中的保留值字段,可通过协议定义,本发明实施例可以通过使用该AER消息中的保留字段中使用上述任意一个保留值来指示该资源监控命令。
应理解,上述AER消息类型中的字段及取值仅为示例性说明,而不应对本申请构成任何限定,本申请对于该资源监控命令的指示方式并未特别限定。
第一队列可以是所述至少一个I/O队列中任意一个SQ或CQ。该至少一个I/O队列对的资源可以理解为第一主机为该第一主机和该第一控制器之间通信的至少一个I/O队列对配置的存储空间,或者说,该至少一个I/O队列对占用的存储空间。由于本发明实施例是以第一控制器为资源管理装置为例进行说明,由上文描述可知,该至少一个I/O队列对占用的资源可以是从第一NVM子系统的存储空间中为该至少一个I/O队列对预留的一块独立的资源,该资源是通过该第一控制器来管理的。换句话说,该至少一个I/O队列对占用的资源是该NVM子系统中第一控制器所管理的NVMe设备中存储介质的一部分。
S720,第一控制器根据该资源监控命令,监控该至少一个I/O队列对中第一队列的资源使用率。
第一主机和第一控制器之间可以有一个或多个I/O队列对。第一主机向第一控制器发送的资源命令中可以指示第一控制器可以同时对该第一主机和第一控制器之间的一个或多个I/O队列对中的队列的资源使用率进行监控。
若第一主机和第一控制器之间配置有一个或多个I/O队列对,第一控制器可以按照监控命令监控一个I/O队列对中的SQ和/或CQ,也可以同时监控多个I/O队列对中的SQ和/或CQ,该监控命令中还可以指示第一控制器按照I/O队列对的优先级优先监控和管理高优先级的I/O队列对中第一队列的资源使用率,也可以按照业务需求监控全部或部分I/O队列对中第一队列的资源使用率。对于一个第一控制器监控的I/O队列对来说,当该I/O队列对中包括多个SQ和一个CQ时,第一控制器可以监控一个SQ和CQ的资源使用率,或者,同时监控多个SQ和CQ的资源使用率;第一控制器也可以只监控一个或多个SQ的资源使用率,不对CQ的资源使用率进行监控。当该I/O队列对中包括一个SQ和一个SQ时,第一控制器可以监控SQ和/或CQ的资源使用率。第一队列的资源使用率用于标识第一队列占用的存储空间中已使用的比率,可以通过该第一主机和第一控制器声音第一队列的资源传输信息的次数或者频率来表征。为便于表述,本申请的以下描述中以第一控制器监控一个SQ或CQ为例进行进一步详细介绍。
通常情况下,一个I/O队列对中仅包含一个CQ,例如,可以为多个SQ映射到一个CQ,也可以是一个SQ映射到一个CQ。若该第一主机和第一控制器之间仅配置有一个包含有多个SQ和一个CQ的I/O队列对,该CQ是必须配置的,因此,可以仅对多个SQ占用的资源分布使用率进行监控。若该第一主机和第一控制器之间配置有多个包含有一个SQ和一个CQ的I/O队列对,则可以对I/O队列对中SQ和CQ的资源使用率分别进行监控,也可以仅对SQ的资源使用率进行监控。这是因为:正如上文所述,SQ用于存储第一主机发送的待处理的访问请求消息,CQ用于存储第一控制器已完成的第一主机发送的访问请求消息的结果。可以理解,SQ中存放的访问请求消息在被发送至第一控制器后,第一控制器有可能执行相应的指令,也可能由于资源冲突或其他原因暂未执行该指令,还有可能由于某些指令的特殊性,第一控制器在执行了相应的指令后,不需要回复完成消息。故SQ中存放的访问请求消息的数量有可能是大于或者等于CQ中存放的完成消息的数量的。换句话说,当SQ的资源使用率较低时,CQ的资源使用率也是比较低的,因此可以仅监控SQ来确定该I/O队列对的资源使用率,也可以通过分别监控SQ和CQ来确定该I/O队列对的资源使用率。
进一步地,第一队列的资源使用率可以是在第一预设时段内第一主机和第一控制器使用该第一队列传输信息的次数。
若第一预设时段为1秒,则第一队列的资源使用率为:1秒内,第一队列中存储和移除访问的请求消息或访问请求消息的结果的次数。
可选地,第一队列的资源使用率也可以是在第二预设时段内第一队列的有效队列深度比。
其中,第一队列的有效队列深度比是指第一队列的实际有效队列深度与预先配置的最大队列深度的比值。
示例地,若第一队列中预先配置的最大队列深度为5,即第一队列中包括5个单元,每个单元中可以存储1个访问请求消息或访问请求消息的结果,而实际有效队列深度为1,即当前时刻第一队列中仅一个单元存储了访问请求消息或访问请求消息的结果,则第一队列的有效队列深度比为1:5。
在本发明实施例中,第一控制器可以通过第一主机发送资源监控命令来触发第一控制器启动资源监控功能,也可以自行启动资源监控功能。这里,需要说明的是,资源监控功能可以理解为控制器新增的一个功能,控制器可以自行启动该资源监控功能,也可以由具有通信连接关系的主机来触发启动该资源监控功能,在该资源监控功能由主机来触发的情况下,该主机还可以自行确定是否启动或关闭该资源监控功能,以便于更好地控制NVM子系统对资源的管理。
在本发明实施例中,该第一控制器所属的NVM子系统中可以增加一个功能模块,即,资源监控模块,该资源监控模块用于实现对资源的监控。具体地说,该资源监控模块可以根据接收到的资源监控命令,对该NVM子系统中一个或多个队列对的资源进行监控,也可以自行对该NVM子系统中一个或多个队列对的资源进行监控。该资源监控模块可以由NVM子系统中已有的控制器来实现,也可以新增一个物理芯片,该物理芯片可以专用于实现该资源监控功能,对该NVM子系统中的各存储资源进行资源监控,本申请对此并未特别限定。
S730,当第一控制器在监控到第一队列的资源使用率满足预设条件时,释放第一队列占用的存储空间。
释放第一队列的策略可以是第一控制器根据预先定义的释放策略自行决定如何释放第一队列占用的存储空间,也可以是由第一控制器在监控到第一资源的使用率满足预设条件之后,向主机发送通知消息,由主机按照预先定义的释放策略通知第一控制器如何释放第一队列占用的存储空间。具体地,第一队列占用的存储空间的释放过程可以采用以下方式中的任意一种:
方式一:第一控制器根据预先定义的释放策略自行决定如何释放第一队列占用的存储空间。
举例来说,设备管理者可以将释放策略预先配置在第一控制器中。例如,该释放策略可以定义为:若监控到该第一队列的资源使用率满足预设条件,释放该队列占用的全部存储空间;若监控到该第一队列的资源使用率满足预设条件,释放该第一队列占用的部分存储空间(例如,释放该队列占用的存储空间的30%)。
在方式一中,可以直接根据预先定义的释放策略释放第一队列占用的全部或部分存储空间。
预设条件一:当在第一预设时段内监控到第一主机与第一控制器传输信息的次数小于或等于第一预设门限时,减少所述第一队列预先配置的最大队列深度;当第一预设时段内监控到第一主机与第一控制器传输信息的次数小于或等于第二预设门限时,删除第一队列。其中,预先配置的最大队列深度用于标识第一队列中同一时间内能够存储的访问请求消息的个数的最大值;第一预设门限大于所述第二预设门限。例如,若被监控的第一队列为第一SQ,假设第一预设门限为3,第二预设门限为1,若第一控制器监控第一主机与第一控制器使用第一SQ传输信息的次数为2,此时,第一主机与第一控制器传输信息的次数小于或等于3,则释放第一队列所占用的部分资源,例如,按照预置策略释放第一队列所占用的存储空间的30%;若第一控制器监控第一主机与第一控制器使用第一SQ传输信息的次数为1,此时,第一主机与第一控制器传输信息的次数等于1,则删除第一队列所占用的存储空间。当第一控制器确定删除第一队列所占用的存储空间,且第一队列中仍存在待处理的访问请求消息时,可以将该访问请求消息存储到同一I/O队列对中其他SQ或CQ中。
预设条件二:当在第二预设时段内监控到第一队列的有效队列深度比小于或等于第三预设门限时,减少第一队列预先配置的最大队列深度;当在第二预设时段内监控到第一队列的有效队列深度比小于或等于第四预设门限时,删除所述第一队列;其中,第三预设门限大于第四预设门限。
举例来说,该第一控制器监控的第一队列为第一SQ,假设该第一SQ预先配置的队列深度(queue depth)为1000个单元(entries),该有效队列深度比的第三预设门限为50%,第四预设门限为6%。若第一控制器在该第二预设时段内实际使用的队列深度的平均值仅为10个单元,那么该第一SQ在该第二预设时段内的有效队列深度比的平均值仅为100/1000,即10%,远远小于该第三预设门限,则该第一控制器可以根据预先设定的释放策略,释放该第一SQ占用的部分存储空间,例如,释放第一SQ占用存储空间的30%,即释放第一队列占用的存储空间中300个队列深度的存储空间。若第一控制器在该第二预设时段内实际使用的队列深度的平均值仅为50个单元,那么该第一SQ在该第二预设时段内的有效队列深度比的平均值仅为50/1000,即5%,小于该第四预设门限,则该第一控制器可以根据预先设定的释放策略,删除第一SQ占用的全部存储空间。与预设条件一中删除第一队列的情况相同,若第一队列中仍存在待处理的访问请求消息,第一控制器可以将其存储到同一I/O队列对中其他SQ或CQ中。
方式二:第一控制器向第一主机上报该第一队列的资源使用率,由第一主机确定释放策略,并由该第一控制器执行该释放策略。
在方式二中,第一主机可以根据接收到的第一队列的资源使用率确定释放策略,此情况下,可以参照方式一中描述的预设条件一和预设条件二的方式来确定释放策略,并将释放策略发送给第一控制器,由该第一控制器执行该释放策略;或者,该第一主机可以根据业务需求确定释放策略,如根据业务此情况下,直接通知第一控制器,由该第一控制器执行该释放策略。第一控制器根据释放策略释放该第一队列占用的存储资源的具体过程在方式一中已经详细说明,为了简洁,这里不再赘述。
需要说明的是,释放第一队列占用的部分存储资源可以通过减小第一队列的队列深度的方式来实现,释放第一队列占用的全部存储空间可以通过删除第一队列的方式来实现。可以理解的是,释放第一队列占用的存储空间,也就是将主机在创建队列以前定义好的队列与存储空间的映射关系删除掉,该存储空间不再被占用,可用于其他待创建的队列建立起新的映射关系。
应理解,上述示例中列举用于确定第一队列的资源使用率是否满足预设条件的方法、第一预设时段、第二预设时段、第一预设门限至第四预设门限仅为示例性说明,而不应对本申请构成任何限定。例如,上述列举的预设门限可以是由人为评估而预定义的,或者由主机设定并通知给第一控制器的,或者由该第一控制器根据历史数据统计确定的,资源管理装置还可以根据当前资源的使用情况,以及系统能够提供的资源大小,灵活地调整预设门限。例如,第一控制器或第一主机可以根据被监控的第一队列的资源使用率,以及该系统中队列资源当前的使用率,确定释放该第一队列的部分资源还是全部资源。同时,本申请也不排除其他能够用于表征资源使用率的参数来评估队列的资源使用率的可能。
进一步地,在方式二中,第一控制器通知第一主机第一队列的使用率时,具体可以通过以下步骤操作:
第一控制器在确定该第一队列的资源使用率满足预设条件时,向该第一主机发送AER完成消息,该AER完成消息用于通知该第一主机该第一队列的资源使用率满足预设条件;
该第一控制器接收该第一主机基于该AER完成消息发送的资源配置消息,该资源配置消息用于通知该第一控制器释放该第一队列占用的部分或全部存储空间。
其中,该AER完成消息可以理解为对S710中的AER消息的反馈消息。也就是说,当第一控制器在执行该AER消息中的指令的过程中,若监控到异常(也就是本发明实施例中所描述的资源使用率满足预设条件)的状况,则向该第一主机反馈AER完成消息。
可选地,该AER完成消息中可以携带该第一队列的队列标识,以建议第一主机释放该第一队列中的部分或全部资源。
应理解,以上仅以第一队列为例,详细说明了监控第一队列的资源使用率,以及在满足预设条件时释放第一队列的部分或全部资源的具体方法和过程。在该第一主机和第一控制器之间存在多个I/O队列对时,可以采用相同的方法对该多个队列对中的每个队列对中的队列占用的资源进行监控和管理。
在本发明实施例中,该第一控制器可以根据队列(例如包括SQ或者CQ)的资源使用率确定是否释放该队列。若某个队列的资源使用率不满足预设条件,则可以不对该队列占用的资源做任何处理,该队列可以继续用于该第一主机与第一控制器之间的通信,同时也继续保持对该队列的资源使用率的监控。
在本发明实施例中,释放该第一资源中的部分或全部资源,即可以理解为将该第一队列中的部分单元占用的资源释放,或将该第一队列占用的全部资源释放。被释放的资源可以为未存储有信息的资源,也可以为存储有信息的资源。
可选地,在第一队列被释放的资源中存储有信息的情况下,在S730之后,该方法700还包括:
S740,第一控制器将被释放的存储空间中存储的访问请求消息迁移至第二队列。
具体地,若第一控制器自行决定释放第一队列占用的部分或全部存储空间,则该第一控制器可以在释放之前通知第一主机,第一主机可以将待释放的存储空间中存储的访问请求消息(或者说,指令、信令)取消,并生成新的访问请求消息,将该新生成的访问请求消息放入第二队列,可以理解,该新生成的访问请求消息与被取消的访问请求消息请求访问的资源是相同的,或者说,是相同的两个访问请求消息。
若第一主机在接收到第一控制器发送的AER完成消息之后,确定要释放第一队列占用的存储空间,则该第一主机可以自行将待释放的存储空间中存储的信令取消,并生成新的信令,将该新生成的信令放入第二队列。
在本申请中,第一主机待释放的资源中存储的访问请求消息取消,生成新的访问请求消息,并将该新生成的访问请求消息放入第二队列中的过程可以理解为将第一队列中的信息迁移至第二队列。需要说明的是,若该第一队列的待释放的资源中存储有访问请求消息和该访问请求消息请求写入的数据,则该第一主机可以将该访问请求消息和数据一同迁移至第二队列。也就是说,迁移的信息包括信令,或者,信令和数据。
可以理解的是,当释放的资源为SQ(例如,上述第一SQ)占用的资源时,该被释放的资源中存储的信息可以迁移至同一I/O队列对中的另一个SQ(例如,上述第二SQ)中;当释放的资源为SQ和CQ(例如,上述第一I/O队列对)的资源时,SQ被释放的资源中存储的信息可以相应地迁移到另一个SQ(例如,上述第二SQ)中,CQ被释放的资源中存储的信息可以相应地迁移到另一个CQ(例如,上述第二CQ)中。
再参看图4,若主机#1要创建与控制器#2之间的管理队列对和I/O队列对,在主机#1(即,第一主机的一例)与控制器#1(即,第一控制器的一例)之间的两个SQ中的任意一个(例如记作,SQ#A)满足上述任意一个预设条件的情况下,可以释放该SQ#A的部分资源或全部资源,并将该SQ#A中承载的信息迁移至该两个SQ中的另一个(例如,记作SQ#B),同时,将释放掉的资源用于建立主机#1与控制器#2之间的管理队列对和I/O队列对。
再参看图6,若主机#3要创建与控制器#7之间的管理队列对和I/O队列对,在主机#3(即,第一主机的一例)与控制器#5(即,第一控制器的一例)之间的两个队列对(例如分别记作队列对#C和队列对#D)中的任意一个(例如可以为队列对#C)满足上述任意一个预设条件的情况下,可以释放I/O队列对#C的部分或全部资源,并将I/O队列对#C中承载的信息迁移至该两个I/O队列对中的另一个(例如可以为队列对#D),同时,将释放掉的资源用于建立主机#3与控制器#7之间的管理队列对和I/O队列对。
可以理解的是,由于在本发明实施例中,该队列资源由NVM子系统提供,故不同的NVM子系统之间的资源无法共享,若新增一个NVM子系统(例如,记作NVM子系统#F),主机#3需要访问该NVM子系统#F,故主机#3与控制器#5之间释放的资源无法用于创建主机#3与NVM子系统#F中的控制器(例如记作控制器#8)之间的管理队列对和I/O队列对。应理解,以上示例的对队列资源的处理方式仅为示例性说明,不应对本申请构成任何限定。控制器可以根据当前各队列的资源使用情况,以及各主机对队列资源的诉求,合理地优化资源。
可选地,在S730之后,第一控制器释放第一队列所占用的存储空间后,需要通知系统中其他主机,以便于其他主机可以利用其释放的存储空间建立新的I/O队列对,具体实现过程如下:
S750,第一控制器向第二主机发送资源指示消息,该资源指示消息指示被释放的存储空间的大小。
第一控制器向第二主机发送指示消息的方式可以采用以下方式中的任意一种:
方式一:第一控制器向第二控制器发送该资源指示消息,第二控制器和第一控制器在同一NVM子系统中,且第二控制器与第二主机之间已建立用于通信的管理队列对和I/O队列对,该第二控制器是该第一NVM子系统中除第一控制器之外的任意一个控制器。
方式二:第一控制器向该第一主机发送该资源指示消息,以便于第一主机向该第二主机发送该资源指示消息。
其中,该第二主机的数量可以为一个或多个。
进一步地,在给第二主机的数量为多个的情况下,该第一控制器还可以根据第二主机的优先级,向优先级较高的第二主机发送该资源指示消息。
可以理解的是,该系统中可以由多个主机与多个NVM子系统通信连接,若第一主机与第一NVM子系统之间的资源被释放后,该第一控制器可以通知该第一NVM子系统中的其他控制器,以通知其他控制器该被释放的资源(根据上文描述,假设该资源是由该第一NVM子系统提供)的资源大小,以及该资源可以用于该第一NVM子系统与其他的主机(即,第二主机)之间建立管理队列对和I/O队列对。其他控制器便可以向所连接的第二主机发送该资源指示消息,以便于第二主机根据该资源大小以及自身的资源诉求,创建新的管理队列对和I/O队列对。
例如,再参看图6,当主机#3与控制器#5之间的资源被释放之后,控制器#5便可以向其他主机(即,第二主机)发送资源指示消息,以便于第二主机使用被释放的资源创建队列。
因此,本发明实施例的资源管理的方法,通过资源管理装置监控配置于主机与控制器之间的每个队列对中的队列的资源使用率,在队列的资源使用率较低的情况下,释放该队列占用的存储空间,以便其他主机或者NVM子系统能够根据需要使用被释放的存储空间。从而实现对队列资源的管理和优化,通过及时地将闲置的资源释放,大大提高了资源的利用率;同时,也减小了访问延时,提高了用户体验。
应理解,以上示例的资源管理的方法的是以第一NVM子系统提供队列资源,以第一控制器为资源管理装置为例来进行说明的,该方法同样适用于由第一主机提供队列资源,以第一主机的处理器为资源管理装置的场景中。
图8示出了本发明提供的另一种资源管理的方法800的流程示意图。具体地,图8示出的资源管理的方法中,资源管理装置可以为主机的处理器,也就是说,该队列资源可以由主机的存储器提供。
应理解,本发明实施例的资源管理的方法700可以应用于包括至少一个主机和至少一个NVM子系统的系统,每个NVM子系统中包括至少一个控制器。以下,不失一般性,以第一主机作为资源管理装置为例,详细说明本发明实施例的资源管理的方法。可以理解,第一主机为系统中任意主机,第一NVM子系统为系统中任意NVM子系统,第一控制器为第一主机执行读写操作请求的目标存储资源所对应的控制器,第一主机和第一控制器之间配置有一个管理队列对和至少一个I/O队列对,第一主机和第一控制器通过上述至少一个管理队列对和I/O队列对进行通信。
如图8所示,该方法800包括:
S810,第一主机监控至少一个I/O队列对中第一队列的资源使用率,该至少一个I/O队列对为配置于该第一主机和第一控制器之间的队列对。
在本发明实施例中,由于该至少一个I/O队列对占用的存储空间由第一主机提供,则该第一主机可以自行监测该至少一个I/O队列对中I/O队列对中队列的资源使用率,而无需通过控制器(例如,第一控制器)来监测。因此,在该第一主机中,可以增加一个资源监控模块,用于实现对资源的监控。具体地说,该资源监控模块可以由该第一主机中已有的处理器来实现,或者,也可以通过新增一个用于实现该资源监控功能的模块来实现,本申请对此并未特别限定。并且,该第一主机具有自行决定是否启动或关闭该资源监控功能。
S820,第一主机在监控到第一队列的资源使用率满足预设条件时,删除该第一队列占用的存储空间。
其中,第一队列包括第一SQ和/或第一CQ。
具体地,第一队列的资源使用率包括在第一预设时段内第一主机和第一控制器使用该第一队列传输信息的次数;或者,第一队列的资源使用率包括在第二预设时段内第一队列的有效队列深度比。
在本发明实施例中,第一主机在监控到第一队列的资源使用率满足预设条件时,可以通过以下任意一种方式确定如何释放该第一队列占用的存储空间。
第一主机可以直接根据预先定义的释放策略释放该第一队列占用的存储空间。此情况下,可以通过以下任意一个预设条件来确定是否释放该第一队列占用的存储空间:
预设条件一:当第一预设时段内监控到第一主机与所述第一控制器传输信息的次数小于或等于第一预设门限时,减少第一队列预先配置的最大队列深度;在第一预设时段内监控到第一主机与第一控制器传输信息的次数小于或等于第二预设门限时,删除第一队列。其中,第一预设门限大于第二预设门限。
预设条件二:在第二预设时段内监控到第一队列的有效队列深度比小于或等于第三预设门限时,减少第一队列预先配置的最大队列深度;在第二预设时段内监控到第一队列的有效队列深度比小于或等于第四预设门限时,删除第一队列;其中,第三预设门限大于第四预设门限。
应理解,第一主机确定第一队列是否满足预设条件,以及在满足预设条件后根据预先定义的释放策略执行相应操作的具体过程与方法700中方式一中描述的具体过程相似,为了简洁,此处不再赘述。还应理解,以上示例的第一预设时段、第二预设时段、第一预设门限至第四预设门限与方法700中的第一预设时段、第二预设时段、第一预设门限至第四预设门限的取值可以相同或者不同。该预设门限可以是根据人为评估而预定义的,或者是第一主机根据历史数据统计确定的,本申请对此并未特别限定。
进一步地,在第一队列被释放的资源中存储有信息的情况下,在S820之后,该方法800还包括:
S830,第一主机将被释放的资源中存储的信息迁移至第二队列。
该第一主机可以根据每个被监控的队列的资源使用率是否满足预设条件,可以自行决定是否释放该队列占用的存储空间,如按照结合图7描述的方法700中的预设条件一和预设条件二,并进一步确定释放部分还是全部存储空间。在第一主机确定释放第一队列占用的存储空间之后,该第一主机可以取消该待释放的存储空间中存储的信息,并可以进一步生成新的信令放入第二队列中,以完成信息迁移。同时,该第一主机可以释放第一队列占用的部分或全部存储空间。
S840,第一主机向第二主机发送资源指示消息,该资源指示消息指示被释放的资源大小。
第一主机还可以根据第二主机的优先级,向优先级较高的第二主机发送该资源指示消息。
可以理解的是,该系统中的各主机之间通信连接,若第一主机释放了资源,则可以直接将上述资源指示消息通知通信连接着的其他主机(即第二主机),以便于第二主机根据该资源大小与自身的资源诉求,创建新的队列对。
例如,参看图5,若主机#2要创建与控制器#4之间的管理队列对和I/O队列对,在主机#2与控制器#3之间的两个I/O队列对(例如分别记作I/O队列对#A和I/O队列对#B)中的任意一个(例如可以为I/O队列对#A)中第一队列满足上述预设条件的情况下,可以释放第一队列中的部分或全部资源,并将该队列对#A中承载的信息迁移至该两个I/O队列对中的另一个(例如可以为I/O队列对#B),同时,将释放掉的资源用于建立主机#2和控制器#4之间的管理队列对和I/O队列对。也就是说,该队列资源是由主机#2提供的,该资源可以用于主机#2与不同的NVM子系统中的控制器建立队列对。
应理解,以第一主机的处理器作为资源管理装置对资源进行管理的具体过程与上述方法700中的具体过程相似,为了简洁,这里省略对其详细说明。
因此,本发明实施例的资源管理的方法,通过资源管理装置监控配置于主机与控制器之间的每个队列对中的队列的资源使用率,在队列的资源使用率较低的情况下,释放该队列占用的存储空间,以便其他主机或者NVM子系统能够根据需要使用被释放的存储空间。从而实现对队列资源的管理和优化,通过及时地将闲置的资源释放,大大提高了资源的利用率;同时,也减小了访问延时,提高了用户体验。
应理解,以上示例的以第一主机的处理器或者第一NVM子系统中的第一控制器作为资源管理装置的实施例仅为示例性说明,不应对本申请构成任何限定,本发明实施例也可以通过第一主机或者第一NVM子系统中其他的具有资源管理能力的装置或模块来执行该资源管理的方法,本申请对于该资源管理的方法的执行主体并未特别限定。
还应理解,以上示例的第一队列对的资源大小即队列深度的具体数值仅为示例性说明,而不应对本申请构成任何限定。
还应理解,以上列举的第一主机和第一控制器之间发送的用于承载指令的消息仅为示例性说明,而不应对本申请构成任何限定,例如,上述指令也可以承载在其他的消息中,本申请对此并未特别限定。
还应理解,以上示例的对第一队列对的资源进行管理的方法仅为示例性说明,而不应对本申请构成任何限定。本发明实施例的资源管理的方法同样可以适用于对管理队列的资源的管理。例如,资源管理装置可以释放管理队列中的部分资源,以减小管理队列的队列深度。
以上结合图1至图8详细说明了本发明实施例提供的资源管理的方法。下面结合图9和图11详细说明本发明实施例的资源管理的装置。
图9是本发明实施例提供的一种资源管理的装置900的示意性框图。应理解,图9示出的资源管理的装置900仅是示例,本发明实施例的资源管理的装置还可包括其他模块或单元,或者包括与图9中的各个模块的功能相似的模块,或者并非要包括图9中的所有模块。
具体地,该装置900配置于包括至少一个非易失性存储器NVM子系统和至少一个主机的资源管理系统中,该NVM子系统中包括至少一个控制器和多个存储介质,该至少一个控制器中的每个该控制器用于管理至少一个存储介质,该至少一个主机中的第一主机通过至少一个输入输出I/O队列对与该至少一个NVM子系统中的第一NVM子系统中的第一控制器通信,该第一NVM子系统为该资源管理系统中任意一个NVM子系统,该I/O队列对中包括至少一个提交队列和至少一个完成队列,该至少一个提交队列中的每个提交队列用于存储该第一主机待处理的访问请求消息,该至少一个完成队列中的每个完成队列用于存储控制器已完成的该第一主机发送的访问请求消息的结果。
如图9所示,该装置900包括:
监控单元910,用于监控该至少一个I/O队列对中第一队列的资源使用率,该第一队列的资源使用率用于标识为该第一队列分配的存储空间的使用比率,其中,该第一队列包括所述至少一个I/O队列对中的任意一个提交队列SQ和/或任意一个完成队列CQ;
管理单元920,用于当该监控单元监控该第一队列的资源使用率满足预设条件时,释放该第一队列占用的存储资源。
可选地,该第一队列的资源使用率包括第一预设时段内所述第一主机与所述第一控制器使用该第一队列传输信息的次数。
可选地,该管理单元920用于当该监控单元910监控到该第一队列的资源使用率满足预设条件时,释放该第一队列占用的存储空间,包括:
当该监控单元910在该第一预设时段内监控到该第一主机与该第一控制器使用该第一队列传输信息的次数小于或等于第一预设门限时,减少该第一队列预先配置的最大队列深度;以及,当该监控单元910在该第一预设时段内监控到该第一主机与该第一控制器使用该第一队列传输信息的次数小于或等于第二预设门限时,删除该第一队列;
其中,该第一预设门限大于该第二预设门限,预先配置的最大队列深度用于标识第一队列中同一时间内能够存储的访问请求消息的个数的最大值。
可选地,所述第一队列的资源使用率包括在第二预设时段内第一队列的有效队列深度比,该第一队列的有效队列深度比为该第一队列的实际使用的队列深度与预先配置的最大队列深度的比值。
可选地,该管理单元920用于当该监控单元910监控到该第一队列的资源使用率满足预设条件时,释放该第一队列占用的存储空间,包括:
当该监控单元910在该第二预设时段内监控到该第一队列的有效队列深度比小于或等于第三预设门限时,减少该第一队列预先配置的最大队列深度;以及当该监控单元910在该第二预设时段内监控到该第一队列的有效队列深度比小于或等于第四预设门限时,删除该第一队列;其中,所述第三预设门限大于所述第四预设门限。
可选地,若该第一队列的资源由该第一主机提供,该装置900为该第一主机的处理器;若该第一队列的资源由该NVM子系统提供,该装置900为该第一控制器。
可选地,该装置900还包括通信单元930,当该装置900为该第一控制器时,该通信单元930用于接收该第一主机发送的资源监控命令,该资源监控命令用于通知该第一控制器监控该至少一个I/O队列对第一队列的资源使用率。
可选地,当装置900为第一控制器时,该通信单元930还用于接收该第一主机发送的异步事件请求AER消息,该AER消息中包括用于指示该资源监控命令的字段。
可选地,当装置900为第一控制器时,该通信单元930还用于向第二主机发送资源指示消息,以使得该第二主机根据该资源指示消息申请所需队列资源,该资源指示消息指示被释放的资源大小,该第二主机为该资源管理系统中除该第一主机之外任意一个主机。
可选地,当装置900为第一控制器时,该通信单元930还用于向第二控制器发送该资源指示消息,以便于该第二控制器向该第二主机发送该资源指示消息,该第二控制器为该第一NVM子系统中除该第一控制器之外的任意一个控制器。
可选地,当装置900为该第一控制器时,该通信单元930还用于向该第一主机发送该资源指示消息,以便于该第一主机向该第二主机发送该资源指示消息。
可选地,当装置900为第一主机时,该通信单元930还用于向该第二主机发送该资源指示消息。
应理解,图9所示的资源管理的装置900可对应于上述实施例中资源管理的方法中的资源管理装置,具体地,可以对应于图7中资源管理的方法中的第一控制器,或者图8中资源管理的方法中的第一主机,并且资源管理的装置900中的各个单元的上述和其它操作和/或功能分别为了实现图7和图8中的资源管理的方法的相应流程,为了简洁,在此不再赘述。
本发明实施例提供的资源管理的装置,通过监控配置于主机与控制器之间的每个队列对中的队列的资源使用率,在队列的资源使用率较低的情况下,释放该队列占用的存储空间,以便其他主机或者NVM子系统能够根据需要使用被释放的存储空间。从而实现对队列资源的管理和优化,通过及时地将闲置的资源释放,大大提高了资源的利用率;同时,也减小了访问延时,提高了用户体验。
图10是本发明实施例提供的一种资源管理的控制器10的示意性框图。该控制器10配置于包括至少一个非易失性存储器NVM子系统和至少一个主机的资源管理系统中,该NVM子系统中包括至少一个控制器和多个存储介质,每个该控制器用于管理至少一个存储介质,该至少一个主机中的第一主机通过至少一个输入输出I/O队列对与该至少一个NVM子系统中的第一NVM子系统中的控制器10通信,该第一NVM子系统为该资源管理系统中任意一个NVM子系统,该I/O队列对中包括至少一个提交队列和至少一个完成队列,每个该提交队列用于存储该第一主机待处理的访问请求消息,每个该完成队列用于存储控制器已完成的该第一主机发送的访问请求消息的结果。
如图10所示,该控制器10包括:处理器11、存储器12、通信接口13和总线14。其中,处理器11、存储器12、通信接口13通过总线14进行通信,也可以通过无线传输等其他手段实现通信。该存储器12用于存储指令,该处理器11用于执行该存储器12存储的指令,该存储器12存储程序代码,且处理器11可以调用存储器12中存储的程序代码执行以下操作:
监控所述至少一个I/O队列对中第一队列的资源使用率,所述第一队列的资源使用率用于标识为所述第一队列分配的存储空间的使用比率,其中,所述第一队列包括所述至少一个I/O队列对中任意一个提交队列SQ和/或任意一个完成队列CQ;
当监控到所述第一队列的资源使用率满足预设条件时,释放所述第一队列占用的存储空间。
应理解,在本发明实施例中,该处理器11可以是CPU,该处理器11还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器22可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(direct ram bus RAM,DR RAM)。
该总线14除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线14。
应理解,图10所示的资源管理的控制器10可对应于图9所示的实施例中资源管理的装置900。并可以对应于图7中资源管理的方法中的第一控制器,并且资源管理的控制器10中的各个单元的上述和其它操作和/或功能分别为了实现图7中的资源管理的方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的资源管理的装置,通过监控配置于主机与控制器之间的I/O队列对中队列的资源使用率,在队列的资源使用率满足预设条件的情况下,释放该队列占用的存储空间,以便其他主机或者NVM子系统能够根据需要使用被释放的存储空间。从而实现对队列资源的管理和优化,通过及时地将闲置的资源释放,大大提高了资源的利用率;同时,也减小了访问延时,提高了用户体验。
图11是根据本发明实施例提供的资源管理的主机20的示意性框图。该主机20配置于包括至少一个非易失性存储器NVM子系统和至少一个主机的资源管理系统中,该NVM子系统中包括至少一个控制器和多个存储介质,每个该控制器用于管理至少一个存储介质,该至少一个主机中的主机20通过至少一个输入输出I/O队列对与该至少一个NVM子系统中的第一NVM子系统中的第一控制器通信,该第一NVM子系统为该资源管理系统中任意一个NVM子系统,该I/O队列对中包括至少一个提交队列和至少一个完成队列,每个该提交队列用于存储该主机20待处理的访问请求消息,每个该完成队列用于存储控制器已完成的该主机20发送的访问请求消息的结果。
如图11所示,该主机20包括:处理器21、存储器22、通信接口23和总线24。其中,处理器21、存储器22、通信接口23通过总线24进行通信,也可以通过无线传输等其他手段实现通信。该存储器22用于存储指令,该处理器21用于执行该存储器22存储的指令,该存储器12存储程序代码,且处理器11可以调用存储器12中存储的程序代码执行以下操作:
监控所述至少一个I/O队列对中第一队列的资源使用率,所述第一队列的资源使用率用于标识为所述第一队列分配的存储空间中使用比率,其中,所述第一队列包括所述至少一个I/O队列对中任意一个提交队列SQ和/或任意一个完成队列CQ;
当监控到所述第一队列的资源使用率满足预设条件时,释放所述第一队列占用的存储空间。
应理解,在本发明实施例中,该处理器21可以是CPU,该处理器21还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器22可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DRRAM)。
该总线24除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线24。
应理解,图11所示的资源管理的主机20可对应于上述图9所述的资源管理装置900。并可以对应于图8中资源管理的方法中的第一主机,并且资源管理的主机20中的各个单元的上述和其它操作和/或功能分别为了实现图8中的资源管理的方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的资源管理的主机,通过监控配置于该主机与控制器之间的I/O队列对中队列的资源使用率,在队列的资源使用率满足预设条件的情况下,释放该队列占用的存储空间,以便其他主机或者NVM子系统能够根据需要使用被释放的存储空间。从而实现对队列资源的管理和优化,通过及时地将闲置的资源释放,大大提高了资源的利用率;同时,也减小了访问延时,提高了用户体验。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
Claims (20)
1.一种资源管理的方法,其特征在于,应用于包括至少一个非易失性存储器NVM子系统和至少一个主机的资源管理系统中,所述NVM子系统中包括至少一个控制器和多个存储介质,所述至少一个控制器中的每个控制器用于管理至少一个存储介质,所述至少一个主机中的第一主机通过至少一个输入输出I/O队列对与所述至少一个NVM子系统中的第一NVM子系统中的第一控制器通信,所述第一NVM子系统为所述资源管理系统中任意一个NVM子系统,所述I/O队列对中包括至少一个提交队列和至少一个完成队列,所述至少一个提交队列中的每个提交队列用于存储所述第一主机待处理的访问请求消息,所述至少一个完成队列中的每个完成队列用于存储控制器已完成的所述第一主机发送的访问请求消息的结果;所述方法包括:
资源管理装置监控所述至少一个I/O队列对中第一队列的资源使用率,所述第一队列的资源使用率用于标识为所述第一队列分配的存储空间的使用比率,其中,所述第一队列包括所述至少一个I/O队列对中任意一个提交队列和/或任意一个完成队列;
当所述资源管理装置监控到所述第一队列的资源使用率满足预设条件时,释放所述第一队列占用的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述第一队列的资源使用率包括在第一预设时段内所述第一主机与所述第一控制器使用所述第一队列传输信息的次数。
3.根据权利要求2所述的方法,其特征在于,所述当所述资源管理装置监控到所述第一队列的资源使用率满足预设条件时,释放所述第一队列占用的存储空间,包括:
当所述资源管理装置在所述第一预设时段内监控到所述第一主机与所述第一控制器传输信息的次数小于或等于第一预设门限时,减少所述第一队列预先配置的最大队列深度;以及,
当所述资源管理装置在所述第一预设时段内监控到所述第一主机与所述第一控制器传输信息的次数小于或等于第二预设门限时,删除所述第一队列;
其中,所述第一预设门限大于所述第二预设门限,所述预先配置的最大队列深度用于标识所述第一队列中同一时间内能够存储的访问请求消息的个数的最大值。
4.根据权利要求1所述的方法,其特征在于,所述第一队列的资源使用率包括在第二预设时段内所述第一队列的有效队列深度比,所述第一队列的有效队列深度比为所述第一队列的实际使用的队列深度与预先配置的最大队列深度的比值。
5.根据权利要求4所述的方法,其特征在于,所述当所述资源管理装置监控到所述第一队列的资源使用率满足预设条件时,释放所述第一队列占用的存储空间,包括:
当所述资源管理装置在所述第二预设时段内监控到所述第一队列的有效队列深度比小于或等于第三预设门限时,减少所述第一队列预先配置的最大队列深度;以及,
当所述资源管理装置在所述第二预设时段内监控到所述第一队列的有效队列深度比小于或等于第四预设门限时,删除所述第一队列;
其中,所述第三预设门限大于所述第四预设门限。
6.根据权利要求1至5中任一项所述的方法,其特征在于,
若所述第一队列的资源由所述第一主机提供,所述资源管理装置为所述第一主机的处理器;
若所述第一队列的资源由所述NVM子系统提供,所述资源管理装置为所述第一控制器。
7.根据权利要求6所述的方法,其特征在于,若所述资源管理装置为所述第一控制器,在所述资源管理装置监控所述第一队列的资源使用率之前,所述方法还包括:
所述第一控制器接收所述第一主机发送的资源监控命令,所述资源监控命令用于通知所述第一控制器监控所述至少一个I/O队列对中第一队列的资源使用率。
8.根据权利要求7所述的方法,其特征在于,所述接收所述第一主机发送的资源监控命令,包括:
所述第一控制器接收所述第一主机发送的异步事件请求AER消息,所述AER消息中包括用于指示所述资源监控命令的字段。
9.根据权利要求1至8中任一项所述的方法,其特征在于,在所述释放所述第一队列占用的存储资源之后,所述方法还包括:
所述资源管理装置向第二主机发送资源指示消息,以使得所述第二主机根据所述资源指示信息申请所需队列资源,所述资源指示消息指示被释放的存储空间的大小,所述第二主机为所述资源管理系统中除所述第一主机之外任意一个主机。
10.一种资源管理的装置,其特征在于,所述装置配置于包括至少一个非易失性存储器NVM子系统和至少一个主机的资源管理系统中,所述NVM子系统中包括至少一个控制器和多个存储介质,所述至少一个控制器中的每个控制器用于管理至少一个存储介质,所述至少一个主机中的第一主机通过至少一个输入输出I/O队列对与所述至少一个NVM子系统中的第一NVM子系统中的第一控制器通信,所述第一NVM子系统为所述资源管理系统中任意一个NVM子系统,所述I/O队列对中包括至少一个提交队列和至少一个完成队列,所述至少一个提交队列中的每个提交队列用于存储所述第一主机待处理的访问请求消息,所述至少一个完成队列中的每个完成队列用于存储控制器已完成的所述第一主机发送的访问请求消息的结果,所述装置包括:
监控单元,用于监控所述至少一个I/O队列对中第一队列的资源使用率,所述第一队列的资源使用率用于标识为所述第一队列分配的存储空间的使用比率,其中,所述第一队列包括所述至少一个I/O队列对中的任意一个提交队列和/或任意一个完成队列;
管理单元,用于当所述监控单元监控到所述第一队列的资源使用率满足预设条件时,释放所述第一队列占用的存储空间。
11.根据权利要求10所述的装置,其特征在于,所述第一队列的资源使用率包括在第一预设时段内所述第一主机与所述第一控制器使用所述第一队列传输信息的次数。
12.根据权利要求11所述的装置,其特征在于,所述管理单元用于当所述监控单元监控到所述第一队列的资源使用率满足预设条件时,释放所述第一队列占用的存储空间,包括:
当所述监控单元在所述第一预设时段内监控到所述第一主机与所述第一控制器使用所述第一队列传输信息的次数小于或等于第一预设门限时,减少所述第一队列预先配置的最大队列深度;以及当所述监控单元在所述第一预设时段内监控到所述第一主机与所述第一控制器使用所述第一队列传输信息的次数小于或等于第二预设门限时,删除所述第一队列;
其中,所述第一预设门限大于所述第二预设门限,所述预先配置的最大队列深度用于标识所述第一队列中同一时间内能够存储的访问请求消息的个数的最大值。
13.根据权利要求10所述的装置,其特征在于,所述第一队列的资源使用率包括在第二预设时段内第一队列的有效队列深度比,所述第一队列的有效队列深度比为所述第一队列的实际使用的队列深度与预先配置的最大队列深度的比值。
14.根据权利要求13所述的装置,其特征在于,所述管理单元用于当所述监控单元监控到所述第一队列的资源使用率满足预设条件时,释放所述第一队列占用的存储空间,包括:
当所述监控单元在第二预设时段内监控到所述第一队列的有效队列深度比小于或等于第三预设门限时,减少所述第一队列预先配置的最大队列深度;以及当所述监控单元在所述第二预设时段内监控到所述第一队列的有效队列深度比小于或等于第四预设门限时,删除所述第一队列;
其中,所述第三预设门限大于所述第四预设门限。
15.根据权利要求10至14中任一项所述的装置,其特征在于,
若所述第一队列的资源由所述第一主机提供,所述装置为所述第一主机的处理器;
若所述第一队列的资源由所述NVM子系统提供,所述装置为所述第一控制器。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括通信单元,在所述装置为所述第一控制器的情况下,所述通信单元用于接收所述第一主机发送的资源监控命令,所述资源监控命令用于通知所述第一控制器监控所述第一队列的资源使用率。
17.根据权利要求16所述的装置,其特征在于,
所述通信单元,还用于接收所述第一主机发送的异步事件请求AER消息,所述AER消息中包括用于指示所述资源监控命令的字段。
18.根据权利要求10至17中任一项所述的装置,其特征在于,
所述通信单元,还用于向第二主机发送资源指示消息,所述资源指示消息指示被释放的存储空间的大小,所述第二主机为所述资源管理系统中除所述第一主机之外任意一个主机。
19.一种资源管理的控制器,其特征在于,所述控制器包括处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述控制器运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述控制器中的硬件资源执行权利要求1至9中任一所述方法的操作步骤。
20.一种资源管理的主机,其特征在于,所述主机包括处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述主机运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述控制器中的硬件资源执行权利要求1至9中任一所述方法的操作步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710172275.7A CN108628775B (zh) | 2017-03-22 | 2017-03-22 | 一种资源管理的方法和装置 |
PCT/CN2018/075787 WO2018171357A1 (zh) | 2017-03-22 | 2018-02-08 | 一种资源管理的方法和装置 |
EP18770706.2A EP3572948B1 (en) | 2017-03-22 | 2018-02-08 | Resource management method and device |
US16/579,328 US20200019433A1 (en) | 2017-03-22 | 2019-09-23 | Resource Management Method and Apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710172275.7A CN108628775B (zh) | 2017-03-22 | 2017-03-22 | 一种资源管理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108628775A true CN108628775A (zh) | 2018-10-09 |
CN108628775B CN108628775B (zh) | 2021-02-12 |
Family
ID=63584856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710172275.7A Active CN108628775B (zh) | 2017-03-22 | 2017-03-22 | 一种资源管理的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200019433A1 (zh) |
EP (1) | EP3572948B1 (zh) |
CN (1) | CN108628775B (zh) |
WO (1) | WO2018171357A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708719A (zh) * | 2020-05-28 | 2020-09-25 | 西安纸贵互联网科技有限公司 | 计算机存储加速方法、电子设备及存储介质 |
CN113391927A (zh) * | 2021-07-08 | 2021-09-14 | 上海浦东发展银行股份有限公司 | 一种业务事件的处理方法、装置、系统及存储介质 |
CN115269461A (zh) * | 2021-04-29 | 2022-11-01 | 慧与发展有限责任合伙企业 | 管理目标的i/o队列对在主机之间的分布 |
CN115408178A (zh) * | 2022-10-31 | 2022-11-29 | 北京登临科技有限公司 | 用于保护对片上资源的访问的方法、介质和电子设备 |
WO2023000770A1 (zh) * | 2021-07-22 | 2023-01-26 | 华为技术有限公司 | 一种处理访问请求的方法、装置、存储设备及存储介质 |
WO2024041481A1 (zh) * | 2022-08-26 | 2024-02-29 | 中兴通讯股份有限公司 | 执行指令的方法、装置、服务器及系统 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11115972B2 (en) * | 2018-11-02 | 2021-09-07 | Qualcomm Incorporated | Techniques for updating resource types |
US20210157631A1 (en) * | 2019-11-25 | 2021-05-27 | Live Nation Entertainment, Inc. | Automated queue shutdown for efficient resource management |
US11558296B2 (en) * | 2020-09-18 | 2023-01-17 | Serialtek, Llc | Transaction analyzer for peripheral bus traffic |
US11822826B2 (en) * | 2020-02-20 | 2023-11-21 | Raytheon Company | Sensor storage system |
US11301140B2 (en) * | 2020-06-17 | 2022-04-12 | Intel Corporation | Configuring parameters of non-volatile memory target subsystems for workload request quality of service |
US11494098B2 (en) * | 2020-06-30 | 2022-11-08 | Western Digital Technologies, Inc. | Variable performance storage devices |
US11604743B2 (en) | 2020-08-31 | 2023-03-14 | International Business Machines Corporation | Input/output queue hinting for resource utilization |
US20230138597A1 (en) * | 2021-10-28 | 2023-05-04 | International Business Machines Corporation | Adaptive hybrid cloud resource management |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1216553A2 (en) * | 1999-09-28 | 2002-06-26 | Ericsson Inc. | Quality of service management in a packet data router system |
CN1856148A (zh) * | 2005-04-21 | 2006-11-01 | 上海华为技术有限公司 | 通信系统中业务处理资源的管理方法 |
CN101167307A (zh) * | 2005-10-10 | 2008-04-23 | 中兴通讯股份有限公司 | 一种可动态自适应的分布式资源管理系统和方法 |
CN101345713A (zh) * | 2008-09-01 | 2009-01-14 | 华为技术有限公司 | 一种网络资源的分配方法、装置和系统 |
CN101763437A (zh) * | 2010-02-10 | 2010-06-30 | 成都市华为赛门铁克科技有限公司 | 高速缓冲存储实现方法及装置 |
CN102088395A (zh) * | 2009-12-02 | 2011-06-08 | 杭州华三通信技术有限公司 | 一种调整媒体数据缓存的方法和装置 |
US20130339599A1 (en) * | 2012-06-14 | 2013-12-19 | Lsi Corporation | Methods and systems for adaptive queue depth management |
CN103902348A (zh) * | 2012-12-25 | 2014-07-02 | 华为技术有限公司 | 一种虚拟化环境下用户数据的读写方法、系统及物理机 |
US20140192653A1 (en) * | 2013-01-07 | 2014-07-10 | Electronics And Telecommunications Research Institute | Method and apparatus for controlling load allocation in cluster system |
CN104391656A (zh) * | 2014-11-19 | 2015-03-04 | 华为技术有限公司 | 一种存储设备的io资源分配方法、装置及存储设备 |
CN105068953A (zh) * | 2014-05-07 | 2015-11-18 | Hgst荷兰公司 | 用于对等高速外围组件互联存储传输的系统和方法 |
CN105912275A (zh) * | 2016-04-27 | 2016-08-31 | 华为技术有限公司 | 在非易失性存储系统中建立连接的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657214A (zh) * | 2015-03-13 | 2015-05-27 | 华存数据信息技术有限公司 | 一种基于多队列和多优先级的大数据任务管理系统和方法 |
CN105589750B (zh) * | 2015-07-07 | 2019-01-25 | 新华三技术有限公司 | 一种cpu资源调度方法和服务器 |
KR102371916B1 (ko) * | 2015-07-22 | 2022-03-07 | 삼성전자주식회사 | 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법 |
CN105677487B (zh) * | 2016-01-12 | 2019-02-15 | 浪潮通用软件有限公司 | 一种控制资源占用的方法及装置 |
-
2017
- 2017-03-22 CN CN201710172275.7A patent/CN108628775B/zh active Active
-
2018
- 2018-02-08 EP EP18770706.2A patent/EP3572948B1/en active Active
- 2018-02-08 WO PCT/CN2018/075787 patent/WO2018171357A1/zh unknown
-
2019
- 2019-09-23 US US16/579,328 patent/US20200019433A1/en not_active Abandoned
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1216553A2 (en) * | 1999-09-28 | 2002-06-26 | Ericsson Inc. | Quality of service management in a packet data router system |
CN1856148A (zh) * | 2005-04-21 | 2006-11-01 | 上海华为技术有限公司 | 通信系统中业务处理资源的管理方法 |
CN101167307A (zh) * | 2005-10-10 | 2008-04-23 | 中兴通讯股份有限公司 | 一种可动态自适应的分布式资源管理系统和方法 |
CN101345713A (zh) * | 2008-09-01 | 2009-01-14 | 华为技术有限公司 | 一种网络资源的分配方法、装置和系统 |
CN102088395A (zh) * | 2009-12-02 | 2011-06-08 | 杭州华三通信技术有限公司 | 一种调整媒体数据缓存的方法和装置 |
CN101763437A (zh) * | 2010-02-10 | 2010-06-30 | 成都市华为赛门铁克科技有限公司 | 高速缓冲存储实现方法及装置 |
US20130339599A1 (en) * | 2012-06-14 | 2013-12-19 | Lsi Corporation | Methods and systems for adaptive queue depth management |
CN103902348A (zh) * | 2012-12-25 | 2014-07-02 | 华为技术有限公司 | 一种虚拟化环境下用户数据的读写方法、系统及物理机 |
US20140192653A1 (en) * | 2013-01-07 | 2014-07-10 | Electronics And Telecommunications Research Institute | Method and apparatus for controlling load allocation in cluster system |
CN105068953A (zh) * | 2014-05-07 | 2015-11-18 | Hgst荷兰公司 | 用于对等高速外围组件互联存储传输的系统和方法 |
CN104391656A (zh) * | 2014-11-19 | 2015-03-04 | 华为技术有限公司 | 一种存储设备的io资源分配方法、装置及存储设备 |
CN105912275A (zh) * | 2016-04-27 | 2016-08-31 | 华为技术有限公司 | 在非易失性存储系统中建立连接的方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708719A (zh) * | 2020-05-28 | 2020-09-25 | 西安纸贵互联网科技有限公司 | 计算机存储加速方法、电子设备及存储介质 |
CN111708719B (zh) * | 2020-05-28 | 2023-06-23 | 西安纸贵互联网科技有限公司 | 计算机存储加速方法、电子设备及存储介质 |
CN115269461A (zh) * | 2021-04-29 | 2022-11-01 | 慧与发展有限责任合伙企业 | 管理目标的i/o队列对在主机之间的分布 |
CN115269461B (zh) * | 2021-04-29 | 2024-03-29 | 慧与发展有限责任合伙企业 | 管理目标的i/o队列对在主机之间的分布 |
CN113391927A (zh) * | 2021-07-08 | 2021-09-14 | 上海浦东发展银行股份有限公司 | 一种业务事件的处理方法、装置、系统及存储介质 |
WO2023000770A1 (zh) * | 2021-07-22 | 2023-01-26 | 华为技术有限公司 | 一种处理访问请求的方法、装置、存储设备及存储介质 |
WO2024041481A1 (zh) * | 2022-08-26 | 2024-02-29 | 中兴通讯股份有限公司 | 执行指令的方法、装置、服务器及系统 |
CN115408178A (zh) * | 2022-10-31 | 2022-11-29 | 北京登临科技有限公司 | 用于保护对片上资源的访问的方法、介质和电子设备 |
CN115408178B (zh) * | 2022-10-31 | 2023-02-21 | 北京登临科技有限公司 | 用于保护对片上资源的访问的方法、介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2018171357A1 (zh) | 2018-09-27 |
EP3572948B1 (en) | 2021-11-24 |
EP3572948A1 (en) | 2019-11-27 |
CN108628775B (zh) | 2021-02-12 |
EP3572948A4 (en) | 2020-01-01 |
US20200019433A1 (en) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628775A (zh) | 一种资源管理的方法和装置 | |
US8447872B2 (en) | Load balancing in a storage system | |
US10110499B2 (en) | QoS in a system with end-to-end flow control and QoS aware buffer allocation | |
US9225668B2 (en) | Priority driven channel allocation for packet transferring | |
US7685342B2 (en) | Storage control apparatus and method for controlling number of commands executed in storage control apparatus | |
WO2020000483A1 (zh) | 数据处理的方法和存储系统 | |
US20230161515A1 (en) | Multi-stream ssd qos management | |
CN105144110A (zh) | 基于网络活动自动配置外部服务 | |
CN108369530A (zh) | 非易失性高速传输总线架构中数据读写命令的控制方法、设备和系统 | |
US10993127B2 (en) | Network slice instance management method, apparatus, and system | |
CN105242872B (zh) | 一种面向虚拟集群的共享存储系统 | |
CN103609077B (zh) | 用于数据传输的方法、装置和系统以及物理网卡 | |
CN110096220B (zh) | 一种分布式存储系统、数据处理方法和存储节点 | |
CN108984266A (zh) | 一种虚拟机的管理方法、装置及系统 | |
WO2014183531A1 (zh) | 一种分配远程内存的方法及装置 | |
US20140036680A1 (en) | Method to Allocate Packet Buffers in a Packet Transferring System | |
CN108628660A (zh) | 一种虚拟机扩缩容方法及虚拟管理设备 | |
CN108984465A (zh) | 一种消息传输方法及设备 | |
CN110162378A (zh) | 一种资源调度的方法、装置、设备及系统 | |
KR20170071180A (ko) | 커넥션 기반 로드 밸런싱을 위한 저장 시스템 및 방법 | |
US20180278493A1 (en) | Techniques to meet quality of service requirements for a fabric point to point connection | |
KR20210132348A (ko) | 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법 | |
CN108512753A (zh) | 一种集群文件系统中消息传输的方法及装置 | |
CN109582592A (zh) | 资源管理的方法和装置 | |
CN112099728B (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 |