掌桥专利:专业的专利平台
掌桥专利
首页

固件升级方法、服务器及存储介质

文献发布时间:2023-06-19 18:27:32


固件升级方法、服务器及存储介质

技术领域

本发明涉及固件升级技术领域,具体涉及一种固件升级方法、服务器及存储介质。

背景技术

硬盘主要有接口、控制器、磁头、碟片、马达、基座等组成;无论固态硬盘(Solidstate drive,SSD),还是机械硬盘(Hard disk drive,HDD),固件(Firmware,FW)都是控制硬盘工作的最重要的软件。例如,SSD的固件主要实现的是NAND相关可靠性管理,NAND闪存(flash)的数据读写和系统行控制、接口初始化等工作;HDD的固件主要控制电磁信号的转换,数据存储,系统运行控制等工作。

随着硬盘的容量越来越大,每年都面临着升级。目前在进行固件升级时,需要停止硬盘业务数据的传输,影响业务数据传输的正常运行。

发明内容

本申请提供了一种固件升级方法、服务器及存储介质。在需要对硬盘的固件进行升级时,硬盘会基于升级时长确定出升级时间段,然后在升级时间段内升级固件,无需停止硬盘业务数据的传输,不会影响硬盘传输业务数据。

第一方面,本申请实施例提供一种固件升级方法,所述方法应用于服务器,服务器中包括硬盘和主机,所述方法包括:所述硬盘从主机获取固件文件,其中,所述固件文件包括升级时长和固件;所述硬盘根据所述升级时长和所述硬盘的历史工作状态,确定所述固件的升级时间段;在所述升级时间段内,所述硬盘升级所述固件。

在本申请的一个实施方式中,所述硬盘的历史工作状态包括多个空闲时间段和多个繁忙时间段;所述根据所述升级时长和所述硬盘的历史工作状态,确定所述固件的升级时间段,包括:根据当前时刻所属时间段、所述升级时长、所述多个空闲时间段以及多个繁忙时间段,确定所述升级时间段。

应说明,该升级时间段为一个空闲时间段,也就是说,硬盘在该升级时间段内没有业务数据的传输。可以看出,在本申请实施例中,当主机确定出硬盘需要进行固件升级时,会把固件的升级时长和固件一起下发给硬盘。然后,硬盘会基于自己的历史工作状态和升级时长,确定出一个升级时间段,即确定出一个比较空闲的时间段;最后,硬盘该升级时间段内升级该固件,这样硬盘在升级固件时,就不需要暂停业务数据的传输,从而在升级固件时,不会影响固件的业务传输,对硬盘的业务数据的传输比较友好。

在本申请的一个实施方式中,所述根据当前时刻所属时间段、所述升级时长、所述多个空闲时间段以及多个繁忙时间段,确定所述升级时间段,包括:若当前时刻所属时间段为第一空闲时间段,从当前时刻开始,确定第一空闲时间段中是否存在第一目标时刻,其中,所述第一目标时刻与所述第一空闲时间段的截止时刻之间的时长等于所述升级时长,所述第一空闲时间段为所述多个空闲时间段中的任意一个;若存在,则将所述当前时刻与所述第一目标时刻之间的时间段作为所述升级时间段;若不存在,根据所述升级时长,确定第二空闲时间段中是否存在第二目标时刻,其中,所述第二目标时刻与所述第二空闲时间段的截止时刻之间的时长等于所述升级时长,所述第二空闲时间段为所述多个空闲时间段中与所述第一空闲时间段相邻,且位于所述第一空闲时间段之后的空闲时间段;若存在,则将所述第二空闲时间段的起始时刻与所述目标时刻之间的时间段作为所述升级时间段。

可以看出,在本申请实施例中,硬盘会结合接收到固件文件的当前时刻,确定该当前时刻所属的时间段,若当前时刻处于空闲时间段,则会从空闲时间段中寻找升级时间段。如果不能找到空闲时间段,则会从下一个空闲时间段寻找升级时间,直至找到一个满足升级需求的升级时间段,并且在这个升级时间段中升级不会影响硬盘的业务传输,对硬盘的业务数据的传输比较友好。

