一种存储设备的固件升级方法和存储设备与流程

文档序号:11519382阅读:289来源:国知局
一种存储设备的固件升级方法和存储设备与流程

本申请涉及计算机技术,尤其涉及一种存储设备的固件升级方法和存储设备。



背景技术:

在存储设备的开发阶段,为保证存储设备的硬件模块与存储系统软件协同工作,通常会为存储设备上的各个硬件模块设计专用固件。相应地,当存储设备上的某个硬件模块的专用固件在存储设备使用的过程中出现漏洞或需要增加新的功能需求时,就需要对该硬件模块的固件进行升级。

目前,对于设置在存储设备的存储控制器单元(storageprocessorunit,简称spu)内的硬件模块来说,由于spu可通过设置在spu上的管理网口与管理计算机(personcomputer,简称pc)连接,因此,可通过管理pc直接登录设置在spu上的存储控制器模块(storageprocessor,简称sp),以对设置在spu内的硬件模块的固件进行升级。然而,对于设置在存储设备的磁盘柜单元(diskshelfunit,简称dsu)内的硬件模块来说,由于管理pc与dsu不能通过网络连接,因此,在需要对设置在dsu内的硬件模块的固件进行升级时,管理pc需要通过串口线缆与设置在dsp内的磁盘柜控制模块(expanderprocessor,简称ep)连接(ep上设置有串口,管理pc可通过串口线缆与ep上的串口连接),以对设置在dsu内的硬件模块的固件进行升级。

但是,当通过上述方法对设置在dsu内的硬件模块的固件进行升级时,由于管理pc需要通过串口线缆将固件升级文件传输给ep,而串口线缆在传输数据的过程中容易受到其他硬件模块的干扰,这样,当通过上述方法对设置在dsu内的硬件模块的固件进行升级时,存在因干扰导致传输信号不稳定、升级过程中出错概率大的问题。



技术实现要素:

本申请提供一种存储设备的固件升级方法和存储设备,以解决现有技术中的固件升级方法对设置在dsu内的硬件模块的固件进行升级时,存在的因干扰导致传输信号不稳定、升级过程中出错概率大的问题。

本申请第一方面提供一种存储设备的固件升级方法,所述存储设备包括存储控制单元spu和至少一个磁盘柜单元dsu,所述spu内设置有存储控制器模块sp,每个所述dsu内设置有磁盘柜控制模块ep,所述sp与所述ep连接,所述方法包括:

所述sp接收用户输入的固件升级命令,所述固件升级命令携带待进行固件升级的硬件模块的标识信息、目标升级文件的标识信息和所述目标升级文件的地址信息,其中,所述待进行固件升级的硬件模块为设置在dsu内的硬件模块;

所述sp根据所述目标升级文件的标识信息和所述目标升级文件的地址信息获取所述目标升级文件;

所述sp将所述目标升级文件传输给与所述待进行固件升级的硬件模块对应的第一ep,所述第一ep为与所述待进行固件升级的硬件模块设置在同一个dsu内的ep;

所述第一ep在接收到所述目标升级文件后,根据所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级。

进一步地,所述目标升级文件携带的头文件信息包括预设的校验方法和校验值,所述第一ep在根据所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级之前,所述方法还包括:

所述第一ep根据所述预设的校验方法和校验值校验所述目标升级文件是否正确;

若校验正确,则所述第一ep向所述sp返回传输成功的响应信息,并根据所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级。

进一步地,所述第一ep在根据所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级之后,所述方法还包括:

所述第一ep判断固件升级过程是否完成;

若是,则所述第一ep记录升级结果,并发送广播消息,所述广播消息用于告知所述sp所述固件升级过程已经完成。

进一步地,所述sp在接收到所述广播消息之后,所述方法还包括:

所述sp向所述第一ep发送查询命令,以查询升级结果。

进一步地,所述待进行固件升级的硬件模块的存储介质包括至少两个存储区域,所述至少两个存储区域中的至少一个存储区域中存储有所述待进行固件升级的硬件模块的固件文件,所述至少两个存储区域中的其中一个存储区域中存储有激活信息,其中,所述激活信息携带区域标识信息,所述区域标识信息用于表征当前被激活的存储区域,所述第一ep根据所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级,具体包括:

所述第一ep根据所述激活信息中携带的区域标识信息,确定当前被激活的第一存储区域;

所述第一ep将固件升级程序的目标地址设定为第二存储区域对应的区域标识信息,其中,所述第二存储区域与所述第一存储区域不同;

所述第一ep启动所述固件升级程序,以通过所述固件升级程序和所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级,并在固件升级过程完成,且升级结果显示升级成功后,将所述激活信息携带的区域标识信息更新为所述第二存储区域对应的区域标识信息。

进一步地,在所述待进行固件升级的硬件模块成功进行固件升级之后,所述方法还包括:

