发明内容
本发明实施例的目的在于提供一种控制存储设备状态的方法、装置及存储设备,以克服存储设备自动进入休眠状态给读写操作造成的不便。
根据本发明的一实施例,提供一种控制磁盘阵列组状态的方法,包括如下步骤:
获取磁盘阵列组中逻辑磁盘的状态控制信息,所述磁盘阵列组是休眠的最小物理单位,所述状态控制信息包括休眠指令或结束休眠指令,用于实现主机对所述磁盘阵列组的休眠状态进行控制;
判断所述磁盘阵列组中全部逻辑磁盘的状态控制信息是否均包含休眠指令;
当所述全部逻辑磁盘的状态控制信息均包含休眠指令时,控制所述磁盘阵列组进入休眠状态;
当所述全部逻辑磁盘的状态控制信息中包含至少一个结束休眠指令时,控制所述磁盘阵列组结束休眠状态。
根据本发明的又一实施例,提供一种控制磁盘阵列组状态的装置,包括:
信息获取模块,用于获取磁盘阵列组中逻辑磁盘的状态控制信息,所述磁盘阵列组是休眠的最小物理单位,所述状态控制信息包括休眠指令或结束休眠指令,用于实现主机对所述磁盘阵列组的休眠状态进行控制;
信息判断模块,与所述信息获取模块相连,用于判断所述磁盘阵列组中全部逻辑磁盘的状态控制信息是否均包含休眠指令;
休眠控制模块,用于获取所述信息判断模块的判断结果,在所述全部逻辑磁盘的状态控制信息均包含休眠指令时,控制所述磁盘阵列组进入休眠状态;
休眠结束模块,用于获取所述信息判断模块的判断结果,在所述全部逻辑磁盘的状态控制信息中包含至少一个结束休眠指令时,控制所述磁盘阵列组结束休眠状态。
根据本发明的又一实施例,提供一种存储设备,包括:
阵列控制器,用于获取磁盘阵列组中逻辑磁盘的状态控制信息,所述状态控制信息包括休眠指令或结束休眠指令,用于实现主机对所述磁盘阵列组的休眠状态进行控制,判断所述磁盘阵列组中全部逻辑磁盘的状态控制信息是否均包含休眠指令,在所述全部逻辑磁盘的状态控制信息中均包含休眠指令时,向所述磁盘阵列组发送休眠命令;
所述磁盘阵列组,用于存储数据,是休眠的最小物理单位,在收到所述阵列控制器的休眠命令时,进入休眠状态;
所述阵列控制器包括:
存储设备状态控制装置,用于获取磁盘阵列组中逻辑磁盘的状态控制信息,将所述磁盘阵列组中全部逻辑磁盘的状态控制信息存入指令寄存器,并读取所述指令寄存器中记录的所述全部逻辑磁盘的状态控制信息,判断所述全部逻辑磁盘的状态控制信息是否均包含休眠指令,
在所述全部逻辑磁盘的状态控制信息中均包含休眠指令时,向所述磁盘阵列组发送休眠命令,
在所述全部逻辑磁盘的状态控制信息中包含至少一个结束休眠指令时,向所述磁盘阵列组发送结束休眠命令;
所述指令寄存器,用于记录所述全部逻辑磁盘的状态控制信息。
根据对上述技术方案的描述,本发明实施例有如下优点:获取存储设备中逻辑磁盘的状态控制信息;判断所述存储设备中全部逻辑磁盘的状态控制信息是否均包含休眠指令;当所述全部逻辑磁盘的状态控制信息均包含休眠指令时,控制所述存储设备进入休眠状态。通过上述技术方案可以有效控制所述存储设备进入休眠状态,克服存储设备自动进入休眠状态给读写操作造成的不便,在方便使用的同时节省存储设备功耗。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要注意的是,以下实施例只是本发明的优选实施例,这些实施例只用于描述本发明而不用于限定本发明。
实施例一
图1为本发明的实施例一提供的一种控制存储设备状态的方法的流程示意图,该控制存储设备状态的方法包括:
S11:获取存储设备中逻辑磁盘的状态控制信息;
S12:判断所述存储设备中全部逻辑磁盘的状态控制信息是否均包含休眠指令;
S13:当所述全部逻辑磁盘的状态控制信息均包含休眠指令时,控制所述存储设备进入休眠状态。
本实施例中所述的存储设备带有休眠功能,以便控制存储设备在不进行读写操作时进入休眠状态,有效降低功耗,所述存储设备可以是磁盘、计算机、服务器等具有存储功能的设备。所述存储设备由多个逻辑磁盘组成,所述逻辑磁盘可接收状态控制信息,以对存储设备休眠状态进行控制。本实施例通过获取并判断所述存储设备中全部逻辑磁盘的状态控制信息,在全部逻辑磁盘的状态控制信息均包含休眠指令时,使所述存储设备进入休眠状态。通过上述技术方案可以对存储设备的状态进行有效控制,克服了存储设备自动进入休眠状态给读写操作造成的不便,在方便使用的同时节省存储设备功耗。
实施例二
本发明实施例为了方便描述控制存储设备进入休眠的过程,将以磁盘阵列为例进行介绍。在存储设备的实际应用中,一个磁盘阵列可以被划分为多个不同的磁盘阵列组,每个磁盘阵列组可以根据需要进入休眠状态,磁盘阵列组之间并不影响彼此的休眠状态;也即是说,磁盘阵列组通常是休眠的最小物理单位。图2为本发明的实施例二提供的一种大规模非活动磁盘阵列中的磁盘阵列组(RAID,Redundant Array of Spin Inexpensive Disks)的示意图。所述磁盘阵列组中包括多个磁盘,这些磁盘在图2中将用D1、D2、D3、......、DM来表示,它们组合在一起形成磁盘阵列以提供比单一磁盘更大的存储空间。所述磁盘阵列组通常还包括阵列控制器,以便对所述多个磁盘进行控制。在磁盘阵列组中,每个磁盘都被划分为不同的块区,不同磁盘的块区结合在一起形成一个逻辑磁盘(LUN Disk,Logic Unit Number Disk);一个磁盘阵列组将被划分为多个逻辑磁盘,这些逻辑磁盘在图2中将用L1、L2、......、LN表示。这样对一个逻辑磁盘的操作在物理上就可以由多个磁盘分担,不但实现磁盘阵列组带宽的提升,也便于实现各磁盘间的冗余操作,提高可靠性。对所述磁盘阵列组进行读写操作的通常是主机,其可以由服务器、小型机等设备实现。所述主机通常会采用SCSI(Small Computer System Interface,小型计算机系统接口)协议并通过电缆或光缆与磁盘阵列组相连。一个磁盘阵列组通常可以和多个主机建立对应关系,所有主机进行读写操作的对象是磁盘阵列组中的逻辑磁盘,而不是实际的物理磁盘。当一个磁盘阵列组服务于多台主机时,一台主机通常只对与其对应的逻辑磁盘进行读写操作,其它的逻辑磁盘对于该主机而言通常是不可见的。要保证主机对整个磁盘阵列组的休眠和工作状态进行有效控制,需要使主机下发的休眠或唤醒指令能有效地作用在磁盘阵列组的每个逻辑磁盘上。
图3为本发明的实施例二提供的一种控制存储设备状态的方法的流程示意图,该控制存储设备状态的方法包括:
S31:获取存储设备中逻辑磁盘的状态控制信息。
以磁盘阵列组为例,该步骤可具体包括:所述磁盘阵列组的阵列控制器可获取磁盘阵列组中逻辑磁盘的状态控制信息。所述状态控制信息中包含休眠指令或结束休眠指令,用来告知相应逻辑磁盘可以进入休眠状态或结束休眠状态,以对磁盘阵列组休眠状态进行控制。
所述状态控制信息可以由与所述磁盘阵列组相连接的主机发送给所述磁盘阵列组,以方便所述主机对所述磁盘阵列组的休眠状态进行控制。由于所述主机读写操作的对象是磁盘阵列组中的逻辑磁盘,该主机发送的状态控制信息实际上针对的是其使用的逻辑磁盘,这样磁盘阵列组中的全部逻辑磁盘都会收到其相应主机的状态控制信息。当一主机发送的状态控制信息中包含休眠指令,说明该主机允许其对应的逻辑磁盘进入休眠状态;当一主机发送的状态控制信息中包含结束休眠指令,说明该主机需要对其对应的逻辑磁盘进行操作,该逻辑磁盘相应磁盘阵列组需要结束休眠状态。
S32:判断所述存储设备中全部逻辑磁盘的状态控制信息是否均包含休眠指令。
判断所述存储设备中全部逻辑磁盘的状态控制信息是否均包含休眠指令可以具体包括:在指令寄存器中记录所述存储设备中全部逻辑磁盘的状态控制信息;读取所述指令寄存器中记录的所述全部逻辑磁盘的状态控制信息;判断所述全部逻辑磁盘的状态控制信息是否均包含休眠指令。所述状态控制信息中可以包括休眠指令或结束休眠指令,以控制存储设备进入休眠状态或结束休眠状态。
在磁盘阵列组中,所述指令寄存器可以包括在磁盘阵列组的阵列控制器中,也可以不在阵列控制器中,阵列控制器在接收到某台主机发送的该磁盘阵列组中逻辑磁盘的状态控制信息后,在指令寄存器中保存该状态控制信息。所述指令寄存器保存着与该磁盘阵列组相连的全部主机的发送给相应逻辑磁盘的状态控制信息,以便后续通过读取这些信息对磁盘阵列组休眠状态进行控制。本领域技术人员可以理解,除指令寄存器之外的其它具有存储功能的单元也可实现与所述指令寄存器相同的功能。
本领域技术人员可以理解,判断所述存储设备中全部逻辑磁盘的状态控制信息是否均包含休眠指令时,也可以不必通过寄存器保存全部逻辑磁盘的状态控制信息。可以使与存储设备连接的全部主机实时上报其状态控制信息,阵列控制器通过统计全部主机的上报结果获得来自全部主机对于其逻辑磁盘的状态控制信息,从而省略保存状态控制信息的操作。
此处仍然以磁盘阵列组为例,当某主机发送的状态控制信息包含休眠指令或结束休眠指令,说明主机需要其对应的逻辑磁盘进入休眠或结束休眠状态。但由于磁盘阵列组通常是休眠的最小物理单位,需要判断全部逻辑磁盘对应的主机提供的状态控制信息,以对整个磁盘阵列组的休眠状态进行控制。
所述状态控制信息包含的休眠指令中还可设有休眠等级,用于对存储设备休眠的级别进行控制。在不同的休眠等级下,存储设备消耗的电能不同,重新启动所需要的时间也不同。在实际应用中,可根据磁盘阵列组的不同节能状态可将磁盘阵列组划分为以下休眠等级:
0级(Level0):正常运行状态;
1级(Level1):磁头脱离盘片状态;
2级(Level2):磁盘降速状态;
3级(Level3):备用/休眠/下电状态。
这里的休眠等级按照0级、1级、2级、3级依次递增。其中,0级为最低休眠等级,表明磁盘阵列组处于正常工作中;3级则为最高休眠等级。休眠等级越高,表明磁盘阵列组的休眠程度越高,节省功耗也更多。主机可以根据自身的不同需要发送状态控制信息,使磁盘阵列组进入其所希望的休眠等级。
上述过程中,收集状态控制信息并对磁盘阵列组休眠状态进行控制的单元是一阵列控制器,本领域技术人员可以理解,采用其它控制单元或位于磁盘阵列组之外的控制单元(如控制器、PC机或服务器等)也可以实现对磁盘阵列组休眠状态的控制。
S33:当所述全部逻辑磁盘的状态控制信息均包含休眠指令时,控制所述存储设备进入休眠状态。
在该步骤中,所述存储设备进入休眠状态可包括:当所述全部逻辑磁盘的状态控制信息均包含休眠指令时,比较所有休眠指令中包括的休眠等级,得到最低休眠等级;控制所述存储设备进入与所述最低休眠等级相应的休眠状态。
以磁盘阵列组为例,当磁盘阵列组中的阵列控制器接收到全部逻辑磁盘的状态控制信息后,如发现全部主机都在其发送的状态控制信息中下达了休眠指令,说明所有主机都已不再需要对其对应的逻辑磁盘进行读写,即磁盘阵列组的全部逻辑磁盘都可以进入休眠状态,则可以对磁盘阵列组进行休眠操作。
由于不同主机对其逻辑磁盘存在不同需要,可能需要其逻辑磁盘进入不同等级的休眠。这时需要比较所有主机允许其逻辑磁盘进入休眠的等级,得到其中最低休眠等级,并让磁盘阵列组进入最低休眠等级相应的休眠状态,从而满足下达了最低休眠等级命令的主机的工作需要,避免因磁盘阵列组休眠程度太深而无法满足某些主机的需求。
该方法还可以进一步包括S34:当所述全部逻辑磁盘的状态控制信息中包含至少一个结束休眠指令时,控制所述存储设备结束休眠状态。
以磁盘阵列组为例,在该步骤中,阵列控制器如果发现其指令寄存器中的一个或多个逻辑磁盘的状态控制信息包含结束休眠指令,说明存在一个或多个主机需要磁盘阵列组结束休眠状态,则阵列控制器可控制磁盘阵列组结束休眠并开始工作,以满足相应主机的工作需求。
本实施例获取并判断所述存储设备的全部逻辑磁盘的状态控制信息,在全部逻辑磁盘的状态控制信息中均包含休眠指令时,使所述存储设备进入休眠状态。本实施例利用所述状态控制信息对存储设备的状态进行有效控制,克服了存储设备自动进入休眠状态给读写操作造成的不便,在方便使用的同时节省存储设备功耗;同时本实施例可以在指令寄存器中保存全部主机发送的状态控制信息,以便后续通过读取这些信息对存储设备休眠状态进行控制;本实施例还可通过比较所述全部逻辑磁盘的状态控制信息中包含的所有休眠指令,得到所述所有休眠指令中的最低休眠等级,使所述存储设备进入与所述最低休眠等级相应的休眠状态,以保证所有主机的工作需求;同时本实施例公开了使存储设备结束休眠的过程,当存在一个或多个主机需要存储设备结束休眠时,使存储设备停止休眠,以便满足相应主机的需要。
本领域普通技术人员可以理解上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关硬件完成的,所述的程序可存储于一计算机可读取存储介质中。其中所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
实施例三
图4为本发明的实施例三提供的一种控制存储设备状态的装置的结构示意图,该装置包括:
信息获取模块41,用于获取存储设备中逻辑磁盘的状态控制信息;
信息判断模块42,与所述信息获取模块41相连,用于判断所述存储设备中全部逻辑磁盘的状态控制信息是否均包含休眠指令;
休眠控制模块43,用于获取所述信息判断模块42的判断结果,在所述全部逻辑磁盘的状态控制信息均包含休眠指令时,控制所述存储设备进入休眠状态。
本实施例通过提供一种控制存储设备状态的装置,根据存储设备中逻辑磁盘的状态控制信息控制存储设备进入休眠状态,在节省存储设备功耗的同时,方便主机通过所述状态控制信息控制存储设备的状态。
进一步地,在上述装置实施例中,所述休眠控制模块43还可以包括:
休眠等级判断子模块,用于获取所述信息判断模块42的判断结果,在所述全部逻辑磁盘的状态控制信息均包含休眠指令时,比较所有休眠指令中包括的休眠等级,得到最低休眠等级;
休眠等级控制子模块,与所述休眠等级判断子模块相连,用于获取所述最低休眠等级,控制所述存储设备进入与所述最低休眠等级相应的休眠状态。
通过上述子模块的功能,该装置能从全部逻辑磁盘的状态控制信息包含的休眠等级中选出最低休眠等级,使存储设备进入与所述最低休眠等级相应的休眠状态,以保证存储设备能满足所有主机对存储设备休眠状态的需求。
再进一步地,所述信息判断模块42可包括:
存储子模块,与信息获取模块41相连,用于记录所述存储设备中全部逻辑磁盘的状态控制信息;
读取子模块,用于读取所述存储子模块中记录的所述全部逻辑磁盘的状态控制信息;
判断子模块,与读取子模块相连,用于判断所述全部逻辑磁盘的状态控制信息是否均包含休眠指令。
更进一步地,上述实施例三提供的控制存储设备状态的装置中还可包括:
休眠结束模块,用于获取所述信息判断模块42的判断结果,在所述全部逻辑磁盘的状态控制信息中包含至少一个结束休眠指令时,控制所述存储设备结束休眠状态。
通过休眠结束模块可有效控制所述存储设备结束休眠状态,使存储设备能满足正常工作需求。
实施例四
图5为本发明的实施例四提供的一种存储设备的结构示意图,所述存储设备可以与多个主机相连接,接收所述多个主机的状态控制信息,该存储设备包括:
阵列控制器51,用于获取磁盘阵列组52中逻辑磁盘的状态控制信息,判断所述磁盘阵列组52中全部逻辑磁盘的状态控制信息是否均包含休眠指令,在所述全部逻辑磁盘的状态控制信息中均包含休眠指令时,向所述磁盘阵列组52发送休眠命令;
所述磁盘阵列组52,用于存储数据,在收到所述阵列控制器51的休眠命令时,进入休眠状态。
在此实施例提供的存储设备中,阵列控制器通过获取主机提供的状态控制信息对磁盘阵列组的休眠状态进行控制,保证存储设备根据所述主机的需要进入休眠状态,满足相应主机工作需求的同时,节省了功耗。
进一步的,所述阵列控制器51还可包括:
存储设备状态控制装置511,用于获取磁盘阵列组52中逻辑磁盘的状态控制信息,将所述磁盘阵列组52中全部逻辑磁盘的状态控制信息存入指令寄存器512,并读取所述指令寄存器512中记录的所述全部逻辑磁盘的状态控制信息,判断所述全部逻辑磁盘的状态控制信息是否均包含休眠指令,
在所述全部逻辑磁盘的状态控制信息中均包含休眠指令时,向所述磁盘阵列组52发送休眠命令,
在所述全部逻辑磁盘的状态控制信息中包含至少一个结束休眠指令时,向所述磁盘阵列组52发送结束休眠命令;
所述指令寄存器512,用于记录所述全部逻辑磁盘的状态控制信息。
阵列控制器中的存储设备状态控制装置可通过将所述从多个主机处获取的状态控制信息保存入指令寄存器,以方便对这些信息进行统计和管理,使阵列控制器能够更加方便的控制磁盘阵列组进入休眠状态。
本领域技术人员可以理解,上述装置实施例中的模块既可以是硬件也可以是软件;既可以是互相独立的模块,也可以互相拆分或合并以实现与各模块相同的功能。
综上所述,本发明实施例提供一种控制存储设备状态的方法、装置及存储设备,通过获取存储设备中逻辑磁盘的状态控制信息;判断所述存储设备中全部逻辑磁盘的状态控制信息是否均包含休眠指令;当所述全部逻辑磁盘的状态控制信息均包含休眠指令时,控制所述存储设备进入休眠状态。。通过上述技术方案可以对存储设备的状态进行有效控制,克服了存储设备自动进入休眠状态给读写操作造成的不便,在方便使用的同时节省存储设备功耗;同时本实施例可以在指令寄存器中保存全部主机提供的状态控制信息,以便后续通过读取这些信息对存储设备进行控制;本实施例还可通过比较所述全部逻辑磁盘的状态控制信息中包含的所有休眠指令,得到所述所有休眠指令中的最低休眠等级,使所述存储设备进入与所述最低休眠等级相应的休眠状态,以保证所有主机的工作需求;同时本实施例公开了使存储设备结束休眠的过程和相关硬件,当存在一个或多个主机需要存储设备结束休眠时,使存储设备停止休眠,以便满足相应主机的工作需要;本发明实施例还提供了一种存储设备,其通过与主机相连,接收主机提供的状态控制信息,可根据需要进入休眠状态,在满足主机工作需要的同时节省了功耗。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的内容可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。