磁盘管理方法、装置、存储介质和设备与流程

文档序号:16550893发布日期:2019-01-08 21:06阅读:185来源:国知局
磁盘管理方法、装置、存储介质和设备与流程

本发明涉及互联网数据存储领域,具体涉及一种磁盘管理方法、装置、存储介质和设备。



背景技术:

随着互联网技术的高速发展,数据量越来越大,网络云服务商对大容量存储服务器的需求也日益增加。现在主流的存储服务器,在4u服务器里可以集成超过30个磁盘,甚至已经有厂家提供100个左右磁盘的4u服务器,甚至出现整机柜磁盘阵列存储服务器,单系统磁盘数量超过1000块。超多的磁盘数量,超大的磁盘容量,超高的系统功耗,因此在保证一个可接受的带宽和延迟下,尽可能的降低系统功耗,尽可能的支持超高数量的访问请求。

现有技术提出的一种冷存储服务器节能方法。其中,硬件方面:冷存储服务器的背板采用供电隔离方案,对活动磁盘上电,空闲磁盘断电;空闲磁盘不产生功耗。在软件方面:冷存储服务器工作时,同一时刻系统访问部分磁盘;磁盘忙闲比降低,磁盘忙闲比即为同一时刻活动磁盘数量占总磁盘数量的比例。读写策略方面:对于归档类的用途,同一时刻每个冷存储服务器的机柜部分系统用于写入,其它系统处于休眠或关机状态;系统忙闲比降低,系统忙闲比即为同一时刻活动系统占总系统的比例。

现有技术还提出了一种磁盘调度方法,用以解决现有磁盘调度时的i/c争抢问题,提升系统运行速度。所述磁盘调度方法,包括:在每一次磁盘调度时,获取进程组中各发起i/o(输入输出)请求的进程的优先级、请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源;按照进程的优先级从高到低的顺序,针对每一个优先级,根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配。

另外,现有技术还提出了一种低能耗磁盘调度方法,该方法包括:采用改进的数据挖掘技术对i/o请求的历史信息产生适用于磁盘调度的块关联规则;采用产生的块关联规则对磁盘状态进行切换,从而实现存储系统节能。

但是现有技术存在无法弥补的缺陷,第一种现有技术采取的低功耗设计,对每一组磁盘采取单独电源设计,需要软件硬件同步。操作磁盘的时候,需要先打开电源,操作完成的时候,需要关闭电源。这样的设计,需要分不同的电源域,硬件设计复杂;需要软硬件同步,系统复杂度高;频繁关电上电,降低磁盘的寿命;第二种现有技术通过优先级进行磁盘调度,一方面存在可能有服务器资源无法有效利用的情况,另一方面,在已经有磁盘调度的情况下,没有功耗的优化;第三种现有技术提供了一种根据历史信息进行磁盘调度策略的机制,在访问之间加入了关联性,系统的复杂度上升。不利于系统的功耗和稳定性。。



技术实现要素:

为了解决上述问题。本发明提供一种磁盘管理方法、装置、存储介质和设备。

根据本发明的第一方面提供了一种磁盘管理方法,用于管理多个磁盘组,所述多个磁盘组至少包含第一磁盘组和第二磁盘组,每个磁盘组包括至少一个用于存储数据的磁盘,其特征在于,包括:

缓存多个业务请求到缓存队列,所述多个业务请求至少包含第一组业务请求和第二组业务请求,所述第一组业务请求和所述第二组业务请求分别用于请求所述第一磁盘组和所述第二磁盘组;

响应于所述第一组业务请求,控制所述第一磁盘组被激活,使得所述第一磁盘组在激活完成后进入工作状态,并基于所述第一组业务请求被操作;

在所述第一磁盘组被操作时,响应于所述第二组业务请求,控制所述第二磁盘组被激活。

进一步地,当所述第二磁盘组的激活完成时,控制所述第一磁盘组由所述工作状态转化为休眠状态。

进一步地,在所述第一磁盘组和所述第二磁盘组被操作的时候,确定所述第一磁盘组和所述第二磁盘组是否存在磁盘故障;

基于确定的所述磁盘故障,自动对具有所述磁盘故障的所述第一磁盘组和/或所述第二磁盘组进行磁盘重建操作,所述磁盘重建操作仅在空闲时段进行;