所述sp接收用户输入的版本切换命令,并将所述版本切换命令传输给所述第一ep;所述版本切换命令用于指示所述第一ep更新所述激活信息携带的区域标识信息,使更新后的激活信息携带的区域标识信息与更新前的激活信息携带的区域标识信息不同,且所述更新后的激活信息携带的区域标识信息对应的存储区域中存储有固件文件;

所述第一ep根据所述版本切换命令更新所述激活信息,并在更新所述激活信息后,重启所述待进行固件升级的硬件模块,以使所述待进行固件升级的硬件模块在重启后,从所述更新后的激活信息携带的区域标识信息对应的存储区域获取固件文件开始运行。

本申请第二方面提供一种存储设备,包括存储控制单元spu和至少一个磁盘柜单元dsu,所述spu内设置有存储控制器模块sp,每个所述dsu内设置有磁盘柜控制模块ep,所述sp与所述ep连接,其中,

所述sp,用于接收用户输入的固件升级命令,所述固件升级命令携带待进行固件升级的硬件模块的标识信息、目标升级文件的标识信息和所述目标升级文件的地址信息,其中,所述待进行固件升级的硬件模块为设置在dsu内的硬件模块;

所述sp,还用于根据所述目标升级文件的标识信息和所述目标升级文件的地址信息获取所述目标升级文件;

所述sp,还用于将所述目标升级文件传输给与所述待进行固件升级的硬件模块对应的第一ep,其中,所述第一ep为与所述待进行固件升级的硬件模块设置在同一个dsu内的ep;

所述第一ep,用于在接收到所述目标升级文件后,根据所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级。

进一步地,所述目标升级文件携带的头文件信息包括预设的校验方法和校验值,所述第一ep,还具体用于根据所述预设的校验方法和校验值校验所述目标升级文件是否正确,并在校验正确时,向所述sp返回传输成功的响应信息,并根据所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级。

进一步地,所述第一ep,还用于判断固件升级过程是否完成,并在判断固件升级过程完成时,记录升级结果,并发送广播消息,其中,所述广播消息用于告知所述sp所述固件升级过程已经完成。

进一步地,所述sp,还用于在接收到所述广播消息之后,向所述第一ep发送查询命令,以查询升级结果。

进一步地,所述待进行固件升级的硬件模块的存储介质包括至少两个存储区域,所述至少两个存储区域中的至少一个存储区域中存储有所述待进行固件升级的硬件模块的固件文件,所述至少两个存储区域中的其中一个存储区域中存储有激活信息,其中,所述激活信息携带区域标识信息,所述区域标识信息用于表征当前被激活的存储区域,所述第一ep,还用于根据所述激活信息中携带的区域标识信息,确定当前被激活的第一存储区域;

所述第一ep,还用于将固件升级程序的目标地址设定为第二存储区域对应的区域标识信息,其中,所述第二存储区域与所述第一存储区域不同;

所述第一ep,还用于启动所述固件升级程序,以通过所述固件升级程序和所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级,并在固件升级过程完成,且升级结果显示升级成功后,将所述激活信息携带的区域标识信息更新为所述第二存储区域对应的区域标识信息。

进一步地,所述sp,还用于接收用户输入的版本切换命令,并将所述版本切换命令传输给所述第一ep;所述版本切换命令用于指示所述第一ep更新所述激活信息携带的区域标识信息,使更新后的激活信息携带的区域标识信息与更新前的激活信息携带的区域标识信息不同,且所述更新后的激活信息携带的区域标识信息对应的存储区域中存储有固件文件;

所述第一ep,还用于根据所述版本切换命令更新所述激活信息,并在更新所述激活信息后,重启所述待进行固件升级的硬件模块,以使所述待进行固件升级的硬件模块在重启后,从所述更新后的激活信息携带的区域标识信息对应的存储区域获取固件文件开始运行。

本申请提供的存储设备的固件升级方法和存储设备,在对设置在dsu内的硬件设备的固件进行固件升级时,sp通过接收用户输入的固件升级命令,进而根据上述固件升级命令携带的目标升级文件的标识信息和上述目标文件的标识信息获取到上述目标升级文件,从而在获取到上述目标升级文件后,将上述目标升级文件通过sas线缆发送给与上述待进行固件升级的硬件模块对应的第一ep,而第一ep在接收到上述目标升级文件后,就根据上述目标文件对待进行固件升级的硬件文件进行升级。这样,可提高传输信号的稳定性,降低升级过程中的出错概率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请提供的存储设备的结构示意图;

图2为本申请存储设备的固件升级方法实施例一的流程图;

图3为本申请存储设备的固件升级方法实施例二的流程图;

图4为本申请存储设备的固件升级方法实施例三的流程图;

图5为本申请存储设备的固件升级方法实施例四的流程图;

图6为本申请存储设备的固件升级方法实施例五的流程图;

图7为本申请存储设备的固件升级方法实施例六的流程图。

具体实施方式

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

