一种硬盘节能的方法及装置转让专利

申请号 : CN200810186534.2

文献号 : CN101446857B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张巍

申请人 : 成都市华为赛门铁克科技有限公司

摘要 :

本发明公开了一种硬盘节能的方法及装置。本发明公开的硬盘节能的方法包括:若第一硬盘在预设的时间内未接收到读/写请求,判断当前处于未激活状态的硬盘个数是否大于允许处于未激活状态的硬盘的最大未激活个数M,所述M为大于等于1的自然数;若当前处于未激活状态的硬盘个数大于所述M,命令所述第一硬盘进入待机状态。通过本发明,可以在实现硬盘节能的前提下,对读/写请求快速响应。

权利要求 :

1.一种硬盘节能的方法,其特征在于,所述方法包括:

若第一硬盘在预设的时间内未接收到读/写请求,判断磁盘冗余阵列RAID组中当前处于未激活状态的硬盘个数是否大于允许处于未激活状态的硬盘的最大未激活个数M,所述M为大于等于1的自然数,其中,所述最大未激活个数M是在保证磁盘冗余阵列RAID组能正常工作的前提下所能容忍的处于未激活状态的硬盘的最大数量,其中,所述第一硬盘为磁盘冗余阵列RAID组中的任意一个硬盘;

若当前处于未激活状态的硬盘个数大于所述M,命令所述第一硬盘进入待机状态,其中,所述未激活状态包括造成硬盘无法正常工作的状态以及休眠状态。

2.根据权利要求1所述的方法,其特征在于,在所述判断当前处于未激活状态的硬盘个数是否大于允许处于未激活状态的硬盘的最大未激活个数M之前,所述方法还包括:判断出允许所述第一硬盘处于节能模式。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括,

若当前处于未激活状态的硬盘个数小于所述M,则命令所述第一硬盘进入休眠状态。

4.根据权利要求1所述的方法,其特征在于,处于所述待机状态的第一硬盘的磁头离开所述第一硬盘的盘片。

5.根据权利要求4所述的方法,其特征在于,处于所述待机状态的第一硬盘的盘片的转速降低。

6.一种硬盘节能的装置,其特征在于,所述装置包括:

确定单元,用于确定允许处于未激活状态的硬盘的最大未激活个数M,所述M为大于等于1的自然数,其中,所述最大未激活个数M是在保证磁盘冗余阵列RAID组能正常工作的前提下所能容忍的处于未激活状态的硬盘的最大数量;

第一判断单元,用于在预设时间内,若第一硬盘未接收到读/写请求,判断磁盘冗余阵列RAID组中当前处于未激活状态的硬盘个数是否大于所述确定单元确定的所述M,其中,所述第一硬盘为磁盘冗余阵列RAID组中的任意一个硬盘;

命令单元,用于当所述第一判断单元判断出当前处于未激活状态的硬盘个数大于所述M时,命令所述第一硬盘进入待机状态,其中,所述未激活状态包括造成硬盘无法正常工作的状态以及休眠状态。

7.根据权利要求6所述的装置,其特征在于,当前处于未激活状态的硬盘个数小于所述M,则所述命令单元命令所述第一硬盘进入休眠状态。

8.根据权利要求6所述的装置,其特征在于,所述装置还包括:

计算单元,用于计算当前处于未激活状态的硬盘个数。

说明书 :

一种硬盘节能的方法及装置

技术领域