在本申请的一个实施方式中,所述根据当前时刻所属时间段、所述升级时长、所述多个空闲时间段以及多个繁忙时间段,确定所述升级时间段,包括:若所述当前时刻所属时间段为第一繁忙时间段,根据所述升级时长,确定所述第三空闲时间段中是否存在第三目标时刻,其中,所述第一繁忙时间段为所述多个繁忙时间段中的任意一个,所述第三目标时刻与所述第三空闲时间段的截止时刻之间的时长等于所述升级时长,所述第三空闲时间段为所述多个空闲时间段中与所述第一繁忙时间段相邻,且位于所述第一繁忙时间段之后的空闲时间段;若存在,则将所述第三空闲时间段的起始时刻与所述第三目标时刻之间的时长作为所述升级时间段。

可以看出,在本实施方式中,若当前时刻处于繁忙时间段,则会直接跳过该繁忙时间段,从下一个空闲时间段中寻找升级时间段,从而可以快速的找到满足升级需求的升级时间段。

在本申请的一个实施方式中,根据所述升级时长和所述硬盘的历史工作状态,确定所述固件的升级时间段之前,所述方法还包括:所述硬盘获取所述硬盘的历史工作状态。

在本申请的一个实施方式中,所述获取所述硬盘的历史工作状态,包括:获取所述硬盘在历史时间段内每天的历史工作数据;根据所述硬盘在历史时间段内每天的历史工作数据,确定所述硬盘在所述历史时间段内,每天各个预设时间段的历史硬盘利用率;根据所述硬盘在历史时间段内,每天各个预设时间段的历史硬盘利用率,对每个各个预设时间段划分为多个空闲时间段和多个繁忙时间段,得到所述硬盘的历史工作状态。

可以看出,在本申请实施例中,硬盘可以主动统计硬盘的历史工作数据;基于该历史工作数据,确定出历史工作状态;无需主机告知硬盘的历史工作状态,减轻了主机的处理压力。另外,硬盘确定出了历史工作状态,可以为自己后续固件升级,找到升级时间段做好准备。

在本申请的一个实施方式中,获取所述硬盘在历史时间段内每天的历史工作数据之前,所述方法还包括:所述硬盘从所述主机获取指示信息,其中,所述指示信息用于指示所述硬盘获取所述硬盘的历史工作状态。

可以看出,在本实施方式中,主机可以通过指示信息指示硬盘去统计历史工作状态,从而让硬盘明晰出何时去统计历史工作状态。

在本申请的一个实施方式中,所述获取所述硬盘的历史工作状,包括:从所述主机获取所述硬盘的历史工作状态。

可以看出,在本实施方式中,主机可以确定出硬盘的历史状态,然后将硬盘的历史状态发送给硬盘,无需硬盘去统计历史工作状态,减轻了硬盘的计算压力。

第二方面,本申请实施例提供一种固件升级方法,该方法应用于服务器,该服务器包括主机和硬盘;主机向硬盘发送固件文件,其中,所述固件文件包括升级时长和固件。

在本申请的一个实施方式中,主机向硬盘发送固件文件之前,该方法还包括:获取所述硬盘在历史时间段内每天的历史工作数据;根据所述硬盘在历史时间段内每天的历史工作数据,确定所述硬盘在所述历史时间段内,每天各个预设时间段的历史硬盘利用率;根据所述硬盘在历史时间段内,每天各个预设时间段的历史硬盘利用率,对每个各个预设时间段划分为多个空闲时间段和多个繁忙时间段,得到所述硬盘的历史工作状态;向硬盘发送硬盘的历史工作状态,以使硬盘根据硬盘的历史工作状态,以及升级时长,确定升级时间段。

可以看出,在本实施方式中,主机可以基于硬盘的历史工作数据去统计出硬盘的历史工作状态。这样在后续固件升级时,主机可以将硬盘的历史工作状态发送给硬盘,以便硬盘基于历史工作状态,确定出硬盘的空闲时间段作为升级时间段,这样硬盘就可以在空闲时间段中去升级固件

在本申请的一个实施方式,该方法还包括:向硬盘发送指示信息,其中,该指示信息用于指示硬盘获取所述硬盘的历史工作状态。

可以看出,在本实施方式中,当需要硬盘主动去统计历史状态时,

主机可以通过指示信息指示硬盘去统计历史工作状态,从而让硬盘明晰出何时去统计历史工作状态。