本申请提供一种存储设备的固件升级方法和存储设备,以解决现有技术中的固件升级方法对设置在dsu内的硬件模块的固件进行升级时,存在的因干扰导致传输信号不稳定、升级过程中出错概率大的问题。

本申请提供的存储设备的固件升级方法和存储设备,可应用于计算机领域,例如,可应用于云计算技术中。

下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不在赘述。

需要说明的是,本申请的说明书和权利要求书及附图中的术语“第一”“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解的是,这样的使用在适当的情况下可以互换。

在介绍本申请提供的存储设备的固件升级方法之前,先来介绍一下本申请提供的存储设备。图1为本申请提供的存储设备的结构示意图,请参照图1,本申请提供的存储设备,包括存储控制单元spu和至少一个磁盘柜单元dsu(本实施例中,以包括4个磁盘柜单元(dsu1、dsu2、dsu3、dsu4)为例进行说明),spu内设置有存储控制器模块sp,每个dsu内设置有磁盘柜控制模块ep,sp与ep连接。具体地,spu内可以设置一个sp,也可以设置多个sp;同样地,dsu内可以设置一个ep,也可以设置多个ep。本实施例中,不对spu内sp的设置个数以及dsu内ep的设置个数进行限定。此外,sp与ep通过串行小型计算机接口(serialattachedscsi,简称sas)线缆连接。需要说明的是,当存储设备包括多个dsu时,sp可以通过sas线缆直接与每个dsu内的ep连接,也可以是,sp通过sas线缆直接与第一个dsu的ep连接,然后将第二个dsu的ep通过sas线缆与第一个dsu的ep连接,再将第三个dsu的ep通过sas线缆与第二个dsu的ep连接,以此类推,最终实现sp与每个ep连接(参见图1中dsu1内的ep1和dsu2的ep2与sp的连接方式)。

此外,在存储设备中,spu内还设置有电源模块、风扇模块、电池模块等硬件模块,dsu内还设置有电源模块、风扇模块、电池模块等硬件模块。需要说明的是,每个硬件模块具有固件,该硬件模块的固件保存在该硬件模块的存储介质中。例如,dsu内的电池模块具有电池模块固件,该电池模块固件保存在电池模块的存储介质中。

在介绍了本申请提供的存储设备之后,下面来介绍本申请提供的存储设备的固件升级方法。

图2为本申请存储设备的固件升级方法实施例一的流程图。本实施例的执行主体可以为单独的存储设备,也可以为集成了存储设备的其它设备,例如,集成了存储设备的计算机。本申请实施例以执行主体为单独的存储设备为例进行说明。如图2所示,本实施例提供的存储设备的固件升级方法,可以包括如下步骤:

s101、sp接收用户输入的固件升级命令,上述固件升级命令携带待进行固件升级的硬件模块的标识信息、目标升级文件的标识信息和上述目标升级文件的地址信息,其中,上述待进行固件升级的硬件模块为设置在dsu内的硬件模块。

具体地,sp可通过连接在sp上的管理pc接收用户输入的固件升级命令。在具体实现时,用户可通过管理pc登录上述sp,进而向上述sp输入固件升级命令。需要说明的是,上述固件升级命令携带待进行固件升级的硬件模块的标识信息,该标识信息包括待进行固件升级的硬件模块的名称信息以及待进行固件升级的硬件模块的dsu信息,上述dsu信息用于表征上述待进行固件升级的硬件模块设置在哪个dsu上。下面举例说明固件升级命令的具体形式,例如,用户输入的固件升级命令可以为:采用服务器a中的目标升级文件b对设置于dsu1中的电池模块的固件进行升级。此时,该固件升级命令携带的待进行固件升级的硬件模块的标识信息为dsu1中的电池模块,相应地,目标升级文件的标识信息为b,该目标升级文件的地址信息为服务器a。需要说明的是,上面所举例子仅是为了说明该本步骤的具体实现过程,并不是对本步骤的限定,用户还可以输入其他形式的固件升级命令。

s102、上述sp根据上述目标升级文件的标识信息和上述目标升级文件的地址信息获取上述目标升级文件。

当sp接收到用户输入的固件升级命令后,可根据上述固件升级命令中携带的目标升级文件的标识信息和上述目标升级文件的地址获取到上述目标升级文件。需要说明的是,目标升级文件可以存储在管理pc上,也可以存储在服务器中。

结合上面的例子,本步骤中,sp可从服务器a中获取目标升级文件b。需要说明的是,sp可在获取到上述目标升级文件后,将上述目标升级文件暂时存储在sp中。此外,上述目标升级文件携带头文件信息,上述头文件信息可以包括待进行固件升级的硬件模块的标识信息、固件文件的长度信息、版本号、在目标存储介质中的存放起始地址(将目标升级文件传输给ep时,在ep中的指定的存放位置)等。需要说明的是,目标升级文件的地址信息指示的地址中存放的固件文件可以是携带头文件信息的目标升级文件,也可以是没有携带头文件信息的原始固件文件。当目标升级文件的地址信息指示的地址中存放的固件文件为携带头文件信息的目标升级文件时,sp可以直接获取上述目标升级文件;当目标升级文件的地址信息指示的地址中存放的固件文件为没有携带头文件信息的原始固件文件时,此时,sp需要根据上述原始固件文件,获取该原始固件文件的头文件信息,进而将上述原始固件文件封装头文件信息后得到目标升级文件。

