CN108121621A - 一种交换机等设备软件升级过程中断电不死机的解决方法 - Google Patents
一种交换机等设备软件升级过程中断电不死机的解决方法 Download PDFInfo
- Publication number
- CN108121621A CN108121621A CN201711443612.8A CN201711443612A CN108121621A CN 108121621 A CN108121621 A CN 108121621A CN 201711443612 A CN201711443612 A CN 201711443612A CN 108121621 A CN108121621 A CN 108121621A
- Authority
- CN
- China
- Prior art keywords
- software
- flash
- version
- state
- solution method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0859—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种交换机等设备软件升级过程中断电不死机的解决方法。相较于现有技术,本发明很好的实现了flash的软件冗余功能,可以有效的解决上传软件过程中断电死机的问题,设计简单,成本开销小,设计方案的软件容易实现,且方案本身对软件的移植改动较少,可以对软件简单的修改就可以实现冗余效果。
Description
技术领域
本发明涉及一种交换机等设备软件升级过程中断电不死机的解决方法。
背景技术
在各种硬件设备领域,flash的应用无处不在,flash因具有保存数据的功能而在硬件中广为使用,由于这个特点,所以很多设备的软件都是保存在flash中的,在启动的过程中从flash中读取数据然后执行软件。
在当前的交换机等设备中采用的大部分的flash都是刚好将软件存放,当然这种方式是基于节省硬件开销的基础上,但是这种方式存在的问题是:假如软件已经保持在启动状态,这时候升级软件,那么需要将新的软件更新到之前的flash芯片内,假如更新过程中断电,则cpu会停止将数据拷贝到flash的操作,而在这之前cpu已经向flash写入了一部分数据,也就是最开始的保存在flash上的软件已经被更新的那一部分覆盖了,那么软件会破坏整个flash的内容,导致设备启动的时候的死机,flash中的内容出错,这个问题是非常严重的,在实际应用过程中,如果设备没有其他的升级方式,那么这个设备将再也无法启动,更何谈再次给设备升级。
这样的设备的扩展性极差,由于本身的硬件限制导致了软件的无能为力,在硬件层次上限制了软件的修改的可能性,降低了系统的稳定性。
发明内容
针对现有技术中存在的问题,本发明的目的在于提供一种交换机等设备软件升级过程中断电不死机的解决方法,其有效解决了现有技术中存在的问题。
为实现上述目的,本发明采用以下技术方案:
一种交换机等设备软件升级过程中断电不死机的解决方法,所述解决方法为:首先将交换机等设备的flash的内存扩大到原内存的两倍,在flash中将flash分区为flash分区1和flash分区2,分别用来存放两个版本软件的状态信息及序号信息;所述状态信息是在上传过程中写入的,在上传的开始之前先将软件的状态信息设置为异常,然后开始升级;页面更新软件版本时,首先查看这两个分区的两个版本信息,选择状态异常的版本分区来存放新版本,如果状态都是正常,则选择序号较小的分区来存放新版本;在新版本写入选定分区前,将该分区对应状态设为异常,上传完成后再将其设为正常;在boot阶段,boot首先判断是否存在状态异常版本,如果有,则选择状态正常的来加载,如果均正常,则选择序号较大的来加载。
本发明具有以下有益技术效果:
本发明很好的实现了flash的软件冗余功能,可以有效的解决上传软件过程中断电死机的问题,设计简单,成本开销小,设计方案的软件容易实现,且方案本身对软件的移植改动较少,可以对软件简单的修改就可以实现冗余效果。
附图说明
图1为本申请的软件升级路程图;
图2为本申请的软件启动加载流程图。
具体实施方式
下面,参考附图,对本发明进行更全面的说明,附图中示出了本发明的示例性实施例。然而,本发明可以体现为多种不同形式,并不应理解为局限于这里叙述的示例性实施例。而是,提供这些实施例,从而使本发明全面和完整,并将本发明的范围完全地传达给本领域的普通技术人员。
本发明提供了一种交换机等设备软件升级过程中断电不死机的解决方法,并在软件上实现。Flash的冗余的实现是通过将flash的内存扩大到原内存的两倍,在软件启动过程中对软件的完整性进行判断,判断的依据是在flash保存的一个状态信息,这个状态信息是在上传过程中写入的,在上传的开始之前先将软件的状态信息设置为异常,然后开始升级,这时候如果上传过程中发生了断电行为,那么软件的状态就会保持在异常状态,当软件升级完成后则将软件的状态修改为正常,这样软件就会处于正常状态了。
当设备再次启动的时候,由于boot比软件先启动,于是使用boot来判断flash区域的软件的完整性来决定使用哪个flash分区的软件启动,这样boot和软件的相互协作来共同实现软件的冗余的效果。
在flash中增加一个分区用来保存另外一个版本文件,用目前保留的两个分区分别存放两个版本的状态及序号。当从页面更新软件版本时,首先查看这两个分区的两个版本信息,选择状态异常的版本分区来存放新版本,如果状态都是正常,则选择序号较小的分区来存放新版本。在新版本写入选定分区前,将该分区对应状态设为异常,上传完成后再将其设为正常。
在boot阶段,boot首先判断是否存在状态异常版本,如果有,则选择状态正常的来加载,如果均正常,则选择序号较大的来加载。
本发明是涉及交换机设备软件上传过程中断电不死机的解决方法,在flash的存储区域中会包括存放软件的区域、包括存放状态信息的区域、包括存放版本序号的区域(这个区域相当于保存的版本信息)。
flash的扩容以8M扩为16M为例,flash为8M的芯片的时候,他的存储区域的分配为:
从地址0xFF800000开始的10*64K的存储空间作为boot的存储空间;
从地址0xFF800000+0xa0000开始的80*64K的存储空间作为软件的存储空间;
从地址0xFF800000+0x7f0000开始的1*8kB的存储空间作为reserved(预留空间)的存储空间;
flash为16M的芯片的时候,他的存储区域的分配为:
从地址0xff000000开始的5*128K的存储空间作为boot的存储空间;
从地址0xff000000+0xa0000开始的40*128K的存储空间作为软件的存储空间;
从地址0xff000000+0x5a0000开始的40*128K的存储空间作为备份软件的存储空间;
从地址0xff000000+0xb00000开始的1*128kB的存储空间作为reserved(预留空间)的存储空间;
以上数据表示16M的flash的内存分配比8M的内存分配多出了一块内存区域,即备份软件的存储区域,这块区域就是用来冗余软件的内存区域,在flash中将flash分区为flash分区1和flash分区2,分别用来存放不同版本的软件。
在16M的flash升级实际操作过程中,软件的上传是通过web登录上传的,交换机的软件代码中通过对web的请求的处理来更新软件版本和软件信息,web端与交换机后台通过http协议发送数据包,在发送过程中协议本身会将软件内容拆分成很多的数据包,交换机在接收web发送过来的数据包的情况是自身已经处于软件正常运行阶段,此时的数据上传部分都是由软件的程序处理的,软件程序的处理包括接收web发送过来的数据包,处理数据包,在处理过程中需要对数据包进行解析,在解析完成后再将数据写入到flash中,这样才算完整的完成了一个通过web升级交换机软件的过程。
如图1所示,当web端点击了上传按钮,并且对文件的后缀进行判断后,web端的工作就只剩下连续上传的工作了,并且意味着交换机软件进入软件上传阶段(即上传开始),这时候后台的软件进入软件升级处理部分,在这部分的开始则是判断flash分区1中的软件的状态是否异常,而软件状态的判断则是保存在flash中的reserved区域,这段内存中保存着软件的状态信息,通过读取这段状态就可以知道这个软件的状态是否异常,这段内存中读取的值如果为”0xbbbbbbbb”则表示软件的状态为异常,如果读取到的值为:“0xaaaaaaaa”则表示软件的状态为正常。
在此处的代码段的判断中,不同的软件状态决定了不同的更新区域,而更新区域的决定是由不同的文件路径决定的,在flash中分别存在以下几个文件用来保存一些信息:
"/rfa1":用来存放其中的一个软件的文件路径
"/rfa3":用来存放boot的文件路径
"/rfa5":用来存放其中的另一个软件的文件路径
操作过程中,如果判断返回的flash分区1的软件状态异常即reserved区域的值为:“0xbbbbbbbb”,则创建一个内存文件系统用于保存上传的软件内容,当判断web端已经停止上传文件,那么认为软件已经完全上传到了交换机的cpu的内存中,此时的内存文件系统中保留着全部的软件内容,所以需要将这些内容写入到flash的内存区域中,开始向flash分区1写入数据之前先将flash分区1的状态再次设置为异常即修改reserved区域的值为:“0xbbbbbbbb”,并且开始将软件升级到路径"/rfa1"(即向这个路径不停的写入数据),将内存文件系统中的数据写入到flash中,写入完成后则修改flash分区1的状态为正常即修改reserved区域的值为:“0xaaaaaaaa”。同理,如果是flash分区2的软件状态异常那么操作和flash分区1的操作相似,当将flash的分区中的软件状态修改为:“0xaaaaaaaa”的时候即表示软件已经上传成功。
由上面的流程可知,当向flash写入数据的过程中,如果上传失败则此flash的分区软件状态为异常,那么在软件启动的过程中就不会启动这个软件而去启动软件状态为正常的flash分区的软件。
如图2所示,当为交换机上电的时候交换机启动,交换机的启动过程是先启动boot,在boot阶段就会判断是否存在状态异常的软件区域,如果存在就启动正常的软件,如果不存在就启动序号较大的版本的软件,这样既保证了上传软件的过程中断电不死机的情况的出现,又保证了更新过后软件使用的是最新版的软件。
本发明可以有效可靠的实现交换机等设备软件升级过程中断电不死机的功能,从研发角度看,节省了大量的维护人员的开销;从经济角度看,稳定运行的设备是客户满意的基础;从系统运行效率上看提高了系统的容错率;从客户操作方面看,降低了操作的复杂度;从软件性能上看,bug的减少有利于软件更好的运行。另外,设备的软件的冗余使得设备会处于更好的运行状态。
上面所述只是为了说明本发明,应该理解为本发明并不局限于以上实施例,符合本发明思想的各种变通形式均在本发明的保护范围之内。
Claims (1)
1.一种交换机等设备软件升级过程中断电不死机的解决方法,其特征在于,所述解决方法为:首先将交换机等设备的flash的内存扩大到原内存的两倍,在flash中将flash分区为flash分区1和flash分区2,分别用来存放两个版本软件的状态信息及序号信息;所述状态信息是在上传过程中写入的,在上传的开始之前先将软件的状态信息设置为异常,然后开始升级;页面更新软件版本时,首先查看这两个分区的两个版本信息,选择状态异常的版本分区来存放新版本,如果状态都是正常,则选择序号较小的分区来存放新版本;在新版本写入选定分区前,将该分区对应状态设为异常,上传完成后再将其设为正常;在boot阶段,boot首先判断是否存在状态异常版本,如果有,则选择状态正常的来加载,如果均正常,则选择序号较大的来加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711443612.8A CN108121621A (zh) | 2017-12-27 | 2017-12-27 | 一种交换机等设备软件升级过程中断电不死机的解决方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711443612.8A CN108121621A (zh) | 2017-12-27 | 2017-12-27 | 一种交换机等设备软件升级过程中断电不死机的解决方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108121621A true CN108121621A (zh) | 2018-06-05 |
Family
ID=62232123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711443612.8A Withdrawn CN108121621A (zh) | 2017-12-27 | 2017-12-27 | 一种交换机等设备软件升级过程中断电不死机的解决方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108121621A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786910A (zh) * | 2004-12-09 | 2006-06-14 | 华为技术有限公司 | 一种bios在线升级方法 |
CN101078993A (zh) * | 2007-03-13 | 2007-11-28 | 中兴通讯股份有限公司 | 一种终端产品不中断业务在线升级版本的方法 |
CN102110000A (zh) * | 2009-12-25 | 2011-06-29 | 康佳集团股份有限公司 | 一种软件自动升级控制方法、装置及设备 |
CN102622280A (zh) * | 2011-01-06 | 2012-08-01 | 苏州科达科技有限公司 | 一种基于双文件系统的软件版本升级的控制方法及装置 |
CN105930236A (zh) * | 2016-07-15 | 2016-09-07 | 深圳市沃特玛电池有限公司 | 一种基于BMS Bootloader升级的应用程序版本回退方法 |
CN107276820A (zh) * | 2017-07-07 | 2017-10-20 | 上海斐讯数据通信技术有限公司 | 一种路由器升级方法及系统 |
-
2017
- 2017-12-27 CN CN201711443612.8A patent/CN108121621A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786910A (zh) * | 2004-12-09 | 2006-06-14 | 华为技术有限公司 | 一种bios在线升级方法 |
CN101078993A (zh) * | 2007-03-13 | 2007-11-28 | 中兴通讯股份有限公司 | 一种终端产品不中断业务在线升级版本的方法 |
CN102110000A (zh) * | 2009-12-25 | 2011-06-29 | 康佳集团股份有限公司 | 一种软件自动升级控制方法、装置及设备 |
CN102622280A (zh) * | 2011-01-06 | 2012-08-01 | 苏州科达科技有限公司 | 一种基于双文件系统的软件版本升级的控制方法及装置 |
CN105930236A (zh) * | 2016-07-15 | 2016-09-07 | 深圳市沃特玛电池有限公司 | 一种基于BMS Bootloader升级的应用程序版本回退方法 |
CN107276820A (zh) * | 2017-07-07 | 2017-10-20 | 上海斐讯数据通信技术有限公司 | 一种路由器升级方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104065637B (zh) | 网页游戏运行的方法及装置 | |
CN103077043B (zh) | 一种快速启动及运行Linux的方法 | |
US6269442B1 (en) | Apparatus and method for on-line replacement of a running program code and data using checkpoints | |
CN103309792B (zh) | 一种日志信息的控制方法及系统 | |
CN111782302B (zh) | 进程更新方法和装置、存储介质及电子设备 | |
CN107491373A (zh) | 一种任务栈溢出监测方法及系统 | |
CN109569214B (zh) | 分屏模式下的应用显示方法及装置、显示设备 | |
CN110908837A (zh) | 应用程序异常处理方法、装置、电子设备及存储介质 | |
CN112463239A (zh) | Bios与bmc交互选项默认值修改方法、系统、终端及存储介质 | |
US11604635B2 (en) | Online program updating method | |
CN108572830A (zh) | 一种嵌入式系统及其引导程序的升级方法、系统 | |
CN111104173A (zh) | 一种引导程序的保护设计方法 | |
CN108897646A (zh) | 一种bios芯片的切换方法及基板管理控制器 | |
CN103634668A (zh) | 智能电视中的系统升级方法和装置 | |
CN108108198A (zh) | 用于计算机系统的方法及系统 | |
CN104866388A (zh) | 数据处理方法及装置 | |
CN108121621A (zh) | 一种交换机等设备软件升级过程中断电不死机的解决方法 | |
CN113867807A (zh) | 一种缩短服务器上电时间的方法、装置、设备和存储介质 | |
CN105825126A (zh) | 一种文件保护方法及装置 | |
CN106959906A (zh) | 信息处理方法、信息处理装置及电子设备 | |
CN110502238A (zh) | 一种前后端联调的方法及装置 | |
CN110134545A (zh) | 基于可信执行环境的提供虚拟nvram的方法及系统 | |
CN108958769A (zh) | 一种嵌入式设备软件系统修复方法及系统 | |
CN106708541A (zh) | 版本升级处理方法及装置 | |
CN101950256A (zh) | 一种嵌入式系统及嵌入式系统重新启动的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180605 |