第三方面,本申请实施例提供一种服务器,其特征在于,所述服务器包括主机和硬盘;所述硬盘,用于从主机获取固件文件,其中,所述固件文件包括升级时长和固件;所述硬盘,用于根据所述升级时长和所述硬盘的历史工作状态,确定所述固件的升级时间段;所述硬盘,用于在所述升级时间段内升级所述固件。

在本申请的一个实施方式中,所述硬盘的历史工作状态包括多个空闲时间段和多个繁忙时间段;所述根据所述升级时长和所述硬盘的历史工作状态,确定所述固件的升级时间段,包括:根据当前时刻所属时间段、所述升级时长、所述多个空闲时间段以及多个繁忙时间段,确定所述升级时间段。

在本申请的一个实施方式中,所述根据当前时刻所属时间段、所述升级时长、所述多个空闲时间段以及多个繁忙时间段,确定所述升级时间段,包括:若当前时刻所属时间段为第一空闲时间段,从当前时刻开始,确定第一空闲时间段中是否存在第一目标时刻,其中,所述第一目标时刻与所述第一空闲时间段的截止时刻之间的时长等于所述升级时长,所述第一空闲时间段为所述多个空闲时间段中的任意一个;若存在,则将所述当前时刻与所述第一目标时刻之间的时间段作为所述升级时间段;若不存在,根据所述升级时长,确定第二空闲时间段中是否存在第二目标时刻,其中,所述第二目标时刻与所述第二空闲时间段的截止时刻之间的时长等于所述升级时长,所述第二空闲时间段为所述多个空闲时间段中与所述第一空闲时间段相邻,且位于所述第一空闲时间段之后的空闲时间段;若存在,则将所述第二空闲时间段的起始时刻与所述目标时刻之间的时间段作为所述升级时间段。

在本申请的一个实施方式中,所述根据当前时刻所属时间段、所述升级时长、所述多个空闲时间段以及多个繁忙时间段,确定所述升级时间段,包括:若所述当前时刻所属时间段为第一繁忙时间段,根据所述升级时长,确定所述第三空闲时间段中是否存在第三目标时刻,其中,所述第一繁忙时间段为所述多个繁忙时间段中的任意一个,所述第三目标时刻与所述第三空闲时间段的截止时刻之间的时长等于所述升级时长,所述第三空闲时间段为所述多个空闲时间段中与所述第一繁忙时间段相邻,且位于所述第一繁忙时间段之后的空闲时间段;若存在,则将所述第三空闲时间段的起始时刻与所述第三目标时刻之间的时长作为所述升级时间段。

在本申请的一个实施方式中,根据所述升级时长和所述硬盘的历史工作状态,确定所述固件的升级时间段之前,所述方法还包括:所述硬盘获取所述硬盘的历史工作状态。

在本申请的一个实施方式中,所述获取所述硬盘的历史工作状态,包括:获取所述硬盘在历史时间段内每天的历史工作数据;根据所述硬盘在历史时间段内每天的历史工作数据,确定所述硬盘在所述历史时间段内,每天各个预设时间段的历史硬盘利用率;根据所述硬盘在历史时间段内,每天各个预设时间段的历史硬盘利用率,对每个各个预设时间段划分为多个空闲时间段和多个繁忙时间段,得到所述硬盘的历史工作状态。

在本申请的一个实施方式中,获取所述硬盘在历史时间段内每天的历史工作数据之前,所述方法还包括:所述硬盘从所述主机获取指示信息,其中,所述指示信息用于指示所述硬盘获取所述硬盘的历史工作状态。

在本申请的一个实施方式中,所述获取所述硬盘的历史工作状,包括:

从所述主机获取所述硬盘的历史工作状态。

第四方面,本申请实施例提供一种服务器,该服务器包主机和硬盘;主机向硬盘发送固件文件,其中,所述固件文件包括升级时长和固件。

在本申请的一个实施方式中,主机向硬盘发送固件文件之前,该方法还包括:获取所述硬盘在历史时间段内每天的历史工作数据;根据所述硬盘在历史时间段内每天的历史工作数据,确定所述硬盘在所述历史时间段内,每天各个预设时间段的历史硬盘利用率;根据所述硬盘在历史时间段内,每天各个预设时间段的历史硬盘利用率,对每个各个预设时间段划分为多个空闲时间段和多个繁忙时间段,得到所述硬盘的历史工作状态;向硬盘发送硬盘的历史工作状态,以使硬盘根据硬盘的历史工作状态,以及升级时长,确定升级时间段。