s103、上述sp将上述目标升级文件传输给与上述待进行固件升级的硬件模块对应的第一ep,上述第一ep为与上述待进行固件升级的硬件模块设置在同一个dsu内的ep。

具体地,当经过步骤s102获取到目标升级文件后,本步骤中,sp就将目标升级文件传输给第一ep,需要说明的是,第一ep为与上述待进行固件升级的硬件模块设置在同一个dsu内的ep,结合上面的例子,本步骤中,第一ep为设置在dsu1中的ep1,此时,sp将上述目标升级文件传输给dsu1中的ep1。请继续参照图1,若固件升级命令中携带的待进行固件升级的硬件模块的标识信息为dsu2中的风扇模块时,此时,由于dsu2中的ep2与sp不直接通过sas线缆连接,因此,当sp需要将目标升级文件传输给ep2时,sp需要先将目标升级文件通过连接在sp与ep1之间的sas线缆传输给ep1,再由ep1通过连接在ep1与ep2之间的sas线缆传输给ep2。

需要说明的是,sp在向第一ep传输目标升级文件时,采用ses(scsienclosureservice,简称ses)命令,通过sas协议进行传输。进一步地,由于ses标准对单个ses命令的负载大小有限定。因此,在sp将目标升级文件传输给第一ep的时候,若目标升级文件的大小不大于ses标准里规定的单个命令最大负载大小时,sp可将目标升级文件整个一起传输给第一ep。若目标升级文件的大小超过ses标准里规定的单个命令最大负载大小时,此时,在sp将目标升级文件传输给第一ep时,sp可以先将目标升级文件切分为多个数据包,再将上述多个数据包按照其在目标升级文件中的先后顺序依次传输给第一ep(需要说明的是,此时,每个数据包的大小均不能超过ses标准规定的单个命令最大负载大小)。

s104、上述第一ep在接收到上述目标升级文件后,根据上述目标升级文件对上述待进行固件升级的硬件模块进行固件升级。

需要说明的是,第一ep在接收到上述目标升级文件后,就将其存储在第一ep的存储介质中。具体地,将上述目标升级文件存储在该目标升级文件的头文件信息中指定的位置(头文件信息包括“在目标存储介质的存放起始地址”)。需要说明的是,若第一ep的存储介质中指定的位置中包含有固件文件时(上次固件升级时保存的目标升级文件),则第一ep在将目标升级文件保存在指定的位置时,将覆盖原来保存的固件文件。这样,当第一ep将目标升级文件存储在指定的位置后,就启动固件升级程序(本实施例中,启动一个在系统可编程(insystemprogrammable,简称isp)线程),并在固件升级程序中加载上述目标升级文件,以通过固件升级程序使用上述目标升级文件进行固件升级(此时,isp线程从头文件信息中指定的位置开始执行目标升级文件,将目标升级文件按isp协议写入待进行固件升级的硬件模块的存储介质)。

具体地,关于如何根据目标升级文件对待进行固件升级的硬件模块进行固件升级的具体实现过程和实现原理可以参见现有技术中采用升级文件对待进行升级的硬件进行固件升级的方法中的描述,此处不在赘述。需要说明的是,本步骤与现有技术的不同之处在于,本步骤是通过ep实现的。

在本实施例中,sp在接收用户输入的固件升级命令,并根据上述固件升级命令携带的目标升级文件的标识信息和上述目标文件的标识信息获取到上述目标升级文件后,将获取到的目标升级文件通过sas线缆传输给与上述待进行固件升级的硬件模块对应的第一ep,以使第一ep在接收到上述目标升级文件后,根据上述目标升级文件对待进行固件升级的硬件文件进行升级。这样,由于目标升级文件是由sp通过sas线缆传输给ep的,相比于现有技术(目标升级文件是由管理pc通过串口线缆传输给ep),可避免因干扰导致传输信号不稳定、升级过程中出错概率大的问题。

本实施例提供的存储设备的固件升级方法,在对设置在dsu内的硬件设备的固件进行固件升级时,sp通过接收用户输入的固件升级命令,进而根据上述固件升级命令携带的目标升级文件的标识信息和上述目标文件的标识信息获取到上述目标升级文件,从而在获取到上述目标升级文件后,将上述目标升级文件通过sas线缆发送给与上述待进行固件升级的硬件模块对应的第一ep,而第一ep在接收到上述目标升级文件后,就根据上述目标文件对待进行固件升级的硬件文件进行升级。这样,可提高传输信号的稳定性,降低升级过程中出错的概率。

