本发明涉及交换机升级,尤其涉及一种基于区块差异的交换机升级方法、装置、设备及存储介质。
背景技术:
1、现有的交换机升级方法为整个固件烧写到flash储存芯片(闪存芯片)中,由于flash储存芯片的特性,写入速度很慢,导致即使新版本的固件改动很小,但是整体的升级等待时间也十分漫长,交换机不能正常工作的时间长,对整个网络环境的影响较大,同时,升级过程中对flash多个储存区块进行擦写的操作也会损耗flash芯片的使用寿命。
2、所述内容仅用于辅助理解本发明的技术方案,并不代表承认所述内容是现有技术。
技术实现思路
1、本发明的主要目的在于提供一种基于区块差异的交换机升级方法、装置、设备及存储介质,旨在解决现有技术中在升级交换机的过程中等待时间长,影响网络环境时间较长,且升级过程中需擦写多个flash储存区块,容易损害flash芯片使用寿命的技术问题。
2、为实现所述目的,本发明提供了一种基于区块差异的交换机升级方法,所述基于区块差异的交换机升级方法应用于交换机,所述交换机中设有存储芯片,所述存储芯片包括若干大小相同的存储区块,所述基于区块差异的交换机升级方法包括以下步骤:
3、在接收到升级指令时,获取预设存储位置下的升级固件;
4、根据所述存储芯片中存储区块的大小,对所述升级固件进行划分,得到若干固件分块,所述固件分块与所述存储区块一一对应;
5、对所述固件分块进行哈希特征码计算,得到各固件分块的固件特征码;
6、对所述存储区块进行哈希特征码计算,得到各存储区块的存储特征码;
7、将所述各固件分块的固件特征码与所述各固件分块对应存储区块的存储特征码进行对比,确定是否存在差异固件分块;
8、在存在差异固件分块时,将所述差异固件分块写入所述差异固件分块对应的存储区块。
9、可选地,所述将所述各固件分块的固件特征码与所述各固件分块对应存储区块的存储特征码进行对比,确定是否存在差异固件分块,包括:
10、获取当前对比次数,根据所述当前对比次数,确定固件分块序号;
11、根据所述固件分块序号,在所述固件分块中确定当前固件分块,并在所述存储区块中确定所述当前固件分块对应的当前存储区块;
12、将所述当前固件分块的固件特征码与所述当前存储区块的存储特征码进行对比,确定所述当前固件分块的固件特征码与所述当前存储区块的存储特征码是否相同;
13、在所述当前固件分块的固件特征码与所述当前存储区块的存储特征码不相同时,确定存在差异固件分块。
14、可选地,所述在存在差异固件分块时,将所述差异固件分块的固件特征码写入所述差异固件分块对应的存储区块,包括:
15、在存在差异固件分块时,根据所述当前固件分块确定所述差异固件分块,根据所述当前存储区块确定差异存储区块;
16、将所述差异固件分块写入所述差异存储区块;
17、更新所述当前对比次数,将所述新的当前对比次数与预设对比阈值进行比较;
18、在所述当前对比次数小于等于预设对比阈值时,根据所述新的当前对比次数,返回执行根据当前对比次数,确定固件分块序号的步骤。
19、可选地,所述更新所述当前对比次数,将所述新的当前对比次数与预设对比阈值进行比较之后,还包括:
20、在所述当前对比次数大于所述预设对比阈值时,确定升级完成。
21、可选地,所述将所述当前固件分块的固件特征码与所述当前存储区块的存储特征码进行对比,确定所述当前固件分块的固件特征码与所述当前存储区块的存储特征码是否相同之后,还包括:
22、在所述当前固件分块的固件特征码与所述当前存储区块的存储特征码相同时,确定不存在差异固件分块,返回执行更新所述当前对比次数,将所述新的当前对比次数与预设对比阈值进行比较的步骤。
23、可选地,所述对所述固件分块进行哈希特征码计算,得到各固件分块的固件特征码,包括:
24、获取所述各固件分块的固件二进制数据;
25、根据所述固件二进制数据与预设数据长度,生成所述各固件分块的固件摘要数据;
26、将所述固件摘要数据进行十六进制转换,得到所述各固件分块的固件特征码。
27、可选地,所述对所述存储区块进行哈希特征码计算,得到各存储区块的存储特征码,包括:
28、读取所述各存储区块的存储二进制数据;
29、根据所述存储二进制数据与预设数据长度,生成所述各存储区块的存储摘要数据;
30、将所述存储摘要数据进行十六进制转换,得到所述各存储区块的存储特征码。
31、此外,为实现所述目的,本发明还提出一种基于区块差异的交换机升级装置,所述基于区块差异的交换机升级装置包括:
32、分区模块,用于在接收到升级指令时,获取预设存储位置下的升级固件;
33、所述分区模块,还用于根据存储芯片中存储区块的大小,对所述升级固件进行划分,得到若干固件分块,其中,各固件分块具有对应的存储区块;
34、对比模块,用于对所述固件分块进行哈希特征码计算,得到各固件分块的固件特征码;
35、所述对比模块,还用于对所述存储区块进行哈希特征码计算,得到各存储区块的存储特征码;
36、所述对比模块,还用于将所述各固件分块的固件特征码与所述各固件分块对应存储区块的存储特征码进行对比,确定是否存在差异固件分块;
37、升级模块,用于在存在差异固件分块时,将所述差异固件分块写入所述差异固件分块对应的存储区块。
38、此外,为实现所述目的,本发明还提出一种基于区块差异的交换机升级设备,所述基于区块差异的交换机升级设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于区块差异的交换机升级程序,所述基于区块差异的交换机升级程序配置为实现如上文所述的基于区块差异的交换机升级方法的步骤。
39、此外,为实现所述目的,本发明还提出一种存储介质,所述存储介质上存储有基于区块差异的交换机升级程序,所述基于区块差异的交换机升级程序被处理器执行时实现如上文所述的基于区块差异的交换机升级方法的步骤。
40、在本发明中,在接收到升级指令时,获取预设存储位置下的升级固件,根据存储芯片中存储区块的大小,对升级固件进行划分,得到若干固件分块,对固件分块进行哈希特征码计算,得到各固件分块的固件特征码,对存储区块进行哈希特征码计算,得到各存储区块的存储特征码,将各固件分块的固件特征码与各固件分块对应存储区块的存储特征码进行对比,确定是否存在差异固件分块,在存在差异固件分块时,将所述差异固件分块的固件特征码写入所述差异固件分块对应的存储区块。相较于传统升级方式将整个固件烧写到flash储存芯片中,升级等待时间长且容易损耗芯片寿命,本发明针对升级固件按照flash储存区块大小进行分块,比较固件分块和flash储存区块的md5特征码,只写入特征码有差异的部分,可以减少升级的等待时间,减轻升级过程中对网络环境的影响,自动跳过没有变更的储存区块,减少对储存区块的擦写,避免损耗flash存储芯片的使用寿命。