第五方面,本申请实施例提供了提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码用于实现上述第一方面或第二方面中的方法。

第六方面,本申请实施例提供了提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机实现上述第一方面或第二方面中的方法。

附图说明

图1为本申请实施例提供的一种服务器的示意图;

图2为本申请实施例提供的一种固件升级方法的流程示意图;

图3为本申请实施例提供的一种固件文件的示意图;

图4为本申请实施例提供的一种划分出的历史工作状态的示意图;

图5为本申请实施例提供的另外一种固件升级方法的流程示意图;

图6为本申请实施例提供的另一种固件升级方法的流程示意图;

图7为本申请实施例提供的一种电子设备的示意图。

具体实施方式

为了便于理解本申请,首先在此介绍本申请实施例涉及的专业术语。

固件:固件是设备中的软件,是一种写入设备的可擦写可编程只读存储器(EPROM)或电可擦可编程只读存储器(EEPROM)中的程序,以便控制设备的硬件的运行。

固件升级:固件升级过程包括两个过程,即固件文件下载和固件生效,其中,下载的固件文件中包含有新的固件和新的固件的版本。第一步:主机通过固件升级命令下发固件文件给硬盘;相应地,硬盘会通过固件升级命令下载该固件文件。第二步:硬盘下载好固件文件后,首先对新的固件的版本进行校验;当对新的固件的版本校验通过,并且硬盘检测到满足固件升级条件时,硬盘会进行固件升级,将新的固件写入指定空间,即写入到EPROM或EEPROM;并通过接口上下电,或接口复位命令使新的固件生效;

硬盘空闲:硬盘接口没有接收到读写命令;

硬盘利用率:硬盘在一定时间段如一天内等执行读写命令的时间百分比;具体地,硬盘利用率=硬盘执行读写命令的时长/硬盘工作时长,其中,硬盘工作时长为一天内硬盘处于工作状态的时长,硬盘执行读写命令的时长为一天内硬盘执行读写命令的时长。硬盘利用率越高表征一天内硬盘需要更多的时间执行读写命令。

参阅图1,图1为本申请实施例提供的一种服务器的示意图。服务器包括主机10、硬盘20和网卡30。其中,主机10包括处理器101和基板管理控制器102(Baseboard ManagementController,BMC)。其中,处理器101、BMC 102、硬盘20以及网卡30之间通过总线连接。

其中,服务器可以为云计算服务器、内容分发网络(Content Delivery Network,CDN)服务器、网络时间协议(Network Time Protocol,NTP)、域名解析系统(Domain NameSystem,DNS)服务器,等其他各种类型的服务器;

硬盘20可以为固态硬盘SSD、机械硬盘HDD或者混合硬盘(Hybrid Hard Disk,HHD),等其他各种类型的硬盘。

在硬盘20需要进行固件升级时,主机10先获取固件文件,并将固件文件发送给硬盘20,其中,固件文件包括升级时长和固件。

可选地,主机10获取固件文件,可以是处理器101通过总线控制网卡30获取固件文件,然后处理器101通过总线将固件文件发送给硬盘20;也可以是BMC 102通过总线控制网卡30获取固件文件,然后BMC 102再通过总线将该固件文件发送给硬盘20。也就是说,本申请中可以由处理器101获取固件文件,也可以由BMC 102获取固件文件,本申请对此并不做限定,并且后面均以处理器101获取固件文件为例进行说明。

然后,硬盘20根据升级时长和硬盘20的历史工作状态,确定固件的升级时间段;最后,在该升级时间段内,硬盘20升级该固件。

参阅图2,图2为本申请实施例提供的一种固件升级方法的流程示意图。该方法应用于上述图1示出的服务器。该方法包括但不限于以下步骤内容:

201、处理器向硬盘发送固件文件。相应地,硬盘接收到固件文件。

示例性的,处理器可以通过网卡获取上述固件文件,通过总线将该固件文件发送给硬盘。

如图3所示,固件文件包括固件版本、固件生效模式、升级时长、固件升级模式、固件和校验码。

固件版本为上述固件的版本,其中,固件版本包括V1.0、V2.0、V3.0,等等。处理器在获取到固件文件,可对固件的版本进行校验,以确定获取到的固件是否为最新版本的固件;