图3为本申请存储设备的固件升级方法实施例二的流程图。本实施例涉及的是校验目标升级文件是否正确的具体过程。在上述实施例的基础上,若目标升级文件携带的头文件信息包括预设的校验方法和校验值时,本实施例提供的存储设备的固件升级方法,第一ep在根据上述目标升级文件对上述待进行固件升级的硬件模块进行固件升级之前,所述方法还可以包括:

s201、上述第一ep根据上述预设的校验方法和校验值校验上述目标升级文件是否正确。

具体地,若目标升级文件携带的头文件信息包括预设的校验方法和校验值,本步骤中,当第一ep在接收到上述目标升级文件后,可根据上述目标升级文件携带的头文件信息中包括的预设的校验方法计算第一校验值,并判断计算得到的第一校验值与上述目标升级文件携带的头文件信息中包括的校验值是否相同,若相同,则确定所述目标升级文件正确,若不相同,则确定上述目标升级文件不正确。

s202、若校验正确,则上述第一ep向上述sp返回传输成功的响应信息,并根据上述目标升级文件对上述待进行固件升级的硬件模块进行固件升级。

具体地,经过步骤s101,若判断上述目标升级文件正确,本步骤中,第一ep向sp返回传输成功的响应信息,以告知sp上述目标升级文件已经成功传输至第一ep。

需要说明的是,本申请提供的存储设备的固件升级方法,若第一ep在步骤s201中判断接收到的目标升级文件不正确,则向sp返回传输失败的响应消息,以告知sp上述目标升级文件没有成功传输至第一ep。

本实施中,第一ep在根据目标升级文件对待进行固件升级的硬件模块进行固件升级之前,首先先根据上述目标升级文件携带的头文件信息校验目标升级文件是否正确,并在校验目标升级文件正确后,才根据目标升级文件进行固件升级。这样,在进行固件升级前,就提前先校验目标升级文件是否正确,进而在校验正确后才进行固件升级,可避免因目标升级文件不正确就直接进行固件升级导致的升级效率低的问题,可提高固件的升级效率。

图4为本申请存储设备的固件升级方法实施例三的流程图。在实施例一的基础上,本实施例提供的存储设备的固件升级方法,步骤s104之后,还可以包括:

s301、上述第一ep判断固件升级过程是否完成。

具体地,参见步骤s104中的描述,当第一ep启动固件升级程序进行固件升级时,若上述固件升级程序执行完成,输出执行结果时,则确定固件升级过程完成。本步骤中,第一ep通过判断是否收到执行结果来判断固件升级过程是否完成,若收到执行结果,则确定固件升级过程完成。

s302、若是,则上述第一ep记录升级结果,并发送广播消息,上述广播消息用于告知上述sp上述固件升级过程已经完成。

具体地,执行结果不仅表明固件升级过程完成,还携带有升级结果(升级成功或升级失败),当第一ep收到执行结果,确定固件升级过程完成时,相应地,记录升级结果,并发送广播消息,以通过广播消息主动告知sp固件升级已经完成。需要说明的是,上述广播消息是基于sas协议发送的广播消息。

此外,在本实施例中,当第一ep判断固件升级过程完成后,还将存储在第一ep的存储介质中的目标升级文件删除。

s303、上述sp在接收到上述广播消息之后,向上述第一ep发送查询命令,以查询升级结果。

本步骤中,第一ep在判断固件升级过程完成后,通过发送广播消息,以通过广播消息告知sp固件升级过程已经完成。这样,当sp在接收到上述广播消息时,便知道固件升级过程已经完成。这样,第一ep通过发送广播消息,可使sp及时了解第一ep的状态。进一步地,sp还可以在接收到上述广播消息后,向第一ep发送查询命令,以查询升级结果。这样,sp可基于查询结果对ep进行下一步控制。

本实施例提供的存储设备的固件升级方法,在第一ep根据目标升级文件对待进行固件升级的硬件模块进行固件升级之后,第一ep判断固件升级过程是否完成,并在判断固件升级过程完成后,记录升级结果,并发送广播消息,这样,可通过广播消息告知sp固件升级过程的状态,以使sp及时获知第一ep的状态,进而基于获知的第一ep的状态,对第一ep作出有效控制。进一步地,本实施例提供的方法,sp在接收到第一ep发送的广播消息后,还向第一ep发送查询命令,以查询升级结果,这样,sp可主动获知待进行固件升级的硬件设备的升级结果,以基于升级结果对待进行固件升级的硬件设备作出有效控制。

