CN109726006B - 用于控制存储系统的方法、装置和计算机存储介质 - Google Patents
用于控制存储系统的方法、装置和计算机存储介质 Download PDFInfo
- Publication number
- CN109726006B CN109726006B CN201711031541.0A CN201711031541A CN109726006B CN 109726006 B CN109726006 B CN 109726006B CN 201711031541 A CN201711031541 A CN 201711031541A CN 109726006 B CN109726006 B CN 109726006B
- Authority
- CN
- China
- Prior art keywords
- priority
- background operation
- storage system
- control factor
- threshold
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000004044 response Effects 0.000 claims description 81
- 238000012217 deletion Methods 0.000 claims description 16
- 230000037430 deletion Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 14
- 230000037406 food intake Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000004622 sleep time Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- 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]
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/486—Scheduler internals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例提供了用于控制存储系统的方法、装置和计算机存储介质。例如,提出了一种用于控制存储系统的方法,该方法包括:确定与所述存储系统中的后台操作有关的控制因子,所述控制因子包括所述存储系统中的存储资源池的使用状态;基于所确定的所述控制因子,设置用于所述后台操作的优先级;以及基于所设置的所述优先级来控制所述后台操作的执行。利用本公开的实施例,可以加快后台操作的执行,提高资源利用效率,保证良好的I/O性能。
Description
技术领域
本公开的实施例一般地涉及数据存储系统,并且更具体地,涉及用于控制存储系统中的后台操作的方法、装置和计算机存储介质。
背景技术
在存储系统中,会存在各种不同类型的后台操作。例如,快照是一种常见的后台操作,其例如用于在基于容器的文件系统(CBFS)中创建的版本文件。并且快照技术基于统一快照,可以实现写即重定向(Redirect-On-Write)。快照的典型用户场景包括虚拟设备接口(VDI)虚拟服务器、复制、或者用于虚拟容量(vVoI)的虚拟机(VM)快照。用户通常删除不必要的快照以收回空间,并且快照删除通过后台操作完成。然而,目前的很多后台操作会影响存储系统的性能,从而影响客户体验。
发明内容
本公开的实施例中提供了用于对后台操作进行控制的方法、装置和计算机存储介质。
在本公开的第一方面,提供一种用于控制存储系统的方法。该方法包括:确定与所述存储系统中的后台操作有关的控制因子,该控制因子包括存储系统中的存储资源池的使用状态;基于所确定的控制因子,设置用于后台操作的优先级;以及基于所设置的优先级来控制后台操作的执行。
在一个实施例中,控制因子可以进一步包括存储系统的系统级负载、以及关联于存储系统的文件系统的负载中的至少一项。
在另一个实施例中,后台操作可以包括快照的删除。
在又一实施例中,基于所设置的优先级执行后台操作可以包括:基于所述优先级确定用于所述后台操作的线程数目和调度信息中的至少一项;以及基于所确定的用于所述后台操作的所述线程数目和所述调度信息中的所述至少一项来控制所述后台操作的执行。在进一步的实施例中,调度信息可以包括以下中的至少一项:用于所述后台操作的调度间隔、以及所述后台操作让出中央处理单元(CPU)的次数。
在一些实施例中,设置用于后台操作的优先级可以包括:响应于控制因子指示存储资源池的空闲度高于阈值程度,降低后台操作的优先级;以及响应于控制因子指示存储资源池的空闲度低于阈值程度,保持或者提高后台操作的优先级。
在另一个实施例中,设置用于后台操作的优先级可以包括:响应于控制因子指示存储系统的输入/输出(I/O)负载高于阈值负载,降低所述后台操作的所述优先级;以及响应于控制因子指示存储系统的I/O负载低于阈值负载,保持或者提高后台操作的优先级。
在又一实施例中,设置用于后台操作的优先级可以包括:响应于控制因子指示存储系统的当前I/O负载与之前的时间段内的I/O负载的比值高于第一阈值比值,降低后台操作的优先级;以及响应于控制因子指示存储系统的当前I/O负载与之前的时间段内的I/O负载的比值低于第一阈值比值,保持或者提高后台操作的优先级。
在一些实施例中,设置用于后台操作的优先级可以包括:响应于控制因子指示存储系统的I/O响应时间高于阈值时间,降低后台操作的所述优先级;并且响应于控制因子指示存储系统的I/O响应时间低于阈值时间,保持或者提高后台操作的优先级。
在另一实施例中,设置用于后台操作的优先级可以包括:响应于控制因子指示存储系统的当前I/O响应时间与后台操作开始之前的I/O响应时间的比值高于第二阈值比值,降低后台操作的优先级;并且响应于控制因子指示存储系统的当前I/O响应时间与后台操作开始之前的I/O响应时间的比值低于第二阈值比值,保持或者提高后台操作的优先级。
在又一实施例中,设置用于后台操作的优先级可以包括:响应于控制因子指示关联于存储系统的文件系统的日志的空闲度低于第一阈值空闲度,降低后台操作的优先级;并且响应于控制因子指示文件系统的日志的空闲度高于第一阈值空闲度,保持或者提高后台操作的优先级。
在一些实施例中,设置用于后台操作的优先级可以包括:响应于控制因子指示存储系统中的数据高速缓存的空闲度低于第二阈值空闲度,降低后台操作的优先级;并且响应于控制因子指示存储系统中的数据高速缓存的空闲度高于第二阈值空闲度,保持或者提高后台操作的所述优先级。
在另一实施例中,设置用于后台操作的优先级可以包括:响应于控制因子指示存储系统中的数据高速缓存的空闲度和关联于存储系统的文件系统的日志的空闲度的加权和低于阈值和,降低后台操作的所述优先级;并且响应于控制因子指示该加权和高于阈值和,保持或者提高后台操作的优先级。
在又一实施例中,设置用于后台操作的优先级可以包括:进一步基于预定的用于后台操作的最低优先级,来设置用于后台操作的优先级。
在另一实施例中,设置用于后台操作的优先级可以包括:如果存储资源池的空闲度低于阈值程度,则将后台操作的优先级设置为高于I/O的优先级;以及如果存储资源池的空闲度高于阈值程度,则:降低后台操作的所述优先级,并且通过基于存储系统的I/O负载、I/O响应时间、关联于存储系统的文件系统的日志的空闲度、以及用于后台操作的最低优先级等中的至少一项逐步调整用于后台操作的优先级,来确定用于所述后台操作的优先级。
在本公开的第二方面,提供一种用于控制存储系统的电子设备。该电子设备包括至少一个处理器、以及至少一个存储器。该存储器耦合至至少一个处理器并且包含存储于其中的计算机程序代码。计算机程序在被该至少一个处理器执行时,使该电子设备执行本公开的第一方面所述的方法。
在本公开的第二方面,提供一种计算机存储介质。该计算机存储介质包括存储于其上的计算机程序代码。该计算机程序代码在处理器中执行时,促使处理器执行本公开的第一方面所述的方法。
尽管在附图中通过示例的方式示出了特定的实施例,然而,应当理解,本文的具体实施例的描述不意在将实施例限制为所公开的具体形式。
附图说明
从下文的公开内容和权利要求中,本公开的目的、优点和其他特征将变得更加明显。这里仅出于示例的目的,参考附图来给出优选实施例的非限制性描述,在附图中:
图1示出了其中可以实施本公开的实施例的示例存储系统的示意性结构图;
图2A示出了根据本公开的实施例的用于控制存储系统的方法的流程图;
图2B示出了根据本公开的实施例的用于确定控制因子的示例;
图3示出了根据本公开的实施例的设置用于后台操作的节制等级的方法的流程图;以及
图4示出了根据本公开的实施例的装置的示例性结构图。
具体实施方式
在以下描述中,出于说明的目的而阐述许多细节。然而,本领域普通技术人员将认识到可以在不使用这些具体细节的情况下实现本公开的实施例。因此,本公开不旨在于受限于所示实施例、而是将被赋予与本文描述的原理和特征一致的最宽的范围。
应当理解,术语“第一”、“第二”等仅被用来将一个元素与另一个元素区分开来。而实际上第一元素也能够被称为第二元素,反之亦然。另外还应当理解“包括”,“包含”仅被用来说明所陈述的特征、元素、功能或者部件的存在,然而并不排除存在一个或者多个其他的特征、元素、功能或者部件。
为了便于解释,本文的一些实施例将以快照删除为例来介绍用于控制后台操作的方法或装置,然而,如本领域技术人员可以理解的,本公开的实施例绝不限于被应用于快照删除,而是可以被应用于存在类似问题的任何后台操作。
在图1中示出了可以在其中实施本公开的实施例的示例存储系统100的示意图。然而,应当注意的是,在一些实施例中,并不需要图1中所示的存储系统的特定结构。
在图1的示例存储系统100中,上层控制层110处理I/O请求,并与CBFS应用程序接口(API)层120交互。CBFS API层120通过公共文件系统(CFS)层130和/或CBFS层140执行与文件存储有关的操作。另外,存储系统100中的底层数据存储由存储资源池150支持。存储资源池150可以包括多个存储设备,例如图中所示的磁盘151-1到151-N。
传统上,不仅要处理I/O请求,还要执行若干后台操作,例如快照的删除、磁盘碎片的整理等。后台操作的执行同样需要占用处理资源,例如中央处理单元(CPU)资源,因此,大量的后台操作可能影响对I/O的处理。另一方面,诸如快照删除的后台操作有助于收回存储空间,利于新的数据存储。如何控制后台操作,使其不对I/O处理造成不利影响,并且使得存储资源被有效利用仍是开放的问题。例如,目前删除快照对于庞大的逻辑单元号(LUN)来说并不足够快。这可能需要花费例如几分钟,甚至数小时来完成。最差的情况下,差的性能可能严重影响用户体验,尤其是在存储池接近满时。因此,需要一种有效的机制来对诸如快照删除的后台操作进行控制。
为了保证I/O性能,可以仅基于到达的I/O的计数来对后台操作(例如快照删除)进行节制。然而,本公开的发明人意识到,I/O计数并不能精确地描述系统的过载。因此,该方案可能无法有效地利用运行时间资源,导致快照删除性能较差。
此外,目前快照删除并未考虑存储池的使用情况,更没有考虑在存储池满的情况下对快照删除的优化,这可能导致存储空间可能无法及时收回,进而导致用户不被允许创建新的快照。
本公开的实施例提出了一种用于存储系统管理的新解决方案。在一些实施例中,可以通过将多个因素纳入考虑而动态地监测系统、存储资源池和文件系统的负载,以评估用于后台操作的适当的节制等级或者优先级。基于该节制等级,可以调整例如快照删除的线程数目和调度间隔,以使得资源能够更有效地运行。利用本公开的一些实施例,快照能够被快速地删除,从而存储空间能够及时地被收回而不影响对主机到达I/O的处理,例如到达I/O仍处于可接受的CPU使用率之下。
此外,在本公开的一些实施例中,在存储池将满时,可以例如提高快照删除操作(例如用于快照删除的截断线程)的优先级,例如使其优先级高于I/O处理,以尽快收回存储空间。
以下参考图2A来描述根据本公开的实施例的、用于控制存储系统的示例方法200。该方法可以在图1的存储系统100中被实施,并且为便于说明,以下结合该存储系统100来描述方法200的实施例。但是应当理解,方法200不限于在该特定的示例结构中被实施。
如图2A所示,该方法包括在块210,确定与存储系统中的后台操作有关的控制因子。作为示例,该控制因子包括,但不限于,存储系统中的存储资源池的使用状态。例如,在块210,可以通过周期性地(例如每10秒)查询存储资源池的空闲百分比来确定该控制因子。
在一个实施例中,替代地或者附加地,该控制因子可以包括该存储系统100的系统级负载,以及/或者,关联于所述存储系统的文件系统(FS)级的负载。
该存储系统100的系统级负载可以表示为,例如,I/O摄入量、I/O响应时间等。在一个实施例中,在块210,可以通过获取例如每周的I/O摄入表来确定系统级负载。例如,摄入信息可以由图1中所示的CBFS API层120中CBFS IO统计功能(表示为CBFSIOStats)来收集。摄入信息中的每个条目可以是,例如,上一周同一天的同一小时的摄入相对于这一天的摄入的比率,例如百分比。
仅仅作为示例,在一些实施例中,星期天可以被定义为一周的开始(表示为day=0)。因此,条目[1][1]指第一周的星期一(day=1)发生的总摄入。某小时的I/O负载与上周同一时间相比也可以获得百分比。若该百分比值超过摄入比值阈值,则表示当前的I/O摄入繁重。作为示例而非限制,该摄入比值阈值可以具有缺省值10,并且该值可以被改变。应该注意的是,在另一实施例中,也可以获取在比一周更短或者更长的时间间隔的I/O摄入表。
在另一示例中,在块210,可以在例如CBFS的API层完成I/O响应时间统计收集,以确定系统级负载作为控制因子。可以例如在快照的截断操作进行期间收集1分钟(或者其它更短或者更长的时间段)之内的平均读响应时间。
在另一实施例中,替代地或者附加地,该控制因子可以包括关联于所述存储系统的FS级的负载。FS级的负载可以通过,例如,文件日志的空闲度或者数据日志的空闲度等来表示。例如,在块210,可以获取针对FS的文件日志(例如UFSlog),的空闲百分比作为控制因子。UFSLog是一种日志机制,其跟踪元数据,被用于在系统重启或者停电时保证文件系统的一致性。在UFSLog使用率高时,意味着到达的I/O迅速增加。
在一个示例中,FS的UFSlog的空闲百分比可以和针对所有FS的系统日志(syslog)的空闲百分比一起,被用于评估FS的负载,或者说使用情况。Syslog为全局日志,用于管理所有文件系统的总日志大小。
另外,还可以结合数据日志(例如DataLog)的空闲度(例如空闲百分比),一起来评估文件系统的总的空闲百分比。持续文件数据高速缓存(PFDC)技术被设计为提供高I/O输出吞吐量和低延时。该技术通过将元数据更新开销从客户机I/O路径切换到后台线程来实现该性能。在PFDC中,数据首先以小尺寸的格式(例如,DataLog格式)被写在快速持续存储中。因此,DataLog跟踪用户数据。
在一个示例实施例中,可以设定用于UFSlog的使用情况和用于DataLog的使用情况的权重,以将两者组合来获得针对文件系统的总的使用情况。作为一个非限制性示例,在块210,可以通过以下公式获得件系统的总的使用情况(表示为vFreePercent),作为控制因子:
vFreePercent=(vDLPercent*vDLRatio+vUFSLogPercent*
vUFSLogRatio)/(vDLRatio+vUFSLogRatio)(1)其中vDLPercent表示DataLog的空闲度(其中可以考虑文件高速缓存(FDC)的空闲度),UFSLogPercent表示UFSLog的空闲度。在一些实施例中,例如可以设定vDLRatio=2,vUFSLogRatio=1,以分别表示用于DataLog的使用情况的权重为2,并且用于UFSlog的使用情况的权重为1。
在图2B中示意性地示出了通过存储系统100的各层获取控制因子的示例。如图2B所示,可以通过CBFS API层120获得I/O摄入表121和读I/O响应时间122;可以通过CFS层130获得文件数据高速缓存情况131;以及可以通过CBFS层140获得UFSLog 141、SysLog 143和DataLog 142使用情况。
现在返回图2A,在块220,基于所确定的控制因子,设置用于后台操作的优先级。在一些实施例中,该后台操作可以包括,例如但不限于,快照删除、磁盘碎片整理等。
作为示例而非限制,在块220,可以响应于控制因子指示存储系统100的存储资源池150的空闲度高于阈值程度,而降低后台操作的优先级,并且/或者,可以响应于控制因子指示存储资源池150的空闲度低于该阈值程度,而保持后台操作的优先级不变或者提高后台操作的优先级。例如,一旦资源池150的空闲百分比低于存储池阈值(例如,缺省阈值5%),可以认为需要尽快地执行存储资源的回收,并且因此应该尽快执行快照删除(例如截断操作)。在这种情况下,在块220,可以针对截断操作设定高优先级,并且可以不对截断操作执行节制(例如设定节制等级为0)。应当注意,截断是用于删除文件的技术的示例,其通过减小文件的大小来删除文件,其中文件与LUN关联。在该技术中,在删除一个快照时,将关联的LUN的大小截断到零。然而,本公开不限于以这种技术来执行文件(例如快照)的删除。
在一个实施例中,替代地或者附加地,在块220,可以响应于控制因子指示存储系统100的系统级I/O负载(例如I/O摄入量)高于阈值负载,而降低后台操作的优先级,以及/或者,响应于控制因子指示存储系统100的系统级I/O负载低于该阈值负载,而保持后台操作的优先级不变或者提高后台操作的优先级。
在另一实施例中,在块220,可以响应于控制因子指示存储系统100的当前I/O负载与之前的时间段内的I/O负载的比值高于第一阈值比值,而降低所述后台操作的所述优先级,以及/或者,响应于控制因子指示该存储系统100的当前I/O负载与之前的时间段内的I/O负载的比值低于该第一阈值比值,而保持后台操作的优先级不变或者提高后台操作的优先级。例如,如果I/O摄入百分比超过摄入比值阈值,则认为当前的I/O摄入繁重,并且在块220,可以响应于此而针对后台操作设定较低优先级值,对后台操作进行节制。
作为又一示例,在块220,可以响应于控制因子指示存储系统100的I/O响应时间高于阈值时间,而降低该后台操作的优先级,以及/或者,响应于控制因子指示存储系统的I/O响应时间低于该阈值时间,而保持后台操作的优先级不变或者提高后台操作的优先级。例如,如果系统的I/O平均响应时间大大长于截断操作开始前的值,则表示I/O处理明显受到截断操作的影响,并且这种情况下,可以通过针对截断操作设定较低优先级来保证I/O线程优先被服务。
在另一示例中,可以响应于控制因子指示存储系统的当前I/O响应时间与后台操作开始之前的I/O响应时间的比值高于第二阈值比值,而降低所述后台操作的所述优先级;以及/或者,响应于控制因子指示存储系统的当前I/O响应时间与该后台操作开始之前的I/O响应时间的比值低于所述第二阈值比值,而保持后台操作的优先级不变或者提高后台操作的优先级。例如,如果截断期间的平均I/O响应时间与截断开始前的比值大于响应时间比值缺省阈值(第二阈值比值),则可以通过针对截断操作设定较低优先级来暂停截断,保证I/O先被服务。I/O响应时间比值缺省阈值(第二阈值比值)的一个示例是150%,该值可以通过命令改变。
如前所述,在一些实施例中,在块210中确定的控制因子也可以替代地或者附加地指示FS级的负载情况。在一个这种实施例中,在块220,可以响应于控制因子指示关联于存储系统100的FS的日志的空闲度低于第一阈值空闲度,而降低后台操作的优先级;并且/或者,响应于控制因子指示FS的日志的空闲度高于该第一阈值空闲度,而保持后台操作的优先级不变或者提高后台操作的优先级。例如,UFSLog使用率高(相当于空闲度低)意味着到达的IO迅猛增长。因此,这种情况下,可以在块210,加快将脏的元数据清理到磁盘,降低USFLog的使用率,并且可以限制截断操作(即为截断设定较低优先级)以释放CPU资源用于服务到达的I/O。
替代地或者附加地,在块220,可以响应于控制因子指示存储系统100中的数据高速缓存的空闲度(例如DataLog空闲百分比)低于第二阈值空闲度,而降低所述后台操作的所述优先级;并且/或者,响应于控制因子指示存储系统100中的数据高速缓存的空闲度高于该第二阈值空闲度,而保持后台操作的优先级不变或者提高后台操作的优先级。
在又一实施例中,在220可以基于数据高速缓存的空闲度和FS的日志的空闲度两者来确定后台操作的优先级。例如,可以响应于控制因子指示存储系统100中的数据高速缓存的空闲度和关联于该存储系统的FS系统的日志的空闲度的加权和(例如,根据公式(1)计算的加权和)低于阈值和,而降低所述后台操作的所述优先级;并且/或者,响应于该加权和高于该阈值和,而保持后台操作的优先级不变或者提高后台操作的优先级。即,一旦空闲百分比的加权总和低于给定阈值,则可以降低后台操作(例如,截断)的优先级,即,增加后台操作的节制等级。节制等级指示对后台操作施加的节制的程度,因此指示后台操作的优先级。
总的来说,在一些实施例中,可以将针对后台操作的节制等级定义为多个控制因子的函数,并且在块220,可以基于该函数确定后台操作的优先级/节制等级。该多个控制因子例如可以包括,但不限于,以下中的一个或者多个:DataLog空闲度(例如,DataLog百分比)、UFSLog空闲度(例如,UFSLog百分比)、存储池空闲度(存储池空闲百分比)、I/O摄入百分比、以及读I/O数百分比等。
在一个示例中,可以基于例如DataLog百分比、UFSLog百分比、存储资源池空闲百分比、I/O摄入百分比、读I/O数百分比的函数(例如表示为f())来确定节制等级。
替代地,还可以定义其它函数以分别根据UFSLog百分比、存储资源池百分比、I/O摄入百分比、读I/O数百分比等中的一个或者多项来确定节制等级。
在一些实施例中,在块220,可以进一步基于预定的用于后台操作的最低优先级(对应于最高节制等级),来设置用于后台操作的优先级。例如,如果基于函数f()所计算的节制等级大于预定的最高节制等级,则在块220可以将节制等级设定为该最高节制等级,即将优先级设定为预定的最低优先级。
在又一些实施例中,可以基于不同的控制因子逐步调整用于后台操作的节制等级,该节制等级对应于优先级。例如,如果存储资源池的空闲度低于阈值程度,则将后台操作的优先级设置为高于I/O的优先级;如果存储资源池的空闲度高于阈值程度,则:降低后台操作的所述优先级,并且通过基于存储系统的I/O负载、I/O响应时间、关联于存储系统的文件系统的日志的空闲度、用于后台操作的最低优先级等中的至少一项逐步调整用于后台操作的优先级,以确定用于后台操作的优先级。在图3中示出了以该方式确定节制等级的一个示例方法300。方法300可以被用于执行图2A的块220的操作。在该方法300中,初始节制等级可以被设定为0。然后检查所考虑的每个控制因子是否达到相应阈值。如果该控制因子达到预定阈值,则节制等级被增加。另外,最终获得的节制等级受最大节制等级的制约。在一个特殊的情况下,如果存储池被显示为将满,则不管系统是否忙,都可以保证截断操作以高优先级(低节制等级)运行以收回存储空间。
具体而言,如图3所示,在块310,初始节制等级可以被设定为0。在块320,确定资源池空闲百分比是否大于资源池阈值。如果资源池空闲百分比大于资源池阈值,则在块320增加节制等级,否则,在块370将该节制等级设定为最终节制等级。
在块330,确定FS空闲百分比是否大于空闲度阈值。如果FS空闲百分比小于空闲度阈值,则在块331继续增加节制等级,否则进行到块340,在此确定读I/O响应时间是否大于响应时间阈值。
如果在块340确定I/O响应时间大于响应时间阈值,则在块341继续增加节制等级。否则,在块350,确定I/O摄入百分比是否大于摄入阈值。
如果在块350确定I/O摄入百分比大于摄入阈值,则在块351继续增加节制等级。否则,在块360,确定计算的节制等级是否大于最高节制等级。
如果计算的节制等级已经大于最高节制等级,则在块361将该节制等级设为最高节制等级,否则,将计算的节制等级作为最终节制等级。
应该注意的是,本公开的实施例不限于图3中所示的控制因子的使用,也不限于图3中所示的各操作的顺序。
返回2A,在块230,可以基于在块220所设置的用于后台操作的优先级来控制该后台操作的执行。优先级高(或者说节制等级低),意味着存储阵列的负载处于可接受的水平,从而可以使用更多的后台操作线程和更短的间隔以加速后台操作,例如加速截断。反之亦然。因此,在一个实施例中,可以基于所述优先级确定用于后台操作的线程数目,并且基于所确定的该线程数目来控制后台操作的执行。
例如,在块220,可以通过定义的函数(例如,getTruncateThrottleLevel())来获得节制等级(例如表示为TLevel);而在块230,可以利用另一函数(例如gTruncateThrottleThread[TLevel])或者通过查表的方式来获得对应于给定的节制等级TLevel的线程数目。例如,该函数或者表可以统计性地定义针对特定节制等级的子LeafIB任务的线程。
附加地或者替代地,在另一实施例中,可以基于优先级确定用于后台操作调度信息(例如用于后台操作的调度间隔以及后台操作让出CPU的次数等)并且基于所确定的用于后台操作的该调度信息来控制所述后台操作的执行。例如,可以使用定义的函数(例如gTruncateThrottleSleepTime[TLevel])或者通过查表的方式来获得对应于给定节制等级TLevel的睡眠时间。例如,该函数或者表可以统计性地定义针对特定节制等级的睡眠时间。
本公开的另一个方面还提供用于控制存储系统的控制装置。该控制装置可以实施于例如图1中的存储系统100的内部或者外部。该控制装置可以包括相应的控制单元,以分别执行如上参考方法200所述的块210-230的操作。例如,该控制装置中的一个控制单元可以利用图3所示的方法300来完成块220的功能。以上结合方法200和300所述的操作同样适用于该控制装置,因此不再赘述。
图4示出了一个可以用来实施本公开的实施例的电子设备400的示意性框图。如图4所示,电子设备400包括控制器或者称处理单元(例如CPU)401,其可以根据存储在只读存储器(ROM)402和/或随机访问存储器(RAM)403的程序而执行各种适当的动作和处理。ROM402和/或RAM 403可存储电子设备400操作所需的各种程序和数据。控制器401、ROM 402和RAM 403通过总线404彼此相连。特别地,电子设备400还包括一个或多个专用处理单元(未示出),这些专用处理单元也可以连接至总线404。
输入/输出(I/O)接口405也连接至总线404。电子设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许电子设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
在某些实施例中,控制器401可被配置为执行上文所描述的各个过程和处理,例如过程300以及方法200。例如,在一些实施例中,过程300或者方法200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到电子设备400上。当计算机程序被加载到RAM 403并由控制器401执行时,可以执行上文描述的过程300、方法200的一个或多个操作。备选地,在其他实施例中,控制器401也可以以其他任何适当的方式被配置以实现上述过程/方法。
特别地,根据本公开的实施例,上文参考图2A至图3描述的过程可以被实现为计算机程序产品,其可以被有形地存储在非瞬态计算机可读存储介质上,并且包括机器可执行指令,该指令在被执行时使得机器实现根据本公开的各个方面。
计算机可读存储介质可以是可以存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的、非穷举的例子包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的设备、方法和计算机程序产品的框图和/或流程图描述了本公开的各个方面。应当理解,框图和/或流程图的每个方框以及框图和/或流程图中各方框的组合,都可以由计算机可读程序指令实现。
已经出于示例的目的描述了本公开的各个实施例,但是本公开并不意图限于所公开的这些实施例。在不脱离本公开实质的前提下,所有修改和变型均落入由权利要求所限定的本公开的保护范围之内。
另外,在本公开中,还提供了对于提出的一些解决方案的性能评估结果。以下是本公开的一个实施例与传统方案的性能比较。在该实施例中,根据图3所示的方法确定用于截断操作的节制等级,而传统方法仅基于I/O计数来进行截断的控制。表1和表2分别示出联机压缩(ILC)打开和关闭的情况下的比较结果,并且两组结果均显示本公开的实施例使得截断操作能够比传统方案中更快地执行,同时,I/O响应时间和CPU使用处于可接受的水平。
表1.ILC打开情况下的比较结果
表2.ILC关闭情况下的比较结果
Claims (13)
1.一种用于控制存储系统的方法,包括:
确定与所述存储系统中的后台操作有关的多个控制因子,所述控制因子包括所述存储系统中的存储资源池的使用状态和所述存储系统的输入/输出I/O响应时间;
基于所确定的所述控制因子,通过执行以下步骤来设置用于所述后台操作的优先级;
响应于第一控制因子指示所述存储资源池的空闲度低于阈值程度,设置所述后台操作的所述优先级高于I/O的优先级;
响应于所述第一控制因子指示所述存储资源池的所述空闲度高于阈值程度,降低所述后台操作的所述优先级并至少基于第二控制因子逐步调整所述后台操作的所述优先级,其中至少基于所述第二控制因子逐步调整所述后台操作的所述优先级包括:
响应于所述第二控制因子指示所述存储系统的所述I/O响应时间高于阈值时间,降低所述后台操作的所述优先级;以及
响应于所述第二控制因子指示所述存储系统的所述I/O响应时间低于所述阈值时间,保持或者提高所述后台操作的所述优先级;以及
基于所设置的所述优先级来控制所述后台操作的执行, 包括:
基于所设置的所述优先级确定用于所述后台操作的调度信息和线程数目;以及
基于所确定的用于所述后台操作的所述调度信息和所述线程数目来控制所述后台操作的执行。
2.根据权利要求1所述的方法,其中所述控制因子进一步包括所述存储系统的系统级负载、以及关联于所述存储系统的文件系统级的负载中的至少一项。
3.根据权利要求1所述的方法,其中后台操作包括快照的删除。
4.根据权利要求1所述的方法,其中所述调度信息包括:
用于所述后台操作的调度间隔;以及
所述后台操作让出中央处理单元(CPU)的次数。
5.根据权利要求2所述的方法,其中设置用于所述后台操作的优先级还包括:
响应于第三控制因子指示所述存储系统的I/O负载高于阈值负载,降低所述后台操作的所述优先级;以及
响应于所述第三控制因子指示所述存储系统的I/O负载低于所述阈值负载,保持或者提高所述后台操作的所述优先级。
6.根据权利要求2所述的方法,其中设置用于所述后台操作的优先级还包括:
响应于第三控制因子指示所述存储系统的当前I/O负载与之前的时间段内的I/O负载的比值高于阈值比值,降低所述后台操作的所述优先级;以及
响应于所述第三控制因子指示所述存储系统的所述当前I/O负载与之前的所述时间段内的I/O负载的比值低于所述阈值比值,保持或者提高所述后台操作的所述优先级。
7.根据权利要求1所述的方法,其中设置用于所述后台操作的优先级还包括:
响应于第三控制因子指示所述存储系统的当前I/O响应时间与所述后台操作开始之前的I/O响应时间的比值高于阈值比值,降低所述后台操作的所述优先级;并且
响应于所述第三控制因子指示所述存储系统的所述当前I/O响应时间与所述后台操作开始之前的I/O响应时间的比值低于所述阈值比值,保持或者提高所述后台操作的所述优先级。
8.根据权利要求2所述的方法,其中设置用于所述后台操作的优先级还包括:
响应于第三控制因子指示关联于所述存储系统的所述文件系统的日志的空闲度低于阈值空闲度,降低所述后台操作的所述优先级;并且
响应于所述第三控制因子指示所述文件系统的所述日志的空闲度高于所述阈值空闲度,保持或者提高所述后台操作的所述优先级。
9.根据权利要求1所述的方法,其中设置用于所述后台操作的优先级还包括:
响应于第三控制因子指示所述存储系统中的数据高速缓存的空闲度低于阈值空闲度,降低所述后台操作的所述优先级;并且
响应于所述第三控制因子指示所述存储系统中的所述数据高速缓存的空闲度高于所述阈值空闲度,保持或者提高所述后台操作的所述优先级。
10.根据权利要求2所述的方法,其中设置用于所述后台操作的优先级还包括:
响应于第三控制因子指示所述存储系统中的数据高速缓存的空闲度和关联于所述存储系统的所述文件系统的日志的空闲度的加权和低于阈值和,降低所述后台操作的所述优先级;并且
响应于所述第三控制因子指示所述加权和高于所述阈值和,保持或者提高所述后台操作的所述优先级。
11.根据权利要求1所述的方法,其中设置用于所述后台操作的优先级还包括:
进一步基于预定的用于所述后台操作的最低优先级,来设置用于所述后台操作的优先级。
12.一种电子设备,包括:
至少一个处理器;以及
至少一个存储器,耦合至所述至少一个处理器并且包含存储于其中要由所述至少一个处理器执行的计算机程序代码,其中所述计算机程序代码被配置用于以下项的执行:
确定与所述存储系统中的后台操作有关的多个控制因子,所述控制因子包括所述存储系统中的存储资源池的使用状态和所述存储系统的输入/输出I/O响应时间;
基于所确定的所述控制因子,通过执行以下步骤来设置用于所述后台操作的优先级;
响应于第一控制因子指示所述存储资源池的空闲度低于阈值程度,设置所述后台操作的所述优先级高于I/O的优先级;
响应于所述第一控制因子指示所述存储资源池的所述空闲度高于阈值程度,降低所述后台操作的所述优先级并至少基于第二控制因子逐步调整所述后台操作的所述优先级,其中至少基于所述第二控制因子逐步调整所述后台操作的所述优先级包括:
响应于所述第二控制因子指示所述存储系统的所述I/O响应时间高于阈值时间,降低所述后台操作的所述优先级;以及
响应于所述第二控制因子指示所述存储系统的所述I/O响应时间低于所述阈值时间,保持或者提高所述后台操作的所述优先级;以及
基于所设置的所述优先级来控制所述后台操作的执行, 包括:
基于所设置的所述优先级确定用于所述后台操作的调度信息和线程数目;以及
基于所确定的用于所述后台操作的所述调度信息和所述线程数目来控制所述后台操作的执行。
13.一种计算机存储介质,被编码有计算机可执行程序代码,所述代码被配置为支持以下项的执行:
确定与所述存储系统中的后台操作有关的多个控制因子,所述控制因子包括所述存储系统中的存储资源池的使用状态和所述存储系统的输入/输出I/O响应时间;
基于所确定的所述控制因子,通过执行以下步骤来设置用于所述后台操作的优先级;
响应于第一控制因子指示所述存储资源池的空闲度低于阈值程度,设置所述后台操作的所述优先级高于I/O的优先级;
响应于所述第一控制因子指示所述存储资源池的所述空闲度高于阈值程度,降低所述后台操作的所述优先级并至少基于第二控制因子逐步调整所述后台操作的所述优先级,其中至少基于所述第二控制因子逐步调整所述后台操作的所述优先级包括:
响应于所述第二控制因子指示所述存储系统的所述I/O响应时间高于阈值时间,降低所述后台操作的所述优先级;以及
响应于所述第二控制因子指示所述存储系统的所述I/O响应时间低于所述阈值时间,保持或者提高所述后台操作的所述优先级;以及
基于所设置的所述优先级来控制所述后台操作的执行, 包括:
基于所设置的所述优先级确定用于所述后台操作的调度信息和线程数目;以及
基于所确定的用于所述后台操作的所述调度信息和所述线程数目来控制所述后台操作的执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031541.0A CN109726006B (zh) | 2017-10-27 | 2017-10-27 | 用于控制存储系统的方法、装置和计算机存储介质 |
US16/172,117 US11157313B2 (en) | 2017-10-27 | 2018-10-26 | Method, apparatus and computer storage medium for controlling a storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031541.0A CN109726006B (zh) | 2017-10-27 | 2017-10-27 | 用于控制存储系统的方法、装置和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726006A CN109726006A (zh) | 2019-05-07 |
CN109726006B true CN109726006B (zh) | 2023-06-06 |
Family
ID=66243866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711031541.0A Active CN109726006B (zh) | 2017-10-27 | 2017-10-27 | 用于控制存储系统的方法、装置和计算机存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11157313B2 (zh) |
CN (1) | CN109726006B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413206B (zh) * | 2018-04-28 | 2023-05-30 | 伊姆西Ip控股有限责任公司 | 存储系统中的操作控制方法、设备和计算机程序产品 |
CN110297711B (zh) * | 2019-05-16 | 2024-01-19 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
CN112765046A (zh) * | 2019-10-21 | 2021-05-07 | 伊姆西Ip控股有限责任公司 | 用于回收存储空间的方法、设备和计算机程序产品 |
CN113448490A (zh) | 2020-03-25 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 用于存储的方法、设备和计算机程序产品 |
US11627097B2 (en) * | 2021-02-26 | 2023-04-11 | Netapp, Inc. | Centralized quality of service management |
KR20220165980A (ko) * | 2021-06-09 | 2022-12-16 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276890A (zh) * | 1997-10-23 | 2000-12-13 | 国际商业机器公司 | 在多线程处理器中改变线程优先级的方法和装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240934A1 (en) * | 2004-04-21 | 2005-10-27 | Hewlett-Packard Development Company, L.P. | Task management based on system utilization |
US8327103B1 (en) | 2010-06-28 | 2012-12-04 | Emc Corporation | Scheduling data relocation activities using configurable fairness criteria |
US8930653B1 (en) * | 2011-04-18 | 2015-01-06 | American Megatrends, Inc. | Data de-duplication for information storage systems |
US9342362B2 (en) * | 2012-06-15 | 2016-05-17 | Nvidia Corporation | Service-processor-centric computer architecture and method of operation thereof |
US9600337B2 (en) * | 2014-09-30 | 2017-03-21 | Nimble Storage, Inc. | Congestion avoidance in network storage device using dynamic weights |
US11650956B2 (en) * | 2015-05-11 | 2023-05-16 | Vmware, Inc. | Prioritizing backup of endpoint devices in enterprise network environments |
US20170168871A1 (en) * | 2015-12-15 | 2017-06-15 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for triggering background task |
US10365978B1 (en) | 2017-07-28 | 2019-07-30 | EMC IP Holding Company LLC | Synchronization of snapshots in a distributed consistency group |
CN109725840B (zh) | 2017-10-30 | 2022-04-05 | 伊姆西Ip控股有限责任公司 | 利用异步冲刷对写入进行节流 |
CN110399333B (zh) | 2018-04-20 | 2023-07-18 | 伊姆西Ip控股有限责任公司 | 删除快照的方法、设备和计算机程序产品 |
CN110413206B (zh) | 2018-04-28 | 2023-05-30 | 伊姆西Ip控股有限责任公司 | 存储系统中的操作控制方法、设备和计算机程序产品 |
CN110609807B (zh) | 2018-06-15 | 2023-06-23 | 伊姆西Ip控股有限责任公司 | 用于删除快照数据的方法、设备和计算机可读存储介质 |
-
2017
- 2017-10-27 CN CN201711031541.0A patent/CN109726006B/zh active Active
-
2018
- 2018-10-26 US US16/172,117 patent/US11157313B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276890A (zh) * | 1997-10-23 | 2000-12-13 | 国际商业机器公司 | 在多线程处理器中改变线程优先级的方法和装置 |
Non-Patent Citations (2)
Title |
---|
Software-Controlled Priority Characterization of POWER5 Processor;Carlos Boneti 等;《2008 International Symposium on Computer Architecture》;第415-426页 * |
改进的抢占阈值调度任务响应时间分析方法;王涛 等;《计算机工程》;第21-22、36页 * |
Also Published As
Publication number | Publication date |
---|---|
US20190129750A1 (en) | 2019-05-02 |
CN109726006A (zh) | 2019-05-07 |
US11157313B2 (en) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726006B (zh) | 用于控制存储系统的方法、装置和计算机存储介质 | |
US11604759B2 (en) | Retention management for data streams | |
US8818989B2 (en) | Memory usage query governor | |
EP3229142B1 (en) | Read cache management method and device based on solid state drive | |
US10430338B2 (en) | Selectively reading data from cache and primary storage based on whether cache is overloaded | |
CN112748863B (zh) | 用于处理数据的方法、电子设备和计算机程序产品 | |
US9606937B1 (en) | Cache insertion based on threshold access frequency | |
US9384205B1 (en) | Auto adaptive deduplication to cloud based storage | |
US8621143B2 (en) | Elastic data techniques for managing cache storage using RAM and flash-based memory | |
US8583608B2 (en) | Maximum allowable runtime query governor | |
US9424196B2 (en) | Adjustment of the number of task control blocks allocated for discard scans | |
US11500577B2 (en) | Method, electronic device, and computer program product for data processing | |
US10324635B1 (en) | Adaptive compression for data replication in a storage system | |
US20150095553A1 (en) | Selective software-based data compression in a storage system based on data heat | |
US20130067168A1 (en) | Caching for a file system | |
US9135064B2 (en) | Fine grained adaptive throttling of background processes | |
CN113742131B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
US20240211154A1 (en) | Method, device, and computer program product for de-duplicating data | |
US9239790B1 (en) | Techniques for evicting cached files | |
CN112597112B (zh) | 数据处理方法及装置、电子设备和存储介质 | |
US20240020231A1 (en) | Methods and systems for garbage collection and compaction for key-value engines | |
US12124413B2 (en) | Read amplification reduction in a virtual storage system when compression is enabled for a zoned checksum scheme | |
EP4357900A1 (en) | Data processing method and apparatus | |
US20240281343A1 (en) | Method, electronic device, and computer program product for storage performance expansion | |
US20230315691A1 (en) | Read amplification reduction in a virtual storage system when compression is enabled for a zoned checksum scheme |
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 |