固件生效模式为固件的生效模式,固件生效模式包括立即生效和智能生效,其中,立即生效是指硬盘获取到固件后,立即生效该固件;智能生效是指硬盘获取到固件后,不会立即生效,而是先确定升级时间段,然后在升级时间段内生效该固件。本申请主要说明硬盘智能生效固件的过程。可选地,固件生效模式可以通过固件文件中的一个比特位的取值指示,比如,比特位的取值为0时,指示固件生效模式为立即生效,比特位的取值为1时,指示固件生效模式为智能生效。因此在发布上述固件文件时,可以基于硬盘是否支持智能生效模式设置该比特位的取值。例如,若硬盘支持智能生效,则将该比特位的取值设置为1,若确定硬盘不支持智能生效模式,则将该比特位的取值设置为0。

升级时长为硬盘升级固件所需的时长;

固件升级模式包括重新上电或者接口复位;

固件为新的固件;

校验码可以为一致性校验码,主要用于对固件文件的一致性进行校验。

202、硬盘根据升级时长和硬盘的历史工作状态,确定固件的升级时间段。

示例性的,硬盘获取到固件文件后,对固件进行升级之前,会先确定其历史工作状态。

可选地,硬盘从处理器获取硬盘的历史工作状态。具体地,处理器向硬盘发送固件文件之前,会先解析固件文件,确定固件文件中的固件生效模式。可选地,当确定固件生效模式为智能生效时,则处理器会确定硬盘的历史工作状态,并将硬盘的历史工作状态发送给硬盘。可选地,处理器也可以在发送固件文件之前,将硬盘的历史工作状态发送给硬盘,也可以在发送固件文件之后,将硬盘的历史工作状态发送给硬盘,本申请对此不做限定。

可选地,硬盘可以基于历史工作数据,确定硬盘的历史工作状态。具体地,当处理器确定固件文件中的固件生效模式为智能生效时,处理器可以向硬盘发送指示信息,指示信息用于指示硬盘确定硬盘的历史工作状态。

下面介绍处理器如何确定硬盘的历史工作状态的过程。

可选地,硬盘的历史工作状态是指硬盘每天的各个预设时间段内的历史工作状态。示例性的,处理器获取硬盘在历史时间段内每天的历史工作数据,其中,该历史时间段可以为历史一周、历史一个月,等等;该历史工作数据可以缓存在服务器的缓存空间中,处理器可以从缓存空间中获取该历史工作数据。其中,硬盘在每天的历史工作数据包括硬盘每天在各个预设时间段内的历史硬盘利用率,其中,该预设时间段可以为一个小时、半个小时,等等。然后,处理器根据硬盘历史时间段,每天内各个预设时间内的历史硬盘利用率,将历史时间段,每天内各个预设时间划分为多个繁忙时间段和多个空闲时间段,得到该硬盘的历史工作状态,即得到硬盘在各个预设时间段内的历史工作状态。

示例性的,对历史时间段内的任意一个预设时间段的历史硬盘利用率进行求平均,作为该预设时间段最终的历史硬盘利用率;然后,处理器可以将最终的历史硬盘利用大于第一阈值的预设时间段划分为繁忙时间段,将最终的历史硬盘利用小于或者等于第一阈值的时间段划分为空闲时间段,则可以将硬盘的历史工作状态划分为多个繁忙时间段和多个空闲时间段。

如图4所示,硬盘的历史工作状态划分出的空闲时间段包括0:00~t

实际应用中,处理器也可以在获取到固件文件之前,或者,确定出硬盘不支持智能生效的情况下,就可以确定硬盘的历史工作状态,即提前统计硬盘的工作状态。当在固件升级过程中,确定出硬盘支持智能生效模式时,直接将硬盘的历史工作状态发送给硬盘。

应说明的,硬盘统计历史工作状态的方式,与主处理器确定硬盘的历史工作状态的方式类似,不再重复叙述。应说明,实际应用中,处理器也可以在获取到固件文件之前,或者,未确定出硬盘支持智能生效的情况下,就可以向硬盘发送指示信息,即提前通过指示信息指示硬盘统计硬盘的历史工作状态。这样后续处理器确定出硬盘支持智能生效时,就不用发送指示信息,可以直接将固件文件发送给硬盘,硬盘则可以基于提前统计出的历史工作状态,进行固件升级。