[0001] 本发明涉及数据存储技术领域,尤其涉及一种硬盘节能的方法及装置。 [0002] 背景技术
[0003] 随着科学技术与计算机技术的飞速发展,信息技术的重要性越来越受到重视。例如,企业越来越依赖于海量的数据。为了更好、更快地存储这些海量数据,数据存储技术也有了前所未有的发展。
[0004] 但是,作为数据存储技术的载体,硬盘造成了巨大的能源消耗。硬盘节能成为数据存储技术面临的新课题。
[0005] 现有实现硬盘节能的方法主要包括:磁盘冗余阵列(RAID,Redundant Arrays of Independent/Inexpensive Disks)组所包含的硬盘中,在一定时间内没有接收到读/写请求的硬盘均进入休眠状态。当某个进入休眠状态的硬盘接收到读/写请求时,所有进入休眠状态的硬盘均恢复到正常工作状态,该进入休眠状态的硬盘才能根据接收到的读/写请求执行操作。
[0006] 发明人在研究过程中,发现上述实现硬盘节能的方法至少存在以下缺点:为了可以快速响应请求,一个磁盘冗余阵列组所包含的硬盘不能全部进入休眠状态,而没有进入休眠状态的硬盘在等待请求的过程中则会不断的消耗能量,造成了能量的浪费。 [0007] 发明内容
[0008] 有鉴于此,本发明实施例提供了一种硬盘节能的方法及装置,以在实现硬盘节能的前提下,快速响应读/写请求。
[0009] 一种硬盘节能的方法,所述方法包括:
[0010] 若第一硬盘在预设的时间内未接收到读/写请求,判断磁盘冗余阵列RAID组中当前处于未激活状态的硬盘个数是否大于允许处于未激活状态的硬盘的最大未激活个数M,所述M为大于等于1的自然数,其中,所述最大未激活个数M是在保证磁盘冗余阵列RAID组能正常工作的前提下所能容忍的处于未激活状态的硬盘的最大数量;所述第一硬盘为磁盘冗余阵列RAID组中的任意一个硬盘;
[0011] 若当前处于未激活状态的硬盘个数大于所述M,命令所述第一硬盘进入 待机状态;所述未激活状态包括造成硬盘无法正常工作的状态以及休眠状态。 [0012] 一种硬盘节能的装置,所述装置包括:
[0013] 确定单元,用于确定允许处于未激活状态的硬盘的最大未激活个数M,所述M为大于等于1的自然数,其中,所述最大未激活个数M是在保证磁盘冗余阵列RAID组能正常工作的前提下所能容忍的处于未激活状态的硬盘的最大数量;
[0014] 第一判断单元,用于在预设时间内,若第一硬盘未接收到读/写请求,判断磁盘冗余阵列RAID组中当前处于未激活状态的硬盘个数是否大于所述确定单元确定的所述M;所述第一硬盘为RAID组中的任意一个硬盘;
[0015] 命令单元,用于当所述第一判断单元判断出当前处于未激活状态的硬盘个数大于所述M时,命令所述第一硬盘进入待机状态;所述未激活状态包括造成硬盘无法正常工作的状态以及休眠状态。
[0016] 可以看出,为了实现硬盘节能,RAID组计算自身在不失效情况下最多允许处于未激活状态的硬盘个数。若RAID组中第一硬盘在预设时间内没有接收到读/写请求,RAID组判断此时处于未激活状态的硬盘个数是否小于自身在不失效情况下最多允许处于未激活状态的硬盘个数,若小于,则使该第一硬盘进入休眠状态,否则,使该硬盘待机。 [0017] 在实现硬盘节能的前提下,当RAID组内的硬盘在预定时间内未接收到读/写请求时,即会进入待机状态,此时由于处于所述待机状态的硬盘仅仅是磁头移位,或转速降低,因此仍可以快速响应读/写请求,且耗能较小。
[0018] 附图说明
[0019] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020] 图1为本发明实施例硬盘节能方法流程图;
[0021] 图2为本发明实施例硬盘节能具体方法流程图;
[0022] 图3为本发明实施例使硬盘快速响应请求方法流程图;
[0023] 图4为本发明实施例使硬盘快速响应请求具体方法流程图;
[0024] 图5为本发明实施例硬盘节能的装置结构框图;
[0025] 图6为本发明实施例硬盘结构框图。

具体实施方式

