CN115756619A - 硬盘启动方法、装置、设备、介质及程序产品 - Google Patents
硬盘启动方法、装置、设备、介质及程序产品 Download PDFInfo
- Publication number
- CN115756619A CN115756619A CN202211501958.XA CN202211501958A CN115756619A CN 115756619 A CN115756619 A CN 115756619A CN 202211501958 A CN202211501958 A CN 202211501958A CN 115756619 A CN115756619 A CN 115756619A
- Authority
- CN
- China
- Prior art keywords
- hard disk
- hot
- plug
- starting
- hard disks
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本申请提供一种硬盘启动方法、装置、设备、介质及程序产品。存储设备包括管理模块和N个硬盘,N个硬盘划分为M个启动组,管理模块轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作,该方法应用于管理模块,包括:在轮询至第一启动组时,轮询第一启动组中硬盘的状态;第一启动组为M个启动组中的任一启动组;若轮询到处于上电完成态的硬盘,则确定N个硬盘中是否存在待上电的热插拔硬盘;待上电的热插拔硬盘处于空闲态;若存在待上电的热插拔硬盘,则使用待上电的热插拔硬盘替换该处于上电完成态的硬盘;针对第一启动组中待上电的热插拔硬盘执行上电操作。本申请的方法,缩短了热插拔硬盘的上电启动等待时间,提升了硬盘的上电启动效率。
Description
技术领域
本申请涉及存储领域技术,尤其涉及一种硬盘启动方法、装置、设备、介质及程序产品。
背景技术
随着大数据、云计算等技术的迅速发展,人们对数据存储的需求日益增大,用于提供数据存储服务的存储系统的规模也日益扩大。
存储系统主要包括服务器和存储设备,其中,存储设备包括大量的硬盘。硬盘上电时的峰值功率比硬盘正常运行时的功率高(例如高近一倍)。而给存储设备供电的电源的峰值功率是一定的,难以供给存储设备中所有硬盘同时上电。为保证所有硬盘能够上电成功,普遍采用硬盘交错启动上电的方式,即给硬盘分批次上电,以降低硬盘上电时所需的峰值功率。同时,为了提高存储系统对灾难的及时恢复能力、扩展性和灵活性,存储设备多支持硬盘热插拔,以在不关闭电源的情况下更换损坏的硬盘。
但目前采用的硬盘交错启动的方法存在热插拔的硬盘上电启动慢的问题。
发明内容
本申请提供一种硬盘启动方法、装置、设备、介质及程序产品,用以解决热插拔硬盘上电启动慢的问题。
第一方面,本申请提供一种一种硬盘启动方法,存储设备包括管理模块和N个硬盘,所述N个硬盘划分为M个启动组,N>M≥2,所述管理模块轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作,所述方法应用于所述管理模块,该方法包括:
在轮询至第一启动组时,轮询所述第一启动组中硬盘的状态;所述第一启动组为所述M个启动组中的任一启动组;
若轮询到处于上电完成态的硬盘,则确定所述N个硬盘中是否存在待上电的热插拔硬盘;所述待上电的热插拔硬盘处于空闲态;
若存在待上电的热插拔硬盘,则使用待上电的热插拔硬盘替换该处于上电完成态的硬盘;
针对所述第一启动组中待上电的热插拔硬盘执行上电操作。
可选的,所述确定所述N个硬盘中是否存在待上电的热插拔硬盘,包括:
查询热插拔队列中是否记录有待上电的热插拔硬盘;
所述使用所述待上电的热插拔硬盘替换所述第一启动组中处于上电完成态的硬盘,包括:
使用所述热插拔队列中排序第一的待上电的热插拔硬盘替换所述第一启动组中一个处于上电完成态的硬盘,并在所述热插拔队列中删除该热插拔硬盘。
可选的,所述针对所述第一启动组中待上电的热插拔硬盘执行上电操作之前,该方法还包括:
在轮询完所述第一启动组中所有硬盘的状态之后,检测所述第一启动组中处于非上电完成态的硬盘的数量是否达到所述第一启动组对应的最大硬盘启动数量;
若小于所述最大硬盘启动数量,则继续使用所述热插拔队列中排序第一的待上电的热插拔硬盘替换所述第一启动组中一个处于上电完成态的硬盘,直至所述第一启动组中处于非上电完成态的硬盘的数量达到所述最大硬盘启动数量,或者,所述热插拔队列中无待上电的热插拔硬盘。
可选的,该方法还包括:
检测是否发生硬盘热插拔事件;
若发生硬盘热插拔事件,且所述事件表征硬盘插入,则在所述热插拔队列中记录该硬盘的标识。
可选的,所述检测是否发生硬盘热插拔事件之后,该方法还包括:
若发生硬盘热插拔事件,且所述事件表征硬盘拔出,则确定所述热插拔队列中是否存在该硬盘的标识;
可选的,所述检测是否发生硬盘热插拔事件,包括:
读取用于表征各硬盘对应的寄存器的值,所述寄存器的值用于表征对应的硬盘是否在位;
根据各硬盘对应的寄存器的值,确定是否发生硬盘热插拔事件。
第二方面,本申请提供一种硬盘启动装置,存储设备包括管理模块和N个硬盘,所述N个硬盘划分为M个启动组,N>M≥2,所述管理模块轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作,所述装置应用于所述管理模块,该装置包括:
轮询模块,在轮询至第一启动组时,轮询所述第一启动组中硬盘的状态;所述第一启动组为所述M个启动组中的任一启动组;
确定模块,用于若轮询到处于上电完成态的硬盘,则确定所述N个硬盘中是否存在待上电的热插拔硬盘;所述待上电的热插拔硬盘处于空闲态;
替换模块,用于若存在待上电的热插拔硬盘,则使用待上电的热插拔硬盘替换该处于上电完成态的硬盘;
上电模块,用于针对所述第一启动组中待上电的热插拔硬盘执行上电操作。
第三方面,本申请提供一种存储设备,包括:管理模块,N个硬盘,以及与所述管理模块通信连接的存储器;所述N个硬盘划分为M个启动组,N>M≥2;
所述存储器存储计算机执行指令;
所述管理模块执行所述存储器存储的计算机执行指令,以实现如第一方面中任一项所述的硬盘启动方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被管理模块执行时用于实现如第一方面中任一项所述的硬盘启动方法。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被所述管理模块执行时实现如第一方面中任一项所述的硬盘启动方法。
第六方面,本申请提供一种芯片,所述芯片上存储有计算机程序,所述计算机程序被所述芯片执行时,实现如第一方面任一项所述的方法。
本申请提供的硬盘启动方法、装置、设备、介质及程序产品,在对存储设备采用控制每次硬盘的启动数量的算法进行硬盘的上电启动时,即轮询存储设备的M个启动组的硬盘以对处于空闲态的硬盘执行上电操作时,在轮询到M个启动组中的任一启动组时,通过轮询该启动组中硬盘的状态是否为上电完成态,以及,N个硬盘中是否存在待上电的热插拔硬盘,使用待上电的热插拔硬盘替换该启动组中处于上电完成态的硬盘,即,将待上电的热插拔硬盘加入到当前轮询的启动组中,可以避免热插拔硬盘需要等待轮询而上电启动慢的问题,缩短热插拔硬盘的上电启动等待时间,提升硬盘的上电启动效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为一种存储系统的可能的系统架构示意图;
图2为本申请实施例提供的一种硬盘启动方法的流程示意图;
图3为本申请实施例提供的另一种硬盘启动方法的流程示意图;
图4为本申请实施例提供的一种硬盘启动装置的结构示意图;
图5为本申请提供的一种存储设备500结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1为一种存储系统的可能的系统架构示意图。如图1所示,该存储系统包括服务器和至少一个存储设备。图1是以一个存储设备为例的示意图。
上述服务器,用于实现前端设备和存储设备的数据交互。
上述存储设备,包括存储机柜、大量的硬盘和管理模块。硬盘和管理模块均设置在存储机柜上。其中,硬盘用于存储数据。管理模块用于管理该存储设备。例如,对硬盘进行的上电启动管理。该管理模块可以是一管理芯片(例如处理器芯片),也可以是集成有处理组件和存储组件的模块,其中,处理组件用于执行管理功能,存储组件用于存储实现管理功能所需的程序和/或指令等。
上述硬盘例如可以是支持串行连接小型计算机系统接口(Serial AttachedSmall Computer System Interface,简称SAS,其中,Small Computer System Interface为小型计算机系统接口,简称SCSI)3.0协议的硬盘和/或串行连接先进技术附件(SerialAttached Advanced Technology Attachment,简称SATA,其中,Advanced TechnologyAttachment为先进技术附件,简称ATA)硬盘。同一存储设备中的硬盘可以是相同类型的硬盘,也可以是不同类型的硬盘。例如,存储设备中既包括SAS3.0协议的硬盘也包括SATA硬盘。
需说明,上述服务器和存储设备之间的数据通信可参考现有通信技术。
硬盘的状态包括上电完成态(Ready)、正在上电态(Spinning)和空闲态(Idle)三种状态。若管理模块判断读取到的硬盘的状态为空闲态,即认为该硬盘为待上电的硬盘。
为了提高存储系统对灾难的及时恢复能力、扩展性和灵活性,存储设备多支持硬盘热插拔。硬盘热插拔是指允许用户在不关闭系统、不切断电源的情况下取出和更换损坏的硬盘。
目前,针对SAS3.0协议的硬盘和SATA硬盘,普遍采用控制每次硬盘的启动数量的算法(Default Spin-up Group)进行硬盘的上电启动。
以存储设备包括N个硬盘为例,控制每次硬盘的启动数量的算法是预先将存储设备包括的N个硬盘进行编号,并按照硬盘编号将N个硬盘划分为M个启动组,N>M≥2。
其中,上述启动组用于存放待上电的硬盘。根据硬盘编号,每个硬盘映射到上述M个启动组中的某一个启动组,该映射关系不会发生改变,即每个硬盘属于固定的某个启动组。需说明,上述M个启动组中不同启动组包含的硬盘数量可以相同,也可以不同,但每个启动组包含的硬盘数量是固定的。
预设组间隔时间,用于间隔不同启动组的轮询,即,管理模块轮询完任一启动组后,需等待上述组间隔时间后,才能轮询下一启动组。
管理模块按照组间隔时间通过轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作。具体地:
针对一个启动组中的所有硬盘,管理模块轮询每个硬盘的状态,若管理模块判断读取到的硬盘的状态是空闲态,即认为是待上电的硬盘,则对该硬盘进行上电启动;若是非空闲态,即该硬盘是上电完成态或者正在上电态,则继轮询下一个硬盘,直至该组所有硬盘轮询完成,等待组间隔时间轮询下一启动组。
若发生硬盘热插拔的事件,热插拔的硬盘会添加到该硬盘编号对应的启动组中,等待轮询到该启动组后,该热插拔的硬盘进行上电启动。本申请实施例中将发生过热插拔的硬盘简称为热插拔硬盘。
上述控制每次硬盘的启动数量的算法支持SAS3.0协议的硬盘和SATA硬盘,但该算法存在热插拔硬盘重新上电较慢的问题。
示例性地,假设一个存储设备有60个硬盘,每组6个划分为10个启动组,每组间隔启动时间为2s,一个硬盘从开始上电到上电完成需要的时间为25-30s。那么,使用上述控制每次硬盘的启动数量的算法,热插拔硬盘上电完成所需最差的总时间为(60/6)*2+30=50s。此时的情况为:热插拔硬盘属于上述M个启动组中任一启动组,例如,第一启动组,并且,此时恰好刚结束该启动组的轮询,则需要等到再次轮询到该启动组时才能对该热插拔的硬盘进行上电,导致该算法存在热插拔硬盘重新上电较慢的问题。
有鉴于此,本申请提供了一种硬盘启动方法,通过将热插拔硬盘加入到当前轮询的启动组的方式,以解决前述热插拔硬盘上电启动慢的问题,进而提高硬盘上电启动效率。
本申请所提供的硬盘启动方法的执行主体可以是存储设备的管理模块,该管理模块可以通过存储设备上存储的程序、程序代码软件实现本申请实施例的方法,也可以通过存储有相关执行代码的介质实现本申请实施例的方法,例如,U盘等。
下面以存储设备包括N个硬盘、该N个硬盘划分为M个启动组,N>M≥2为例,结合具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的一种硬盘启动方法的流程示意图。在采用控制每次硬盘的启动数量的算法进行硬盘的上电启动时,即轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作时,在轮询到M个启动组中的任一启动组(简称第一启动组)时,可以执行如下操作:
如图2所示,该方法可以包括如下步骤:
S201、轮询该第一启动组中硬盘的状态。
应理解,上述第一启动组中的第一仅是表征M个启动组中的任一启动组,并非表征M个启动组中的排序顺序。
一种可能的实现方式,管理模块可以按照第一启动组中各硬盘的排序,从第一个硬盘开始依次轮询,若确定某一个硬盘是处于上电完成态的硬盘,则执行步骤S202-S203。
示例性的,管理模块可以先查询第一个硬盘的状态,若第一个硬盘的状态为正在上电态或空闲态,则管理模块查询第二个硬盘的状态,若第二个硬盘的状态处于上电完成态,则针对第二个硬盘执行后续步骤S202-S203。执行完后续步骤S202-S203之后,管理模块继续查询下一个硬盘的状态,直至轮询到该启动组的最后一个硬盘。
S202、确定上述N个硬盘中是否存在待上电的热插拔硬盘。
上述待上电的热插拔硬盘是指上述N个硬盘中的某一硬盘在上电启动完成后被拔掉再次被重新插入,此时该硬盘的状态为空闲态,即为待上电的热插拔硬盘。
若经过下述方式确定上述N个硬盘中存在待上电的热插拔硬盘,则执行步骤S203;若经过上述方式确定上述N个硬盘中不存在待上电的热插拔硬盘,则继续轮询下一个硬盘,即返回执行步骤S201。
一种可能的实现方式,存储设备的管理模块中包括用于表征各硬盘是否在位的对应的寄存器,若硬盘插入其固定位置,该寄存器的数值为第一值;若硬盘被拔出,该寄存器的数值为非第一值,示例性地,该第一值可以是1。因此,管理模块可以通过读取该寄存器的数值是否发生变化,可以判断该硬盘是否为热插拔硬盘。
另一种可能的实现方式,前述存储设备的管理模块中包括用于表征各硬盘是否经历热插拔的对应的寄存器,若硬盘经历了热插拔插入,该寄存器的数值设置为第二值;若硬盘未经历热插拔插入,该寄存器的数值设置为非第二值,示例性地,该第二值可以是1。管理模块通过读取该寄存器的数值,可以检测该硬盘是否经历热插拔插入。
在采用前述所说的任一方式确定该硬盘是热插拔硬盘后,管理模块读取并判断该硬盘的状态是否为空闲态,若是,则确定该硬盘是待上电的热插拔硬盘;若不是,则确定该硬盘不是待上电的热插拔硬盘。
应理解,可以通过检测是否发生硬盘热插拔事件来改变上述所说的寄存器的值。该检测是否发生硬盘热插拔事件,以及,改变上述所说的寄存器的值的动作可以是由存储设备的管理模块执行,也可以是存储设备中的其他控制模块执行,具体与存储设备的配置有关。需说明,检测是否发生硬盘热插拔事件,以及,改变上述所说的寄存器的值的动作与本实施例的动作可以是异步执行的动作。
以存储设备的管理模块中包括用于表征各硬盘是否在位的对应的寄存器、执行主体为管理模块为例,若硬盘插入其固定位置,管理模块将该寄存器的数值设置为第一值;若硬盘被拔出,管理模块将该寄存器的数值设置为非第一值,示例性地,该第一值可以是1。
需说明,上述寄存器可以位于前述管理模块中的管理芯片上,也可以位于前述管理模块的处理组件上,具体位置由管理模块的设置决定。
另一种可能的实现方式,可以预设一个队列,用于按照热插拔的先后顺序记录发生热插拔、且待上电的硬盘,该队列可以简称为热插拔队列。因此,管理模块可以通过判断上述热插拔队列中有无记录热插拔硬盘,即可确定是否存在待上电的热插拔硬盘。即,若热插拔该队列中记录有热插拔硬盘,则确定存在待上电的热插拔硬盘;若该热插拔队列中无记录的任何热插拔硬盘,则确定不存在待上电的热插拔硬盘。
应理解,可以通过检测上述所说的寄存器的值的变化,将待上电的热插拔硬盘添加至热插拔队列中。该检测上述所说的寄存器的值的变化,以及,将待上电的热插拔硬盘添加至热插拔队列中的动作可以是由存储设备的管理模块执行,也可以是存储设备中的其他控制模块执行,具体与存储设备的配置有关。需说明,该检测上述所说的寄存器的值的变化,以及,将待上电的热插拔硬盘添加至热插拔队列中的动作与本实施例的动作可以是异步执行的动作。
以执行主体为管理模块为例,管理模块通过检测上述所说的寄存器的值的变化确定某个硬盘发生热插拔时,可以将发生热插拔的硬盘记录至热插拔队列中。例如,热插拔队列可以通过记录该热插拔硬盘的标识的方式,记录该热插拔硬盘。例如,硬盘的接口编号和/或硬盘所插槽位的槽位号。
S203、使用待上电的热插拔硬盘替换该处于上电完成态的硬盘。
若待上电的热插拔硬盘仅有一个,则利用该待上电的热插拔硬盘替换该处于上电完成态的硬盘。若待上电的热插拔硬盘有多个,则按照各待上电的热插拔硬盘的热插拔顺序,选取排序第一的待上电的热插拔硬盘进行替换。
应理解,当使用热插拔队列的方式确定是否存在待上电的热插拔硬盘时,在确定存在待上电的热插拔硬盘时,由于热插拔队列是按照热插拔的先后顺序记录发生热插拔、且待上电的硬盘,因此,可以将热插拔队列中排序第一的待上电的热插拔硬盘替换该第一启动组中一个处于上电完成态的硬盘,并在上述热插拔队列中删除该热插拔硬盘。通过该方式,可以优先确保发生热插拔越早的硬盘越早启动。另外,也可以确保热插拔队列中记录的热插拔硬盘的准确性。
应理解,上述是以轮询到一个上电完成态的硬盘,就采用热插拔硬盘替换该上电完成态的硬盘的方式进行了描述。具体实现时,也可以将第一启动组中所有的硬盘轮询完毕之后,得到该第一启动组中全部处于上电完成态的硬盘之后,使用热插拔硬盘替换。
S204、针对该第一启动组中待上电的热插拔硬盘执行上电操作。
在采用前述的方式,轮询完第一启动组中所有的硬盘之后,针对第一启动组中采用前述替换的方式新加入第一启动组的热插拔硬盘,可以执行上电操作。关于如何执行上电操作,可以参见现有技术的实现方式。
应理解,上述采用前述替换的方式新加入第一启动组的热插拔硬盘可以是临时替换至第一启动组的,在热插拔硬盘借用第一启动组完成上电之后,第一启动组所包括的硬盘还是替换前原有的硬盘。
本申请提供的硬盘启动方法,在采用控制每次硬盘的启动数量的算法进行硬盘的上电启动时,即轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作时,在轮询到M个启动组中的任一启动组时,通过轮询该启动组中硬盘的状态是否为上电完成态,以及,N个硬盘中是否存在待上电的热插拔硬盘,使用待上电的热插拔硬盘替换该启动组中处于上电完成态的硬盘,即,将待上电的热插拔硬盘加入到当前轮询的启动组中,可以避免前述热插拔硬盘需要等待轮询而上电启动慢的问题,缩短热插拔硬盘的上电启动等待时间,提升硬盘的上电启动效率。
图3为本申请实施例提供的另一种硬盘启动方法的流程示意图。下面以如何通过热插拔队列进行热插拔硬盘替换进行描述。如图3所示,该方法可以包括如下步骤:
S301、确定该第一启动组中第i个硬盘的状态是否处于上电完成态。
在首次执行该流程时,i等于1。
若该第i个硬盘的状态为上电完成态,则执行步骤S302;若第i个硬盘的状态不是上电完成态(例如是空闲态,或者,正在上电态),则执行步骤S304。
S302、查询热插拔队列中是否记录有待上电的热插拔硬盘。
若上述热插拔队列中记录有待上电的热插拔硬盘,继续执行步骤S303;若上述热插拔队列中未记录有待上电的热插拔硬盘,继续执行步骤S304。
S303、使用上述热插拔队列中排序第一的待上电的热插拔硬盘替换该第一启动组中处于上电完成态的硬盘,并在上述热插拔队列中删除该热插拔硬盘。
S304、确定第i个硬盘是否为第一启动组的最后一个硬盘。
若是,则执行步骤S306,若否,则执行步骤S305。
S305、将i加1。
执行完步骤S305之后,返回执行步骤S301。
S306、检测该第一启动组中处于非上电完成态的硬盘的数量是否达到该第一启动组对应的最大硬盘启动数量。
上述非上电完成态的硬盘包括空闲态的硬盘、正在上电态的硬盘和待上电的热插拔硬盘。
若未达到上述最大硬盘启动数量,则执行步骤S307。若达到上述最大硬盘启动数量,则执行步骤S309。
S307、查询热插拔队列中是否记录有待上电的热插拔硬盘。
若上述热插拔队列中记录有待上电的热插拔硬盘,则执行步骤S308;若上述热插拔队列中未记录有待上电的热插拔硬盘,则执行步骤S309。
S308、使用上述热插拔队列中排序第一的待上电的热插拔硬盘替换该第一启动组中一个处于上电完成态的硬盘,并在上述热插拔队列中删除该热插拔硬盘。
执行完步骤S308之后,返回执行步骤S306。
通过检测该第一启动组中处于非上电完成态的硬盘的数量是否达到该第一启动组对应的最大硬盘启动数量,以及,在数量未达到最大硬盘启动数量时,可以再次查询热插拔队列,以尽可能将更多的热插拔硬盘替换进来,从而能够进一步提高热插拔硬盘的上电启动效率。
S309、针对该第一启动组中待上电的热插拔硬盘执行上电操作。
执行完步骤S309之后,等待组间隔时间轮询下一个启动组。
示例性地,利用本申请的硬盘启动方法,如前述所说60个硬盘的情况,若发生硬盘热插拔事件,则热插拔硬盘可以直接插入到当前启动组中,热插拔硬盘上电启动时间直接等于硬盘本身的上电启动时间30s,极大缩短了热插拔硬盘上电的等待时间。
本申请提供的硬盘启动方法,在采用控制每次硬盘的启动数量的算法进行硬盘的上电启动时,即轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作时,在轮询到M个启动组中的任一启动组时,若轮询到启动组中的硬盘的状态上电完成态时,则用热插拔队列中排序第一的热插拔硬盘替换该上电完成态的硬盘。使用热插拔队列中的热插拔硬盘进行替换,可以更迅速、准确地判断硬盘热插拔事件,并且,本申请的方法,在不超出启动组最大硬盘启动数量的前提下,能够使更多的热插拔硬盘尽快上电,极大缩短了热插拔硬盘等待上电启动的时间,提高硬盘上电启动效率。
图4为本申请实施例提供的一种硬盘启动装置的结构示意图。存储设备包括管理模块和N个硬盘,该N个硬盘划分为M个启动组,N>M≥2,该管理模块轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作,该装置应用于上述管理模块,如图4所示,该装置包括:轮询模块11,确定模块12,替换模块13,上电模块14。可选地,该装置,还可以包括检测模块15。
轮询模块11,在轮询至第一启动组时,轮询所述第一启动组中硬盘的状态;所述第一启动组为所述M个启动组中的任一启动组;
确定模块12,用于若轮询到处于上电完成态的硬盘,则确定所述N个硬盘中是否存在待上电的热插拔硬盘;所述待上电的热插拔硬盘处于空闲态;
替换模块13,用于若存在待上电的热插拔硬盘,则使用待上电的热插拔硬盘替换该处于上电完成态的硬盘;
上电模块14,用于针对所述第一启动组中待上电的热插拔硬盘执行上电操作。
一种可能的实现方式,上述确定模块12,用于查询热插拔队列中是否记录有待上电的热插拔硬盘;上述替换模块13,具体用于使用所述热插拔队列中排序第一的待上电的热插拔硬盘替换所述第一启动组中一个处于上电完成态的硬盘,并在所述热插拔队列中删除该热插拔硬盘。
一种可能的实现方式,检测模块15,用于在上述上电模块14针对所述第一启动组中待上电的热插拔硬盘执行上电操作之前,在轮询完所述第一启动组中所有硬盘的状态之后,检测所述第一启动组中处于非上电完成态的硬盘的数量是否达到所述第一启动组对应的最大硬盘启动数量;若小于所述最大硬盘启动数量,则继续使用所述热插拔队列中排序第一的待上电的热插拔硬盘替换所述第一启动组中一个处于上电完成态的硬盘,直至所述第一启动组中处于非上电完成态的硬盘的数量达到所述最大硬盘启动数量,或者,所述热插拔队列中无待上电的热插拔硬盘。
一种可能的实现方式,上述确定模块12,具体用于检测是否发生硬盘热插拔事件;若发生硬盘热插拔事件,且所述事件表征硬盘插入,则在所述热插拔队列中记录该硬盘的标识。若发生硬盘热插拔事件,且所述事件表征硬盘拔出,则确定所述热插拔队列中是否存在该硬盘的标识;若存在该硬盘的标识,则在所述热插拔队列中删除该硬盘的标识。
示例性地,上述确定模块12,具体用于读取用于表征各硬盘对应的寄存器的值,所述寄存器的值用于表征对应的硬盘是否在位;根据各硬盘对应的寄存器的值,确定是否发生硬盘热插拔事件。
本申请提供的硬盘启动装置,可以执行上述方法实施例中的硬盘启动方法,其实现原理和技术效果类似,在此不再赘述。
图5为本申请提供的一种存储设备500结构示意图。如图5所示,该存储设备500可以包括:管理模块501、存储器502和N个硬盘503。图5是以N为3为例的示意图。
存储器502,用于存储程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器502可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
管理模块501,用于执行存储器502存储的计算机执行指令,以实现前述方法实施例所描述的硬盘启动方法。其中,管理模块501可能是一个中央处理器(CentralProcessing Unit,简称为CPU),或者是集成有处理组件和存储组件的模块,其中,处理组件用于执行管理功能,存储组件用于存储实现管理功能所需的程序和/或指令等。
该存储设备500还可以包括通信接口504,以通过通信接口504可以与外部设备进行通信交互。外部设备例如可以是服务器。
在具体实现上,如果通信接口504、N个硬盘503、存储器502和管理模块501独立实现,则通信接口504、N个硬盘503、存储器502和管理模块501可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口503、存储器502和管理模块501集成在一块芯片上实现,N个硬盘503独立实现,则通信接口504、存储器502和管理模块501可以通过内部接口完成通信,该芯片和N个硬盘503之间可以通过上述总线相互连接并完成相互间的通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本申请还提供一种计算机程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。存储设备500的管理模块可以从可读存储介质读取该执行指令,管理模块执行该执行指令使得存储设备500实施上述的各种实施方式提供的硬盘启动方法。
本申请还提供一种芯片,所述芯片上存储有计算机程序,所述计算机程序被所述芯片执行时,实现各种实施方式提供的硬盘启动方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种硬盘启动方法,其特征在于,存储设备包括管理模块和N个硬盘,所述N个硬盘划分为M个启动组,N>M≥2,所述管理模块轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作,所述方法应用于所述管理模块,所述方法包括:
在轮询至第一启动组时,轮询所述第一启动组中硬盘的状态;所述第一启动组为所述M个启动组中的任一启动组;
若轮询到处于上电完成态的硬盘,则确定所述N个硬盘中是否存在待上电的热插拔硬盘;所述待上电的热插拔硬盘处于空闲态;
若存在待上电的热插拔硬盘,则使用待上电的热插拔硬盘替换该处于上电完成态的硬盘;
针对所述第一启动组中待上电的热插拔硬盘执行上电操作。
2.根据权利要求1所述的方法,其特征在于,所述确定所述N个硬盘中是否存在待上电的热插拔硬盘,包括:
查询热插拔队列中是否记录有待上电的热插拔硬盘;
所述使用所述待上电的热插拔硬盘替换所述第一启动组中处于上电完成态的硬盘,包括:
使用所述热插拔队列中排序第一的待上电的热插拔硬盘替换所述第一启动组中一个处于上电完成态的硬盘,并在所述热插拔队列中删除该热插拔硬盘。
3.根据权利要求2所述的方法,其特征在于,所述针对所述第一启动组中待上电的热插拔硬盘执行上电操作之前,所述方法还包括:
在轮询完所述第一启动组中所有硬盘的状态之后,检测所述第一启动组中处于非上电完成态的硬盘的数量是否达到所述第一启动组对应的最大硬盘启动数量;
若小于所述最大硬盘启动数量,则继续使用所述热插拔队列中排序第一的待上电的热插拔硬盘替换所述第一启动组中一个处于上电完成态的硬盘,直至所述第一启动组中处于非上电完成态的硬盘的数量达到所述最大硬盘启动数量,或者,所述热插拔队列中无待上电的热插拔硬盘。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
检测是否发生硬盘热插拔事件;
若发生硬盘热插拔事件,且所述事件表征硬盘插入,则在所述热插拔队列中记录该硬盘的标识。
5.根据权利要求4所述的方法,其特征在于,所述检测是否发生硬盘热插拔事件之后,所述方法还包括:
若发生硬盘热插拔事件,且所述事件表征硬盘拔出,则确定所述热插拔队列中是否存在该硬盘的标识;
若存在该硬盘的标识,则在所述热插拔队列中删除该硬盘的标识。
6.根据权利要求4所述的方法,其特征在于,所述检测是否发生硬盘热插拔事件,包括:
读取用于表征各硬盘对应的寄存器的值,所述寄存器的值用于表征对应的硬盘是否在位;
根据各硬盘对应的寄存器的值,确定是否发生硬盘热插拔事件。
7.一种硬盘启动装置,其特征在于,存储设备包括管理模块和N个硬盘,所述N个硬盘划分为M个启动组,N>M≥2,所述管理模块轮询M个启动组的硬盘以对处于空闲态的硬盘执行上电操作,所述装置应用于所述管理模块,所述装置包括:
轮询模块,在轮询至第一启动组时,轮询所述第一启动组中硬盘的状态;所述第一启动组为所述M个启动组中的任一启动组;
确定模块,用于若轮询到处于上电完成态的硬盘,则确定所述N个硬盘中是否存在待上电的热插拔硬盘;所述待上电的热插拔硬盘处于空闲态;
替换模块,用于若存在待上电的热插拔硬盘,则使用待上电的热插拔硬盘替换该处于上电完成态的硬盘;
上电模块,用于针对所述第一启动组中待上电的热插拔硬盘执行上电操作。
8.一种存储设备,其特征在于,所述存储设备包括:管理模块,N个硬盘,以及与所述管理模块通信连接的存储器;所述N个硬盘划分为M个启动组,N>M≥2;
所述存储器存储计算机执行指令;
所述管理模块执行所述存储器存储的计算机执行指令,以实现如权利要求1至6中任一项所述的硬盘启动方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被管理模块执行时用于实现如权利要求1至6中任一项所述的硬盘启动方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被管理模块执行时实现如权利要求1至6任一项所述的硬盘启动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211501958.XA CN115756619A (zh) | 2022-11-28 | 2022-11-28 | 硬盘启动方法、装置、设备、介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211501958.XA CN115756619A (zh) | 2022-11-28 | 2022-11-28 | 硬盘启动方法、装置、设备、介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756619A true CN115756619A (zh) | 2023-03-07 |
Family
ID=85339369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211501958.XA Pending CN115756619A (zh) | 2022-11-28 | 2022-11-28 | 硬盘启动方法、装置、设备、介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756619A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302844A (zh) * | 2023-05-16 | 2023-06-23 | 苏州浪潮智能科技有限公司 | 硬盘信息的采集方法、装置、计算机设备及存储介质 |
-
2022
- 2022-11-28 CN CN202211501958.XA patent/CN115756619A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302844A (zh) * | 2023-05-16 | 2023-06-23 | 苏州浪潮智能科技有限公司 | 硬盘信息的采集方法、装置、计算机设备及存储介质 |
CN116302844B (zh) * | 2023-05-16 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 硬盘信息的采集方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2046356C (en) | Method and apparatus for improved initialization of computer system features | |
US8296521B2 (en) | Method of configuring non-volatile memory for a hybrid disk drive | |
US8424016B2 (en) | Techniques to manage critical region interrupts | |
CN110718264A (zh) | 测试固态硬盘信息的方法、装置、计算机设备及存储介质 | |
RU2667033C2 (ru) | Системы и способы для обнаружения хостом возможности асинхронного уведомления usb | |
KR101260066B1 (ko) | 직렬 및 병렬 인터페이스들을 포함하는 컴퓨터 시스템 | |
CN112463689B (zh) | 一种ocp卡热插拔装置、方法及计算机可读存储介质 | |
JP2012508932A (ja) | キャッシュデータおよびメタデータを管理すること | |
US8677084B2 (en) | Method of configuring non-volatile memory for a hybrid disk drive | |
CN102479121A (zh) | 独立磁盘冗余阵列实现及测试方法 | |
US8180930B2 (en) | Information processing device, and device initialization method in the information processing device | |
CN115756619A (zh) | 硬盘启动方法、装置、设备、介质及程序产品 | |
US6473655B1 (en) | Data processing system and method for creating a virtual partition within an existing partition in a hard disk drive | |
CN101299189A (zh) | 自启动多操作系统之一的dos的方法 | |
CN109086081B (zh) | 一种即时提示SATA和NVMe设备在位变化的方法、系统及介质 | |
CN102902550A (zh) | 计算机系统及其操作系统载入方法 | |
CN108228109B (zh) | 一种电子设备的保护数据方法、装置及计算机存储介质 | |
WO2024077847A1 (zh) | 一种服务器数据擦除方法、装置、设备及可读存储介质 | |
CN110515771A (zh) | 一种对象存储设备设置方法、系统、设备及计算机介质 | |
CN115794232A (zh) | 一种vpd获取方法、装置、设备及计算机可读存储介质 | |
US20060155888A1 (en) | Request conversion | |
CN101739262A (zh) | 固件更新方法及应用其的电子装置 | |
CN111158733A (zh) | 一种bmc升级方法、装置、设备及计算机可读存储介质 | |
US20240143474A1 (en) | System and method for dynamic sensors support in ipmi stack | |
CN106933558A (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 |