示例性的,硬盘获取到固件文件后,会对固件文件进行解析,得到固件生效模式和升级时长。当确定该固件生效模式为智能生效时,硬盘会基于当前时刻、历史工作状态以及生效时长,确定固件的升级时间段。其中,该硬盘的历史工作状态是处理器提前发送给硬盘的,或者,是硬盘自己统计出的。

应说明的是,硬盘在确定升级时间段之前,会基先于固件文件中的固件版本以及一致性校验码对固件文件进行校验,当校验通过时,才会确定该升级时间段。

可选地,若当前时刻所属时间段为第一空闲时间段,从当前时刻开始,确定该第一空闲时间段中是否存在第一目标时刻,其中,该第一目标时刻与第一空闲时间段的截止时刻之间的时长等于该升级时长,若第一空闲时间段中存在第一目标时刻,则将第一目标时刻与第一空闲时间段的截止时刻之间的时长为该升级时长,将该当前时刻与该第一目标时刻之间的时间段作为该升级时间段。其中,第一空闲时间段为多个空闲时间段中的任意一个。应说明的是,若第一目标时刻为当前时刻时,则上述确定出的升级时间段就是一个时刻,即当前时刻。若第一空闲时间段中不存在第一目标时刻,则从第二空闲时间段的起始时刻开始,确定第二空闲时间段中是否存在第二目标时刻,其中,该第二目标时刻与该第二空闲时间段的截止时刻之间的时长为该升级时长,该第二空闲时间段为多个空闲时间段与第一空闲时间段相邻,且位于第一空闲时间段之后的空闲时间段。若第二空闲时间段存在第二目标时刻,则将该第二空闲时间段的起始时刻与该第二目标时刻之间的时间段作为升级时间段。应说明,若该第二目标时刻为该第二空闲时间段的起始时刻,则该升级时间段就是一个时刻,即该起始时刻。当然,若第二时间段中也不存在第二目标时刻,则继续从位于第二空闲时间段之后的下一个空闲时间段,确定是否存在目标时刻,直至找到一个空闲时间段中存在目标时刻,然后将该空闲时间段的起始时刻与该目标时刻之间的时间段作为该升级时间段,确定下一个空闲时间段中是否存在目标时刻的方式与确定第二空闲时间段中是否存在目标时刻类似,不再叙述。

可选地,若当前时刻所属时间段为第一繁忙时间段,根据升级时长,确定第三空闲时间段中是否存在第三目标时刻,其中,第一繁忙时间段为多个繁忙时间段中的任意一个,第三空闲时间段为多个空闲时间段中与第一繁忙时间段相邻,且位于第一繁忙时间段之后的空闲时间段;若存在,则将第三空闲时间段的起始时刻与该第三目标时刻之间的时间段作为该升级时间段。若不存在,则从继续从位于第三空闲时间段之后的下一个空闲时间段,确定是否存在目标时刻,直至找到一个空闲时间段中存在目标时刻,则可将该空闲时间段的起始时刻与该目标时刻之间的时间段作为该升级时间段。其确定下一个空闲时间段中是否存在目标时刻的方式与确定第三空闲时间段中是否存在第三目标时刻类似,不再叙述。

举例来说,如上述图4所示,若当前时刻处于时间段0:00~t

203、在升级时间段内,硬盘升级固件。

示例性的,硬盘解析固件文件,获取固件以及固件的固件升级模式。然后将固件存入到指定空间,并在升级时间段内的任意一个时刻,通过该固件升级模式升级该固件。例如,当固件升级模式为接口复位时,则可在该时刻通过接口复位的方式升级固件;再如,当固件升级模式为上下电复位时,则可在该时刻通过上下电复位的方式升级固件。

可以看出,在本申请实施例中,当主机确定出硬盘需要进行固件升级时,会把固件的升级时长和固件一起下发给硬盘。然后,硬盘会基于自己的历史工作状态和升级时长,确定出一个升级时间段,即确定出一个比较空闲的时间段;最后,硬盘该升级时间段内升级该固件,这样硬盘在升级固件时,就不需要暂停业务数据的传输,从而在升级固件时,不会影响固件的业务传输,对硬盘的业务数据的传输比较友好。