图5为本发明存储设备的固件升级方法实施例四的流程图。本实施例涉及的是如何根据目标升级文件对待进行固件升级的硬件模块进行固件升级的具体过程。在介绍本实施例提供的存储设备的固件升级方法之前,先介绍一下本实施例提供的存储设备,具体地,本实施例提供的存储设备,待进行固件升级的硬件模块的存储介质包括至少两个存储区域,所述至少两个存储区域中的至少一个存储区域中存储有所述待进行固件升级的硬件模块的固件文件,所述至少两个存储区域中的其中一个存储区域中存储有激活信息,其中,所述激活信息携带区域标识信息,所述区域标识信息用于表征当前被激活的存储区域。

具体的,例如,一实施例提供的存储设备,待进行固件升级的硬件模块为dsu1中的电池模块1,该电池模块1的存储介质包括两个存储区域(存储区域a和存储区域b,其中,a、b为存储区域的区域标识信息),存储区域a中存储有电池模块1的固件文件,存储区域b中存储有激活信息(例如,激活信息可以表示为:激活区域:a,此时,该激活信息表明当前被激活的存储区域为存储区域a),需要说明的是,存储区域被激活指的是硬件模块在运行时,从该存储区域获取固件文件开始运行,结合上面的例子,存储区域a被激活,表征电池模块1在运行时,将从存储区域a获取固件文件开始运行。

再例如,待进行升级的硬件模块为dsu3内的风扇模块3,该风扇模块3的存储介质包括三个存储区域:存储区域d、存储区域e、存储区域f,存储区域d和存储区域e中分别存储有该风扇模块的固件文件(需要说明的是,存储区域d和存储区域e中存储的固件文件的版本不同),存储区域f中存储有激活信息,例如,此时的激活信息为:激活区域:e,此时,该激活信息表明当前被激活的存储区域为存储区域e,即该风扇模块启动时,将从存储区域e获取固件文件开始启动。

在介绍了本实施例提供的存储设备之后,下面来详细介绍本实施例提供的存储设备的固件升级方法,请参照图5,本实施例提供的存储设备的固件升级方法,步骤s104具体包括:

s401、上述第一ep根据上述激活信息中携带的区域标识信息,确定当前被激活的第一存储区域;

结合上面的例子,例如,在例一中,激活信息中携带的区域标识信息为a,此时,确定当前被激活的第一存储区域为存储区域a。相应地,在例二中,激活信息中携带的区域标识信息为e,此时,确定当前被激活的第一存储区域为存储区域e。

s402、上述第一ep将固件升级程序的目标地址设定为第二存储区域对应的区域标识信息;其中,上述第二存储区域与上述第一存储区域不同;

具体地,当确定了当前被激活的第一存储区域后,此时,第一ep就将固件升级程序的目标地址设定为第二存储区域对应的区域标识信息,这样,目标升级文件将在固件升级程序被成功执行时保存到第二存储区域中。需要说明的是,第二存储区域与第一存储区域不同,结合上面的例子,在例一中,第二存储区域为存储区域b,在例二中,第二存储区域可以为存储区域d,或存储区域f。这样,通过将固件升级程序的目标地址设定为不同于第一存储区域的第二存储区域对应的区域标识信息,可将目标升级文件与正在使用的固件文件分开保存。

进一步需要说明的是,若第二存储区域内原来存储有固件文件,则在固件升级程序被成功执行后,目标升级文件将替换原来存储的固件文件,保存在第二存储区域中。

s403、上述第一ep启动上述固件升级程序,以通过上述固件升级程序和上述目标升级文件对上述待进行固件升级的硬件模块进行固件升级,并在固件升级过程完成,且升级结果显示升级成功后,将上述激活信息携带的区域标识信息更新为上述第二存储区域对应的区域标识信息。

具体地,关于启动固件升级程序,以通过固件升级程序和目标升级文件对待进行固件升级的硬件模块进行固件升级的具体实现过程及实现原理可以参见现有技术中的描述,此处不在赘述。

具体地,本步骤中,第一ep在固件升级过程完成,且升级结果显示升级成功后,将激活信息携带的区域标识信息更新为第二存储区域对应的区域标识信息。结合上面的例子,例如,在例一中,将激活信息携带的区域标识信息更新为b,即更新后的激活信息为:激活区域:b。这样,待进行固件升级的硬件设备(dsu1中的电池模块1)将在重启后,从存储区域b获取固件文件开启启动。再例如,在例二中,当在步骤s402中确定第二存储区域为存储区域d时,则在本步骤中,将激活信息携带的区域标识信息更新为d,即更新后的激活信息为:激活区域:d,这样,待进行固件升级的硬件设备(dsu3内的风扇模块3)将在重启后,从存储区域d获取固件文件开启启动。