其中,所述磁盘故障是指被操作的磁盘组的至少一个磁盘发生故障,所述空闲时段是指被操作的磁盘组完成对应业务请求的处理后,在所述工作状态中剩余的时间。

进一步地,所述磁盘重建操作使用纠删码算法,所述第一磁盘组和所述第二磁盘组还包括至少一个用于存储编码的编码磁盘和至少一个用于备份的备份磁盘。

进一步地,所述工作状态的时长不小于激活完成所需要的时长。

根据本发明的第二方面,提供一种磁盘管理装置,用于管理多个磁盘组,所述多个磁盘组至少包含第一磁盘组和第二磁盘组,每个磁盘组包括至少一个用于存储数据的磁盘,其特征在于,包括:

缓存模块,用于缓存多个业务请求到缓存队列,所述多个业务请求至少包含第一组业务请求和第二组业务请求,所述第一组业务请求和所述第二组业务请求分别用于请求所述第一磁盘组和所述第二磁盘组;

第一控制模块,用于响应于所述第一组业务请求,控制所述第一磁盘组被激活,使得所述第一磁盘组在激活完成后进入工作状态,并基于所述第一组业务请求被操作;

第二控制模块,用于在所述第一磁盘组被操作时,响应于所述第二组业务请求,控制所述第二磁盘组被激活。

进一步地,当所述第二磁盘组的激活完成时,控制所述第一磁盘组由所述工作状态转化为休眠状态。

进一步地,确定模块,用于在所述第一磁盘组和所述第二磁盘组被操作的时候,确定所述第一磁盘组和所述第二磁盘组是否存在磁盘故障;

重建模块,用于基于确定的所述磁盘故障,自动对具有所述磁盘故障的所述第一磁盘组和/或所述第二磁盘组进行磁盘重建操作,所述磁盘重建操作仅在空闲时段进行;

其中,所述磁盘故障是指被操作的磁盘组的至少一个磁盘发生故障,所述空闲时段是指被操作的磁盘组完成对应业务请求的处理后,在所述工作状态中剩余的时间。

进一步地,所述磁盘重建操作使用纠删码算法,所述第一磁盘组和所述第二磁盘组还包括至少一个用于存储编码的编码磁盘和至少一个用于备份的备份磁盘。

进一步地,所述工作状态的时长不小于激活完成所需要的时长。

根据本发明的第三方面,还提供一种非易失性存储介质,所述非易失性存储介质具有存储在其中的指令,当所述指令被执行时,使得处理器执行磁盘管理方法,所述方法用于管理多个磁盘组,所述多个磁盘组至少包含第一磁盘组和第二磁盘组,每个磁盘组包括至少一个用于存储数据的磁盘,其特征在于,所述指令包括:

缓存多个业务请求到缓存队列,所述多个业务请求至少包含第一组业务请求和第二组业务请求,所述第一组业务请求和所述第二组业务请求分别用于请求所述第一磁盘组和所述第二磁盘组;

响应于所述第一组业务请求,控制所述第一磁盘组被激活,使得所述第一磁盘组在激活完成后进入工作状态,并基于所述第一组业务请求被操作;

在所述第一磁盘组被操作时,响应于所述第二组业务请求,控制所述第二磁盘组被激活。

根据本发明的第四方面,还提供一种设备,包括存储器,存储有计算机可执行指令,处理器,所述处理器被配置为执行所述指令以实施磁盘管理的过程,所述过程用于管理多个磁盘组,所述多个磁盘组至少包含第一磁盘组和第二磁盘组,每个磁盘组包括至少一个用于存储数据的磁盘,其特征在于,所述过程包括:

缓存多个业务请求到缓存队列,所述多个业务请求至少包含第一组业务请求和第二组业务请求,所述第一组业务请求和所述第二组业务请求分别用于请求所述第一磁盘组和所述第二磁盘组;

响应于所述第一组业务请求,控制所述第一磁盘组被激活,使得所述第一磁盘组在激活完成后进入工作状态,并基于所述第一组业务请求被操作;

在所述第一磁盘组被操作时,响应于所述第二组业务请求,控制所述第二磁盘组被激活。