[0026] 为了使本发明的技术特征、有益效果更加明显易懂,下面结合具体实施方式对本发明进行详细说明。
[0027] 首先,在本发明实施例中,硬盘的节能模式的状态分为三个级别:第一级别的第一待机状态、第二级别的第二待机状态、第三级别的休眠状态。其中,第一待机状态和第二待机状态中的硬盘的磁头均被卸载,第一待机状态的盘片不降速,第二降速状态的盘片转速降低。在本发明实施例中,所述第一待机状态、第二待机状态、及休眠状态的具体参数如下:
[0028] 第一待机状态,硬盘的磁头卸载,即磁头从高速运转的盘片上移出到一个特有位置,节能15%-20%,小于10秒的恢复时间;
[0029] 第二待 机状态,硬盘的磁 头卸载,盘片的 每分钟 旋转次数 (RPM,rotations-per-minute)降为4000RPM,节能35%-45%,15秒的恢复时间; [0030] 休眠状态,硬盘的马达停止旋转,节能50%-70%,30秒的恢复时间。 [0031] 易于理解的是,所述第一待机状态、第二待机状态、及休眠状态的具体状态参数可以根据需要进行调整。
[0032] 下面以RAID组中任意一个硬盘为例对本发明实施例进行说明。为描述方便,任意一个硬盘记为第一硬盘。
[0033] 请参考图1,为本发明实施例硬盘节能方法流程图,可以包括以下步骤: [0034] 步骤101:若第一硬盘在预设的时间内未接收到读/写请求,判断当前处于未激活状态的硬盘个数是否大于允许处于未激活状态的硬盘的最大未激活个数M,所述M为大于等于1的自然数;
[0035] 其中,在本发明实施例中,所述未激活状态包括硬盘损坏等造成硬盘无法正常工作的状态、以及休眠状态。所述最大未激活个数是指在保证RAID组能正常工作的前提下RAID组所能容忍的处于未激活状态的硬盘的最大数量。
[0036] 步骤102:若当前处于未激活状态的硬盘个数大于所述M,命令所述第一硬盘进入待机状态。
[0037] 下面对图1所示步骤进行详细说明。请参考图2,为本发明实施例的硬盘节能具体方法流程图,可以包括以下步骤:
[0038] 步骤201:RAID组判断是否允许第一硬盘处于节能模式,如果是,进入步骤202,否则,流程结束;
[0039] 步骤202:该RAID组根据自身类型,确定该RAID组中允许处于未激活状态的硬盘的最大未激活个数M;
[0040] 其中,在本发明实施例中,所述未激活状态包括硬盘损坏等造成硬盘无法正常工作的状态、以及休眠状态。所述最大未激活个数是指在保证RAID组能正常工作的前提下RAID组所能容忍的处于未激活状态的硬盘的最大数量。
[0041] 步骤203:该RAID组判断该第一硬盘在预设时间内是否接收到读/写请求,如果接收到,流程结束,否则,进入步骤204;
[0042] 预设时间是用户根据需要进行设定的。
[0043] 步骤204:该RAID组判断当前处于未激活状态的硬盘个数是否小于等于M,若是,进入步骤205,否则,进入步骤206;
[0044] 步骤205:该RAID组所属的存储控制器向该第一硬盘发送马达停止旋转命令,使该第一硬盘进入休眠状态,并计算当前处于未激活状态的硬盘个数,流程结束。 [0045] 步骤206:该RAID组根据用户设置判断用户是否要求该第一硬盘快速恢复,如果是,进入步骤207,否则,进入步骤208;
[0046] 步骤207:该RAID组所属的存储控制器向该第一硬盘发送第一待机命令,使该第一硬盘进入第一待机状态,流程结束;
[0047] 步骤208:该RAID组所属的存储控制器向该第一硬盘发送第二待机命令,使该第一硬盘进入第二待机状态,流程结束。
[0048] 易于理解的是,当需要硬盘进入待机状态时,可根据具体的状况,比如历史读写请求产生的频率或预设的RAID组的工作模式(加快、普通等),来判断是否需要或是否可以进入第二待机状态。
[0049] 至此,该第一硬盘进入了待机状态或者休眠状态。当该第一硬盘接收到读/写请求时,该第一硬盘要对接收到的读/写请求进行响应,从待机状态或者休眠状态恢复到正常工作状态。
[0050] 请参考图3,为本发明实施例使硬盘快速响应请求方法流程图,可以包括以下步骤:
[0051] 步骤301:所述硬盘接收到读/写请求;
[0052] 步骤302:若所述硬盘处于休眠状态,接收启动马达命令,按照RAID组的降级方式执行读/写操作,执行完成后,流程结束;
[0053] 在本发明实施例中,降级方式是RAID组的一种工作状态。该第一硬盘按照该RAID组的降级方式执行读操作时,通常,通过冗余方式读取该RAID组中其它硬盘上对应于读操作的数据。该第一硬盘按照该RAID组的降级方式执行写操作时,通常通过冗余方式将写操作的数据写入该RAID组的其它硬盘,再复制到该第一硬盘。不同类型的RAID组按照降级方式执行读/写操作各有不同。
[0054] 为描述方便,假设RAID组中的其它硬盘还可以包括第二硬盘、第三硬盘以及第四硬盘。
[0055] 以RAID 10为例,RAID 10是通过镜像方式进行冗余的一种RAID组类型。RAID 10中进入未激活状态的硬盘不能属于同一个镜像对,镜像对上的数据完全一致。假设RAID 10由该第一硬盘、第二硬盘、第三硬盘以及第四硬盘组成。其中,该第一硬盘与第二硬盘属于一个镜像对,第三硬盘与第四硬盘属于一个镜像对。若该第一硬盘需要按照RAID 10的降级方式执行读操作,则通过第二硬盘执行读操作。若该第一硬盘需要按照RAID 10的降级方式执行写操作,则RAID 10所属的存储控制器先将数据写入第二硬盘,待该第一硬盘从休眠状态恢复到正常工作状态后,再将第二硬盘写入的数据复制到自身。 [0056] 以RAID 5为例,假设该第一硬盘、第二硬盘、第三硬盘以及第四硬盘组成RAID 5。若该第一硬盘需要按照RAID 5的降级方式执行读操作,则RAID 5所属的存储控制器读出第二硬盘、第三硬盘以及第四硬盘相应位置的数据,再对读出的数据进行异或运算,计算出该第一硬盘对应位置的数据。若该第一硬盘需要按照RAID 5的降级方式执行写操作,则RAID 5所属的存储控制器先将数据写入第二硬盘、第三硬盘以及第四硬盘,待该第一硬盘从休眠状态恢复到正常工作状态后,该第一硬盘再读出第二硬盘、第三硬盘以及第四硬盘上写入的数据,进行异或后,写入该第一硬盘。
[0057] 该第一硬盘按照RAID组的降级方式执行读/写操作时,该RAID组中的其它硬盘先对读/写请求进行响应。因此,读/写请求不用等待该第一硬盘从休眠状态恢复就可以得到快速响应。
[0058] 步骤303:若所述硬盘处于待机状态,所述硬盘的磁头归位,所述硬盘执行读/写操作。
[0059] 请参考图4,为本发明实施例使硬盘快速响应请求具体方法流程图,仍以图2所示步骤中的第一硬盘以及RAID组为例,在本发明实施例中,所述第一硬盘处于休眠状态或待机状态,所述快速响应请求方法包括以下步骤:
[0060] 步骤401:该第一硬盘接收到读/写请求;
[0061] 步骤402:该第一硬盘判断自身是否处于休眠状态,如果是,进入步骤403,否则,进入步骤406;
[0062] 易于理解的是,在本发明实施例中,若该第一硬盘判断出自身没有处于休眠状态,则该第一硬盘处于待机状态。
[0063] 步骤403:该第一硬盘向该RAID组所属的存储控制器发送启动马达请求; [0064] 步骤404:该RAID组所属的存储控制器接收到来自该第一硬盘的请求后,向该第一硬盘发送启动马达命令;
[0065] 步骤405:该第一硬盘按照该RAID组的降级方式执行读/写操作,执行完成后,流程结束;
[0066] 步骤406:该第一硬盘的磁头归位,该第一硬盘执行读/写操作,并计算单位时间内接收到的读/写请求个数;
[0067] 步骤407:该第一硬盘判断单位时间内接收到的读/写请求个数是否大于用户设定的门限值,如果是,进入步骤408,否则,继续执行读/写操作,并且重复步骤406和步骤407,执行完成后,流程结束;
[0068] 步骤408:该第一硬盘提高转速,并继续执行读/写操作,操作完成后,流程结束。 [0069] 步骤408中,该第一硬盘从第一待机状态或者第二待机状态恢复到正常工作模式。
[0070] 综上,本发明实施例中,为了实现硬盘节能,RAID组计算自身在不失效情况下最多允许处于未激活状态的硬盘个数。若RAID组中的第一硬盘在预设时间内没有接收到读/写请求,RAID组判断此时处于未激活状态的硬盘个数是否小于自身在不失效情况下最多允许处于未激活状态的硬盘个数,若小于,则使该第一硬盘进入休眠状态,否则,使该硬盘进入待机状态。
[0071] 在实现硬盘节能的前提下,当RAID组中某个硬盘接收到读/写请求后,该硬盘判断自身是否处于未激活状态,若是,则启动马达,按照RAID组的降级方式执行读/写操作,否则,说明该硬盘处于第一待机状态或者第二待机状态,其磁头归位后,该硬盘执行读/写操作,并按照用户设定的门限值,提高转速。综上,本发明实施例通过设定硬盘的待机状态来降低硬盘处于等待时间内的能量消耗,而当接受到请求后,处于待机状态的硬盘也可以对读/写请求快速响应,减少了对硬盘性能的影响。
[0072] 请参考图5,为本发明实施例硬盘节能的装置结构框图,可以包括: [0073] 确定单元501,用于确定允许处于未激活状态的硬盘的最大未激活个数M,所述M为大于等于1的自然数;
[0074] 第一判断单元502,用于在预设时间内,若第一硬盘未接收到读/写请求,判断当前处于未激活状态的硬盘个数是否大于所述确定单元501确定的所述M; [0075] 命令单元503,用于若所述第一判断单元502判断出当前处于未激活状态的硬盘个数大于所述M,命令所述第一硬盘进入待机状态。
[0076] 当前处于未激活状态的硬盘个数小于或等于M,则所述命令单元命令所述第一硬盘进入休眠状态。
[0077] 所述装置还可以包括:
[0078] 计算单元,用于计算当前进入未激活状态的硬盘个数。
[0079] 下面结合图2所示步骤对上述装置各单元执行的操作进行说明。 [0080] 确定单元501确定允许处于未激活状态的硬盘的最大未激活个数M。在预设时间内,若第一硬盘未接收到读/写请求,第一判断单元502判断当前处于未激活状态的硬盘个数是否大于确定单元501确定的M。若当前处于未激活状态的硬盘个数小于等于M,则命令单元503命令第一硬盘进入休眠状态,计算单元计算当前进入未激活状态的硬盘个数。若当前处于未激活状态的硬盘个数大于M,则命令单元503命令第一硬盘进入待机状态。 [0081] 请参考图6,为本发明实施例硬盘结构框图,可以包括:
[0082] 接收单元601,用于接收读/写请求;
[0083] 第一执行单元602,用于若所述硬盘处于休眠状态,接收启动马达命令,按照RAID组的降级方式执行所述接收单元601接收到的所述读/写操作;
[0084] 第二执行单元603,用于若所述硬盘处于待机状态,使所述硬盘的磁头归位,执行所述接收单元601接收到的所述读/写操作。
[0085] 所述硬盘还可以包括:
[0086] 计数单元,用于计算单位时间内接收到的读/写请求个数,若所述单位时间内接收到的读/写请求个数大于用户设定的门限值,则提高转速。
[0087] 下面结合图4所示步骤对硬盘各单元执行的操作进行说明。
[0088] 第一硬盘的接收单元601接收读/写请求。该第一硬盘判断自身是否处于休眠状态。当该第一硬盘处于休眠状态时,第一执行单元602接收启动马达命令,按照RAID组的降级方式执行读/写操作。若该第一硬盘处于待机状态,第二执 行单元603使该第一硬盘的磁头归位,并执行读/写请求,在此过程中,计数单元计算单位时间内接收到的读/写请求个数,若单位时间内接收到的读/写请求个数大于用户设定的门限值,则提高转速。 [0089] 可以看出,在实现硬盘节能的前提下,当RAID组中某个硬盘接收到读/写请求后,该硬盘判断自身是否处于休眠状态,若是,则启动马达,按照RAID组降级的方式执行读/写操作,否则,说明该硬盘处于第一待机状态或者第二待机状态,其磁头归位后,该硬盘执行读/写操作,在此过程中,可以按照用户设定的门限值,提高转速。由此,可以对读/写请求快速响应,减少了对硬盘性能的影响。
[0090] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。 [0091] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。 [0092] 以上对本发明所提供的一种硬盘节能的方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领 域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。