参阅图5,图5为本申请实施例提供的另外一种固件升级方法的流程示意图。该方法应用于图1示出的服务器。该实施例中与图2所示的实施例相同的内容,此处不再重复描述。该方法包括但不限于以下步骤内容:

501、处理器获取固件文件。

502、处理器根据硬盘的历史工作状态,确定固件的升级时间段。

可选地,在本实施例中,处理器获取到固件文件后,先对固件文件进行解析,若固件文件中的固件生效模式为智能生效,则处理器可以基于硬盘的工作状态,确定固件的升级时间段。其中,处理器基于硬盘的历史工作状态,确定固件的升级时间段,与上述硬盘确定升级时间段的方式类似,不再重复描述。应说明,若固件生效模式为立即生效,则处理器会直接将固件下发给硬盘,指示硬盘立即升级该固件。

503、处理器向硬盘发送固件文件和升级时间段。

可选地,处理器确定出固件的升级时间段后,可以将升级时间段发送给硬盘,这样硬盘在获得升级时间段后,可以在升级时间段内升级固件。

可选地,处理器可以在升级时间段的起始时刻到来时,向硬盘发送固件文件和升级时间段;也可以在确定出升级时间段之后,立即将固件文件和升级时间段发送给硬盘。本申请中只要升级时间段的起始时刻到来之前,将固件文件和升级时间段发送给硬盘,均在本申请的保护范围内。

应理解的是,处理器在向硬盘发送了固件文件和升级时间段后,会指示硬盘在该升级时间段内升级该固件文件中的固件。

504、在升级时间段内,硬盘升级固件。

示例性的,硬盘在获得了固件文件后,对该固件文件进行解析,得到固件文件;然后,硬盘基于固件的固件升级模式;通过该固件升级模式在该升级时间段内的任意一个时刻升级该固件。

可以看出,在本实施方式中,主机在获取到硬盘的固件文件后,先基于该硬盘升级新的固件的升级时长和硬盘的历史工作状态,确定出硬盘的升级时间段,即硬盘相对空闲的时间段。然后,将该固件文件和升级时间段一并发送给硬盘,这样硬盘就会在升级时间段内升级该固件,实现在升级固件时,就不需要暂停业务数据的传输,从而在升级固件时,不会影响固件的业务传输,对硬盘的业务数据的传输比较友好。

在本申请的一个实施方式中,在对历史工作状态进行如图4的划分后,划分出多个空闲时间段和多个繁忙时间段后,如图4所示,可以基于硬盘在每天内的各个预设时间段内的硬盘利用率历史,将每天划分为三个时间段,即时间段T1、时间段T2和时间段T3。应说明,硬盘在时间段T1内处于完全的空闲状态,不执行读写命令;在时间段T2内,处于完全的繁忙状态;在T3时间段内,硬盘处于间隔性空闲和间隔性繁忙状态,也就是一天中业务传输压力较低的时间段。基于图4示出的时间段的划分方式,叙述本申请的另一种固件升级方法。

参阅图6,图6为本申请实施例提供的另一种固件升级方法的流程示意图。该方法应用于图1示出的服务器。该实施例中与图2所示的实施例相同的内容,此处不再重复描述。该方法包括但不限于以下步骤内容:

S1、硬盘获取历史工作数据。

示例性的,硬盘可以周期性的获取历史工作数据,即去获取硬盘的历史业务传输(IO)情况。

S2、硬盘根据历史工作数据,将每天的工作状态划分为繁忙时间段和空闲时间段,其中,空闲时间段包括时间段T1和时间段T3,繁忙时间段包括时间段T2。

示例性的,硬盘根据周期性的获取到的业务IO情况,确定出历史工作状态。并结合图4的划分方式,可将每天的工作状态划分为时间段T1、时间段T2和时间段T3。

S3、当硬盘接收到硬件升级命令时,响应于硬件升级命令,从主机获取固件文件,固件文件包括固件生效模式、生效时长和固件升级模式。

S4、硬盘确定固件文件中的固件生效模式是否为智能生效模式。

若否,执行S5;

若是,执行S6。

S5、硬盘通过升级模式升级固件,并完成固件升级过程。

即当硬盘确定出该固件的升级不支持智能生效时,硬盘在下载了固件文件后,通过该固件文件中的固件升级模式立即生效该固件,并结束固件升级过程。

