CN107209712B - 存储系统、存储设备及硬盘调度方法 - Google Patents
存储系统、存储设备及硬盘调度方法 Download PDFInfo
- Publication number
- CN107209712B CN107209712B CN201580001233.6A CN201580001233A CN107209712B CN 107209712 B CN107209712 B CN 107209712B CN 201580001233 A CN201580001233 A CN 201580001233A CN 107209712 B CN107209712 B CN 107209712B
- Authority
- CN
- China
- Prior art keywords
- hard disk
- group
- groups
- state
- service requests
- 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
Images
Classifications
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
Abstract
本申请揭示了一种存储系统存储设备及硬盘调度方法。所述存储系统包括M个硬盘组、供电系统和控制器,M为不小于3的自然数。所述M个硬盘组中的每个硬盘组包括至少一个用于存储数据的硬盘,每个硬盘包括非激活状态、启动状态以及工作状态。所述供电系统为所述存储系统提供的电力支持所述M个硬盘组中的一个硬盘组处于工作状态以及另一个硬盘组处于启动状态。所述控制器连接所述M个硬盘组并用于控制所述M个硬盘组中的第一硬盘组中的硬盘处于工作状态以处理第一组业务请求,并在所述第一硬盘组中的硬盘处于工作状态时,控制所述M个硬盘组中的第二硬盘组中的硬盘从非激活状态转换到启动状态,第二硬盘组用于处理第二组业务请求。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种存储系统、存储设备及硬盘调度方法。
背景技术
冷存储是数据中心存储的一种实现方式,冷存储适用于需要保存但是又很少会被读取的数据。随着大数据时代的到来,冷存储逐渐成为倍受人们关注的话题。由于数据很少被访问,冷存储对存储设备的性能的要求不高。为了降低存储成本,冷存储可以采用大容量、低功耗、低成本的存储设备。传统的冷存储中多采用磁带(magnetic tape)库来存储数据,然而,磁带库具有较高的访问时延。为了减少数据在读取过程中的访问时延,现有技术中也有采用硬盘(hard disk drive)或固态硬盘(solid state drive)来实现冷存储的解决方案。然而,这种采用硬盘或固态硬盘来实现冷存储的解决方案不仅成本高,并且具有较大的功耗。
为了节省系统功耗,现有技术中提供的一种存储设备中,包括多个独立工作的调度域,每个调度域中包括多组硬盘。任意一个时刻,在同一个调度域中最多只允许一组硬盘同时启动或同时工作。对于任意一个调度域,存储设备均按照请求队列分别调度不同的硬盘组处理业务请求。现有技术中的这种硬盘组调度方式虽然节省了系统功耗,但是却引入了硬盘组间的切换时间,其中切换时间可以是几秒甚至达到几十秒。因此,在处理多个业务请求时,如果这些业务请求交替分布在不同的硬盘组上,会造成硬盘组的频繁切换,增大处理延时。
发明内容
本发明实施例中提供的一种存储系统、存储设备及硬盘调度方法,能够在处理多个业务请求的情况下,在降低系统功耗的基础上减少业务处理延时。
第一方面,本申请提供了一种存储系统。该存储系统包括M个硬盘组、供电系统和控制器,其中,所述M为不小于3的自然数。所述M个硬盘组中的每个硬盘组包括至少一个用于存储数据的硬盘,每个硬盘包括非激活状态、启动状态以及工作状态。所述供电系统为所述存储系统提供电力,所述供电系统所提供的电力支持所述M个硬盘组中的一个硬盘组处于工作状态,以及所述M个硬盘组中的另一个硬盘组处于启动状态。所述控制器连接所述M个硬盘组。所述控制器用于控制所述M个硬盘组中的第一硬盘组中的硬盘处于工作状态,并在所述第一硬盘组中的硬盘处于工作状态时,控制所述M个硬盘组中的第二硬盘组中的硬盘从非激活状态转换到启动状态。其中,所述第一硬盘组用于处理请求队列中的第一组业务请求,所述第二硬盘组用于处理所述请求队列中的第二组业务请求。所述工作状态是指硬盘的盘片处于旋转状态且转速达到处理数据所需的固定转速的状态。所述非激活状态是指硬盘的盘片没有旋转的状态。所述启动状态是指硬盘从上电到盘片的转速达到处理数据时所需的固定转速期间的状态。
作为冷存储的一种解决方案,本申请提供的存储系统(包括M个硬盘组)中的供电系统支持M个硬盘组中的一个硬盘组处于工作状态以及所述M个硬盘组中的另一个硬盘组处于启动状态。换一种表达方式,本申请提供的存储系统并不支持所述存储系统中的所有硬盘组同时处于工作状态或启动状态。因此,本申请提供的存储系统节省了系统功耗。并且,在存储系统工作过程中,本申请提供的存储系统根据供电系统提供的电力控制存储系统中的第一硬盘组处于工作状态的同时控制第二硬盘组处于启动状态,从而使存储系统中的两个硬盘组能够并行处理业务请求,减少了在非首次启动的硬盘组的启动过程中系统的等待时间,节省了业务请求的处理时间。因此,本申请提供的存储系统,在处理多个业务请求时,能够在降低系统功耗的基础上减少业务处理延时。
结合第一方面,在第一方面的第一种实现方式中,所述控制器还用于接收多个业务请求,并根据接收的所述多个业务请求获得所述请求队列,其中,所述请求队列中至少包含有按照处理顺序先后排列的所述第一组业务请求和所述第二组业务请求。例如,控制器可以这种按照预设的时间窗将预设时间段内的业务请求按照访问的不同硬盘组进行分组,获得分别由不同硬盘组处理的多组业务请求,并以每组业务请求为单位对各组业务请求进行排序。这种对业务请求进行分组排列的方式,能够使处于工作状态的硬盘组尽可能多的处理业务请求,最大程度的利用硬盘组的工作能力,从而能够更进一步的减少系统功耗并节省业务处理延时。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述请求队列中还包含第三组业务请求,所述第三组业务请求在所述请求队列中排序在所述第二组业务请求之后,所述第三组业务请求为所述M个硬盘组中的第三硬盘组待处理的业务请求,所述控制器还用于确定所述第一组业务请求和所述第二组业务请求中的任意一组业务请求已经被处理完成且尚未到达所述第三硬盘组的启动时间,所述控制器控制已处理完业务请求的硬盘组处理所述请求队列中的第F组业务请求,其中,所述第F组业务请求在所述请求队列中位于所述第三组业务请求之后,且所述第F组业务请求为所述已处理完业务请求的硬盘组未处理的业务请求。根据这种在确定尚未达到下一个硬盘组的启动时间后,将已处理完当前业务请求的硬盘组的后续业务请求提前处理的方式,使得已启动的硬盘组能够尽可能多的处理业务请求,进一步的减少了硬盘组重复启动的次数,减少了系统的功耗,并节省了处理多个业务请求的平均延时。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述第一硬盘组和第二硬盘组同时处于工作状态时,所述控制器还用于当到达所述第三硬盘组的启动时间时,将所述第一硬盘组或第二硬盘组由工作状态转换为非激活状态,并控制所述第三硬盘组从非激活状态转换到启动状态。
结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述请求队列中还包含第三组业务请求,所述第三组业务请求在所述请求队列中排序在所述第二组业务请求之后,所述第三组业务请求为所述M个硬盘组中第三硬盘组待处理的业务请求。在所述请求队列中,所述第一组业务请求的执行时间不小于所述第二组业务请求的执行时间、所述第二硬盘组中的硬盘的启动时长以及所述第三硬盘组中的硬盘的启动时长之和。所述控制器还用于在所述第一硬盘组处理所述第一组业务请求时,确定所述第二硬盘组处理完所述第二组业务请求,控制所述第二硬盘组转换为非激活状态,并控制所述第三硬盘组由非激活状态转换为启动状态。本申请提供的存储系统由于在获得请求队列的过程中充分考虑了业务请求的处理时间以及硬盘组的启动时长,因此,能够在充分利用多个硬盘组的并行处理能力的同时,尽可能的使不同硬盘组的工作实现无缝衔接,保证了当一组硬盘处于工作状态时另一个硬盘组处于启动状态或工作状态,进一步节省了业务处理延时。
结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述请求队列中还包含第三组业务请求,所述第三组业务请求在所述请求队列中排序在所述第二组业务请求之后,所述第三组业务请求为所述M个硬盘组中第三硬盘组待处理的业务请求。所述控制器还用于在确定所述第一组业务请求和所述第二组业务请求中的任意一组业务请求已经被处理完成后,控制已处理完业务请求的硬盘组转换为非激活状态,并控制所述第三硬盘组由非激活状态转换为启动状态。
第二方面,本申请提供了一种存储系统,所述存储系统包括M个硬盘组、供电系统以及控制器。所述M个硬盘组中的每个硬盘组包括至少一个用于存储数据的硬盘,其中,每个硬盘包括非激活状态、启动状态以及工作状态,所述M为不小于4的自然数。所述供电系统用于为所述存储系统提供电力,其中,所述供电系统所提供的电力支持所述M个硬盘组中的X个硬盘组处于工作状态,以及所述M个硬盘组中的Y个硬盘组中的硬盘处于启动状态,所述X和Y均为自然数,X+Y的值大于等于3且小于M。所述控制器与所述M个硬盘组连接。所述控制器控制所述M个硬盘组中的P个硬盘组中的硬盘处于工作状态,且在所述P个硬盘组中的硬盘处于工作状态时,控制所述M个硬盘组中的Q个硬盘组中的硬盘从非激活状态转换到启动状态。其中,所述P为不大于X的自然数,所述P个硬盘组用于处理请求队列中的P组业务请求。所述Q为不大于Y的自然数,所述Q个硬盘组用于处理所述请求队列中的Q组业务请求,且P+Q的值不小于3。所述工作状态是指硬盘的盘片处于旋转状态且转速达到处理数据所需的固定转速的状态。所述非激活状态是指硬盘的盘片没有旋转的状态,所述启动状态是指硬盘从上电到盘片的转速达到处理数据时所需的固定转速期间的状态。
与本申请第一方面提供的存储系统类似,本申请第二方面提供的存储系统,由于并不能支持存储系统中的M个硬盘组同时工作或启动,只能够在M个硬盘组中的X个硬盘组处于工作状态的同时支持Y个硬盘组处于启动状态,从而能够在节省系统功耗的情况下,充分利用部分硬盘组工作的时间启动其他的硬盘组,以达到时间复用的目的。并最大程度的利用系统中的多个硬盘组的并发处理能力,减少了在非首次启动的硬盘组的启动过程中系统的等待时间,减少了业务处理延时。
结合第二方面,在第二方面的第一种可能的实现方式中,所述控制器还用于接收多个业务请求,并根据所述多个业务请求获得所述请求队列。其中,所述请求队列中至少包含有按照处理顺序先后排列的所述P组业务请求和所述Q组业务请求。这种按照业务请求分组排列的方式能够使处于工作状态的硬盘组尽可能多的处理业务请求,进一步的减少系统功耗并节省业务处理延时。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述请求队列中还包含Z组业务请求,所述Z组业务请求为所述M个硬盘组中除所述P+Q个硬盘组之外的Z个硬盘组待处理的业务请求,所述Z为不小于1且不大于Y的自然数。所述控制器还用于在确定所述第P组业务请求和所述第Q组业务请求中的N组业务请求已被处理完成且尚未到达所述Z个硬盘组的启动时间时,控制已处理完所述N组业务请求的N个硬盘组分别处理所述请求队列中待处理的N组业务请求。其中,所述N为不大于P+Q的自然数,所述待处理的N组业务请求在所述请求队列中位于所述Z组业务请求之后,且所述待处理的N组业务请求分别为所述N个硬盘组待处理的业务请求。基于这种实现方式提供的存储系统,能够将已处理完当前业务请求的硬盘组的后续业务请求尽可能的提前处理,使得已启动的多个硬盘组能够尽可能多的处理业务请求,减少了硬盘组重复启动的次数,减少了系统功耗,并进一步的节省了处理多个业务请求的平均延时。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,当P=X,Q=Y,且在X+Y个硬盘组同时处于工作状态时,所述控制器还用于当到达所述Z个硬盘组的启动时间时,计算启动所述Z个硬盘组所需的功耗。然后,所述控制器根据启动所述Z个硬盘组所需的功耗将已处于工作状态的所述X+Y个硬盘组中的W个硬盘组由工作状态转换为非激活状态,并将所述Z个硬盘组从非激活状态转换为启动状态。其中,W为不小于Z且小于X+Y的自然数,将所述W个硬盘组由工作状态转换为非激活状态所释放的功耗不小于启动所述Z个硬盘组所需的功耗。基于这种实现方式提供的存储系统,当到达Z个硬盘组的启动时间时,能够根据待启动的Z个硬盘组的系统功耗来确定需要关闭的硬盘组的数量。从而充分利用供电系统的供电能力使存储系统中处于工作状态的硬盘组的数量保持最大值,能够充分利用存储系统中的硬盘组并行处理业务请求的能力,减少业务处理延时。
结合第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,在X+Y个硬盘组同时处于工作状态时,所述控制器还用于在根据所述Z个硬盘组的启动时间确定需要将所述Z个硬盘组从非激活状态转换到启动状态时,将已处于工作状态的所述X+Y个硬盘组中的Y个硬盘组由工作状态转换为非激活状态,并控制所述Z个硬盘组从非激活状态转换到启动状态。根据这种实现方式提供的存储系统,在X+Y个硬盘组同时处于工作状态时,若需要启动Z个硬盘组,则只保持已处于工作状态的所述X+Y个硬盘组中的X个硬盘组处于工作状态,以便能够启动Z个硬盘组。在节省功耗以及降低系统延时的基础上,这种切换启动硬盘组的方式更加简便,易于操作。
结合第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,当N小于P+Q时,所述控制器还用于当确定所述P+Q个硬盘组中的N个硬盘组由工作状态转换为非激活状态时,计算所述N个硬盘组释放的功耗,并根据所述N个硬盘组释放的功耗将所述M个硬盘组中的S个硬盘组从非激活状态转换为启动状态。其中,所述S为不小于1且不大于N的自然数,所述N个硬盘组释放的功耗不小于启动所述S个硬盘组所需的功耗。根据这种实现方式提供的硬盘组,在N个硬盘组没有业务处理的情况下,能够根据关闭没有业务的N个硬盘组释放的功耗提前启动所述M个硬盘组中的其他硬盘组。从而能够更进一步的节省业务处理的平均延时。
第三方面,本申请提供了一种存储设备,所述存储设备包括如上述第一方面提供的存储系统中的M个硬盘组以及控制器。
第四方面,本申请提供了又一种存储设备,所述存储设备包括如上述第二方面提供的存储系统中的M个硬盘组以及控制器。
第五方面,本申请提供了一种硬盘调度方法,所述硬盘调度方法由上述第三方面提供的存储设备执行,并能够实现上述如第一方面提供的存储系统中的控制器实现的功能。
第六方面,本申请提供了又一种硬盘调度方法,所述硬盘调度方法由上述第四方面提供的存储设备执行,并能够实现如上述第二方面提供的存储系统中的控制器实现的功能。
第七方面,本申请提供了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可以由上述控制器执行,并用于执行上述第五方面和第六方法中所述的至少一种方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例中的附图。
图1为本发明实施例提供的一种存储系统的结构示意图;
图2为本发明实施例提供的一种硬盘状态示意图;
图3为本发明实施例提供的一种硬盘调度方法的流程图;
图4为本发明实施例提供的一种业务调度示意图;
图5为本发明实施例提供的一种硬盘调度方法的示意图;
图6为本发明实施例提供的又一种硬盘调度方法的流程图;
图7为本发明实施例提供的又一种硬盘调度方法的示意图;
图8为本发明实施例提供的又一种硬盘调度方法的流程图;
图9为本发明实施例提供的又一种硬盘调度方法的示意图;
图10为本发明实施例提供的又一种硬盘调度方法的流程图;
图11为本发明实施例提供的一种业务请求排序方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。
本发明实施例提出了一种图1为本发明实施例提供的一种存储系统的结构示意图。在图1所述的存储系统100中,存储系统100可以包括控制器105、硬盘阵列120、供电系统110以及散热系统115。
控制器105是存储系统100的“大脑”,主要包括处理器(processor)118、通信接口112、存储器(memory)122、通信总线(简称总线)116以及主机总线适配器(Host BusAdapter,HBA)114。处理器118、通信接口112、存储器122以及HBA 114通过通信总线116完成相互间的通信。
通信接口112可以是控制器105的业务访问接口,控制器105可以通过通信接口112与主机和存储阵列120等外部设备通信。例如,控制器105可以通过通信接口112接收主机对硬盘阵列120的访问请求。
HBA 114是一个在控制器100和硬盘阵列120间提供输入/输出(Input/Output,I/O)处理和物理连接的电路板或集成电路适配器。可以理解的是,实际应用中,除了采用HBA外,控制器100和硬盘阵列120之间还可以采用其他通信接口设备通信,例如,控制器100和硬盘阵列120之间可以直接通过以太网控制器通信。
存储器122,用于存放程序124。存储器124可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)。可以理解的是,存储器122可以为随机存储器(Random-Access Memory,RAM)、磁碟、硬盘、U盘、移动硬盘、光盘、固态硬盘(Solid StateDisk,SSD)或者其他非易失性存储器等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
程序124可以包括程序代码,所述程序代码包括计算机操作指令。
处理器118可能是一个中央处理器CPU,或者是特定集成电路(ApplicationSpecific Integrated Circuit,ASIC),或者是能实施本发明实施例的一个或多个集成电路。处理器118可以根据不同的软件程序实现不同的功能。例如,处理器118可以处理根据访问硬盘130的业务请求对硬盘130中的数据进行处理或控制硬盘的状态等等。在本发明实施例中,处理器118用于执行程序124,具体可以执行下述方法实施例中的相关步骤。
尽管图1所示的控制器105位于存储系统100内,但在有些情况下,控制器105也可以位于存储系统外部或位于存储系统较远的位置。并且,即使图1只给出了一个控制器105的示例,但实际应用中,控制器105也可以有多个。例如,当有多个控制器105的情况下,在一个控制器出现故障时,可以由其他的控制器接管该有故障的控制器的工作,以实现对硬盘阵列120的控制,保证存储系统100的正常工作。
硬盘阵列120用于存储数据。硬盘阵列120可以包括独立磁盘冗余阵列(RedundantArray of Independent Disks,RAID)。实际应用中,硬盘阵列120还可以有多个。硬盘阵列120中可以包括多个硬盘组125,每个硬盘组125由多个硬盘(Hard Disk Drive,HDD)130组成。需要说明的是,硬盘130仅仅是构建硬盘阵列120的存储器的一种示例,本发明实施例中的存储器可以包括固态硬盘(Solid State Drives,SSD)、由多个硬盘构成的机柜或服务器等装置,在此不做限定。
如图1所示,硬盘阵列120可以通过总线接口与控制器105连接。例如,硬盘阵列120可以通过SAS接口、SCSI接口或SATA接口与控制器105连接,在此不做限定。图1以硬盘阵列120通过SAS接口与控制器105连接为例进行说明。具体的,如图1所示,硬盘阵列120可以包括串行连接SCSI(Serial Attached SCSI,SAS)扩展器(Expander)126以及多个硬盘130。控制器105中的HBA 114连接SAS扩展器126,并通过SAS扩展器126连接多个硬盘130。本领域技术人员可以知道SAS扩展器126包括多个端口,可以用来扩充硬盘阵列120的容量。例如,SAS扩展器122可以是12端口、28端口或36端口的扩展器,在此不做限定。可以理解的是,硬盘阵列120中可以包括多个SAS扩展器126,每个硬盘组125中的硬盘130均可以通过SAS扩展器126连接。
在本发明实施例中,为了便于对硬盘130进行管理,可以将存储系统100中的多个硬盘130分成多个硬盘组125。其中,一个硬盘组125中至少包括一个硬盘130。需要说明的是,当一个硬盘组125中包括多个硬盘130时,属于同一个硬盘组125中的多个硬盘130的资源均不冲突,其中,在本发明实施例中的资源是指供电、散热、振动等能够影响硬盘正常工作的因素。例如,属于同一个硬盘组125中的多个硬盘130可以同时工作,属于同一个硬盘组125中的多个硬盘130可以同时被上电或下电。在本发明实施例中,对硬盘130进行调度时是以硬盘组125为单位进行调度的。一个业务请求可以由一个硬盘组125中的一个或多个硬盘130进行处理。例如,同一个硬盘组125中的多个硬盘130可以构成独立磁盘冗余阵列(Redundant Arrays of Independent Disks,RAID),该硬盘组125中的多个硬盘130能够根据接收的业务请求同时读取一个分条(stripe)的数据块。本领域技术人员可以知道,本发明实施例中描述的分条(stripe),是指并行写入构建RAID的各个硬盘130上的数据块的集合。其中,分条中的各个数据块的大小相同,且同一个分条上的数据块位于各个存储器中的偏移位置相同。分条上的数据块也可被称为条带(strip),条带是一个盘区上的连续地址块。需要说明的是,在本发明实施例中一个业务请求不会由多个硬盘组125协同处理。本发明实施例中的业务请求可以包括对存储于存储系统100中的数据的读请求和写请求。
供电系统110可以为控制器105和硬盘阵列120供电。散热系统115可以为控制器105和硬盘阵列120散热。具体的,供电系统110可以由一个或多个电源模块组成。散热系统115可以采用空调系统或风扇等设备为硬盘130和控制器105散热。在此不对供电系统110和散热系统115的具体类型进行限定。在图1所示的存储系统100中,以控制器105和硬盘阵列120共用一个供电系统110和一个散热系统115为例。在实际应用中,控制器105和硬盘阵列120也可以使用不同的供电系统和散热系统。在此不做限定。
如图2所示,在本发明实施例中,可以根据硬盘130对供电系统110提供的电源的需求将硬盘130的状态区分为以下三个主要状态:非工作(inactive)状态205、启动(spin up)状态210以及工作状态(active)状态215。非激活状态205可以包括硬盘130被下电(powerdown)或硬盘130虽然被上电(power up)但硬盘130的盘片没有旋转(spin)时的状态。换一种表达方式,非激活状态205是指硬盘的盘片没有旋转时的状态。本发明实施例中,硬盘130虽然被上电(power up)但硬盘130的盘片没有旋转(spin)时的状态可以包括standby状态或sleep状态等。在非激活状态,由于硬盘130的盘片没有旋转,因此硬盘130的功耗很小或者不消耗功耗。当处于非激活状态的硬盘130接收到启动spin up命令(或start up命令)后,硬盘130的盘片开始旋转,硬盘130进入启动状态。启动状态是指硬盘130从上电到硬盘130的盘片的转速达到处理数据时所需的固定转速期间的状态,其中,处理数据包括读数据和写数据。换一种表达方式,启动状态是指硬盘130处于初始化过程中的状态,在这个过程中,硬盘130的盘片从不旋转到旋转至固定转速,且硬盘130完成读数据和写数据的准备工作。在硬盘130处于启动状态期间,硬盘130的功耗较大。通常硬盘130处于启动状态大约在15s左右,具体启动状态的持续时间与硬盘130的设计有关,在本发明实施例中不进行限定。硬盘130经过启动状态210之后即可进入工作状态215。工作状态215是指硬盘130的盘片处于旋转状态且转速达到处理数据所需的固定转速时的状态。具体的,工作状态可以包括硬盘130盘片旋转且进行数据读/写的状态以及盘片的转速达到处理数据所需的固定转速且无数据读/写的状态。处于工作状态215的硬盘130在接收到sleep命令或shut down命令后即可停止工作,进入非激活状态。在上述硬盘130的三个状态中,硬盘130处于非激活状态时的功耗最小,硬盘130处于工作状态时的功耗比硬盘130处于启动状态时的功耗小。通常,硬盘处于启动状态时的功耗是处于工作状态时的功耗的三倍。
需要说明的是,作为冷存储的解决方案,由于存储系统100中存储的数据很少被访问,因此,为了减少系统功耗,在本发明实施例提供的存储系统100中,供电系统110以及散热系统115不支持存储系统100中的所有硬盘130同时处于工作状态或启动状态。换一种表达方式,供电系统110以及散热系统115可以只支持存储系统100中的部分硬盘130同时处于工作状态或启动状态。如果存储系统100中的所有硬盘130同时处于工作状态或启动状态,则会导致存储系统100出现故障。并且,为了在降低存储系统100的系统功耗的基础上尽量降低数据访问过程中存储系统的访问时延,本发明实施例提出了一种调度机制,通过这种调度机制来控制存储系统100中在一部分硬盘组125处于工作状态的同时另一部分硬盘组处于启动状态,其中,处于工作状态的硬盘组和处于启动状态的硬盘组只是存储系统100中的部分硬盘组。例如,通过这种调度机制,可以使存储系统100中的第一硬盘组处于工作状态,同时使第二硬盘组处于启动状态。通过这种方式能够为第二硬盘组后续处理业务做好准备,减少等待第二硬盘组启动的时间,缩短系统处理业务的延时。可以理解的是,这种调度机制可以以软件的形式运行在控制器105上。在本发明实施例中,还可以通过供电系统110以及散热系统115来控制存储系统100中在一部分硬盘组125处于工作状态的同时另一部分的硬盘组处于启动状态。例如,在一种情况下,可以设计供电系统110只能够支持一部分硬盘组125同时处于工作状态以及另一部分硬盘组125同时处于启动状态所需要的电量,其中,处于工作状态的所述一部分硬盘组和处于启动状态的所述另一部分硬盘组只是存储系统100中的部分硬盘组。在另一种情况下,供电系统110可以有足够的供电能力使存储系统中的所有盘同时处于工作状态,但在工作时,供电系统100只提供支持一部分硬盘组125同时处于工作状态以及另一部分硬盘组125同时处于启动状态所需要的电量。本发明实施例不对供电系统100的最大供电能力进行限制。下面将结合附图详细介绍本发明实施例提供的硬盘调度方法。
本发明实施例提出了如图3所示的一种硬盘调度方法。该方法可以由图1中所示的存储系统来实现。为了描述清楚,图3将以包含3个硬盘组的存储系统为例对本发明实施例的提供的硬盘调度方法进行描述。在本发明实施例中,以三个硬盘组中包含有相同数量的硬盘为例。换一种表达方式,在图3所示的存储系统中,每一个硬盘组处于工作状态所消耗的功耗相同,且每一个硬盘组处于启动状态时所消耗的功耗也相同。如图3所示,该方法具体可以包括如下步骤。
在步骤301中,控制器105接收主机发送的多个业务请求。在本发明实施例中,业务请求可以包括从硬盘阵列120中读数据的读请求,也可以包括向硬盘阵列120中写数据的写请求,在此不做限定。本领域人员可以知道,业务请求中携带有要访问的地址,存储系统100可以根据接收的业务请求确定各业务请求要访问的硬盘组。在本发明实施例中,一个业务请求由一个硬盘组处理,且一个硬盘组可以处理多个业务请求。需要说明的是,主机仅仅是需要访问存储系统且具有计算功能的通信设备的一个示例。在本发明实施例中,存储系统100还可以通过网络设备接收服务器或终端等通信设备的业务请求,在此不做限定。
在步骤305中,控制器105可以按照接收的业务请求的处理顺序获得请求队列。在请求队列中至少包含业务请求及时间戳,所述时间戳用来记录业务请求进入所述请求队列的时间。本领域人员可以理解,在建立请求队列时,可以根据业务请求访问的硬盘组分别为各个硬盘组建立请求队列,也可以为所有的硬盘组建立一个请求队列,在本发明实施例中不做限定。例如,图4为本发明实施例提供的一种业务调度示意图,如图4所示,控制器105可以对预设时间段内接收的多个业务请求进行排序,以获取请求队列401。例如,控制器105可以对每2分钟中接收的业务请求进行排序获得请求队列。在获得请求队列时,控制器105可以按照预设的时间窗将预设时间段内的业务请求按照访问的不同硬盘组进行分组,获得分别由不同硬盘组处理的多组业务请求。其中,所述多组业务请求中的每组业务请求均包含有至少一个业务请求。例如,控制器105可以将2分钟内访问第一硬盘组的业务请求按照接收时间的先后顺序以每20s为一个时间窗对接收的业务请求进行分组,从而得到2分钟内访问所述第一硬盘组的一组或多组业务请求。类似的,控制器也可以将2分钟内访问第二硬盘组的业务请求按照接收时间的先后顺序对每20s内接收的业务请求进行分组,从而得到2分钟内访问所述第二硬盘组的一组或多组业务请求。根据这种对业务请求的分组方法,可以得到预设时间段内对各个硬盘组访问的多组业务请求。例如,在图4中,a0、a1和a2分别用于表示访问第一硬盘组的第一组业务请求,b0、b1和b2分别用于表示访问第二硬盘组的第二组业务请求,c0、c1和c2分别用于表示访问第三硬盘组的第三组业务请求。ta0用于表示业务请求a0进入请求队列401的时间。ta1、ta2等时间戳也分别用于表示相应的业务请求进入请求队列401的时间。可以理解的是,通过对预设时间段内的业务请求进行分组的方式,可以使得硬盘组在处于工作状态时处理尽可能多的业务请求。
在获得由不同硬盘组处理的多组业务请求后,控制器105可以以每组业务请求为单位对各组业务请求进行排序,以确定各组业务请求的处理顺序。例如,控制器105可以按照各组业务请求的接收时间或优先级顺序对各组业务请求进行排序。当然,控制器105还可以按照其他方式对各组业务请求进行排序,在本发明实施例中不对请求队列401的获取方法进行限定。在获得请求队列401后,控制器105可以根据请求队列401中的各组业务请求的处理顺序分别处理各业务请求,以根据各组业务请求将数据写入不同的硬盘组125中或者从不同的硬盘组125中读取数据。例如,控制器105可以根据第一组业务请求中的一个或多个业务请求分别从第一硬盘组中读取数据或者将数据写入第一硬盘组。
在步骤310中,控制器105启动第一硬盘组。为了描述清楚,下面将结合图5对图3所示的本发明实施例提供的硬盘调度方法进行描述。图5为本发明实施例提供的一种硬盘调度方法的示意图。在图5中,以包含有三个硬盘组的存储系统100处理三组业务请求为例进行图示。如图5所示,控制器105将预设时间段内接收的多个业务请求划分为三个组,并将三组业务请求按照优先级顺序进行排序获得请求队列501。在本发明实施例中,以存储系统100中的第一硬盘组处理第一组业务请求、第二硬盘组处理第二组业务请求以及第三硬盘组处理处理第三组业务请求为例进行描述。在请求队列501中,第一组业务请求的处理顺序优先于第二组业务请求的处理顺序,所述第二组业务请求的处理顺序优先于第三组业务请求的处理顺序。在获得请求队列501后,在步骤310中,控制器105可以根据请求队列501确定需要先处理第一组业务请求,因此,控制器105可以先启动所述第一硬盘组。如图5所示,在T1时间段内,所述第一硬盘组处于启动状态。
在步骤315中,第一硬盘组处理所述请求队列中的第一组业务请求。具体的,在所述第一硬盘组启动完成后,所述第一硬盘组将进入工作状态。例如,第一硬盘组中的硬盘可以分别根据所述第一组业务请求中的各个业务请求读取数据或写数据。实际应用中,可以根据第一组业务请求访问第一硬盘组中的一个硬盘,也可以根据第一组业务请求访问第一硬盘组中的多个硬盘。
在步骤320中,在所述第一硬盘组处理所述第一组业务请求时,控制器105启动第二硬盘组。在本发明实施例提供的存储系统100中,供电系统110能够满足一个硬盘组处于工作状态的同时另一个硬盘组处于启动状态所需的电力,且散热系统115也能够满足一个硬盘组处于工作状态的同时另一个硬盘组处于启动状态所需的散热能力。换一种表达方式,在本发明实施例提供的存储系统100中,所述存储系统100的各种硬件条件能够满足一个硬盘组处理业务请求的同时另一个硬盘组处于启动状态,而不能满足存储系统100中的三个硬盘组同时处于工作状态或同时处于启动状态。在这种条件下,与三个硬盘组同时启动的情况相比,本发明实施例中的存储系统100能够更节省功耗,并且,存储系统100中的至少两个硬盘组可以并行处理业务请求,从而在一定程度上减少了业务处理时间。因此,在步骤320中,如图5所示,在所述第一硬盘组进入工作状态开始处理所述第一组业务请求时,控制器105可以控制第二硬盘组处于启动状态。或者换一种表达方式,在所述第一硬盘组开始处理所述第一组业务请求时,控制器105可以启动所述第二硬盘组。由图5可以知道,在T2时间段内,第一硬盘组处于工作状态且第二硬盘组处于启动状态。
在步骤325中,所述第二硬盘组处理所述请求队列中的第二组业务请求。与步骤315类似,所述第二硬盘组启动完成后,所述第二硬盘组开始进入工作状态。在进入工作状态后,第二硬盘组开始处理所述请求队列501中的第二组业务请求。如图5所示,在T3时段内,第一硬盘组与所述第二硬盘组同时在处理业务请求。可以理解的是,由于启动硬盘组125所需的功耗大于硬盘组125处于工作状态时的功耗,因此,存储系统100能够支持所述第一硬盘组以及所述第二硬盘组同时处于工作状态。
在步骤330中,控制器105确定所述第一组业务请求被处理完成。在一种情形下,当第一硬盘组处理完所述第一组业务请求后,可以通知所述控制器105,例如,第一硬盘组可以主动向控制器105发送所述第一组业务请求被处理完成的消息。在另一种情形下,控制器105可以检测所述第一组业务请求是否被处理完成。例如,控制器105可以向第一硬盘组发送询问消息以确定所述第一组业务请求的处理进度。
在步骤335中,控制器105控制所述第一硬盘组由工作状态转为非激活状态。具体的,在所述第一硬盘组处理完所述第一组业务请求时,控制器105将所述第一硬盘组由工作状态转为非激活状态。例如,在如图5所示的T3时段的结束时刻,控制器105可以向第一硬盘组中的硬盘发送sleep命令或shut down命令,指示第一硬盘组中的硬盘由工作转态转为非激活状态。本领域人员可以知道,由于硬盘130处于非激活状态时的功耗最小,因此,当硬盘组由工作状态转为非激活状态后,将释放部分功耗。
在步骤340中,控制器105启动第三硬盘组。由于在步骤335中,控制器105控制第一硬盘组由工作状态转为非激活状态后,将会释放出部分功耗。因此,在本步骤中,控制器105可以启动其他硬盘组。例如,在如图5所示的T4时段的起始时刻,控制器105可以向存储系统100中的第三硬盘组发送start up命令或spin up命令,以启动所述第三硬盘组。在本发明实施例所示的存储系统100中,由于各种硬盘条件能够支持一个硬盘组处于工作状态的同时另一个硬盘组处于启动状态,因此,在如图5所示的T4时段,存储系统100能够支持第二硬盘组处于工作状态且第三硬盘组处于启动状态。
在步骤345中,所述第三硬盘组处理所述请求队列中的第三组业务请求。在第三硬盘组启动完成后,第三硬盘组将处于工作状态,第三硬盘组中的硬盘能够处理请求队列501中的第三组业务请求。
现有的存储系统通常都是按照业务请求的处理顺序,依次启动不同的硬盘组来处理相应的业务请求。例如,现有技术中的存储系统可以按照图5中所示的硬盘组调度顺序示意505所示的调度顺序分别调度不同的硬盘组处理业务请求,从而导致存储系统100中业务请求的处理时间T’比较长。在本发明实施例中,由图5中所示的硬盘组工作过程示意510可以看出,为了节省系统功耗,虽然本发明实施例提供的存储系统也不能满足所有的硬盘组同时处于工作状态或启动状态,但是,本发明实施例提供的存储系统能够允许部分硬盘组中的硬盘处于工作状态的同时另一部分硬盘组中的硬盘处于启动状态。以本实施例提供的包含有三个硬盘组的存储系统100为例,本发明实施例提供的硬盘调度方法能够使两个硬盘组并行处于工作状态,从而减少了第二硬盘组和第三硬盘组启动时系统的等待时间,能够节省业务请求的处理时间。例如,由图5中的硬盘组工作过程示意510所示,在处理相同的业务请求的情况下,采用本发明实施例提供的存储系统以及硬盘调度方法后,业务请求的处理时间T的值比T’的值更小。因此,采用本发明实施例提供的存储系统以及硬盘调度方法能够节省业务请求的处理时间,缩短存储系统处理业务请求的延时,提高了存储系统的业务处理效率。
在又一种情形下,为了在图3所示的实施例的基础上,减少硬盘组启动的次数,进一步缩短业务处理时间,本发明实施例还提供了另一种硬盘调度方法。下面将结合图3及图7对图6所示的另一种硬盘调度方法进行详细描述。为了描述清楚,在图6所示的实施例中,将以包含有三个硬盘组的存储系统100处理至少四组业务请求为例进行描述。
步骤301至步骤330均可以参见图3实施例中的相关步骤的描述。在图6所示的实施例中,与图3所示的实施例不同的是,在步骤305中,控制器105获得的请求队列可以参见图7所示的请求队列701。在图7所示的请求队列701中,至少包括五组业务请求。在本发明实施例中,以第一硬盘组处理第一组业务请求和第四组业务请求、第二硬盘组处理第二组业务请求和第五组业务请求、以及第三硬盘组处理第三组业务请求为例进行描述。
在步骤332中,控制器105判断是否到达第三硬盘组的启动时间。在本发明实施例中,在步骤330中,在第一硬盘组处理完所述第一组业务请求之后,控制器105可以进一步的确定是否到达第三硬盘组的启动时间,也就是说,控制器105可以进一步确定是否必须启动第三硬盘组。本领域人员可以知道,在控制器105对待处理的业务请求进行排序获得请求队列701之后,可以根据各硬盘组的启动时长以及各业务请求的执行时间获得处理各组业务请求的各硬盘组的最晚启动时间。在本发明实施例中,业务请求的执行时间是指执行该业务请求所需的时间,硬盘组的启动时长是指硬盘组开始启动到完成启动所需的时间,也就是硬盘组完成初始化准备工作所需的时间。例如,控制器105可以根据硬盘组的启动时长以及请求队列701中的各业务请求的执行时间计算获得各硬盘组的最晚启动时间。以一个硬盘组的启动时长为20s,第一组业务请求的执行时间为20s,第二组业务请求的执行时间为30s为例,则可以获得用于处理第二组业务请求的第二硬盘组的最晚启动时间为在启动处理第一组业务请求的第一硬盘组后的40s,用于处理第三组业务请求的第三硬盘组的最晚启动时间为在开始启动第一硬盘组后的90s。本领域技术人员可以理解的是,当到达一个硬盘组的最晚启动时间,则必须启动该硬盘组,否则会造成该硬盘组延迟处理业务请求,造成业务之间的乱序。在本发明实施例中,也将硬盘组的最晚启动时间称为硬盘组的启动时间。如图7中硬盘组调度顺序示意705所示,处理第二组业务请求的第二硬盘组的最晚启动时间可以如t1所示,处理第三组业务请求的第三硬盘组的最晚启动时间可以如t2所示,处理第四组业务请求的第一硬盘组最晚应该在t3时刻启动。可以理解的是,在实际应用中,启动时间还可以是一个时间段。在本步骤中,如控制器105判断已到达第三硬盘组的启动时间,则该方法进入步骤335,否则进入步骤350。
在步骤335中,控制器105可以控制所述第一硬盘组转为非激活状态。在步骤340中,控制器105启动所述第三硬盘组。在步骤345中,所述第三硬盘组处理所述请求队列701中的第三组业务请求。关于步骤335至步骤345的描述,具体可以参见图3所示实施例的相关描述,在此不再赘述。
在步骤350中,所述第一硬盘组处理所述请求队列中的第四组业务请求。在本发明实施例中,为了进一步减少存储系统的功耗,若在步骤332中,控制器105确定当第一硬盘组处理完所述第一组业务请求时尚未到达第三硬盘组的启动时间,则第一硬盘组可以继续处理调度队列701中的第四组业务请求。例如,如图7中的硬盘组工作过程示意710所示,第一硬盘组处理完所述第一组业务请求的时间为t1时刻,而第三硬盘组的启动时间可以为t2时刻,因此,第一硬盘组处理完所述第一组业务请求后,可以继续处理属于第一硬盘组处理的第四组业务请求。若当第一硬盘组处理完第四组业务请求后,仍然未到达第三硬盘组的启动时间,则第一硬盘组可以继续处理请求队列701中属于第一硬盘组处理的业务请求A直到达到第三硬盘组的启动时间为止。在本发明实施例中,业务请求A用于表示在请求队列701中处理顺序位于所述第四组业务请求之后且应该由所述第一硬盘组处理的一组或多组业务请求。换一种表达方式,在本发明实施例中,第一硬盘组在处理完所述第一组业务请求之后,若确定尚未到达第三硬盘组的启动时间,则第一硬盘组可以继续处理请求队列701中属于第一硬盘组处理的其他业务请求,直到到达第三硬盘组的启动时间为止。其中,请求队列701中属于第一硬盘组处理的其他业务请求也可以被称为请求队列701中的所述第一硬盘组待处理的业务请求。当需要启动第三硬盘组时,该方法可以进入步骤335,由控制器105控制第一硬盘组中的硬盘由工作状态转换为非激活状态,然后启动第三硬盘组。
类似的,如图7所示,第二硬盘组在处理完第二组业务请求之后,由于尚未到达再次启动第一硬盘组的时间t3,因此,与在步骤350中描述的第一硬盘组类似,第二硬盘组可以继续处理请求队列701中的第五组业务请求以及业务请求B。其中,业务请求B用于表示请求队列701中处理顺序位于所述第五组业务请求之后且应该由所述第二硬盘组处理的一组或多组业务请求。当到达第一硬盘组的启动时间t3时,控制器105控制第二硬盘组由工作状态转为非激活状态,然后启动第一硬盘组。根据这种方式,从t3时刻开始,控制器105可以按照请求队列701中未处理的业务请求的当前处理顺序分别按照本发明实施例提供的硬盘调度方法交替调度各硬盘组对未处理的业务请求进行处理。本领域人员可以理解的是,在本发明实施例中,由于请求队列701中的后续业务请求可能被提前处理,控制器105也可以对请求队列701中未处理的业务请求重新排序,然后根据重新排序后的请求队列按照上述提供的方法调度各硬盘组对尚未处理的业务请求进行处理。
需要说明的是,在步骤350中描述的第四组业务请求仅仅只是属于第一硬盘组处理的后续业务请求中的一个示例。实际应用中,一种情况下,当第一硬盘组处理完第一组业务请求之后,若尚未到达第三硬盘组的启动时间,则第一硬盘组可以继续处理请求队列中属于第一硬盘组处理的一组或多组未被处理的业务请求。在又一种情形下,可能第二组业务请求的处理时间比第一组业务请求的处理时间短,第二组业务请求先被处理完。在这种情况下,若当第二组业务请求被处理完后,尚未到达第三硬盘组的启动时间,则第二硬盘组可以继续处理属于第二硬盘组处理的一组或多组未被处理的业务请求。在又一种情形下,若第一组业务请求和第二组业务请求均被处理完成时,尚未到达第三硬盘组的启动时间,则第一硬盘组和第二硬盘组均可以分别继续处理所述请求队列中属于第一硬盘组和第二硬盘组的一组或多组未被处理的业务请求,直到到达第三硬盘组的启动时间为止。可以理解的是,在本发明实施例中,第四组业务请求、第五组业务请求、业务请求A和业务请求B只是为了描述方便所列举的一个示例。在实际应用中,当第一业务请求和第二业务请求中任意一个业务请求被处理完成后,已处理完业务请求的硬盘组可以继续处理所述请求队列中的第F组业务请求,其中,所述第F组业务请求在请求队列中位于所述第三组业务之后,且所述第F组业务请求为所述已处理完业务请求的硬盘组未处理的任意一个业务请求。
上述硬盘调度的方法仅仅是一个示例。实际应用中,当需要启动第三硬盘组时,若第二硬盘组中的业务处理完,也可以不将第一硬盘组中的硬盘转为非激活状态,而将第二硬盘组中的硬盘转为非激活状态,然后启动第三硬盘组。换一种表达方式,当需要启动第三硬盘组时,可以选择关闭第一硬盘组中的硬盘也可以选择关闭第二硬盘组中的硬盘。实际应用中,当选择关闭的硬盘组时,可以选择关闭当前处于工作状态的硬盘组中运行时间较长的硬盘组,也可以选择关闭当前处于工作状态的硬盘组中高优先级的业务请求较少的硬盘组,或者没有高优先级的业务请求的硬盘组,在本发明实施例中不进行限定。
根据图6和图7所示的实施例可以看出,图6所示的实施例在图3所示的实施例的基础上,通过在确定尚未达到下一个硬盘组的启动时间后,将已处理完当前业务请求的硬盘组的后续业务请求提前处理的方式,使得已启动的硬盘组能够尽可能多的处理业务请求。在处理相同业务请求的情况下,与图3所示的实施例相比,本发明实施例提供的硬盘调度方法能够在减少硬盘组启动时系统的等待时间并缩短业务处理延时的基础上,减少硬盘组的启动次数,减少处理多个业务请求的平均延时,降低存储系统的平均功耗。
需要说明的是,虽然图3和图6提供的硬盘调度方法是以包含有三个硬盘组的存储系统为例进行描述,然而在实际应用中,存储系统100可以包括三个以上的硬盘组。在存储系统包含三个以上的硬盘组的情况下,依然可以应用图3和图6所示的硬盘调度方法对存储系统中的硬盘组进行调度。实际应用中,也可以同时调动多个硬盘组同时处理多组业务请求。下面将结合图8所示的又一种硬盘调度方法流程图对同时调度多个硬盘组的情形进行描述。
图8为本发明实施例提供的又一种硬盘调度方法,在图8所示的实施例中,以存储系统100中包含有M(M为不小于4的自然数)个硬盘组为例进行描述。在本发明实施例中,存储系统100中的供电系统能够同时为M个硬盘组中的X+Y个硬盘组提供足够的电力,其中,所述X个硬盘组中的硬盘处于工作状态,所述Y个硬盘组中的硬盘处于启动状态,所述X和Y均为自然数,X+Y不小于3且小于M。所述X和所述Y的值均可以预先设置。本领域技术人员可以理解的是,X和Y的值越小越节省系统功耗,但X和Y的值越大越节省业务处理时间。实际应用中,可以结合存储系统100的硬件条件以及对业务处理时延的需求来设置X和Y的值。下面将结合图9提供的硬盘调度示意图对图8提供的硬盘调度方法进行描述。如图8所示,该方法可以包括下述步骤。
在步骤801中,控制器105可以接收主机发送的多组业务请求。在步骤805中,控制器105可以获得请求队列901。步骤801至步骤805的描述可以参见图3中的步骤301和步骤305的相关描述。在图9所示的请求队列901中包含有按照处理顺序先后排列的多组业务请求。在实际应用中,由于业务请求中携带有要访问的地址,因此,控制器105可以根据业务请求获知要处理所述业务请求的硬盘组。
在步骤810中,控制器105启动P个硬盘组。具体的,在本发明实施例所示的存储系统中,存储系统100中包含有M个硬盘组,因此,控制器可以根据请求队列901中的业务请求的处理顺序启动所述M个硬盘组中的P个硬盘组,其中P为不小于1且不大于X的自然数。例如,控制器105可以根据请求队列901中的第1组业务请求至第P组业务请求启动用于处理所述P组业务请求的P个硬盘组。可以理解的是,P的值具体可以根据请求队列中的业务请求的数量以及X的值来确定。例如,当所述请求队列中的业务请求的数量多于所述X的值时,所述P的值可以等于所述X的值;当所述请求队列中的业务请求的数量少于所述X的值时,所述P的值只能小于所述X的值。
在步骤815中,所述P个硬盘组处理所述请求队列中的P组业务请求。在本发明实施例中,在任意一个时刻,一个硬盘组只能处理一组业务请求。在本发明实施例中,当P的值不小于2时,所述P个硬盘组可以并行处理所述请求队列中的所述P组业务请求。例如,如图9中的硬盘组调度顺序示意905所示,第一硬盘组处理所述第一请求,第P个硬盘组处理所述第P组业务请求,依此类推。
在步骤820中,在所述P个硬盘组处理所述P组业务请求时,所述控制器105启动Q个硬盘组。也就是说,在所述P个硬盘组处理所述P组业务请求时,所述控制器105控制所述Q个硬盘组从非激活状态转换到启动状态。其中,所述Q为不小于1且不大于Y的自然数。可以理解的是,Q的值也可以根据请求队列中的业务请求的数量以及Y的值来确定。例如,如图9中的硬盘组工作过程示意910所示,在第一个硬盘组至第P个硬盘组进入工作状态开始分别处理第一组业务请求至第P组业务请求时,控制器105可以启动存储系统中的第P+1个硬盘组至第P+Q个硬盘组。可以理解的是,所述Q个硬盘组可以在所述P个硬盘组进入工作状态之后至所述第P+1个硬盘组的启动时间(如图9所示的T2)之间的任意时刻启动。在此不做限定。
在步骤825中,所述Q个硬盘组处理所述请求队列中的Q组业务请求。具体的,当所述Q个硬盘组中的硬盘完成启动后,所述Q个硬盘组将进入工作状态。所述Q个硬盘组可以分别处理请求队列901中的Q组业务请求。在本发明实施例中,当Q的值不小于2时,所述Q个硬盘组可以并行处理所述请求队列中的所述Q组业务请求。例如,如图9中的硬盘组调度工作过程示意910所示,第P+1个硬盘组处理所述第P+1个请求,第P+Q个硬盘组处理所述第P+Q组业务请求,依此类推。由于存储系统100能够支撑X+Y个硬盘组同时处于工作状态,因此,所述P+Q个硬盘组可以同时处于工作状态,以分别处理所述P+Q组业务请求。
需要说明的是,在本发明实施例中,并不对硬盘组进行排序。为了对处理不同业务请求的硬盘组进行区分,在本发明实施例中,将处理所述第一组业务请求的硬盘组称为第一硬盘组,将处理所述第P组业务请求的硬盘组称为第P硬盘组,依此类推。可以理解的是,第一硬盘组还可以处理除图9中所示的第一组业务请求之外的其他属于第一硬盘组处理的业务请求(图中未示出)。
实际应用中,为了在节省系统功耗的情况下缩短业务处理延时,在请求队列901中的业务请求的数量不小于X+Y的值的情况下,所述P的值可以等于所述X的值,所述Q的值可以等于所述Y的值。在本发明实施例中,在请求队列901中的业务请求的数量多于所述X+Y的值的情况下,在所述P+Q(等于所述X+Y)个硬盘组同时处于工作状态后,若请求队列901中还包括需要调度所述X+Y个硬盘组之外的其他硬盘组来处理的业务请求,则本发明实施例还可以包括下述步骤。当然,在本发明实施例中,也可以不考虑请求队列901中的业务请求的数量与所述X+Y的值,而是根据预设的P和Q的值来调度硬盘组。在这种情况下,本发明实施例也可以包括下述步骤。为了方便描述,在下面的步骤中以P的值等于所述X的值,Q的值等于所述Y的值为例进行描述。
在步骤830中,控制器105可以确定所述P+Q组业务请求中的N组业务请求被处理完成。其中,N可以是不小于1且小于P+Q自然数。在本发明实施例中,在所述P+Q个硬盘组处理业务请求的过程中,控制器105可以获得各硬盘组的处理进度,从而控制器105能够确定所述P+Q组业务请求中已被处理完的业务请求。具体的,一种情形下,控制器105可以通过轮询的方式获得各业务请求的处理进度,另一种情形下,当某个硬盘组处理完一组业务请求时,该硬盘组也可以主动通知控制器105。在此不做限定。
在步骤832中,控制器105确定是否到达Z个硬盘组的启动时间。其中,所述Z为不小于1且不大于Y的自然数。需要说明的是,在本发明实施例中,所述Z个硬盘组是指存储系统100中已处于工作状态的P+Q个硬盘组之外的硬盘组。所述Z个硬盘组的启动时间是指Z个硬盘组中最早启动的硬盘组的启动时间。当控制器105获得请求队列901时,控制器105即可获得处理请求队列901中的各组业务请求的硬盘组的启动时间,如图9所示的硬盘组调度顺序示意905所示。根据图9可知,在第一硬盘组至第P+Q(即X+Y)硬盘组处于工作状态后,第P+Q硬盘组之后的Z个硬盘组中最早启动的硬盘组为第P+Q+1硬盘组,第P+Q+1硬盘组的启动时间为T3。若当所述P+Q组业务请求中的N组业务请求在T3之前已经被处理完,则该方法进入步骤838,否则,该方法进入步骤835。
在步骤838中,所述P+Q个硬盘组中已处理完所述N组业务请求的N个硬盘组分别处理所述请求队列中的后续业务请求。在本发明实施例中,在步骤830中,当控制器105确定所述P+Q组业务请求中有N组业务请求被处理完成,且在步骤832中,控制器105确定尚未到达除已处于工作状态的所述P+Q个硬盘组之外的Z个硬盘组的启动时间时,所述P+Q个硬盘组中已处理完业务请求的硬盘组可以继续处理所述请求队列中的后续业务请求,直到控制器105确定到达所述Z个硬盘组的启动时间为止。例如,如图9所示,当第一硬盘组处理完所述第一组业务请求后,且控制器105确定尚未到达T3时,所述第一硬盘组可以继续处理所述第一硬盘组的后续业务请求(图9中未示出)。其中,所述第一硬盘组的后续业务请求是指所述请求队列中应该由所述第一硬盘组处理的业务请求,所述第一硬盘组的后续业务请求在所述请求队列中位于所述Z个硬盘组处理的业务请求之后。例如,如图9所示,所述第一硬盘组的后续业务请求在请求队列901中位于所述第P+Q+Z组业务请求之后。类似的,当第P+1硬盘组处理完第P+1组业务请求后,若尚未到达T3,则第P+1硬盘组可以继续处理所述第P+1硬盘组的后续业务。
需要说明的是,在本发明实施例中,在步骤830中,在一种情形下,只要控制器105确定所述第一组业务请求至第P+Q组业务请求中有一组业务请求被处理完成,则控制器105即可进入步骤832,以确定是否到达所述P+Q个硬盘组之外的Z个硬盘组的启动时间,如果没有到达所述Z个硬盘组的启动时间,则控制器105可以控制已处理完业务请求的硬盘组继续处理属于该硬盘组的后续业务请求。在另一种情形下,控制器105也可以在确定所述第一组业务请求至第P+Q组业务请求中已被处理完成的业务请求的数量达到预设阈值时,才进入步骤832,以确定是否到达所述P+Q个硬盘组之外的Z个硬盘组的启动时间,如果没有到达所述Z个硬盘组的启动时间,则控制器105可以控制已处理完业务请求的硬盘组继续处理属于该硬盘组的后续业务请求。
在步骤835中,控制器105控制所述P+Q个硬盘组中的部分硬盘组由工作状态转为非激活状态,以使所述P+Q个硬盘组中仍然能够保留X个硬盘组处于工作状态。具体的,控制器105可以选择关闭所述P+Q个硬盘组中已处理完业务请求的部分硬盘组。当然,也可以选择关闭所述P+Q个硬盘组中先启动的部分硬盘组,或者选择关闭所述P+Q个硬盘组中处理较低优先级的业务请求的部分硬盘组。在本步骤中,只要保留X个硬盘组处于工作状态即可。如前述实施例所述,控制器105在关闭部分硬盘组时,可以通过向该部分硬盘组发送Sleep命令或Shut down命令来关闭该部分硬盘组中的硬盘,使得该部分硬盘组由工作状态转为非激活状态。
在步骤840中,控制器105启动所述Z个硬盘组。例如,在经过步骤835后,存储系统100中只有X个硬盘组处于工作状态,则在步骤840中,控制器105可以启动所述Z个硬盘组。例如,如图9所示,控制器105可以启动第P+Q+1硬盘组至第P+Q+Z硬盘组。
在步骤845中,所述Z个硬盘组处理所述请求队列中的Z组业务请求。当所述Z个硬盘组完成启动后,所述Z个硬盘组可以分别处理所述请求队列901中的业务请求。当Z的值不小于2时,所述Z个硬盘组可以并行处理所述请求队列901中的多组业务请求。例如,第P+Q+1硬盘组处理第P+Q+1组业务请求,第P+Q+Z硬盘组处理第P+Q+Z组业务请求。
图8所示的实施例描述了同时调度两个以上硬盘组的情况。在图8所示的实施例中,存储系统100虽然不能满足所有的硬盘组同时处于工作状态或启动状态,但控制器105可以在控制P个硬盘组处于工作状态的同时启动Q个硬盘组。从而使存储系统100在节省系统功耗的情况下能控制P+Q个硬盘组并行处理业务请求,减少后续硬盘组启动时存储系统100的等待时间,缩短多组业务请求的总处理延时。并且,在图8所示的实施例中,控制器105调度已经处于工作状态的硬盘组处理尽可能多的业务请求,从而能够减少硬盘组的启动次数,减少多组业务请求的平均处理延时,降低存储系统的平均功耗。
在另一种情形下,为了进一步节省系统功耗,本发明实施例提供了另一种硬盘调度方法。如图10所示,图10所示的硬盘调度方法依然可以由图1所示的存储系统100来执行。下面将仍然以存储系统100包含有M个硬盘组为例对图10所示的实施例进行详细描述,其中,M为不小于4的自然数。
如图10所示,在图10所示的实施例中,步骤801至步骤832均可以参见图8所示实施例中相关步骤的描述。与图8所示的实施例略有不同的是,在图10所示的实施例中,在步骤832中,若控制器105判断已到达Z个硬盘组的启动时间,则需要进入步骤834,否则进入步骤833。在本发明实施例中,存储系统100中的供电系统仍然只能同时为M个硬盘组中的X+Y个硬盘组提供足够的电力,其中,所述X个硬盘组中的硬盘处于工作状态,所述Y个硬盘组中的硬盘处于启动状态,所述X和Y均为不小于1的自然数,X+Y不小于3且X+Y小于M。为了节省功耗,下面将以P=X且Q=Y为例详细描述在本发明实施例中控制器105如何启动除所述X+Y个硬盘组之外的其他硬盘组。
在步骤833中,控制器105判断所述请求队列中是否还包含有属于已处理完N组业务请求的N个硬盘组处理的业务请求。如果所述请求队列中还包含有属于所述N个硬盘组处理的业务请求,则该方法进入步骤838,否则进入步骤850。其中,所述N为不小于1且不大于X+Y的自然数。在步骤838中,所述P+Q个硬盘组中已处理完所述N组业务请求的N个硬盘组分别处理所述请求队列中的所述N个硬盘组待处理的后续业务请求,直到控制器105确定到达所述Z个硬盘组的启动时间为止。该步骤的具体描述可以参见图8所示实施例中的步骤838的描述,在此不再赘述。
在步骤834中,控制器105计算启动所述Z个硬盘组所需的功耗。为了更进一步的节省系统功耗,充分利用存储系统100中的硬盘组的工作能力,在本发明实施例中,可以在业务请求处理过程中,根据设定的硬盘阵列120所需的最大功耗来确定处于工作状态的硬盘组的数量。在本发明实施例中,所述硬盘阵列120所需的最大功耗为硬盘阵列120中的X个硬盘组处于工作状态同时Y个硬盘组处于启动状态时所述X+Y个硬盘组所需的功耗。本领域技术人员可以知道,存储系统100中每个硬盘处于启动状态、工作状态以及非激活状态时所需的功耗可以根据硬盘的出厂参数获得。进一步的,可以根据每个硬盘处于启动状态、工作状态以及非激活状态时所需的功耗可以计算获得所述硬盘阵列120所需的最大功耗。当在步骤832中,控制器105确定到达Z个硬盘组的启动时间后,在本步骤中,控制器105可以进一步的计算所述Z个硬盘组所需的功耗。具体的,控制器105可以通过一个硬盘的启动功耗与需要启动的Z个硬盘组中的硬盘的数量的乘积获得启动所述Z个硬盘组所需的功耗。例如,启动一个硬盘所需的功耗为24瓦(w),每个硬盘组中包含5个硬盘,Z=3,则启动Z个硬盘组所需的功耗为:24w*5*3=360w。在获得启动所述Z个硬盘组所需的功耗后,该方法进入步骤836。
在步骤836中,控制器105将已处于工作状态的所述P+Q个硬盘组中W个硬盘组由工作状态转换为非激活状态。其中,W为不小于Z且小于X+Y的自然数,将所述W个硬盘组由工作状态转换为非激活状态所释放的功耗不小于启动所述Z个硬盘组所需的功耗。由于在X+Y个硬盘组均已处于工作状态时存储系统100已无法为启动更多的硬盘组提供足够的电力,为了启动所述Z个硬盘组,在本步骤中,控制器105需要将已处于工作状态的X+Y个硬盘组中的W个硬盘组由工作状态转换为非激活状态。由于每个硬盘在工作状态时所需的功耗可以根据硬盘的出厂参数获得,因此,控制器105可以根据启动所述Z个硬盘组所需的功耗以及每个硬盘在工作状态时所需的功耗获得所述W的值。例如,仍然以每个硬盘组中包含5个硬盘,且一个硬盘在工作状态时所需的功耗为8w为例,W=360w/(5*8w)=9(个)。根据这种方式,为了启动所述Z(Z=3)个硬盘组,控制器105需要将已处于工作状态的X+Y个硬盘组中的9个硬盘组由工作状态转换为非激活状态。
在选择关闭的所述W个硬盘组时,控制器105可以选择关闭所述X+Y个硬盘组中已处理完业务请求的部分硬盘组。当然,也可以选择关闭所述X+Y个硬盘组中先启动的部分硬盘组,或者选择关闭所述X+Y个硬盘组中正在处理较低优先级的业务请求的部分硬盘组。具体的,控制器105可以向所述W个硬盘组发送Sleep命令或Shut down命令来关闭所述W个硬盘组。
在步骤840中,控制器105启动所述Z个硬盘组。由于在步骤836中,控制器105已经根据启动所述Z个硬盘组所需的功耗关闭了W个硬盘组,存储系统100能够提供启动所述Z个硬盘组所需的电力。因此,在本步骤中,控制器105启动所述Z个硬盘组。例如,控制器105可以通过向所述Z个硬盘组发送Start up命令或Spin up命令来启动所述Z个硬盘组。例如,如图9所示,控制器105可以启动第P+Q+1硬盘组至第P+Q+Z硬盘组。
在步骤845中,所述Z个硬盘组处理所述请求队列中的Z组业务请求。具体的,当所述Z个硬盘组完成启动后,所述Z个硬盘组可以分别处理所述请求队列901中的业务请求。当Z的值不小于2时,所述Z个硬盘组可以并行处理所述请求队列901中的多组业务请求。例如,第P+Q+1硬盘组处理第P+Q+1组业务请求,第P+Q+Z硬盘组处理第P+Q+Z组业务请求。
在步骤850中,控制器105控制所述N个硬盘组由工作状态转为非激活状态。在本发明实施例中,当在步骤833中,控制器105判断所述请求队列中已经没有属于已处理完所述N组业务请求的N个硬盘组处理的业务请求时,说明所述N个硬盘组已经没有业务处理了,则控制器105可以控制所述N个硬盘组由工作状态转为非激活状态。具体的,控制器105可以向所述N个硬盘组发送Sleep命令或Shut down命令来关闭所述N个硬盘组,使所述N个硬盘组由工作状态转为非激活状态。可以理解的是,当N个硬盘组由工作状态转为非激活状态时,存储系统100中还有X+Y-N个硬盘组处于工作状态。
在步骤855中,控制器105计算所述N个硬盘组释放的功耗。具体计算所述N个硬盘组释放的功耗的方法可以根据一个硬盘处于工作状态时的功耗与N个硬盘组中的硬盘数量获得。而硬盘处于工作状态时的功耗可以根据硬盘的出厂参数获得。
在步骤860中,控制器105根据所述N个硬盘组释放的功耗将所述M个硬盘组中的S个硬盘组从非激活状态转换为启动状态,所述S个硬盘组用于处理所述请求队列中属于所述S个硬盘组处理的业务请求。其中,S为不小于1且不大于N的自然数。可以理解的是,在本步骤中,根据所述N个硬盘组释放的功耗、启动一个硬盘所需的功耗以及硬盘组中的硬盘数量获得要启动的硬盘组的数量。例如,假设关闭一个硬盘是否的功耗为8w,N=5,每个硬盘组中包含有5个硬盘,则关闭所述N个硬盘组释放的功耗为8*5*5=200w,启动一个硬盘所需的功耗为24w,为例。则S=200w/(24w*5),S的值取整数为1。也就是说,根据所述5个硬盘组释放的功耗可以启动1个硬盘组。可以理解的是,在启动S个硬盘组的过程中,存储系统100中不仅包含有(X+Y-N)个处于工作状态的硬盘组,还包括S个处于启动状态的硬盘组。由于启动硬盘所需的功耗大于硬盘处于工作状态时的功耗,因此S的值小于N的值,在S个硬盘组启动后,存储系统100中处于工作状态的硬盘组的数量也不会超过X+Y。并且,由于启动的硬盘组的数据是根据关闭的所述N个硬盘组的数量来确定的,所以此时存储系统的总功耗也满足存储系统100的功耗要求。需要说明的是,为了方便描述,本发明实施例中所说的存储系统100的功耗要求是指X个硬盘组处于工作状态的同时Y个硬盘组处于启动状态时存储系统100的功耗。本领域技术人员可以理解的是,当存储系统100中工作的硬盘组的功耗超过存储系统100的功耗要求时,可能导致硬盘组无法启动或工作。
由上述描述可知,图10所示的实施例与图8所示的实施例不同之处在于,在图10所示的实施例中,控制器105可以按照硬盘组的功耗以及要启动的硬盘组的数量来调度硬盘组,从而能够在设定的系统功耗下使存储系统100中处于工作状态的硬盘组保持较多数量,最大程度的利用存储系统100的处理能力,进一步降低了多组业务请求的平均处理延时,且调度方式更加灵活。本领域技术人员可以理解的是,在上述实施例中,所有对功耗的计算都可以一个估计值。需要说明的是,为了描述方便,图8和图10所示的实施例中均以一个硬盘组中包含有相同的硬盘为例进行描述,实际应用中,各个硬盘组中的硬盘数量可以不相等。在硬盘调度过程中,可以根据各个硬盘组中的硬盘数量计算硬盘组所需的功耗以调度不同的硬盘组。
可以理解的是,在上述实施例中,并没有对请求队列中的业务请求的具体排列方式进行限定,只要是请求队列中的业务请求按照处理的先后顺序排列即可。为了进一步降低存储系统100中的业务请求的平均处理延时,在本发明实施例中,还提供了一种较优的业务请求的排序方法,如图11所示。需要说明的是,根据图11所示的业务请求的排序方法获得的请求队列可以应用于是图3或图6所示的硬盘调度方法中。图11所示的业务请求排序方法仍然可以由图1所示的存储系统100中的控制器105执行,具体可以包括下述步骤。
在步骤1101中,控制器105根据接收的多组业务请求的执行时间确定集合R,在所述集合R中,所述多组业务请求按照执行时间从小到大的顺序排列。需要说明的是,图11所示的业务排序方法是对在预设时间段内已接收的多个业务请求按照预的是时间窗分组后的各组业务请求的排序。换一种表达方式,在图11所示的方法中,是以组为单位对各组业务请求进行排序的,其中一组业务请求由一个硬盘组来处理。例如,假设存储系统100将接收的多个业务请求按照设定的时间窗以及访问的硬盘组划分为10个组,得到10组业务请求:r1、r2、r3、r4、r5、r6、r7、r8、r9及r10,每组业务请求的执行时间分别为:10s、10s、5s、15s、20s、25s、30s、35s、40s及60s,硬盘组处于启动状态的时间为10s。其中,对业务请求如何分组的方法可以参见图4中关于对业务请求分组的描述。则在步骤1101中,控制器可以将所述10组业务请求按照执行时间从小到大的顺序排列,获得集合R={r3,r1,r2,r4、r5、r6、r7、r8、r9,r10}。需要说明的是,在本发明实时例中,R是一个变量,随着执行步骤的不同,集合R中的数据也有变化。业务请求的执行时间是指执行完一组业务请求所需的时间。
在步骤1105中,控制器105将执行时间等于硬盘组处于启动状态的时间t的业务请求从R中搬移到目标集合V中,其中V初始为空集。例如,在上述示例中,由于硬盘组处于启动状态的时间为10s,因此,控制器105可以将集合R中执行时间等于10s的业务请求搬移到目标集合V中。在将执行时间等于硬盘组处于启动状态的时间t搬移到所述集合V中后,更新后的集合R={r3,r4、r5、r6、r7、r8、r9,r10},集合V={r1,r2}。硬盘组处于启动状态的时间是指硬盘组中的硬盘从开始启动到完成启动进入工作状态所需的时间为10s。可以理解的是,实际应用中,还可以将集合R中与硬盘处于启动状态的时间t之间的差值的绝对值不大于预设阈值的业务请求从集合R中搬移到目标集合V中。例如,假设预设阈值为2s,则可以将执行时间为8s至12s的业务请求均从集合R中搬移到集合V中。
在步骤1110中,控制器105判断集合R是否为空。具体的,当将执行时间等于硬盘组处于启动状态的时间t的业务请求从集合R中搬移到目标集合V后,控制器105可以判断搬移后的集合R是否为空集。可以理解的是,空集是指没有数据的集合。当集合R不为空集时,该方法进入步骤1115。当集合R为空时,该方法进入步骤1140。
在步骤1115中,控制器105令r_max为集合R中执行时间最长的一组业务请求。其中,r_max为设定的一个变量。例如,在上述示例中,在将数据搬移到目标集合V后,集合R中执行时间最长的业务请求为r10,则控制器105可以令r_max=r10,并进入步骤1120。
在步骤1120中,控制器105可以判断在集合R中是否能找到请求序列R′={r0′,r1′...rs′},使得按r_max->r0′->...->rs′的顺序执行这些请求时,执行完rs′时还需要t秒r_max才能执行完毕。若能找到请求序列R′,则进入步骤1125,否则,该方法进入步骤1135。具体的,在本步骤中,请求序列R′需要满足r_max的执行时间等于请求序列R′中的业务请求的执行时间、执行R′中的业务请求的硬盘组的启动时长以及一个硬盘组的启动时长t之和。其中,请求序列R′中包含有按执行时间从小到大的顺序排列的多组业务请求。例如,在上述示例中,控制器105需要判断集合R={r3,r4、r5、r6、r7、r8、r9,r10}中是否存在R′。由于r_max=r10,r10的执行时间为60s,t=10s,则需要确定是否存在R′,使得R′中业务请求的执行时间以及执行R′中业务请求的硬盘组的启动时长之和等于50s,由于r3的执行时间为5s,r6的执行时间为25s,执行r3和r6的业务请求的硬盘组的启动时长均为10s,5s+10s+25s+10s=50s,因此,控制器105可以确定R′={r3,r6}。需要说明的是,在本发明实施例中,确定R′的目的是为了使得利用执行r_max的最后t秒来给其它硬盘组上电,从而在r_max执行完毕后,处于非激活状态时,可以有已启动的其他的硬盘组来处理其他的业务请求,达到不同硬盘组无缝衔接,节省业务处理请求的处理时间。
在步骤1125中,控制器105将序列R″={r_max,r0′,r1′...rs′}排列到当前目标集合V中。其中,R″中的业务请求的处理顺序位于当前目标集合V中的业务请求之后。例如,由于在步骤1120中确定队列r_max为r10,R′={r3,r6},则在本步骤中,控制器105获得序列R″={r10,r3,r6}。控制器105可以将序列R″中的业务请求顺序排列到当前目标集合V中。具体的,由于在步骤1105中,控制器105获得目标集合V={r1,r2},则在将R″中的业务请求顺序搬移至目标集合V之后,可以获得目标集合V={r1,r2,r10,r3,r6}。该方法进入步骤1130。
在步骤1130中,控制器105从集合R中删除序列R″中的业务请求。例如,在上述示例中,由于在步骤1105中,更新后的集合R={r3,r4、r5、r6、r7、r8、r9,r10},则在本步骤中,当控制器105从集合R中删除序列R″中的业务请求后,更新后的集合R={r4、r5、r7、r8、r9}。在执行完步骤1130后,该方法返回进入步骤1110,由控制器器105继续判断更新后的集合R是否为空,若此时集合R不为空,则循环执行步骤1115至步骤1135。若此时集合R为空,则执行步骤1140至步骤1150。
在步骤1135中,控制器105将r_max从集合R中搬移到临时集合U中,其中,所述临时集合U的初始值为空。具体的,在上述示例中,若控制器105在步骤1120中未找到满足要求的请求序列R′,则需要将r_max={r10}从集合R中搬移到所述临时集合U中,在搬移后,所述临时集合U={r10},集合R={r3,r4、r5、r6、r7、r8、r9,}。在执行完步骤1135之后,该方法返回进入步骤1110,由控制器器105继续判断更新后的集合R是否为空,若此时集合R不为空,则循环执行步骤1115至步骤1135。若此时集合R为空,则执行步骤1140至步骤1150。
在步骤1140中,控制器105判断集合U是否为空集。若集合U为空,则该方法进入步骤1150,若集合U不为空,则该方法进入步骤1145。例如,在上述示例中,若经过多次循环执行步骤1110至步骤1135后,若再次执行步骤1110时,控制器105判断R为空集,则进入步骤1140,由控制器105判断集合U是否为空。在步骤1145中,控制器105可以将集合U中的业务请求按照执行时间从大到小的顺序排列,并添加到目标集合V中。该方法进入步骤1150。在步骤1150中,控制器105确定集合V为排序后的请求队列。例如,V可以为图5所示的请求队列501,也可以为图7中所示的请求队列701。
例如,在上述示例中,当第一次执行完步骤1130后,更新后的集合R={r4、r5、r7、r8、r9},则控制器105对更新后的R执行步骤1115,并确定集合R={r4、r5、r7、r8、r9}中的r_max={r9},并在步骤1120中确定R′={r5},在步骤1125中将R″={r9,r5}排列在当前目标序列V中,此时V={r1,r2,r10,r3,r6,r9,r5},并在1130中获得新的集合R={r4、r7、r8},并再次对获得的新的集合R={r4、r7、r8}执行步骤1110至步骤1135的动作。对集合R={r4、r7、r8}中的业务请求排序的方法可以参见上述步骤的相关描述,再此不赘述。通过本发明实施例的方法,经过多次循环操作,根据上述10组业务请求最终获得请求队列V={r1,r2,r10,r3,r6,r9,r5,r8,r4,r7}。在获得请求队列V后,控制器105可以按照图3或图6所示的硬盘调度方法分别调度相应的硬盘组对请求队列V中的各组业务请求分别进行处理。
由于图11所示的业务请求排序方法在对业务请求排序时,充分考虑了业务请求的处理时间以及硬盘组的启动时长,并尽量使多个硬盘组并行处理,并尽可能的使不同硬盘组的工作实现无缝衔接,从而保证了当一组硬盘处于工作状态时,另一个硬盘组处于启动状态或工作状态,在图3和图7所示的实施例的基础上进一步节省了业务处理延时。
本发明实施例还提供一种数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行前述任意一个方法实施例所述的方法流程。本领域普通技术人员可以理解,前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、随机存储器(Random-Access Memory,RAM)、固态硬盘(Solid State Disk,SSD)或者非易失性存储器(non-volatile memory)等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
需要说明的是,本申请所提供的实施例仅仅是示意性的。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求以及附图中揭示的特征可以独立存在也可以组合存在。在本发明实施例中以硬件形式描述的特征可以通过软件来执行,反之亦然。在此不做限定。
Claims (24)
1.一种存储系统,其特征在于,包括:
M个硬盘组,每个硬盘组包括至少一个用于存储数据的硬盘,其中,每个硬盘包括非激活状态、启动状态以及工作状态,所述M为不小于3的自然数;
供电系统,用于为所述存储系统提供电力,其中,所述供电系统所提供的电力支持所述M个硬盘组中的一个硬盘组处于工作状态,以及所述M个硬盘组中的另一个硬盘组处于启动状态;
控制器,与所述M个硬盘组连接并用于:
控制所述M个硬盘组中的第一硬盘组中的硬盘处于工作状态,其中,所述第一硬盘组用于处理请求队列中的第一组业务请求,所述工作状态是指硬盘的盘片处于旋转状态且转速达到处理数据所需的固定转速的状态;
在所述第一硬盘组中的硬盘进入工作状态开始处理所述第一组业务请求时,所述M个硬盘组中的第二硬盘组中的硬盘从非激活状态转换到启动状态,其中,所述第二硬盘组用于处理所述请求队列中的第二组业务请求,所述非激活状态是指硬盘的盘片没有旋转的状态,所述启动状态是指硬盘从上电到盘片的转速达到处理数据时所需的固定转速期间的状态;
所述控制器还用于:
接收多个业务请求;
根据所述多个业务请求获得所述请求队列,其中,所述请求队列中至少包含有按照处理顺序先后排列的所述第一组业务请求和所述第二组业务请求;
所述请求队列中还包含第三组业务请求,所述第三组业务请求在所述请求队列中排序在所述第二组业务请求之后,所述第三组业务请求为所述M个硬盘组中的第三硬盘组待处理的业务请求;
所述控制器还用于:
确定所述第一组业务请求和所述第二组业务请求中的任意一组业务请求已经被处理完成且尚未到达所述第三硬盘组的启动时间;
控制已处理完业务请求的硬盘组处理所述请求队列中的第F组业务请求,其中,所述第F组业务请求在所述请求队列中位于所述第三组业务请求之后,且所述第F组业务请求为所述已处理完业务请求的硬盘组未处理的业务请求。
2.根据权利要求1所述的存储系统,其特征在于,在所述第一硬盘组和第二硬盘组同时处于工作状态时,所述控制器还用于:
当到达所述第三硬盘组的启动时间时,将所述第一硬盘组或第二硬盘组由工作状态转换为非激活状态;
控制所述第三硬盘组从非激活状态转换到启动状态。
3.根据权利要求1所述的存储系统,其特征在于,在所述请求队列中,所述第一组业务请求的执行时间不小于所述第二组业务请求的执行时间、所述第二硬盘组中的硬盘的启动时长以及所述第三硬盘组中的硬盘的启动时长之和;
所述控制器还用于:
在所述第一硬盘组处理所述第一组业务请求时,确定所述第二硬盘组处理完所述第二组业务请求;
控制所述第二硬盘组转换为非激活状态;
控制所述第三硬盘组由非激活状态转换为启动状态。
4.根据权利要求1所述的存储系统,其特征在于,所述控制器还用于:
确定所述第一组业务请求和所述第二组业务请求中的任意一组业务请求已经被处理完成;
控制已处理完业务请求的硬盘组转换为非激活状态;
控制所述第三硬盘组由非激活状态转换为启动状态。
5.一种存储系统,其特征在于,包括:
M个硬盘组,每个硬盘组包括至少一个用于存储数据的硬盘,其中,每个硬盘包括非激活状态、启动状态以及工作状态,所述M为不小于4的自然数;
供电系统,用于为所述存储系统提供电力,其中,所述供电系统所提供的电力支持所述M个硬盘组中的X个硬盘组处于工作状态,以及所述M个硬盘组中的Y个硬盘组中的硬盘处于启动状态,所述X和Y均为自然数,X+Y的值大于等于3且小于M;
控制器,与所述M个硬盘组连接并用于:
控制所述M个硬盘组中的P个硬盘组中的硬盘处于工作状态,其中,所述P为不大于X的自然数,所述P个硬盘组用于处理请求队列中的P组业务请求,所述工作状态是指硬盘的盘片处于旋转状态且转速达到处理数据所需的固定转速的状态;并且
在所述M个硬盘组中的第一个硬盘组至第P个硬盘组中的硬盘进入工作状态开始分别处理第一组业务请求至第P组业务请求时,控制所述M个硬盘组中的第P+1个硬盘组至第P+Q个硬盘组中的硬盘从非激活状态转换到启动状态,其中,所述Q为不大于Y的自然数,所述Q个硬盘组用于处理所述请求队列中的Q组业务请求,且P+Q的值不小于3,所述非激活状态是指硬盘的盘片没有旋转的状态,所述启动状态是指硬盘从上电到盘片的转速达到处理数据时所需的固定转速期间的状态;
所述控制器还用于:
接收多个业务请求;
根据所述多个业务请求获得所述请求队列,其中,所述请求队列中至少包含有按照处理顺序先后排列的所述P组业务请求和所述Q组业务请求;
所述请求队列中还包含Z组业务请求,所述Z组业务请求为所述M个硬盘组中除所述P+Q个硬盘组之外的Z个硬盘组待处理的业务请求,所述Z为不小于1且不大于Y的自然数;
所述控制器还用于:
确定所述P组业务请求和所述Q组业务请求中的N组业务请求已被处理完成且尚未到达所述Z个硬盘组的启动时间,其中,所述N为不大于P+Q的自然数;
控制已处理完所述N组业务请求的N个硬盘组分别处理所述请求队列中待处理的N组业务请求,其中,所述待处理的N组业务请求在所述请求队列中位于所述Z组业务请求之后,且所述待处理的N组业务请求分别为所述N个硬盘组待处理的业务请求。
6.根据权利要求5所述的存储系统,其特征在于,当P=X,Q=Y,且在X+Y个硬盘组同时处于工作状态时,所述控制器还用于:
当到达所述Z个硬盘组的启动时间时,计算启动所述Z个硬盘组所需的功耗;
根据启动所述Z个硬盘组所需的功耗将已处于工作状态的所述X+Y个硬盘组中的W个硬盘组由工作状态转换为非激活状态,其中,W为不小于Z且小于X+Y的自然数,将所述W个硬盘组由工作状态转换为非激活状态所释放的功耗不小于启动所述Z个硬盘组所需的功耗;
将所述Z个硬盘组从非激活状态转换为启动状态。
7.根据权利要求5所述的存储系统,其特征在于,在X+Y个硬盘组同时处于工作状态时,所述控制器还用于:
根据所述Z个硬盘组的启动时间确定需要将所述Z个硬盘组从非激活状态转换到启动状态;
将已处于工作状态的所述X+Y个硬盘组中的Y个硬盘组由工作状态转换为非激活状态;
控制所述Z个硬盘组从非激活状态转换到启动状态。
8.根据权利要求5所述的存储系统,其特征在于,当N小于P+Q时,所述控制器还用于:
确定所述P+Q个硬盘组中的N个硬盘组由工作状态转换为非激活状态;
计算所述N个硬盘组释放的功耗;
根据所述N个硬盘组释放的功耗将所述M个硬盘组中的S个硬盘组从非激活状态转换为启动状态,其中,所述S为不小于1且不大于N的自然数,所述N个硬盘组释放的功耗不小于启动所述S个硬盘组所需的功耗。
9.一种存储设备,其特征在于,包括:
M个硬盘组,每个硬盘组包括至少一个用于存储数据的硬盘,其中,每个硬盘包括非激活状态、启动状态以及工作状态,所述M为不小于3的自然数;
控制器,与所述M个硬盘组连接并用于:
根据供电系统提供的电力控制所述M个硬盘组中的第一硬盘组中的硬盘处于工作状态,其中,所述供电系统所提供的电力支持所述M个硬盘组中的一个硬盘组处于工作状态,以及所述M个硬盘组中的另一个硬盘组处于启动状态,所述第一硬盘组用于处理请求队列中的第一组业务请求,所述工作状态是指硬盘的盘片处于旋转状态且转速达到处理数据所需的固定转速的状态;
在所述第一硬盘组中的硬盘进入工作状态开始处理所述第一组业务请求时,根据所述供电系统提供的电力控制所述M个硬盘组中的第二硬盘组中的硬盘从非激活状态转换到启动状态,其中,所述第二硬盘组用于处理所述请求队列中的第二组业务请求,所述非激活状态是指硬盘的盘片没有旋转的状态,所述启动状态是指硬盘从上电到盘片的转速达到处理数据时所需的固定转速期间的状态;
所述控制器还用于:
接收多个业务请求;
根据所述多个业务请求获得所述请求队列,其中,所述请求队列中至少包含有按照处理顺序先后排列的所述第一组业务请求和所述第二组业务请求;
所述请求队列中还包含第三组业务请求,所述第三组业务请求在所述请求队列中排序在所述第二组业务请求之后,所述第三组业务请求为所述M个硬盘组中的第三硬盘组待处理的业务请求;
所述控制器还用于:
确定所述第一组业务请求和所述第二组业务请求中的任意一组业务请求已经被处理完成且尚未到达所述第三硬盘组的启动时间;
控制已处理完业务请求的硬盘组处理所述请求队列中的第F组业务请求,其中,所述第F组业务请求在所述请求队列中位于所述第三组业务请求之后,且所述第F组业务请求为所述已处理完业务请求的硬盘组未处理的业务请求。
10.根据权利要求9所述的存储设备,其特征在于,在所述第一硬盘组和第二硬盘组同时处于工作状态时,所述控制器还用于:
当到达所述第三硬盘组的启动时间时,将所述第一硬盘组或第二硬盘组由工作状态转换为非激活状态;
控制所述第三硬盘组从非激活状态转换到启动状态。
11.根据权利要求9所述的存储设备,其特征在于,在所述请求队列中,所述第一组业务请求的执行时间不小于所述第二组业务请求的执行时间、所述第二硬盘组中的硬盘的启动时长以及所述第三硬盘组中的硬盘的启动时长之和;
所述控制器还用于:
在所述第一硬盘组处理所述第一组业务请求时,确定所述第二硬盘组处理完所述第二组业务请求;
控制所述第二硬盘组转换为非激活状态;
控制所述第三硬盘组由非激活状态转换为启动状态。
12.根据权利要求9所述的存储设备,其特征在于,所述控制器还用于:
确定所述第一组业务请求和所述第二组业务请求中的任意一组业务请求已经被处理完成;
控制已处理完业务请求的硬盘组转换为非激活状态;
控制所述第三硬盘组由非激活状态转换为启动状态。
13.一种存储设备,其特征在于,包括:
M个硬盘组,每个硬盘组包括至少一个用于存储数据的硬盘,其中,每个硬盘包括非激活状态、启动状态以及工作状态,所述M为不小于4的自然数;
控制器,与所述M个硬盘组连接并用于:
根据供电系统的供电能力控制所述M个硬盘组中的P个硬盘组中的硬盘处于工作状态,其中,所述供电系统所提供的电力支持所述M个硬盘组中的X个硬盘组处于工作状态,以及所述M个硬盘组中的Y个硬盘组中的硬盘处于启动状态,所述X和Y均为自然数,X+Y的值大于等于3且小于M,所述P为不大于X的自然数,所述P个硬盘组用于处理请求队列中的P组业务请求,所述工作状态是指硬盘的盘片处于旋转状态且转速达到处理数据所需的固定转速的状态;并且
在所述M个硬盘组中的第一个硬盘组至第P个硬盘组中的硬盘进入工作状态开始分别处理第一组业务请求至第P组业务请求时,根据所述供电系统的供电能力控制所述M个硬盘组中的第P+1个硬盘组至第P+Q个硬盘组中的硬盘从非激活状态转换到启动状态,其中,所述Q为不大于Y的自然数,所述Q个硬盘组用于处理所述请求队列中的Q组业务请求,且P+Q的值不小于3,所述非激活状态是指硬盘的盘片没有旋转的状态,所述启动状态是指硬盘从上电到盘片的转速达到处理数据时所需的固定转速期间的状态;
所述控制器还用于:
接收多个业务请求;
根据所述多个业务请求获得所述请求队列,其中,所述请求队列中至少包含有按照处理顺序先后排列的所述P组业务请求和所述Q组业务请求;
所述请求队列中还包含Z组业务请求,所述Z组业务请求为所述M个硬盘组中除所述P+Q个硬盘组之外的Z个硬盘组待处理的业务请求,所述Z为不小于1且不大于Y的自然数;
所述控制器还用于:
确定所述P组业务请求和所述Q组业务请求中的N组业务请求已被处理完成且尚未到达所述Z个硬盘组的启动时间,其中,所述N为不大于P+Q的自然数;
控制已处理完所述N组业务请求的N个硬盘组分别处理所述请求队列中待处理的N组业务请求,其中,所述待处理的N组业务请求在所述请求队列中位于所述Z组业务请求之后,且所述待处理的N组业务请求分别为所述N个硬盘组待处理的业务请求。
14.根据权利要求13所述的存储设备,其特征在于,当P=X,Q=Y,且在X+Y个硬盘组同时处于工作状态时,所述控制器还用于:
当到达所述Z个硬盘组的启动时间时,计算启动所述Z个硬盘组所需的功耗;
根据启动所述Z个硬盘组所需的功耗将已处于工作状态的所述X+Y个硬盘组中的W个硬盘组由工作状态转换为非激活状态,其中,W为不小于Z且小于X+Y的自然数,将所述W个硬盘组由工作状态转换为非激活状态所释放的功耗不小于启动所述Z个硬盘组所需的功耗;
将所述Z个硬盘组从非激活状态转换为启动状态。
15.根据权利要求13所述的存储设备,其特征在于,在X+Y个硬盘组同时处于工作状态时,所述控制器还用于:
根据所述Z个硬盘组的启动时间确定需要将所述Z个硬盘组从非激活状态转换到启动状态;
将已处于工作状态的所述X+Y个硬盘组中的Y个硬盘组由工作状态转换为非激活状态;
控制所述Z个硬盘组从非激活状态转换到启动状态。
16.根据权利要求13所述的存储设备,其特征在于,当N小于P+Q时,所述控制器还用于:
确定所述P+Q个硬盘组中的N个硬盘组由工作状态转换为非激活状态;
计算所述N个硬盘组释放的功耗;
根据所述N个硬盘组释放的功耗将所述M个硬盘组中的S个硬盘组从非激活状态转换为启动状态,其中,所述S为不小于1且不大于N的自然数,所述N个硬盘组释放的功耗不小于启动所述S个硬盘组所需的功耗。
17.一种应用于存储设备中的硬盘调度方法,其特征在于,所述存储设备包括M个硬盘组,每个硬盘组包括至少一个用于存储数据的硬盘,其中,每个硬盘包括非激活状态、启动状态以及工作状态,所述M为不小于3的自然数,所述方法包括:
根据供电系统提供的电力控制所述M个硬盘组中的第一硬盘组中的硬盘处于工作状态,其中,所述供电系统所提供的电力支持所述M个硬盘组中的一个硬盘组处于工作状态,以及所述M个硬盘组中的另一个硬盘组处于启动状态,所述第一硬盘组用于处理请求队列中的第一组业务请求,所述工作状态是指硬盘的盘片处于旋转状态且转速达到处理数据所需的固定转速的状态;
在所述第一硬盘组中的硬盘进入工作状态开始处理所述第一组业务请求时,根据所述供电系统提供的电力控制所述M个硬盘组中的第二硬盘组中的硬盘从非激活状态转换到启动状态,其中,所述第二硬盘组用于处理所述请求队列中的第二组业务请求,所述非激活状态是指硬盘的盘片没有旋转的状态,所述启动状态是指硬盘从上电到盘片的转速达到处理数据时所需的固定转速期间的状态;
所述方法还包括:
接收多个业务请求;
根据所述多个业务请求获得所述请求队列,其中,所述请求队列中至少包含有按照处理顺序先后排列的所述第一组业务请求和所述第二组业务请求;
所述请求队列中还包含第三组业务请求,所述第三组业务请求在所述请求队列中排序在所述第二组业务请求之后,所述第三组业务请求为所述M个硬盘组中的第三硬盘组待处理的业务请求;
所述方法还包括:
确定所述第一组业务请求和所述第二组业务请求中的任意一组业务请求已经被处理完成且尚未到达所述第三硬盘组的启动时间;
控制已处理完业务请求的硬盘组处理所述请求队列中的第F组业务请求,其中,所述第F组业务请求在所述请求队列中位于所述第三组业务请求之后,且所述第F组业务请求为所述已处理完业务请求的硬盘组未处理的业务请求。
18.根据权利要求17所述的方法,其特征在于,在所述第一硬盘组和第二硬盘组同时处于工作状态时,所述方法还包括:
当到达所述第三硬盘组的启动时间时,将所述第一硬盘组或第二硬盘组由工作状态转换为非激活状态;
控制所述第三硬盘组从非激活状态转换到启动状态。
19.根据权利要求17所述的方法,其特征在于,在所述请求队列中,所述第一组业务请求的执行时间不小于所述第二组业务请求的执行时间、所述第二硬盘组中的硬盘的启动时长以及所述第三硬盘组中的硬盘的启动时长之和;
所述方法还包括:
在所述第一硬盘组处理所述第一组业务请求时,确定所述第二硬盘组处理完所述第二组业务请求;
控制所述第二硬盘组转换为非激活状态;
控制所述第三硬盘组由非激活状态转换为启动状态。
20.根据权利要求17所述的方法,其特征在于,所述方法还包括:
确定所述第一组业务请求和所述第二组业务请求中的任意一组业务请求已经被处理完成;
控制已处理完业务请求的硬盘组转换为非激活状态;
控制所述第三硬盘组由非激活状态转换为启动状态。
21.一种应用于存储设备中的硬盘调度方法,其特征在于,所述存储设备包括M个硬盘组,每个硬盘组包括至少一个用于存储数据的硬盘,其中,每个硬盘包括非激活状态、启动状态以及工作状态,所述M为不小于4的自然数,所述方法包括:
根据供电系统的供电能力控制所述M个硬盘组中的P个硬盘组中的硬盘处于工作状态,其中,所述供电系统所提供的电力支持所述M个硬盘组中的X个硬盘组处于工作状态,以及所述M个硬盘组中的Y个硬盘组中的硬盘处于启动状态,所述X和Y均为自然数,X+Y的值大于等于3且小于M,所述P为不大于X的自然数,所述P个硬盘组用于处理请求队列中的P组业务请求,所述工作状态是指硬盘的盘片处于旋转状态且转速达到处理数据所需的固定转速的状态;并且
在所述M个硬盘组中的第一个硬盘组至第P个硬盘组中的硬盘进入工作状态开始分别处理第一组业务请求至第P组业务请求时,根据所述供电系统的供电能力控制所述M个硬盘组中的第P+1个硬盘组至第P+Q个硬盘组中的硬盘从非激活状态转换到启动状态,其中,所述Q为不大于Y的自然数,所述Q个硬盘组用于处理所述请求队列中的Q组业务请求,且P+Q的值不小于3,所述非激活状态是指硬盘的盘片没有旋转的状态,所述启动状态是指硬盘从上电到盘片的转速达到处理数据时所需的固定转速期间的状态;
所述方法还包括:
接收多个业务请求;
根据所述多个业务请求获得所述请求队列,其中,所述请求队列中至少包含有按照处理顺序先后排列的所述P组业务请求和所述Q组业务请求;
所述请求队列中还包含Z组业务请求,所述Z组业务请求为所述M个硬盘组中除所述P+Q个硬盘组之外的Z个硬盘组待处理的业务请求,所述Z为不小于1且不大于Y的自然数;
所述方法还包括:
确定所述P组业务请求和所述Q组业务请求中的N组业务请求已被处理完成且尚未到达所述Z个硬盘组的启动时间,其中,所述N为不大于P+Q的自然数;
控制已处理完所述N组业务请求的N个硬盘组分别处理所述请求队列中待处理的N组业务请求,其中,所述待处理的N组业务请求在所述请求队列中位于所述Z组业务请求之后,且所述待处理的N组业务请求分别为所述N个硬盘组待处理的业务请求。
22.根据权利要求21所述的方法,其特征在于,当P=X,Q=Y,且在X+Y个硬盘组同时处于工作状态时,所述方法还包括:
当所述Z个硬盘组的启动时间到达时,计算启动所述Z个硬盘组所需的功耗;
根据启动所述Z个硬盘组所需的功耗将已处于工作状态的所述X+Y个硬盘组中的W个硬盘组由工作状态转换为非激活状态,其中,W为不小于Z且小于X+Y的自然数,将所述W个硬盘组由工作状态转换为非激活状态所释放的功耗不小于启动所述Z个硬盘组所需的功耗;
将所述Z个硬盘组从非激活状态转换为启动状态。
23.根据权利要求21所述的方法,其特征在于,在X+Y个硬盘组同时处于工作状态时,所述方法还包括:
根据所述Z个硬盘组的启动时间确定需要将所述Z个硬盘组从非激活状态转换到启动状态;
将已处于工作状态的所述X+Y个硬盘组中的Y个硬盘组由工作状态转换为非激活状态;
控制所述Z个硬盘组从非激活状态转换到启动状态。
24.根据权利要求21所述的方法,其特征在于,当N小于P+Q时,所述方法还包括:
确定所述P+Q个硬盘组中的N个硬盘组由工作状态转换为非激活状态;
计算所述N个硬盘组释放的功耗;
根据所述N个硬盘组释放的功耗将所述M个硬盘组中的S个硬盘组从非激活状态转换为启动状态,其中,所述S为不小于1且不大于N的自然数,所述N个硬盘组释放的功耗不小于启动所述S个硬盘组所需的功耗。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/094718 WO2017084015A1 (zh) | 2015-11-16 | 2015-11-16 | 存储系统、存储设备及硬盘调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107209712A CN107209712A (zh) | 2017-09-26 |
CN107209712B true CN107209712B (zh) | 2020-09-25 |
Family
ID=58717119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580001233.6A Active CN107209712B (zh) | 2015-11-16 | 2015-11-16 | 存储系统、存储设备及硬盘调度方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10346094B2 (zh) |
EP (1) | EP3367244B1 (zh) |
CN (1) | CN107209712B (zh) |
WO (1) | WO2017084015A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109407988A (zh) * | 2018-10-18 | 2019-03-01 | 张德辉 | 冷数据存储系统及其存储方法 |
CN111880728B (zh) * | 2020-07-14 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 机械硬盘系统启动控制方法以及装置、存储设备 |
CN112540728B (zh) * | 2020-12-07 | 2022-04-01 | 北京云宽志业网络技术有限公司 | 节电存储方法、装置、设备及存储介质 |
CN114489479B (zh) * | 2021-12-23 | 2023-06-09 | 北京云宽志业网络技术有限公司 | 数据存储磁盘上下电的方法及装置 |
US11893268B2 (en) | 2022-01-19 | 2024-02-06 | Seagate Technology Llc | Opportunistic command scheduling |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5423046A (en) * | 1992-12-17 | 1995-06-06 | International Business Machines Corporation | High capacity data storage system using disk array |
WO2007110577A1 (en) * | 2006-03-28 | 2007-10-04 | Veracity Uk Limited | Hard disk storage system |
CN101154131A (zh) * | 2006-09-29 | 2008-04-02 | 株式会社东芝 | 信息处理设备和系统状态控制方法 |
CN101344812A (zh) * | 2008-08-19 | 2009-01-14 | 华南理工大学 | 一种基于嵌入式系统的磁盘动态电源管理方法 |
CN101446857A (zh) * | 2008-12-25 | 2009-06-03 | 成都市华为赛门铁克科技有限公司 | 一种硬盘节能的方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6966006B2 (en) | 2002-05-09 | 2005-11-15 | International Business Machines Corporation | Adaptive startup policy for accelerating multi-disk array spin-up |
US20050154962A1 (en) * | 2003-12-30 | 2005-07-14 | Grover Andrew S. | Method and system to spin up a hard disk prior to a hard disk data exchange request |
US7516346B2 (en) * | 2004-10-28 | 2009-04-07 | Nec Laboratories America, Inc. | System and method for dynamically changing the power mode of storage disks based on redundancy and system load |
WO2006098036A1 (ja) * | 2005-03-17 | 2006-09-21 | Fujitsu Limited | 省電力制御装置、省電力制御方法および省電力制御プログラム |
US20070061509A1 (en) * | 2005-09-09 | 2007-03-15 | Vikas Ahluwalia | Power management in a distributed file system |
US9158466B1 (en) * | 2007-06-29 | 2015-10-13 | Emc Corporation | Power-saving mechanisms for a dynamic mirror service policy |
US8028126B2 (en) | 2008-06-09 | 2011-09-27 | Oracle America, Inc. | Scheduling spin-up operations for a set of hard disk drives |
US8301852B2 (en) * | 2008-11-13 | 2012-10-30 | International Business Machines Corporation | Virtual storage migration technique to minimize spinning disks |
US8631200B2 (en) * | 2009-03-20 | 2014-01-14 | Netapp, Inc. | Method and system for governing an enterprise level green storage system drive technique |
US8296513B1 (en) * | 2009-08-21 | 2012-10-23 | Pmc-Sierra, Inc. | Standby disk spin up control in disk array system using expander device |
US8745327B1 (en) * | 2011-06-24 | 2014-06-03 | Emc Corporation | Methods, systems, and computer readable medium for controlling prioritization of tiering and spin down features in a data storage system |
US8868954B1 (en) | 2013-05-21 | 2014-10-21 | Microsoft Corporation | Low cost storage for rarely read data |
JP6260401B2 (ja) * | 2014-03-28 | 2018-01-17 | 富士通株式会社 | 情報処理システム、情報処理システムの制御方法及び情報処理装置の制御プログラム |
-
2015
- 2015-11-16 CN CN201580001233.6A patent/CN107209712B/zh active Active
- 2015-11-16 WO PCT/CN2015/094718 patent/WO2017084015A1/zh active Application Filing
- 2015-11-16 EP EP15908512.5A patent/EP3367244B1/en active Active
-
2018
- 2018-05-15 US US15/980,584 patent/US10346094B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5423046A (en) * | 1992-12-17 | 1995-06-06 | International Business Machines Corporation | High capacity data storage system using disk array |
WO2007110577A1 (en) * | 2006-03-28 | 2007-10-04 | Veracity Uk Limited | Hard disk storage system |
CN101154131A (zh) * | 2006-09-29 | 2008-04-02 | 株式会社东芝 | 信息处理设备和系统状态控制方法 |
CN101344812A (zh) * | 2008-08-19 | 2009-01-14 | 华南理工大学 | 一种基于嵌入式系统的磁盘动态电源管理方法 |
CN101446857A (zh) * | 2008-12-25 | 2009-06-03 | 成都市华为赛门铁克科技有限公司 | 一种硬盘节能的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107209712A (zh) | 2017-09-26 |
US10346094B2 (en) | 2019-07-09 |
US20180260162A1 (en) | 2018-09-13 |
EP3367244B1 (en) | 2023-10-25 |
WO2017084015A1 (zh) | 2017-05-26 |
EP3367244C0 (en) | 2023-10-25 |
EP3367244A1 (en) | 2018-08-29 |
EP3367244A4 (en) | 2018-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107209712B (zh) | 存储系统、存储设备及硬盘调度方法 | |
JP6298098B2 (ja) | ストレージ環境におけるi/o書き込みのスケジューリング | |
JP6337042B2 (ja) | ストレージ環境における再構成i/o読み込み動作のスケジューリング | |
JP6356720B2 (ja) | ソリッドステートドライブ(ssd)環境におけるi/oのスケジューリング | |
US9110669B2 (en) | Power management of a storage device including multiple processing cores | |
US7856526B2 (en) | Storage apparatus and power-saving control method of storage apparatus | |
US9053019B2 (en) | Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices | |
US8095760B2 (en) | Adjustment number of expanders in storage system | |
US8196034B2 (en) | Computer system and method for reducing power consumption of storage system | |
US20080270699A1 (en) | System for controlling spinning of disk | |
US9653110B2 (en) | Speed control of data storage device using service controller | |
JP2010146630A (ja) | ディスク・ドライブ及びディスク・アレイ・システム | |
US20140075102A1 (en) | Controller of a nonvolatile memory device and a command scheduling method thereof | |
US20150293719A1 (en) | Storage Space Processing Method and Apparatus, and Non-Volatile Computer Readable Storage Medium | |
US20100115310A1 (en) | Disk array apparatus | |
CN111104048B (zh) | 一种数据处理方法及分布式存储系统 | |
US9626997B1 (en) | Variable spinning rates for hard disk drives | |
US20140068214A1 (en) | Information processing apparatus and copy control method | |
KR101135313B1 (ko) | 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법 | |
US11385815B2 (en) | Storage system | |
US10671307B2 (en) | Storage system and operating method thereof | |
JP2013206009A (ja) | ドライブ制御装置及びストレージシステム及びドライブ制御方法 | |
US20240012635A1 (en) | Methods and systems for updating device firmware while maintaining state and connectivity | |
KR20230110188A (ko) | 시동 시 전력 완화를 위한 시스템들 및 방법들 | |
CN105573462A (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 |