本发明实施方式与现有技术相比,主要区别及其效果在于:

本发明实施例的磁盘管理方法,通过磁盘分组和业务请求的缓存,按照业务请求数量,分时调度磁盘组,将激活磁盘和操作磁盘同时进行,把串行操作变成了流水并行操作,以此减少了时间消耗,提高了带宽,同时可以减少访问缓冲的内存需求量,支持更多的访问请求,优化了系统整体性能,将系统功耗最大限度降低至1/n。此外,本发明实施例的磁盘管理方法利用空闲时段,把重建操作和业务操作合并在一起,使得运行维护操作充分利用了空闲时间,又不影响用户访问的访问体验,优化了磁盘阵列的运行维护,并降低了运行维护的成本。

附图说明

图1示出了本发明的方法的计算机终端的硬件结构框图。

图2示出了根据本发明实施例的磁盘阵列分组的示意图。

图3示出了根据本发明实施例的磁盘管理方法的流程图。

图4示出了根据本发明另一实施例的磁盘管理方法的流程图。

图5示出了根据本发明另一实施例的磁盘管理方法的示意图。

图6示出了根据本发明实施例的磁盘管理装置的模块示意图。

图7示出了根据本发明实施例的磁盘管理装置的模块示意图。

具体实施方式

为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

根据本发明实施方式,提供了一种磁盘管理方法的实施方式,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请方式所提供的方法实施方式可以在移动终端、计算机终端或者类似的运算装置(如ecu(electroniccontrolunit,电子控制单元))中执行。以运行在计算机终端上为例,图1是根据本发明实施方式的磁盘管理方法的计算机终端的硬件结构框图。如图1所示,计算机终端100可以包括一个或多个(图中仅示出一个)处理器101(处理器101可以包括但不限于中央处理器cpu、图像处理器gpu、数字信号处理器dsp、微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于与用户交互的输入输出接口102、用于存储数据的存储器103、以及用于通信功能的传输装置104。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器103可用于存储应用软件的软件程序以及模块,如本发明实施方式中的磁盘管理方法对应的程序指令/模块,处理器101通过运行存储在存储器103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的磁盘管理方法。存储器103可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器103可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置104用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端100的通信供应商提供的互联网。

在在上述运行环境下,本发明提供了如图3所示的磁盘管理方法。该方法可以应用于服务器中,由服务器中的处理器执行。服务器中安装有至少一个应用程序,本发明实施方式并不限定应用程序的种类,可以为系统类应用程序,也可以为软件类应用程序。

为了方便理解本发明的实施例,首先在此介绍实施例描述中引入的几个要素:

纠删码(erasurecode,ec)数据重建,主要是通过纠删码算法将原始的数据进行编码得到冗余,并将数据和冗余一并存储起来,以达到容错的目的。其基本思想是将n块原始的数据元素通过一定的计算,得到m块冗余元素(校验块)。对于这n+m块的元素,当其中任意的m块元素出错(包括原始数据和冗余数据)时,均可以通过对应的重构算法恢复出原来的n块数据。磁盘利用率为n/(n+m)。;

磁盘的休眠状态,是指对磁盘上电,但是磁盘的盘片没有旋转的状态,在此状态中,由于磁盘没有旋转,因此磁盘的功率消耗很小;

磁盘的激活状态,是指从当休眠的磁盘收到激活指令后,磁盘的盘片开始旋转直到达到磁盘读写数据所需的固定转速之间的状态;和

磁盘的工作状态,是指磁盘的盘片处于旋转状态且转速达到处理数据所需的固定转速时的状态。

在本发明的实施例中,磁盘管理方法可以用于对存储数据的磁盘阵列进行管理,其中磁盘阵列可以有多个。每个磁盘阵列可以包括多个磁盘组,每个磁盘组由多个硬盘(harddiskdrive,hdd)组成。可以理解,硬盘仅是用于构建磁盘阵列的存储器的一种示例,本发明实施例中的存储器可以包括各种持久化存储介质,例如磁带的磁性化存储介质、磁盘、光盘或固态硬盘(solidstatedisk,简称ssd),和由多个持久化存储介质构成的服务器、机柜和机组等装置,在此不作限制。

根据本发明的实施例,为了便于对磁盘阵列进行管理,如图2所示,把磁盘阵列100分为m个群110,群内再分n个组120,每个组有k个磁盘130,这样总计m×n×k个磁盘130。需要说明的是,该分组方式仅用于示例性的而非限制性的。此外,可以理解,属于同一组120的k个磁盘130的资源不会冲突,该k个磁盘130可以同时工作,也可以同时被上电和下电。

在本发明实施例中,磁盘阵列的磁盘群110之间相对独立运行,每个磁盘群独立地处理业务请求,因此最多可同时并行m×n个组批量地处理业务请求,一个业务请求可以由n个组120中其中一个中的一个或多个磁盘130进行处理。需要说明的是,在本发明实施例中一个业务请求不会由多个磁盘组120协同处理。

图3示出了根据本发明实施例的磁盘管理方法300的流程图。如图3所示,该方法具体处理流程如下所述。

s310、缓存多个业务请求到缓存队列。在本发明的实施例中,为了支持尽可能多的业务请求,将磁盘业务请求缓存进入业务缓存循环队列中,业务请求之间是可以乱序排列。业务请求包括对数据的读、写、删三个请求。当业务请求为写数据请求的时候,根据业务请求中带有的访问地址,通过哈希函数为业务请求分配组120的subgroup_id,例如,subgroup_id是代表1至n个磁盘组的编号的字符串,然后把业务请求和数据放到业务缓存里;当业务请求为读和删的时候,从key-value对照表里查询对应的subgroup_id,然后把业务请求放在业务缓存循环队列里。一个磁盘组120可以处理多个业务请求。此外,作为一个示例,可以使用单缓存队列,相比多缓存队列设计,所有组的业务请求集中在一个缓存循环队列里,这样缓存队列中包括分配有多个subgroup_id的业务请求,具有相同subgroup_id的业务请求为一组,获得分别由不同磁盘组处理的多组业务请求,多组业务请求中的每组业务请求均包含有至少一个业务请求。使用单缓存队列可以最大限度的利用内存空间,可以同时支持更多的业务。

s320、响应于第一组业务请求,控制第一磁盘组被激活,使得第一磁盘组在激活完成后进入工作状态,并基于第一组业务请求被操作。

在步骤s320中,磁盘管理方法可以根据业务缓存队列中业务请求的subgroup_id的顺序依次处理业务请求。例如,当业务缓存队列中存在第1个组120的subgroup_id时,响应于该组业务请求,控制该subgroup_id的磁盘组的磁盘130被激活。通常磁盘130处于激活状态大约在10s-15s左右,激活状态具体的持续时间与磁盘130的设计有关,在本发明实施例中不进行限定。由于磁盘激活存在的延时,如果只处理单个操作,那么时间代价很大;通过业务缓存,可以让同一个组的多个访问等待在业务缓存里,当调度到当前组时候,就可以把多个此组的访问一次性处理,以此减少整体的激活时间代价。

磁盘130经过激活状态之后即可进入工作状态。具体的,工作状态可以包括磁盘130盘片旋转且进行数据读/写的状态以及盘片的转速达到处理数据所需的固定转速且无数据读/写的状态。需要说明的是,在本发明实施例中,工作状态的时长不小于激活完成所需要的时长。例如,假如磁盘130激活状态需要持续10s,那么该磁盘130的工作状态至少持续10s,可以例如是15s,或更长的时间等。进入工作状态后,开始处理缓存队列里的此组的业务请求。具体地,当时请求是写请求时,将缓存队列中的业务数据写入一个或多个磁盘130中,写入完成后,返回状态消息(ack)到缓存队列,状态消息用于通知该业务请求已被完成;当请求是删除请求的时候,删除一个或多个磁盘130中的对应数据,完成返回状态消息(ack)到缓存队列;当是请求是读请求的时候,读取一个或多个磁盘130中的相应数据,在完成后返回相应数据和状态消息(ack)到缓存队列。

可选地,在组的业务请求处理完成后,可以向磁盘组120中处于工作状态的磁盘130发送休眠指令,进入休眠状态,并开始对下一组的业务请求进行处理。

第一磁盘组处理第一组业务请求,第n个磁盘组处理第n组业务请求,依此类推。当业务缓存队列中没有一个或多个组120的subgroup_id的业务请求时,则跳过这些subgroup_id,顺序检测下一组,依此类推地循环。

可以理解,在上述磁盘130的三个状态中,磁盘130处于休眠状态时的功耗最小,磁盘130处于工作状态时的功耗比磁盘130处于激活状态时的功耗小。

s330、在第一磁盘组被操作时,响应于第二组业务请求,控制第二磁盘组被激活。

在步骤s330中,由于磁盘激活的时间代价,可以使第一磁盘组处于工作状态,同时使第二磁盘组处于激活状态。具体地,在第一磁盘组进入工作状态开始处理第一组业务请求时,可以响应于业务缓存队列中的第二组业务请求,控制第二磁盘组处于激活状态,即,在第一磁盘组开始处理第一组业务请求时,可以激活第二磁盘组。通过这种方式能够为第二磁盘组后续处理业务做好准备,减少用于等待第二磁盘组激活的时间,缩短系统处理业务的延时。

作为另一个示例,可以当第二磁盘组的激活完成时,控制第一磁盘组由工作状态转化为休眠状态。例如,可以根据第一磁盘组的工作状态的持续时间的设置,在第一磁盘组进入工作状态开始处理第一组业务请求一段时间后,响应于业务缓存队列中的第二组业务请求,控制第二磁盘组处于激活状态。例如,假如第一磁盘组的工作状态的持续时间设置为15s,即,15s后磁盘组将转入休眠状态,而磁盘激活状态要持续10s,那么可以在第一磁盘组进入工作状态第5s时,激活第二磁盘组。这样当第二磁盘组激活完成进入工作状态时,第一磁盘组进入休眠状态。还例如,磁盘管理方法可以在第一磁盘组处理业务请求的过程中,向第一磁盘组发送消息以确定第一组业务请求的处理进度,然后根据该进度,确定开始激活第二磁盘组的时间,以便在第二磁盘组激活完成进入工作状态时,控制第一磁盘组进入休眠状态。由于磁盘130处于休眠状态时的功耗最小,因此,磁盘组之间的交替工作,能够保证整个存储系统的低功耗。

此后,结束本流程。

综上所述,本实施例提供的磁盘管理方法,通过磁盘分组和业务请求的缓存,按照业务请求数量,分时调度磁盘组,将激活磁盘和操作磁盘同时进行,把串行操作变成了流水并行操作,以此减少了时间消耗,提高了带宽,同时可以减少访问缓冲的内存需求量,支持更多的访问请求,优化了系统整体性能,将系统功耗最大限度降低至1/n。

在又一种情形下,为了在图3所示的实施例的基础上,对磁盘阵列中时常出现的磁盘故障进行处理,本发明实施例还提供了另一种磁盘管理方法。下面将结合图3和图5对图4所示的另一种磁盘管理方法进行详细描述。

云存储系统为提高数据可靠性,会对数据进行纠删码(erasurecode,ec)技术冗余,冗余后的数据分为数据块和编码块(统称为分块),在分块损坏总数不超过阈值的情况下,任意损坏若干分块,依靠未损坏的分块可以把损坏的分块重构出来。因此,在每个磁盘组120中,不仅包括用于存储数据的数据磁盘,还包括用于存储编码的编码磁盘和用于备份的备份磁盘。对于上述各种功能的磁盘的比例,在此不做限制。

步骤s310s至步骤s330均可以参见图3实施例中的相关步骤的描述。在图4所示的实施例中,与图3所示的实施例不同的是在磁盘组120被操作的时候,s340、确定磁盘组是否存在磁盘故障。作为一个示例,在磁盘管理方法响应业务请求开始操作磁盘组的时候,可以同步确定对应磁盘组的状态信息。

当确定该磁盘组中的一个或多个磁盘存在磁盘故障时,则s350、针对磁盘故障,自动对该磁盘组进行磁盘重建操作。

在步骤s350中,当监测到此磁盘组某个数据磁盘或编码磁盘有故障,那么激活此组的数据磁盘和编码磁盘以及备份磁盘,用备份磁盘替换故障磁盘,新的数据或编码写入新的备份磁盘,故障磁盘里的数据通过纠删码算法进行恢复后写入备份磁盘。可以理解,由于纠删码算法,虽然存在磁盘故障,但是并不影响业务请求的处理。

作为一个示例,故障磁盘的数据从故障盘到新盘的重建操作可以分多次完成,每次只完成一部分。每次重建操作可以充分利用当前需要重建的磁盘组的空闲时段来进行。空闲时段是指磁盘组完成对应业务请求的处理后,在其工作状态中剩余的空闲时间。

如图5示出了磁盘管理方法对三个磁盘组的管理示意图。沿时间方向从左向右三个磁盘组分别是第i-1、i、i+1(i+1≤k)个磁盘组,假如三个磁盘组都存在磁盘故障,那么在第i-1个磁盘组完成业务请求的访问操作后,其剩余的空闲时段可以用来重建自身的故障磁盘的数据。对于第i个磁盘组也是同理。而对于第i+1个磁盘组来说,由于其在如图所示的工作状态时段中没有空闲时段,因此,即便该磁盘组存在故障磁盘,也不会在该工作状态时段进行磁盘重建操作,该磁盘组的重建操作会利用在后续磁盘工作状态中的空闲时段进行。

综上所述,本发明实施例的磁盘管理方法在图3所示实施例的基础上,利用空闲时段,把重建操作和业务操作合并在一起,在一个工作状态时段里,在处理完业务请求的访问操作之后利用空闲的时间处理重建操作;同时,重建操作的优先级较低,时间是动态调整的,既充分利用了空闲时间,又不影响用户访问的延时体验,优化了磁盘阵列的运行维护,并降低了运行维护的成本。

本发明的各方法实施方式均可以以软件、磁件、固件等方式实现。不管本发明是以软件、磁件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(programmablearraylogic,简称“pal”)、随机存取存储器(randomaccessmemory,简称“ram”)、可编程只读存储器(programmablereadonlymemory,简称“prom”)、只读存储器(read-onlymemory,简称“rom”)、电可擦除可编程只读存储器(electricallyerasableprogrammablerom,简称“eeprom”)、磁盘、光盘、数字通用光盘(digitalversatiledisc,简称“dvd”)等等。

图6是根据本发明实施例的磁盘管理装置600的示意性框图。该装置用于执行上述方法流程,包括:

缓存模块610,用于缓存多个业务请求到缓存队列,多个业务请求至少包含第一组业务请求和第二组业务请求,第一组业务请求和第二组业务请求分别用于请求第一磁盘组和第二磁盘组;

第一控制模块620,用于响应于第一组业务请求,控制第一磁盘组被激活,使得第一磁盘组在激活完成后进入工作状态,并基于第一组业务请求被操作;

第二控制模块630,用于在第一磁盘组被操作时,响应于第二组业务请求,控制第二磁盘组被激活。

在一示例中,当第二磁盘组的激活完成时,控制第一磁盘组由所述工作状态转化为休眠状态。

需要说明的是,磁盘管理装置600可以被配置为用于执行方法300中相应的操作、动作以及过程,此处省略对这些操作、动作以及过程的描述。

综上所述,本实施例提供的磁盘管理方法,通过磁盘分组和业务请求的缓存,按照业务请求数量,分时调度磁盘组,将激活磁盘和操作磁盘同时进行,把串行操作变成了流水并行操作,以此减少了时间消耗,提高了带宽,同时可以减少访问缓冲的内存需求量,支持更多的访问请求,优化了系统整体性能,将系统功耗最大限度降低至1/n。

进一步的,在磁盘管理装置600基础上,本发明实施例还提供一种磁盘管理装置700。该装置用于执行上述方法流程,包括:

缓存模块710,用于缓存多个业务请求到缓存队列,多个业务请求至少包含第一组业务请求和第二组业务请求,第一组业务请求和第二组业务请求分别用于请求第一磁盘组和第二磁盘组;

第一控制模块720,用于响应于第一组业务请求,控制第一磁盘组被激活,使得第一磁盘组在激活完成后进入工作状态,并基于第一组业务请求被操作;

第二控制模块730,用于在第一磁盘组被操作时,响应于第二组业务请求,控制第二磁盘组被激活;

确定模块740,用于在第一磁盘组和第二磁盘组被操作的时候,确定第一磁盘组和第二磁盘组是否存在磁盘故障;

重建模块750,用于基于确定的磁盘故障,自动对具有磁盘故障的在第一磁盘组和/或第二磁盘组进行磁盘重建操作,磁盘重建操作仅在空闲时段进行;

其中,磁盘故障是指被操作的磁盘组的至少一个磁盘发生故障,空闲时段是指被操作的磁盘组完成对应业务请求的处理后,在工作状态中剩余的时间。

在一个示例中,当第二磁盘组的激活完成时,控制第一磁盘组由工作状态转化为休眠状态。

在一个示例中,磁盘重建操作使用纠删码算法,第一磁盘组和第二磁盘组还包括至少一个用于存储编码的编码磁盘和至少一个用于备份的备份磁盘。

在一个示例中,工作状态的时长不小于激活完成所需要的时长。

要说明的是,磁盘管理装置700可以被配置为用于执行图4所示方法中相应的操作、动作以及过程,此处省略对这些操作、动作以及过程的描述。

综上所述,本发明实施例的磁盘管理装置,利用空闲时段,把重建操作和业务操作合并在一起,在一个工作状态时段里,在处理完业务请求的访问操作之后利用空闲的时间处理重建操作;同时,重建操作的优先级较低,时间是动态调整的,既充分利用了空闲时间,又不影响用户访问的延时体验,优化了磁盘阵列的运行维护,并降低了运行维护的成本。

根据本发明的另一实施例,还提供一种非易失性存储介质,该非易失性存储介质具有存储在其中的指令,当该指令被执行时,使得处理器执行磁盘管理方法,用于管理多个磁盘组,所述多个磁盘组至少包含第一磁盘组和第二磁盘组,每个磁盘组包括至少一个用于存储数据的磁盘,该指令包括:缓存多个业务请求到缓存队列;响应于第一组业务请求,控制第一磁盘组被激活,使得第一磁盘组在激活完成后进入工作状态,并基于第一组业务请求被操作;在第一磁盘组被操作时,响应于第二组业务请求,控制第二磁盘组被激活。

进一步地,在第一磁盘组和第二磁盘组被操作的时候,确定第一磁盘组和第二磁盘组是否存在磁盘故障;基于确定的磁盘故障,自动对具有磁盘故障的第一磁盘组和/或第二磁盘组进行磁盘重建操作,磁盘重建操作仅在空闲时段进行;其中,磁盘故障是指被操作的磁盘组的至少一个磁盘发生故障,空闲时段是指被操作的磁盘组完成对应业务请求的处理后,在工作状态中剩余的时间。

进一步地,磁盘重建操作使用纠删码算法,故障磁盘组包括至少一个用于存储编码的编码磁盘和至少一个用于备份的备份磁盘。

进一步地,工作状态的时长不小于激活完成所需要的时长。

进一步的,根据本发明的另一实施例,还提供一种设备,包括存储器,存储有计算机可执行指令,处理器,处理器被配置为执行指令以实施磁盘管理的过程,用于管理多个磁盘组,所述多个磁盘组至少包含第一磁盘组和第二磁盘组,每个磁盘组包括至少一个用于存储数据的磁盘,该过程包括:缓存多个业务请求到缓存队列;响应于第一组业务请求,控制第一磁盘组被激活,使得第一磁盘组在激活完成后进入工作状态,并基于第一组业务请求被操作;在第一磁盘组被操作时,响应于第二组业务请求,控制第二磁盘组被激活。

进一步地,在第一磁盘组和第二磁盘组被操作的时候,确定第一磁盘组和第二磁盘组是否存在磁盘故障;基于确定的磁盘故障,自动对具有磁盘故障的第一磁盘组和/或第二磁盘组进行磁盘重建操作,磁盘重建操作仅在空闲时段进行;其中,磁盘故障是指被操作的磁盘组的至少一个磁盘发生故障,空闲时段是指被操作的磁盘组完成对应业务请求的处理后,在工作状态中剩余的时间。

进一步地,磁盘重建操作使用纠删码算法,故障磁盘组包括至少一个用于存储编码的编码磁盘和至少一个用于备份的备份磁盘。

进一步地,工作状态的时长不小于激活完成所需要的时长。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的终端设备来实现。在列举了若干终端设备的单元权利要求中,这些终端设备中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1