本实施例中,若待进行固件升级的硬件模块的存储介质包括至少两个存储区域,且所述至少两个存储区域中的至少一个存储区域中存储有所述待进行固件升级的硬件模块的固件文件,所述至少两个存储区域中的其中一个存储区域中存储有激活信息时(其中,所述激活信息携带区域标识信息,所述区域标识信息用于表征当前被激活的存储区域),第一ep在根据目标升级文件对待进行固件升级的硬件模块进行固件升级时,通过确定当前被激活的第一存储区域,进而在确定当前被激活的第一存储区域后,将固件升级程序的目标地址设定为第二存储区域对应的区域标识信息,这样,在固件升级程序被成功执行后,可将目标升级文件保存在第二存储区域,即在待进行固件升级的硬件模块升级成功后,该待进行固件升级的硬件模块的存储介质中将存储有两个不同版本的固件文件(这两个固件文件存储不同的存储区域)。这样,当待进行固件升级的硬件模块的存储介质中存储有两个不同版本的固件文件时,用户可在这两个不同版本的固件文件之间进行切换,以选择其中一个固件文件使用,实现固件在线升级。

图6为本申请存储设备的固件升级方法实施例五的流程图。本实施例涉及的是固件升级的整个过程。在上述实施例的基础上,请参照图5,本实施例提供的方法,可以包括:

s501、sp接收用户输入的固件升级命令,上述固件升级命令携带待进行固件升级的硬件模块的标识信息、目标升级文件的标识信息和上述目标升级文件的地址信息,其中,上述待进行固件升级的硬件模块为设置在dsu内的硬件模块。

s502、上述sp根据上述目标升级文件的标识信息和上述目标升级文件的地址信息获取上述目标升级文件。

s503、上述sp将上述目标升级文件传输给与上述待进行固件升级的硬件模块对应的第一ep,上述第一ep为与上述待进行固件升级的硬件模块设置在同一个dsu内的ep。

具体地,上述步骤的具体实现方法及实现原理可以参见实施例一的步骤s101至s103的描述,在此不再赘述。

s504、上述第一ep在接收到上述目标升级文件后,根据上述目标升级文件携带的头文件信息校验上述目标升级文件是否正确,若校验不正确,则执行步骤s505,若校验正确,则执行步骤s506至s509。

s505、上述第一ep向上述sp返回传输失败的响应信息。

s506、上述第一ep向上述sp返回传输成功的响应信息,并根据上述目标升级文件对上述待进行固件升级的硬件模块进行固件升级。

具体地,上述步骤的具体实现方法及实现原理可以参见实施例二的步骤s201至s202的描述,在此不再赘述。

s507、上述第一ep判断固件升级过程是否完成。

s508、若是,则上述第一ep记录升级结果,并发送广播消息,上述广播消息用于告知上述sp上述固件升级过程已经完成

s519、上述sp在接收到上述广播消息之后,向上述第一ep发送查询命令,以查询升级结果。

具体地,上述步骤的具体实现方法及实现原理可以参见实施例三的步骤s301至s303的描述,在此不再赘述。

图7为本申请存储设备的固件升级方法实施例六的流程图。本实施例涉及的是固件升级成功之后,版本切换的具体过程。在上述实施例的基础上,在所述待进行固件升级的硬件模块成功进行固件升级之后,所述方法还可以包括:

s601、上述sp接收用户输入的版本切换命令,并将上述版本切换命令传输给上述第一ep;上述版本切换命令用于指示上述第一ep更新上述激活信息携带的区域标识信息,使更新后的激活信息携带的区域标识信息与更新前的激活信息携带的区域标识信息不同,且上述更新后的激活信息携带的区域标识信息对应的存储区域中存储有固件文件。

具体地,当待进行固件升级的硬件模块成功进行固件升级后,上述待进行固件升级的硬件模块的存储介质中将存储有两个版本的固件文件,且这两个版本的固件文件存储在不同的存储区域。这样,当上述待进行固件升级的硬件模块的存储介质出存储有两个版本的固件文件时,可在两个版本的固件文件进行切换。

具体地,用户可通过pc机向sp输入版本切换命令。当sp接收到上述版本切换命令后,就将上述版本切换命令传输给第一ep。这样,当第一ep接收到上述版本切换命令后,就执行相应的切换操作。

s602、上述第一ep根据上述版本切换命令更新上述激活信息,并在更新上述激活信息后,重启上述待进行固件升级的硬件模块,以使上述待进行固件升级的硬件模块在重启后,从上述更新后的激活信息携带的区域标识信息对应的存储区域获取固件文件开始运行。

具体地,第一ep在根据上述版本切换命令更新上述激活信息时,可以通过以下过程实现,首先,第一ep获取当前的激活信息以及当前存储有固件文件的存储区域的区域标识信息,接着,第一ep根据当前的激活信息携带的区域标识信息以及获取到的当前存储有固件文件的存储区域的区域标识信息,更新上述激活信息。结合上面的例子,例如,在例一中,第一ep获取到的当前的激活信息为:激活区域:b,且获取到的当前存储有固件文件的存储区域的区域标识信息为a和b(即存储区域a和b中均存储有固件文件),这样,更新激活信息,更新后的激活信息为:激活区域:a,这样,待进行固件升级的硬件设备(例一中的电池模块1)在重启后,将从存储区域a获取固件文件。再例如,在例二中,第一ep获取到的当前的激活信息为:激活区域:e,且获取到的当前的存储有固件文件的存储区域的区域标识信息为d和e,这样,更新激活信息,更新后的激活信息为:激活区域:d,这样,待进行固件升级的硬件模块(例二中的风扇模块3)在重启后,将从存储区域d获取固件文件。

