1.本发明涉及计算机技术领域,特别是涉及一种冗余固件的数据同步方法、装置及介质。
背景技术:2.在存储、服务器、云数据中心、信息技术(information technology,it)领域的设备芯片中普遍使用固件,例如基板管理控制器(baseboard management controller,bmc)、基本输入输出系统(basic input output system,bios)、各种专用芯片固件。随着固件可靠性的要求不断提升,双/多fw备份、单固件损坏支持故障切换冗余的设计逐渐成为标准配置。
3.实现固件冗余的方式有两种,一种是固件双flash,一种是单flash双分区,无论哪种方式目前实现了固件(firmware,fw)二进制文件(image分区)等只读分区的备份和冗余。对用于配置分区等在运行过程中可修改分区的备份和冗余,仅实现了固件冗余,固件和可修改分区一一对应,若该固件需要切换至另一个fw分区,其原固件对应的可修改分区内的数据未同步至当前固件的可修改分区,在切换至另一个固件时,需要重新开始该修改分区的数据记录,导致原fw分区的数据会被丢失,冗余的两个fw分区内的可修改分区的数据未达到一致性,降低用户的体验感。
4.因此,如何实现冗余固件的数据一致性是本领域技术人员亟需要解决的。
技术实现要素:5.本发明的目的是提供一种冗余固件的数据同步方法、装置及介质,实现每个可修改分区的数据相同,保留相关的数据,在切换至另一个fw分区后,通过访问共享区域的可修改分区以实现数据的一致性。
6.为解决上述技术问题,本发明提供一种冗余固件的数据同步方法,包括:建立所述冗余固件的共享区域;将所述冗余固件对应的可修改分区添加至所述共享区域以解除所述可修改分区与所述冗余固件的映射关系,其中,添加至所述共享区域后的所述可修改分区为冗余可修改分区;若当前固件存在异常情况时,切换至待同步固件,并通过访问所述共享区域的所述可修改分区以实现数据一致性。
7.优选地,所述可修改分区为所述冗余固件内的flash分区内的运行过程中用于修改参数的分区,所述可修改分区至少包括conf分区和log分区。
8.优选地,所述当前固件的所述异常情况的确定过程,包括:获取当前预设时间对应的所述当前固件的工作状态和下一个预设时间对应的工作状态;当所述工作状态发生变化时,确定所述当前固件的当前状态;
当所述当前状态为固件升级或故障切换时,确定所述当前固件存在所述异常情况。
9.优选地,所述冗余可修改分区的数据同步,包括:接收当前的待配置数据;将所述待配置数据写入所述共享区域的所述冗余可修改分区。
10.优选地,所述将所述待配置数据写入所述共享区域的所述冗余可修改分区,包括:通过异步同步处理方式或阻塞式同步处理方式将所述待配置数据写入至所述冗余可修改分区。
11.优选地,通过异步同步处理方式将所述待配置数据写入至所述冗余可修改分区,包括:将所述待配置数据默认写入所述冗余可修改分区内其中一个可修改分区;判断所述可修改分区的数据状态是否发生变化;若发生变化,则启动定时器,定时触发所述可修改分区的所述待配置数据覆盖写入所述冗余可修改分区内其他可修改分区。
12.优选地,通过所述阻塞式同步处理方式将所述待配置数据写入至所述冗余可修改分区,包括:在预设时间内将所述待配置数据分别写入至所述冗余可修改分区。
13.优选地,所述冗余可修改分区的数量与所述冗余固件的数量相同。
14.优选地,在所述切换至所述待同步固件之前,还包括:获取所述共享区域内的所述冗余可修改分区的配置信息;判断各所述配置信息是否相同;若相同,则进入至所述切换至所述待同步固件的步骤。
15.优选地,还包括:获取所述冗余固件分别对应的只读分区;若所述当前固件存在所述异常情况时,切换至所述待同步固件以访问对应的只读分区。
16.优选地,所述只读分区为所述冗余固件内的flash分区内的运行过程中用于读取、运行参数的分区,所述只读分区至少包括checksun分区和image分区。
17.优选地,当添加至所述共享区域后的所述可修改分区为一个时,在所述将所述冗余固件对应的可修改分区添加至所述共享区域之后,还包括:若所述当前固件存在所述异常情况时,切换至所述待同步固件以访问对应的所述只读分区。
18.优选地,当所述冗余固件的数量大于两个时,所述切换至待同步固件,包括:预先对所述冗余固件进行优先级排序;若所述当前固件存在所述异常情况时,根据所述优先级顺序切换至所述冗余固件内除所述当前固件之外的其他固件作为所述待同步固件。
19.优选地,所述通过访问所述共享区域的所述可修改分区,包括:默认访问所述共享区域内所述待同步固件对应的所述可修改分区;将所述冗余可修改分区设定分区优先级顺序;
若所述待同步固件对应的所述可修改分区未配置成功时,则按照所述分区优先级顺序访问所述冗余可修改分区内的其他所述可修改分区。
20.优选地,还包括:获取客户端的升级需求信息,其中所述升级需求信息至少为保留配置选项或删除配置选项;当所述升级需求信息为所述删除配置选项时,则将所述可修改分区的数据擦除恢复至出厂状态。
21.优选地,还包括:通过显示界面将所述升级需求信息进行显示以便于用户查看。
22.优选地,还包括:当各所述配置信息不相同时,则将各所述配置信息与所述待配置数据进行比较;在各所述配置信息中选取与所述待配置数据相同的配置信息对应的可修改分区作为最终可修改分区;将所述最终可修改分区对应的固件作为所述待同步固件,并进入至所述切换至所述待同步固件的步骤。
23.为解决上述技术问题,本发明还提供一种冗余固件的数据同步装置,包括:建立模块,用于建立所述冗余固件的共享区域;添加模块,用于将所述冗余固件对应的可修改分区添加至所述共享区域以解除所述可修改分区与所述冗余固件的映射关系,其中,添加至所述共享区域后的所述可修改分区为冗余可修改分区;切换模块,用于若当前固件存在异常情况时,切换至待同步固件,并通过访问所述共享区域的所述可修改分区以实现数据一致性。
24.为解决上述技术问题,本发明还提供一种冗余固件的数据同步装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述所述的冗余固件的数据同步方法的步骤。
25.为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的冗余固件的数据同步方法的步骤。
26.本发明提供的一种冗余固件的数据同步方法,包括:建立冗余固件的共享区域;将冗余固件对应的可修改分区添加至共享区域以解除可修改分区与冗余固件的映射关系,其中,可修改分区为冗余可修改分区;若当前固件存在异常情况时,切换至待同步固件,并通过访问共享区域的可修改区以实现数据一致性。该方法通过建立共享区域,使其固件可以访问共享区域的任意可修改分区,解除固件和可修改分区的固定映射关系,避免现有的切换至另一个fw分区,原固件对应的可修改分区内的数据未同步至当前固件的可修改分区导致数据丢失的问题。共享区域的可修改分区为冗余可修改分区,实现每个可修改分区的数据相同,保留相关的数据,在切换至另一个fw分区后,通过访问共享区域的可修改分区以实现数据的一致性。
27.另外,本发明还提供了一种冗余固件的数据同步装置及介质,具有如上述冗余固
件的数据同步方法相同的有益效果。
附图说明
28.为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本发明实施例提供的一种冗余固件的数据同步方法的流程图;图2为本发明实施例提供的一种冗余固件的数据同步装置的结构图;图3为本发明实施例提供的另一种冗余固件的数据同步装置的结构图。
具体实施方式
30.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
31.本发明的核心是提供一种冗余固件的数据同步方法、装置及介质,实现每个可修改分区的数据相同,保留相关的数据,在切换至另一个fw分区后,通过访问共享区域的可修改分区以实现数据的一致性。
32.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
33.需要说明的是,单固件中的flash分区分为两种类型,运行中不变的分区和运行中可变的分区。例如conf分区作为配置分区,在产品运行过程中客户、服务可以修改配置,属于可变分区,也就是本发明提到的可修改分区。image是发布的可执行程序,在产品运行过程中,只能读写、运行,不能修改,属于不变分区,也就是本发明提到的只读分区。不变的分区在fw升级刷写之后,冗余固件的分区可以保持一致。
34.图1为本发明实施例提供的一种冗余固件的数据同步方法的流程图,如图1所示,该方法包括:s11:建立冗余固件的共享区域;s12:将冗余固件对应的可修改分区添加至共享区域以解除可修改分区与冗余固件的映射关系,其中,添加至共享区域后的可修改分区为冗余可修改分区;s13:若当前固件存在异常情况时,切换至待同步固件,并通过访问共享区域的可修改分区以实现数据一致性。
35.具体地,建立冗余固件的共享区域,需要说明的是,共享区域可以是任何一个运行的fw均可以访问到该区域。使得升级切换分区/flash或者单flash倒换触发故障切换flash,不会导致数据过时以及不一致。需要说明的是,本发明实施例提供的冗余固件的数据同步方法,适用于一个固件的双flash分区或者单flash双分区,在此不做限定,两种情况均适用。
36.将冗余器件对应的可修改分区添加至共享区域,可以理解的是,将冗余器件的可修改分区添加至共享区域,由于只读区域在现有的冗余固件中已经保持了数据的一致性,
是在出厂时设备固件的只读区域已经设定,无需数据参数变化,故只需要对可修改区域进行添加至共享区域。例如固件1和固件2,分别对应可修改分区a和可修改分区b。将可修改分区a和b添加至共享区域,使得任何一个固件均可以看到可修改a和可修改分区b。现有的固件1仅能与可修改分区a建立映射关系,本技术将固件和可修改分区对应的映射关系进行解除。当固件1发生故障或者需要升级时,则转换至固件2,其固件2对应的分区可以是共享区域的任意一个可修改分区。为了不降低flash的冗余度,在双fw可访问的共享区域也设置为双分区冗余,即添加至共享区域后的可修改分区为冗余可修改分区。
37.同样,一个固件对应的可修改分区的种类数量可以是一个或多个,可根据实际情况设定即可,在此不做限定。若当前固件存在异常情况时,则切换至待同步固件,并通过访问共享区域的可修改分区以实现数据一致性。待同步固件可以是除当前固件之外的任意一个冗余固件。访问共享区域的可修改分区,可以访问原对应的待同步固件的可修改分区,也可以访问其他任意一个可修改分区,在此不限定。
38.本发明实施例提供的一种冗余固件的数据同步方法,包括:建立冗余固件的共享区域;将冗余固件对应的可修改分区添加至共享区域以解除可修改分区与冗余固件的映射关系,其中,可修改分区为冗余可修改分区;若当前固件存在异常情况时,切换至待同步固件,并通过访问共享区域的可修改区以实现数据一致性。该方法通过建立共享区域,使其固件可以访问共享区域的任意可修改分区,解除固件和可修改分区的固定映射关系,避免现有的切换至另一个fw分区,原固件对应的可修改分区内的数据未同步至当前固件的可修改分区导致数据丢失的问题。共享区域的可修改分区为冗余可修改分区,实现每个可修改分区的数据相同,保留相关的数据,在切换至另一个fw分区后,通过访问共享区域的可修改分区以实现数据的一致性。
39.在上述实施例的基础上,可修改分区为冗余固件内的flash分区内的运行过程中用于修改参数的分区,可修改分区至少包括conf分区和log分区。
40.需要说明的是,可修改分区是在产品运行过程中客户、服务均可以修改配置参数的一种分区,至少包括conf分区和log分区。conf是配置文件config的简写,多用于存取硬件驱动程序的安装配置信息。config是web配置命令,web容器在初始化时使用一个servletconfig(即config)对象向java服务器页面(java server pages,jsp)页面传递信息,此配置信息包括初始化参数(在当前web应用的应用部署描述文件web.xml中定义)以及表示servlet或jsp页面所属web应用的servletcontext对象。config对象对应于javax.servlet.servletconfig类,此类位于servlet-api.jar包中。
41.配置文件的三种类型:1、本地用户配置文件。在用户第一次登录到计算机上时被创建,这个本地用户配置文件被储存在计算机的本地硬盘驱动器上。任何对本地用户配置文件所作的更改都只对发生改变的计算机产生作用。
42.2、漫游用户配置文件。一个本地配置文件的副本被复制及储存在网络上的一个服务器共享上。当用户每次登录到网络上的任一台计算机上时,这个文件都会被下载,并且当用户注销时,任何对漫游用户配置文件的更改都会与服务器的拷贝同步。漫游用户配置文件要求这台计算机是windows nt域或active directory的一个成员。
43.3、强制用户配置文件。是一种特殊类型的配置文件,使用它管理员可为用户指定
特殊的设置。只有系统管理员才能对强制用户配置文件作修改。当用户从系统注销时,用户对桌面做出的修改就会丢失。
44.log分区是系统日志记录分区,如果设立了这一单独的分区,这样即使系统的日志文件出现了问题,它们也不会影响到操作系统的主分区。
45.另外,可修改分区内的conf分区和log分区对应的偏移量不做限定,可以根据实际情况设定即可。
46.在上述实施例的基础上,步骤s12中提到添加至共享区域后的可修改分区为冗余可修改分区,故作为一种实施例,冗余可修改分区的数据同步,包括:接收当前的待配置数据;将待配置数据写入共享区域的冗余可修改分区。
47.具体地,固件中的冗余可修改分区支持数据同步,在固件内部做策略,将变更的数据在冗余互为备份的可修改分区之间数据同步以确保数据的一致性。接收当前的待配置数据,再将待配置数据写入共享区域的冗余可修改分区。需要说明的是,该待配置数据在切换至待同步固件之前已经存储写入至冗余可修改分区。对应的写入方法不做限定,只要将待配置数据写入至共享区域的冗余可修改分区即可。
48.作为一种实施例,对应的写入方法可以是异步同步方式或者阻塞式同步方式等,将待配置数据写入共享区域的冗余可修改分区,包括:通过异步同步处理方式或阻塞式同步处理方式将待配置数据写入至冗余可修改分区。
49.具体地,异步概念是执行一个操作时,触发输入输出(input output,io)操作后不会导致请求进程阻塞,也就是说数据从内核到用户缓冲区的整个过程都是交给内核去完成的,用户进程无需阻塞一直等到io操作完成,它只要执行一个操作触发io操作后就可以继续执行其他操作,直到io操作结束后,等到被通知就可以了。所以从根本来说异步从等待数据到把数据从内核空间拷贝到用户空间的过程中没有阻塞,只有发起该操作,和被通知该操作完成。所以异步是真正的没有阻塞在io操作上的。本发明的异步同步方式是采用异步的方式,当有一个进程写入数据时,另一个进程检测到则进行写入。
50.阻塞式同步方式,是在同步的基础上,执行一个操作后,进程触发io操作(其中要么就是等待数据的到达,也就是阻塞模式;要么通过轮询去查看数据是否到达也就是非阻塞忙轮询模式的)接着数据到达后,便阻塞用户进程一直到io操作完成,即第二步骤为阻塞。写入如果是在socket阻塞的情况下就是用户进程有多少数据就要将所有数据都写入内核的可写缓冲区中才返回,这时候就是多路复用中为什么要将socket设置为非阻塞的原因。如果是阻塞的,那么写阻塞的时候,此时内核可写缓冲区可以容纳n个字节,而需要发送的数据有n+1个字节的话,那么write是不会返回的,它会一直阻塞直到那多出来的一个字节装到内核缓冲区了才会返回。所以在select中,返回可写条件的时候,要限制将套接字设置为非阻塞,才可以说一次性写操作返回一个正值。本实施例中的阻塞式同步方式是在配置变更时同时写入至可修改分区。
51.作为一种实施例,通过异步同步处理方式将待配置数据写入至冗余可修改分区,包括:将待配置数据默认写入冗余可修改分区内其中一个可修改分区;
判断可修改分区的数据状态是否发生变化;若发生变化,则启动定时器,定时触发可修改分区的待配置数据覆盖写入冗余可修改分区内其他可修改分区。
52.具体地,本实施例对应异步同步处理方式,将待配置数据默认写入冗余可修改分区内的其中一个可修改分区,判断可修改分区的数据状态是否发生变化,若当前的可修改分区写入待配置数据后,其数据状态完成配置变更,则说明该当前的可修改分区的数据状态发生变化。启动定时器,定时触发可修改分区的待配置数据覆盖写入冗余可修改分区内的其他可修改分区。
53.需要说明的是,由于冗余可修改分区的种类不同,其以当前种类的可修改分区作为本实施例的写入过程,先进行一个可修改分区的写入,fw软件后台检测该可修改分区的数据变化,若发生变化,则定时触发将该可修改分区的数据覆盖写入至其他可修改分区。由于冗余可修改分区的分区数量不做限定,其覆盖写入的过程可以是同时写入,也可以是通过异步同步处理方式串行写入至其他可修改分区的各个可修改分区。
54.作为一种实施例方式,通过阻塞式同步处理方式将待配置数据写入至冗余可修改分区,包括:在预设时间内将待配置数据分别写入至冗余可修改分区。
55.具体地,本实施例对应阻塞式同步处理方式,在预设时间内将待配置数据分别写入至冗余可修改分区,例如,冗余可修改分区为两个,在配置变更时,同时写入两个可修改分区,才可以完成配置变更。需要说明的是,这里的同步概念,是在预设时间内将配置数据写入至可修改分区,只要在预设时间内完成,即可为同步。
56.作为一种实施例,为例不降低flash冗余度,冗余可修改分区的数量与冗余固件的数量相同。
57.可以理解的是,冗余可修改分区的每种种类对应的可修改分区与冗余固件的数量相同。例如,flash分区中的可修改分区有两种,conf分区和log分区,冗余固件有两个,其conf分区对应的冗余可修改分区对应冗余固件的数量相同,为2个。表1为双分区冗余表,见表1:表1为双分区冗余表本发明实施例提供的冗余可修改分区的数据同步过程,便于后续的切换固件后,确保固件使用的运行数据为最新数据。
58.在上述实施例的基础上,当前固件的异常情况的确定过程,包括:
获取当前预设时间对应的当前固件的工作状态和下一个预设时间对应的工作状态;当工作状态发生变化时,确定当前固件的当前状态;当当前状态为固件升级或故障切换时,确定当前固件存在异常情况。
59.可以理解的是,当前固件的异常情况与正常工作时的状态不同,故获取当前预设时间对应的当前固件的工作状态与下一个预设时间对应的工作状态,当两个工作状态不一样时,也就是工作状态发生变化时,确定当前固件的当前状态。需要说明的是,确定当前固件的当前状态,当前状态可以是由切换或者故障状态转化为正常状态,也有可能是由正常状态转化为切换或者故障状态。故需要明确当前固件的当前状态。若当前状态为固件升级或故障切换,则说明当前固件存在异常情况。
60.作为一种优选实施例,在切换至待同步固件之前,还包括:获取共享区域内的冗余可修改分区的配置信息;判断各配置信息是否相同;若相同,则进入至切换至待同步固件的步骤。
61.需要说明的是,获取共享区域内的冗余可修改分区的配置信息,由于共享区域内需要确保数据一致性,需要判断各配置信息是否相同,若相同,则确定当前冗余可修改分区的配置信息保持一致,则进入至切换至待同步固件的步骤。
62.作为一种实施例,还包括:当各配置信息不相同时,则将各配置信息与待配置数据进行比较;在各配置信息中选取与待配置数据相同的配置信息对应的可修改分区作为最终可修改分区;将最终可修改分区对应的固件作为待同步固件,并进入至切换至待同步固件的步骤。
63.具体地,当各配置信息不同时,由于可修改分区的数量较多,则需要将各配置信息与待配置数据比较,以选取与待配置数据相同的配置信息对应的可修改分区作为最终可修改分区,其对应的固件作为待同步固件以便于后续切换至该待同步固件中。
64.本发明实施例提供的确定当前固件的异常情况过程,确定当前配置信息的一致性以便于后续的固件切换。
65.在上述实施例的基础上,该方法还包括:获取冗余固件分别对应的只读分区;若当前固件存在异常情况时,切换至待同步固件以访问对应的只读分区。
66.需要说明的是,获取冗余固件分别对应的只读分区。当前固件存在异常情况时,切换至待同步固件,访问对应的只读分区。只读分区不位于共享区域,在切换至待同步固件时还需访问该待同步固件对应的只读分区。
67.作为一种实施例,只读分区为冗余固件内的flash分区内的运行过程中用于读取、运行参数的分区,只读分区至少包括checksun分区和image分区。
68.具体地,只读分区为发布的可执行程序,在产品运行过程中,只能读取、运行不能修改。checksun分区和image分区的偏移量在本发明实施例中不做限定,可以根据实际情况设定即可。checksum是一种用于检查数据文件有没有发生变化的方法,对于一些重要的数
据文件为了检查传输过程中有没有数据的损坏或丢失。对即将烧写进flash中的image文件进行校验,和烧写完对写入的数据进行完整性检查。image分区为可执行文件分区。
69.在升级固件fw时,当添加至共享区域后的可修改分区为一个时,作为一种实施例,在将冗余固件对应的可修改分区添加至共享区域之后,还包括:若当前固件存在异常情况时,切换至待同步固件以访问对应的只读分区。
70.具体地,在升级固件fw时,只升级只读分区,不升级可修改分区,故运行可修改分区时不会因为升级而擦除。由于可修改分区为一个,为了保证固件升级可修改分区不会将对应的数据擦除,仅升级只读分区。
71.本发明实施例提供的只读分区的访问情况,在共享区域情况外,切换至待同步固件时访问只读分区的不同情况,增加用户的体验感。
72.在上述实施例的基础上,当冗余固件的数量大于两个时,切换至待同步固件,包括:预先对冗余固件进行优先级排序;若当前固件存在异常情况时,根据优先级顺序切换至冗余固件内除当前固件之外的其他固件作为待同步固件。
73.可以理解的是,当冗余固件的数量大于两个时,切换至待同步固件,可以存在多个待同步固件,具体选择何种待同步固件,需要预先对冗余固件进行优先级排序。若当前固件存在异常情况时,根据优先级顺序切换至冗余固件内除当前固件之外的其他固件作为待同步固件。例如存在4个冗余固件a、b、c、d。当前固件为a,其待同步固件为b、c、d。根据优先级顺序确定的顺序为c、d、b,则先选取固件c作为待同步固件,若c固件存在异常,则顺次选取固件d。
74.对应地,优先级顺序可以根据各固件对应的升级或者故障状态设定,还可以根据其他顺序设定,在此不做限定,根据实际情况设定即可。
75.在上述实施例的基础上,通过访问共享区域的可修改分区,包括:默认访问共享区域内待同步固件对应的可修改分区;将冗余可修改分区设定分区优先级顺序;若待同步固件对应的可修改分区未配置成功时,则按照分区优先级顺序访问冗余可修改分区内的其他可修改分区。
76.具体地,在上述实施例中对待同步固件进行了优先级顺序的设定,同时,冗余可修改分区也存在优先级顺序,先默认访问待同步固件对应的可修改分区,将冗余可修改分区预先设定优先级顺序,若待同步固件对应的可修改分区未配置成功时,则按照分区优先级顺序访问其他可修改分区以完成当前待同步固件的访问共享区域的可修改分区。
77.本发明实施例提供的待同步固件的切换顺序以及可修改分区的访问顺序分别按照对应的优先级设定,避免升级固件过程中造成拥堵现象,保证数据的一致性的同时提高固件升级效率。
78.在上述实施例的基础上,该方法还包括:获取客户端的升级需求信息,其中升级需求信息至少为保留配置选项或删除配置选项;当升级需求信息为删除配置选项时,则将可修改分区的数据擦除恢复至出厂状
态。
79.具体地,考虑到某些场景下,客户升级时想初始化运行数据到出厂状态,在升级时增加不保留配置升级选项,持有该选项的升级流程将运行可变分区数据擦除恢复到出厂状态。
80.在上述实施例的基础上,该方法还包括:通过显示界面将升级需求信息进行显示以便于用户查看。
81.对应地,通过显示界面将升级需求信息的选项显示,便于用户实时了解当前的升级情况。
82.本实施例提供的客户的升级需求信息的删除和保留,同时通过显示界面显示,以提升用户的体验感。
83.上述详细描述了冗余固件的数据同步方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的冗余固件的数据同步装置,图2为本发明实施例提供的一种冗余固件的数据同步装置的结构图。如图2所示,冗余固件的数据同步装置包括:建立模块11,用于建立冗余固件的共享区域;添加模块12,用于将冗余固件对应的可修改分区添加至共享区域以解除可修改分区与冗余固件的映射关系,其中,添加至共享区域后的可修改分区为冗余可修改分区;切换模块13,用于若当前固件存在异常情况时,切换至待同步固件,并通过访问共享区域的可修改分区以实现数据一致性。
84.由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
85.对于本发明提供的一种冗余固件的数据同步装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述冗余固件的数据同步方法相同的有益效果。
86.图3为本发明实施例提供的另一种冗余固件的数据同步装置的结构图,如图3所示,该装置包括:存储器21,用于存储计算机程序;处理器22,用于执行计算机程序时实现冗余固件的数据同步方法的步骤。
87.本实施例提供的冗余固件的数据同步装置可以包括但不限于智能手机、平板电脑、笔记本电脑或者台式电脑等。
88.其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
89.存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以
是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的冗余固件的数据同步方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括windows、unix、linux等。数据213可以包括但不限于冗余固件的数据同步方法所涉及到的数据等等。
90.在一些实施例中,冗余固件的数据同步装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
91.领域技术人员可以理解,图3中示出的结构并不构成对冗余固件的数据同步装置的限定,可以包括比图示更多或更少的组件。
92.处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的冗余固件的数据同步方法。
93.对于本发明提供的一种冗余固件的数据同步装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述冗余固件的数据同步方法相同的有益效果。
94.进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述冗余固件的数据同步方法的步骤。
95.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
96.对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述冗余固件的数据同步方法相同的有益效果。
97.以上对本发明所提供的一种冗余固件的数据同步方法、冗余固件的数据同步装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
98.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
技术特征:1.一种冗余固件的数据同步方法,其特征在于,包括:建立所述冗余固件的共享区域;将所述冗余固件对应的可修改分区添加至所述共享区域以解除所述可修改分区与所述冗余固件的映射关系,其中,添加至所述共享区域后的所述可修改分区为冗余可修改分区;若当前固件存在异常情况时,切换至待同步固件,并通过访问所述共享区域的所述可修改分区以实现数据一致性。2.根据权利要求1所述的冗余固件的数据同步方法,其特征在于,所述可修改分区为所述冗余固件内的flash分区内的运行过程中用于修改参数的分区,所述可修改分区至少包括conf分区和log分区。3.根据权利要求2所述的冗余固件的数据同步方法,其特征在于,所述当前固件的所述异常情况的确定过程,包括:获取当前预设时间对应的所述当前固件的工作状态和下一个预设时间对应的工作状态;当所述工作状态发生变化时,确定所述当前固件的当前状态;当所述当前状态为固件升级或故障切换时,确定所述当前固件存在所述异常情况。4.根据权利要求2所述的冗余固件的数据同步方法,其特征在于,所述冗余可修改分区的数据同步,包括:接收当前的待配置数据;将所述待配置数据写入所述共享区域的所述冗余可修改分区。5.根据权利要求4所述的冗余固件的数据同步方法,其特征在于,所述将所述待配置数据写入所述共享区域的所述冗余可修改分区,包括:通过异步同步处理方式或阻塞式同步处理方式将所述待配置数据写入至所述冗余可修改分区。6.根据权利要求5所述的冗余固件的数据同步方法,其特征在于,通过异步同步处理方式将所述待配置数据写入至所述冗余可修改分区,包括:将所述待配置数据默认写入所述冗余可修改分区内其中一个可修改分区;判断所述可修改分区的数据状态是否发生变化;若发生变化,则启动定时器,定时触发所述可修改分区的所述待配置数据覆盖写入所述冗余可修改分区内其他可修改分区。7.根据权利要求5所述的冗余固件的数据同步方法,其特征在于,通过所述阻塞式同步处理方式将所述待配置数据写入至所述冗余可修改分区,包括:在预设时间内将所述待配置数据分别写入至所述冗余可修改分区。8.根据权利要求6或7所述的冗余固件的数据同步方法,其特征在于,所述冗余可修改分区的数量与所述冗余固件的数量相同。9.根据权利要求8所述的冗余固件的数据同步方法,其特征在于,在所述切换至所述待同步固件之前,还包括:获取所述共享区域内的所述冗余可修改分区的配置信息;判断各所述配置信息是否相同;
若相同,则进入至所述切换至所述待同步固件的步骤。10.根据权利要求9所述的冗余固件的数据同步方法,其特征在于,还包括:获取所述冗余固件分别对应的只读分区;若所述当前固件存在所述异常情况时,切换至所述待同步固件以访问对应的只读分区。11.根据权利要求10所述的冗余固件的数据同步方法,其特征在于,所述只读分区为所述冗余固件内的flash分区内的运行过程中用于读取、运行参数的分区,所述只读分区至少包括checksun分区和image分区。12.根据权利要求11所述的冗余固件的数据同步方法,其特征在于,当添加至所述共享区域后的所述可修改分区为一个时,在所述将所述冗余固件对应的可修改分区添加至所述共享区域之后,还包括:若所述当前固件存在所述异常情况时,切换至所述待同步固件以访问对应的所述只读分区。13.根据权利要求10所述的冗余固件的数据同步方法,其特征在于,当所述冗余固件的数量大于两个时,所述切换至待同步固件,包括:预先对所述冗余固件进行优先级排序;若所述当前固件存在所述异常情况时,根据所述优先级顺序切换至所述冗余固件内除所述当前固件之外的其他固件作为所述待同步固件。14.根据权利要求12或13所述的冗余固件的数据同步方法,其特征在于,所述通过访问所述共享区域的所述可修改分区,包括:默认访问所述共享区域内所述待同步固件对应的所述可修改分区;将所述冗余可修改分区设定分区优先级顺序;若所述待同步固件对应的所述可修改分区未配置成功时,则按照所述分区优先级顺序访问所述冗余可修改分区内的其他所述可修改分区。15.根据权利要求14所述的冗余固件的数据同步方法,其特征在于,还包括:获取客户端的升级需求信息,其中所述升级需求信息至少为保留配置选项或删除配置选项;当所述升级需求信息为所述删除配置选项时,则将所述可修改分区的数据擦除恢复至出厂状态。16.根据权利要求15所述的冗余固件的数据同步方法,其特征在于,还包括:通过显示界面将所述升级需求信息进行显示以便于用户查看。17.根据权利要求9所述的冗余固件的数据同步方法,其特征在于,还包括:当各所述配置信息不相同时,则将各所述配置信息与所述待配置数据进行比较;在各所述配置信息中选取与所述待配置数据相同的配置信息对应的可修改分区作为最终可修改分区;将所述最终可修改分区对应的固件作为所述待同步固件,并进入至所述切换至所述待同步固件的步骤。18.一种冗余固件的数据同步装置,其特征在于,包括:建立模块,用于建立所述冗余固件的共享区域;
添加模块,用于将所述冗余固件对应的可修改分区添加至所述共享区域以解除所述可修改分区与所述冗余固件的映射关系,其中,添加至所述共享区域后的所述可修改分区为冗余可修改分区;切换模块,用于若当前固件存在异常情况时,切换至待同步固件,并通过访问所述共享区域的所述可修改分区以实现数据一致性。19.一种冗余固件的数据同步装置,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至17任一项所述的冗余固件的数据同步方法的步骤。20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的冗余固件的数据同步方法的步骤。
技术总结本发明公开了一种冗余固件的数据同步方法、装置及介质,适用于计算机技术领域。该方法通过建立共享区域,将冗余固件对应的可修改分区添加至共享区域,使其固件可以访问共享区域的任意可修改分区,解除固件和可修改分区的固定映射关系,避免现有的切换至另一个FW分区,原固件对应的可修改分区内的数据未同步至当前固件的可修改分区导致数据丢失的问题。共享区域的可修改分区为冗余可修改分区,若当前固件存在异常情况时,切换至待同步固件,并通过访问共享区域的可修改区以实现数据一致性,实现每个可修改分区的数据相同,保留相关的数据,在切换至另一个FW分区后,通过访问共享区域的可修改分区以实现数据的一致性。域的可修改分区以实现数据的一致性。域的可修改分区以实现数据的一致性。
技术研发人员:张帅豪
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2022.12.13
技术公布日:2023/1/6