S6、硬盘确定当前时刻是否处于时间段T2内。

若当前时刻处于时间段T2,则硬盘继续等待,无需升级固件;然后,周期性的检测当前时刻是否处时间段T2内,直到当前时刻是否处于时间段T1或者时间段T3内;

若否,则执行S7。

S7、硬盘确定当前时刻是否处于时间段T1。

若是,执行S8;

若否、执行S9;

S8、硬盘确定时间段T1中是否存在升级时间段。

应理解的是,若当前时刻处于时间段T1内,则可确定当前时刻处于硬盘完全繁忙的时间段内,则可以从T1时间段内,找到升级时间段。即可以按照上述确定升级时间段,不再叙述。应理解的是,由于时间段T1是完全空闲的时间段,所以,当前时刻之后的一段时间内,硬盘完全处于空闲状态,则可选地,硬盘可以在当前时刻进行固件升级。

S9、硬盘确定当前时刻是否处于时间段T3;

若是,执行S10;

S10、硬盘确定时间段T3中是否存在升级时间段。

示例性的,当硬盘确定当前时刻处于空闲时间段T3内时,由于T3时间段是间隔性繁忙的时间段。故硬盘需要确定在当前时刻后,T3时间段是否还存在空闲时间段,若存在空闲时间段,则检测存在空闲时间段的数量。当检测到存在空闲时间段的数量大于第二阈值时,则可以在达到第二阈值的空闲时间段中升级该固件。举例来说,当第二阈值为3时,检测在当前时刻之后,时间段T3中是否还存在3个空闲时间段,若存在,则可以在将第4个空闲时间段作为升级时间段,在该升级时间段升级固件。比如,可在第4个空闲时间段的起始时刻升级该固件。

S11、硬盘在升级时间段内升级固件。

S12、硬盘完成固件升级过程。

可以看出,在本实施方式中,主机在获取到硬盘的固件文件后,先基于该硬盘升级新的固件的升级时长和硬盘的历史工作状态,确定出硬盘的升级时间段,即硬盘相对空闲的时间段。然后,将该固件文件和升级时间段一并发送给硬盘,这样硬盘就会在升级时间段内升级该固件,实现在升级固件时,就不需要暂停业务数据的传输,从而在升级固件时,不会影响固件的业务传输,对硬盘的业务数据的传输比较友好。

参阅图7,图7为本申请实施例提供的一种电子设备的示意图。

如图7所示,电子设备700包括存储器701、处理器702、通信接口703以及总线704。其中,存储器701、处理器702、通信接口703通过总线704实现彼此之间的通信连接。电子设备700可以为上述服务器。处理器702可以为上述服务器中的处理器,存储器701可以为上述服务器中的硬盘。

其中,存储器701可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器701可以存储程序;当存储器701中存储的程序被处理器702执行时,处理器702和通信接口703用于执行本申请实施例的固件升级方法的步骤。

处理器702可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,与存储器701相互配合,以实现本申请方法实施例的固件升级方法。

处理器702还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的固件升级方法可以通过处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器702还可以是通用处理器、数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器701,处理器702读取存储器701中的信息,与存储器701相互配合,以执行固件升级方法中的各个步骤。

通信接口703可以为收发器一类的收发装置,来实现电子设备700与其他设备或通信网络之间的通信;通信接口703也可以为输入-输出接口,来实现电子设备700与输入-输出设备之间的数据传输,其中,输入-输出设备包括但不限于键盘、鼠标、显示屏、U盘以及硬盘。总线704可包括在装置电子设备700各个部件(例如,存储器701、处理器702、通信接口703)之间传送信息的通路。

应注意,尽管图7所示电子设备700仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,电子设备700还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,电子设备700还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,电子设备700也可仅仅包括实现本申请实施例所必须的器件,而不必包括图6中所示的全部器件。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。

可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 服务器固件升级方法、装置、系统及计算机可读存储介质
  • 一种基于存储介质的固件自动升级方法及其存储介质
  • 远程固件升级方法、装置及计算机可读存储介质
  • 一种固件烧写组件及固件烧写方法、系统和存储介质
  • 服务器启动方法、装置、服务器及计算机可读存储介质
  • 无线设备、固件升级方法、固件服务器及可读存储介质
  • 服务器资源盒子FPGA固件升级方法、系统、终端及存储介质
技术分类

06120115576186