本实施例提供的存储设备的固件升级方法,在待进行固件升级的硬件模块成功进行固件升级之后,还提供了一种版本切换的方法,具体地,在待进行固件升级的硬件模块成功进行固件升级之后,若第一ep接收到用户输入的版本切换命令,此时,第一ep将根据上述版本切换命令跟新激活信息,以使更新后的激活信息携带的区域标识信息与更新前的激活信息携带的区域标识信息不同,且更新后的激活信息携带的区域标识信息对应的存储区域中存储有固件文件,并在更新激活信息之后,重启所述待进行固件升级的硬件模块,以使上述待进行固件升级的硬件模块在重启后,从上述更新后的激活信息携带的区域标识信息对应的存储区域获取固件文件开始运行。这样,基于上述方法,用户可在待进行固件升级的硬件模块的两个不同版本的固件文件之间进行切换,以选择能够满足用户需求的固件文件使用。

请继续参照图1,图1为本发明提供的存储设备的结构示意图。该存储设备可以通过软件、硬件或者软硬结合的方式实现,且该存储设备可以是单独的存储设备,也可以是集成在其他设备中的存储设备。如图1所示,本实施例提供的存储设备,包括存储控制单元spu和至少一个磁盘柜单元dsu,所述spu内设置有存储控制器模块sp,每个所述dsu内设置有磁盘柜控制模块ep,所述sp与所述ep连接,其中,

所述sp,用于接收用户输入的固件升级命令,所述固件升级命令携带待进行固件升级的硬件模块的标识信息、目标升级文件的标识信息和所述目标升级文件的地址信息,其中,所述待进行固件升级的硬件模块为设置在dsu内的硬件模块;所述sp,还用于根据所述目标升级文件的标识信息和所述目标升级文件的地址信息获取所述目标升级文件;

所述sp,还用于将所述目标升级文件传输给与所述待进行固件升级的硬件模块对应的第一ep,其中,所述第一ep为与所述待进行固件升级的硬件模块设置在同一个dsu内的ep;

所述第一ep,用于在接收到所述目标升级文件后,根据所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级。

本实施例的存储设备,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

进一步地,所述目标升级文件携带的头文件信息包括预设的校验方法和校验值,所述第一ep,还具体用于根据所述预设的校验方法和校验值校验所述目标升级文件是否正确,并在校验正确时,向所述sp返回传输成功的响应信息,并根据所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级。

本实施例的存储设备,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

进一步地,所述第一ep,还用于判断固件升级过程是否完成,并在判断固件升级过程完成时,记录升级结果,并发送广播消息,其中,所述广播消息用于告知所述sp所述固件升级过程已经完成。

本实施例的存储设备,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

进一步地,所述sp,还用于在接收到所述广播消息之后,向所述第一ep发送查询命令,以查询升级结果。

本实施例的存储设备,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

进一步地,所述待进行固件升级的硬件模块的存储介质包括至少两个存储区域,所述至少两个存储区域中的至少一个存储区域中存储有所述待进行固件升级的硬件模块的固件文件,所述至少两个存储区域中的其中一个存储区域中存储有激活信息,其中,所述激活信息携带区域标识信息,所述区域标识信息用于表征当前被激活的存储区域,所述第一ep,还用于根据所述激活信息中携带的区域标识信息,确定当前被激活的第一存储区域;

所述第一ep,还用于将固件升级程序的目标地址设定为第二存储区域对应的区域标识信息,其中,所述第二存储区域与所述第一存储区域不同;

所述第一ep,还用于启动所述固件升级程序,以通过所述固件升级程序和所述目标升级文件对所述待进行固件升级的硬件模块进行固件升级,并在固件升级过程完成,且升级结果显示升级成功后,将所述激活信息携带的区域标识信息更新为所述第二存储区域对应的区域标识信息。

本实施例的存储设备,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

进一步地,所述sp,还用于接收用户输入的版本切换命令,并将所述版本切换命令传输给所述第一ep;所述版本切换命令用于指示所述第一ep更新所述激活信息携带的区域标识信息,使更新后的激活信息携带的区域标识信息与更新前的激活信息携带的区域标识信息不同,且所述更新后的激活信息携带的区域标识信息对应的存储区域中存储有固件文件;

所述第一ep,还用于根据所述版本切换命令更新所述激活信息,并在更新所述激活信息后,重启所述待进行固件升级的硬件模块,以使所述待进行固件升级的硬件模块在重启后,从所述更新后的激活信息携带的区域标识信息对应的存储区域获取固件文件开始运行。

本实施例的存储设备,可以用于执行图7所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

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