一种固件升级方法、装置、设备及存储介质与流程

文档序号:23858745发布日期:2021-02-05 15:48阅读:103来源:国知局
一种固件升级方法、装置、设备及存储介质与流程

[0001]
本申请涉及通信技术领域,具体涉及一种固件升级方法、装置、设备及存储介质。


背景技术:

[0002]
对于网络设备中的固件,经常需要用户提供固件升级包来对固件进行升级。
[0003]
以服务器设备为例,生产服务器的厂家会不定期的对服务器上的固件进行更新,然后用户可以在厂家的网站上下载到最新的固件升级包,对自己所使用的服务器上的固件进行升级。目前的服务器设备固件升级方案为:由专人在特定时间内,在pc上通过网络与bmc(baseboardmanagement controller,基板管理控制器)相连,进而将需要升级的固件升级包传送给bmc,让bmc进行相应的升级操作。
[0004]
上述用于升级的特定时间一般是在服务器较为空闲的时段,然而,一方面由于网络使用频率的不确定性,用户对于服务器较为空闲的时段也不能很好的确定;另一方面由于服务器较为空闲的时段一般是在深夜的某个时段,这对用户并不友好。


技术实现要素:

[0005]
本申请的目的是提供一种固件升级方法、装置、设备及存储介质,以能够在正确的时间段自动对设备运行的固件进行升级,从而节约人力物力。
[0006]
本申请第一方面提供一种固件升级方法,包括:
[0007]
采集设备运行指标对应的连续多个周期的运行数据;
[0008]
根据所述多个周期的运行数据预测所述设备在下一周期的空闲时段;
[0009]
在所述下一周期的空闲时段对所述设备进行固件升级。
[0010]
本申请第二方面提供一种固件升级装置,包括:
[0011]
采集模块,用于采集设备运行指标对应的连续多个周期的运行数据;
[0012]
预测模块,用于根据所述多个周期的运行数据预测所述设备在下一周期的空闲时段;
[0013]
升级模块,用于在所述下一周期的空闲时段对所述设备进行固件升级。
[0014]
本申请第三方面提供一种固件升级设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行以实现如第一方面中所述的方法。
[0015]
本申请第四方面提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如第一方面中所述的方法。
[0016]
相较于现有技术,本申请提供的固件升级方法、装置、设备及存储介质,通过采集设备运行指标对应的连续多个周期的运行数据;根据多个周期的运行数据预测设备在下一周期的空闲时段;然后在下一周期的空闲时段对设备进行固件升级。可见,本方案是通过对多个周期内设备运行状态趋势的整合进而预测下一周期内设备何时处于较空闲时段,从而在下一个周期内自动在该空闲时段内进行固件升级,因此通过本方案能够在正确的时间段
自动对设备运行的固件进行升级,从而节约人力物力。
附图说明
[0017]
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0018]
图1示出了本申请的一些实施方式所提供的一种固件升级方法的流程图;
[0019]
图2示出了个人pc的cpu利用率数据统计示意图;
[0020]
图3示出了本申请中步骤s102的一种实施方式的流程图;
[0021]
图4示出了本申请中利用运行状态曲线最小值得到设备空闲时段的示意图;
[0022]
图5示出了本申请中步骤s102的另一种实施方式的流程图;
[0023]
图6示出了本申请中对周期内得到的运行数据进行量化处理的示意图;
[0024]
图7示出了本申请中量化叠加后的cpu利用率统计结果的示意图;
[0025]
图8示出了本申请中固件自动升级组网的示意图;
[0026]
图9示出了本申请的一些实施方式所提供的一种固件升级装置的示意图;
[0027]
图10示出了本申请的一些实施方式所提供的一种固件升级设备的示意图。
具体实施方式
[0028]
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0029]
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
[0030]
另外,术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0031]
服务器设备有多种用途,例如专门用作存储的服务器、用作计算节点的服务器等。对于这些服务器设备,通常情况下固件升级都是由专人在特定时间内进行,这个特定时间可以是当前服务器被使用或被访问最少的时候。然而,人为确定的这个特定时间有时并不准确,在不准确的时间对固件进行升级会给用户带来很大的困扰。
[0032]
有鉴于此,本申请实施例提供一种固件升级方法及装置、一种固件升级设备及一种计算机可读存储介质,下面结合附图进行说明。
[0033]
请参考图1,其示出了本申请的一些实施方式所提供的一种固件升级方法的流程图,如图所示,该方法具体可以包括以下步骤:
[0034]
步骤s101:采集设备运行指标对应的连续多个周期的运行数据。
[0035]
步骤s102:根据多个周期的运行数据预测设备在下一周期的空闲时段。
[0036]
步骤s103:在下一周期的空闲时段对设备进行固件升级。
[0037]
下面对上述固件升级方法进行具体介绍。
[0038]
由于人们在工作生活中会因为习惯或是工作制度等有规律的进行一系列活动,这些活动在一定的时间内会呈现一定的周期性。如图2所示是个人工作pc(个人电脑)的cpu利用率五天(星期一至星期五)的数据统计情况,由于21:00至次日8:30为下班时间,因此cpu利用率偏低,从曲线来看,每个工作日的cpu利用率都呈现相同的规律。
[0039]
同样,服务器运行服务于用户,在运行过程中也存在一定的统计规律,包括cpu利用率、网络数据流量、网站访问量等。通过对服务器相关数据的统计和曲线拟合,可以统计出服务器在某个时段的运行状态,从而可以利用当前的运行规律预测服务器之后的运行状态。
[0040]
在步骤s101中,首先根据设备的不同用途确定要统计的运行指标,运行指标反映设备的主要功能,并且运行指标对应的运行数据具有一定的周期性。例如,专门用作存储的服务器可以将输入输出(英文:input/output,缩写:i/o)读写量作为运行指标,用作计算节点的服务器可以将cpu利用率和网页访问量中的任一个或多个作为运行指标。
[0041]
因此,根据本申请的一些实施方式中,设备的运行指标可以包括cpu利用率、i/o读写量和网页访问量等。
[0042]
在步骤s101中,确定要统计的运行指标之后,开始采集运行指标对应的运行数据,并且连续采集多个周期。单个周期可以设置为一天,也可以设置为一周,本申请不做限定。
[0043]
以运行指标为服务器的cpu利用率为例来说明运行数据的采集过程:
[0044]
运行数据采集以24小时为一个周期,其主要依据在于个人在正常访问服务器时是以一天为周期的。需要在初始阶段即了解服务器的应用场景,从而确认实际运行数据采集的周期时间为5天。采集了每一天的cpu利用率,并以30min为一个步径(step)将24小时内的运行数据整合成48份,每一份运行数据代表每30min内平均的cpu利用率,最终得到如图2所示的柱形图。
[0045]
当完成n个周期的运行数据采集之后,进行步骤s102,根据n个周期的运行数据预测设备在下一周期的空闲时段,也就是预测设备在第n+1周期的空闲时段。
[0046]
步骤s102中,当完成n个周期的运行数据采集之后,需要进行运行数据整合,整合过程中可以利用多阶函数最小二乘法进行拟合,即曲线拟合。运行数据整合完成后可以预测设备在n+1周期的空闲时段。
[0047]
步骤s102中,运行数据整合的实施方式可以有多种,具体介绍如下。
[0048]
根据本申请的一些实施方式中,如图3所示,步骤s102可以实现为:
[0049]
s201:针对运行指标的单个周期的运行数据,利用多阶函数最小二乘法进行拟合,得到每一个周期对应的运行状态曲线;
[0050]
s202:针对每一个周期,根据运行状态曲线确定周期对应的空闲时段;
[0051]
具体的,s202可以包括:针对每一个周期,将该周期对应的运行状态曲线的最小值作为该周期对应的空闲时刻;将以上述空闲时刻为中间时刻的第二预设时长的时段作为该周期对应的空闲时段。
[0052]
如图4所示,例如周期(一天)对应的运行状态曲线的最小值为凌晨03:20分,03:20分为空闲时刻,第二预设时长例如为40分钟,则03:00至03:40该周期对应的空闲时段,如图
中的t时段。
[0053]
s203:对多个周期对应的空闲时段求交集;
[0054]
例如,星期一对应的空闲时段t1为03:00至03:40,星期二对应的空闲时段t2为03:05至03:45,星期三对应的空闲时段t3为03:03至03:43,星期四对应的空闲时段t4为03:10至03:50,星期五对应的空闲时段t5为03:07至03:47,对上述各空闲时段求交集,得到交集时段为03:10至03:40。
[0055]
s204:若存在交集时段且该交集时段符合第一预设时长,则将该交集时段作为设备在下一周期的空闲时段;
[0056]
例如,第一预设时长为30分钟,求得的交集时段为03:10至03:40符合第一预设时长,则预测星期六的空闲时段为03:10至03:40。
[0057]
s205:若不存在交集时段,则将两两周期的空闲时段求交集,并统计各个周期与其它周期的空闲时段存在交集的个数;若单个周期对应的交集个数大于预设个数阈值,则将所述单个周期对应的空闲时段作为所述设备在下一周期的空闲时段。
[0058]
例如,星期一对应的空闲时段t1为03:00至03:40,星期二对应的空闲时段t2为02:45至03:25,星期三对应的空闲时段t3为03:26至04:06,星期四对应的空闲时段t4为03:45至04:25,星期五对应的空闲时段t5为03:27至04:07,对上述各空闲时段求交集,没有得到交集时段,此时将上述各空闲时段每两个之间求交集,预设个数阈值为2,显然星期一对应的空闲时段是存在交集最多的,交集个数为3,大于预设个数阈值2,则将星期一对应的空闲时段作为星期六的空闲时段,即预测的星期六的空闲时段为03:00至03:40。若实际应用中存在多个交集个数大于预设个数阈值的周期,则可以任取其中一个周期对应的空闲时段作为设备在下一周期的空闲时段。
[0059]
根据本申请的一些实施方式中,上述步骤s205还可以实现为:若当前统计的多个周期之间的不存在共同的交集时段,则可以在当前统计的多个周期中选取一定比例数量的周期对应的空闲时段求交集时段,确定是否存在交集时段,若存在且该交集时段符合第一预设时长,则将该交集时段作为设备在下一周期的空闲时段。
[0060]
例如,当前统计的周期为5个,当这5个周期的空闲时段之间不存在交集时段时,按照五分之四的比例,选取这5个周期中的4个周期,对这4个周期的空闲时段求交集时段,若存在且该交集时段符合第一预设时长,则将该交集时段作为设备在下一周期的空闲时段。本实施方式可以去除一些特殊情况导致的当前统计的周期的空闲时段之间不存在交集时段的问题。
[0061]
通过本实施方式可以精确预测设备在下一周期的空闲时段,有利于设备固件升级。上述第一预设时长和第二预设时长的设置,可以根据设备固件升级所需的时间及实际经验进行设置。
[0062]
根据本申请的另一些实施方式中,如图5所示,步骤s102还可以实现为:
[0063]
s301:对每个周期的运行数据进行量化处理;
[0064]
具体的,假设统计的单一周期的运行数据如图6所示,选取该周期中最小的数值v4,将v4分为若干等份v1、v2、v3、v4

v7分别与相除,得到的倍数四舍五入。将v1至v7分别与相除后得到的整数作为当前周期的量化结果。
[0065]
s302:将各周期量化处理后的运行数据进行对应叠加,形成新的运行数据;
[0066]
s303:利用多阶函数最小二乘法对新的运行数据进行拟合,得到新的运行状态曲线,将新的运行状态曲线的最小值作为新的空闲时刻;
[0067]
s304:将以新的空闲时刻为中间时刻的第二预设时长的时段作为设备在下一周期的空闲时段。
[0068]
例如,图7所示为量化叠加后的cpu利用率统计结果。
[0069]
通过本实施方式可以精确预测设备在下一周期的空闲时段,有利于设备固件升级。上述第二预设时长的设置,可以根据设备固件升级所需的时间及实际经验进行设置。
[0070]
在步骤s102中预测出设备在下一周期的空闲时段后,继续进行步骤s103,当设备运行到下一周期的空闲时段内时,对设备进行固件升级。
[0071]
具体的,步骤s103可以实现为:当设备运行到下一周期后,在预测的空闲时段中,获取最新的固件版本与设备当前运行的固件版本进行比对;若最新的固件版本与设备当前运行的固件版本一致,则不进行升级;否则进行升级。
[0072]
例如,可以在预测的空闲时段中设置一个预设时刻,在该预设时刻获取最新的固件版本与设备当前运行的固件版本进行比对,该预设时刻可以设置为空闲时段的起始时刻到空闲时段总时长的1/2处,这之间的任意时刻都可以为预设时刻,空闲时段剩余的1/2时长可以用来进行固件升级。
[0073]
例如,如图8所示,当有固件升级需求的服务器运行到下一周期的空闲时段中的预设时刻,自动触发服务器bmc向存放升级所需固件的服务器发送固件升级请求,从固件存放服务器获取到的最新固件版本,若最新固件版本比服务器当前运行的固件版本新,则将服务器的当前固件在空闲时段内升级为最新固件。当然也可以指定版本进行自动升级。还可以设置自动的升级时间间隔,只有在达到时间间隔才能进行动态升级,否则即使达到服务器预测空闲时段也不进行动态升级,例如用户需求每个月升级一次服务器固件,那么当月已经升级之后,要等到下个月再进行下一次升级,因而在当月之内即使满足升级条件也不升级,用户可以根据实际需求设置具体的升级间隔,本申请不做限定。本方案自动实现了服务器固件版本升级,同时避免了在业务繁忙的阶段进行升级。
[0074]
本申请实施例提供的上述固件升级方法,通过采集设备运行指标对应的连续多个周期的运行数据;根据多个周期的运行数据预测设备在下一周期的空闲时段;然后在下一周期的空闲时段对设备进行固件升级。可见,本方案是通过对多个周期内设备运行状态趋势的整合进而预测下一周期内设备何时处于较空闲时段,从而在下一个周期内自动在该空闲时段内进行固件升级,因此通过本方案能够在正确的时间段自动对设备运行的固件进行升级,从而节约人力物力。
[0075]
在上述的实施例中,提供了一种固件升级方法,与之相对应的,本申请还提供了一种固件升级装置。本申请实施例提供的固件升级装置可以实施上述固件升级方法。请参考图9,其示出了本申请的一些实施方式所提供的一种固件升级装置的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
[0076]
如图9所示,上述固件升级装置10,可以包括:
[0077]
采集模块101,用于采集设备运行指标对应的连续多个周期的运行数据;
[0078]
预测模块102,用于根据所述多个周期的运行数据预测所述设备在下一周期的空
闲时段;
[0079]
升级模块103,用于在所述下一周期的空闲时段对所述设备进行固件升级。
[0080]
在本申请实施例的一些实施方式中,预测模块102具体用于:
[0081]
针对所述运行指标的单个周期的运行数据,利用多阶函数最小二乘法进行拟合,得到每一个周期对应的运行状态曲线;
[0082]
针对每一个周期,根据所述运行状态曲线确定所述周期对应的空闲时段;
[0083]
对多个所述周期对应的空闲时段求交集,若存在交集时段且该交集时段符合第一预设时长,则将该交集时段作为所述设备在下一周期的空闲时段;
[0084]
对多个所述周期对应的空闲时段求交集,若不存在交集时段,则将两两周期的空闲时段求交集,并统计各个周期与其它周期的空闲时段存在交集的个数;若单个周期对应的交集个数大于预设个数阈值,则将所述单个周期对应的空闲时段作为所述设备在下一周期的空闲时段。
[0085]
在本申请实施例的一些实施方式中,预测模块102具体用于:
[0086]
针对每一个周期,将所述周期对应的运行状态曲线的最小值作为所述周期对应的空闲时刻;
[0087]
将以所述空闲时刻为中间时刻的第二预设时长的时段作为所述周期对应的空闲时段。
[0088]
在本申请实施例的一些实施方式中,预测模块102具体用于:
[0089]
对每个所述周期的运行数据进行量化处理;
[0090]
将各周期量化处理后的运行数据进行叠加,形成新的运行数据;
[0091]
利用多阶函数最小二乘法对新的运行数据进行拟合,得到新的运行状态曲线,将所述新的运行状态曲线的最小值作为新的空闲时刻;
[0092]
将以所述新的空闲时刻为中间时刻的第二预设时长的时段作为所述设备在下一周期的空闲时段。
[0093]
在本申请实施例的一些实施方式中,升级模块103具体用于:
[0094]
当所述设备运行到下一周期后,在预测的所述空闲时段中,获取最新的固件版本与所述设备当前运行的固件版本进行比对;
[0095]
若所述最新的固件版本与所述设备当前运行的固件版本一致,则不进行升级;否则进行升级。
[0096]
在本申请实施例的一些实施方式中,所述运行指标包括cpu利用率、i/o读写量和网页访问量。
[0097]
本申请的上述实施例提供的固件升级装置与本申请实施例提供的固件升级方法出于相同的发明构思,具有相同的有益效果。
[0098]
本申请实施方式还提供一种与前述实施方式所提供的固件升级方法对应的固件升级设备,该设备可以是用于客户端的电子设备,例如手机、笔记本电脑、平板电脑、台式机电脑等,以执行上述固件升级方法。
[0099]
请参考图10,其示出了本申请的一些实施方式所提供的一种固件升级示意图。如图10所示,所述固件升级设备20包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述
处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的固件升级方法。
[0100]
其中,存储器201可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
[0101]
总线202可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述固件升级方法可以应用于处理器200中,或者由处理器200实现。
[0102]
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
[0103]
本申请实施例提供的固件升级设备与本申请实施例提供的固件升级方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
[0104]
本申请实施方式还提供一种与前述实施方式所提供的固件升级方法对应的计算机可读存储介质,该计算机可读存储介质可以为光盘,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的固件升级方法。
[0105]
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
[0106]
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的固件升级方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
[0107]
最后应说明的是:附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换
的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0108]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0109]
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0110]
以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1