一种通信系统软件版本的平滑升级方法
技术领域
本发明涉及一种在通信系统中实现软件版本平滑升级的方法,特别是涉及一种可以在不影响通信系统正常工作的情况下,对支撑其运行的软件进行升级的升级方法。
背景技术
在移动通信领域,一套完整的基站系统通常由成千上万块单板组成。要使这些单板正常工作,必须在硬件模块上驻留相应的软件程序映象即版本程序或软件版本。随着通信系统功能日益强大,软件版本的大小也在逐渐扩张。但是,单板的存储空间极其有限,而且成本高昂。为此,我们一方面尽量精简版本大小以满足存储空间的限制,同时也在存储介质中采用适当的版本存储方式。
目前的数据存储一般是文件系统方式或数据块存储方式。相对于常见的文件系统存储方式,数据块存储方式可以大大减小软件版本自身的大小,版本软件以连续的方式存储在存储介质中,同时将块起始地址及长度等信息以参数区的形式保留,供系统引导使用。数据块存储使软件版本在功能上完全独立于操作系统,但是却带来了另外一个弊端:由于软件版本的存储位置以参数形式写入了参数区,当出现软件版本大小超过既定的块长度时,即使原存储介质上仍然有剩余空间或另新增加了物理存储设备,软件版本加载运行时也无法被系统所识别并使用。
发明内容
本发明所要解决的技术问题是提供一种通信系统软件版本的平滑升级方法,解决在块存储方式下,通信系统升级过程中,硬件单板上的软件版本存储区有限而不能容纳新版本的问题。
为达到上述目的,本发明提供了一种通信系统软件版本的平滑升级方法,其特点在于,包括:将硬件单板存储区中的第一长度存储块中原来正常运行的原始版本保留到缓冲存储器,将所述单板存储区重新划分为第二长度存储块,并将所述原始版本和下载的新版本分别保存到两个第二长度存储块中;所述第一长度存储块和所述第二长度存储块均为多个,并且所述第二长度大于所述第一长度。
上述的方法,其特点在于,将所述单板存储区重新划分为第二长度存储块包括如下步骤:
步骤二,删除所述单板存储区中第一长度存储块的划分,按照所述第二长度划分为多个第二长度存储块;
步骤三,修改所述单板存储区的参数区中的存储块划分信息,将长度信息由第一长度改为第二长度;
将所述原始版本和下载的新版本分别保存到两个第二长度存储块中包括如下步骤:
步骤四,将所述缓冲存储器中保留的原始版本写入任意一个第二长度存储块中,并修改所述参数区中的相应信息;
步骤五,下载新版本,将所述新版本写入另一个第二长度存储块中,并修改所述参数区中的相应信息。
上述的方法,其特点在于,在所述步骤一之前,在所述将硬件单板存储区中的第一长度存储块中原来正常运行的原始版本保留到缓冲存储器的步骤之前,还具有一个判断是否可以进行升级的判断步骤,包括:根据所述参数区中的信息判断所述单板存储区是否有足够的存储空间进行升级,是则执行所述将硬件单板存储区中的第一长度存储块中原来正常运行的原始版本保留到缓冲存储器的步骤,否则退出。
上述的方法,其特点在于,在所述步骤二中,还包括根据所述新版本的大小来确定所述第二长度的步骤。
上述的方法,其特点在于,在所述单板存储区中,所述参数区位于存储介质上的固定位置,可以是所述第一长度存储块或第二长度存储块之前或者尾部,用于保存所述原始版本和所述新版本的起始地址及长度的信息。
上述的方法,其特点在于,在所述步骤四中,所述相应信息包括:所述原始版本所在的第二长度存储块的起始地址及长度。
上述的方法,其特点在于,在所述步骤五中,所述相应信息包括:所述新版本所在的第二长度存储块的起始地址及长度。
上述的方法,其特点在于,所述参数区还保存有引导参数,用于决定系统引导模块具体启动哪一个版本,所述系统引导模块根据所述引导参数加载运行正确的版本软件。
上述的方法,其特点在于,所述单板为通信系统中以块存储方式存储版本的模块。
本发明的技术效果在于:
本方法对于基站系统功能增强、软件版本大小扩张时的系统升级过程有明显效果,主要表现在:
1)能充分利用现有硬件资源,软件版本大小在一定范围内时都不需要增加额外的存储设备,重新合理的划分存储空间,有效降低系统成本。
2)打破了存储区或者文件系统版本软件大小的限制,突破块存储方式限制。
3)在不影响通信系统的正常工作的前提下,高效稳定地完成系统的升级。
4)降低维护费用,可以直接在操作维护中心实现远程单板的平滑升级,不需要专人到现场进行更换硬件设备。本方法现应用于移动通信系统,但其原理具有普遍性,略作修改可推广到其它通信系统。
下面结合附图进一步详细说明本发明的具体实施例。
附图说明
图1是本发明平滑升级前后单板存储区的示意图;
图2是本发明方法的平滑升级流程图。
具体实施方式
本发明方法充分利用现有存储器资源,灵活划分存储区域以适应新版本大小,以实现通信系统的平滑升级。本发明主要是解决在块存储方式下,通信系统升级过程中,硬件单板上的软件版本存储区有限而不能容纳新版本的问题,不仅有利于节省硬件成本,还保证了通信系统升级过程的稳定性和可靠性,保障了运营商的利益。
本发明方法主要涉及两个版本存储区长度的概念,本发明将升级前的版本存储区长度称之为长度A(第一长度),升级后的长度称之为长度B(第二长度)。这些长度等参数信息以参数区的方式保留在存储介质中某个固定的区域。为了不影响原来正常运行的版本,我们先将原来正常运行的版本进行保留。完成对存储区重新划分后,再将正常运行的长度A版本写入长度B的新版本存储区中。本发明平滑升级的过程如下:
一、保留原来正常运行的版本:
1)从长度A的版本存储区(即第一长度存储块)中将原来正常运行的版本读入缓冲存储器(如内存)中保留。
二、版本存储区的重新划分及版本升级:
2)删除原有长度A的版本存储区划分,重新按长度B进行划分,形成多个长度B的版本存储区(即第二长度存储块)。
3)修改参数区的存储区划分信息,主要是将长度A改为了长度B。
4)将内存中保留的长度A版本写入其中一个版本存储区中,并修改相应参数区信息。
5)下载新版本,将新下载的版本写入其它任意一个版本存储区,修改相应参数区信息。
6)长度B新版本的激活、加载和运行。
目前本方法已在CDMA2000基站系统的操作维护子系统中得到应用。下面以基站系统BTS(Base Transceiver Station)下基带数字子系统BDS(Baseband Digital Subsystem)中通信控制模块CCM(CommunicationControl Module)为例详细讲解本方法。
由前台(设备内)单板存储区示意图(图1)我们可以看到,存储区最前端有一小块区域是用来保存软件版本起始地址及长度等信息,我们称之为系统参数区110、120。系统引导程序具体启动哪一个版本由系统参数区110、120的参数决定,引导程序根据参数区中的参数加载正确的版本软件到RAM(Random Access Memory)上运行。此外,从图1中可以看出,升级后的B长度的存储区121(即第二长度存储块)的长度要大于升级前的A长度的存储区111(即第一长度存储块)。
为了保证前台单板的正常运行,我们都在前台单板上保留了两个软件版本,当某一个版本损坏或者其它原因不能正常运行时,可以马上加载启动另一个软件版本。所以通信控制模块CCM单板存储区主要划分了CCM软件版本1、CCM软件版本2、受控版本1、受控版本2和一个临时版本(主要用来缓存)等五大块,每一块长度固定。
图2是本发明方法的平滑升级流程图,如图,升级过程如下:
步骤201,后台发起升级请求;
步骤202,根据CCM参数区信息判断是否可以进行升级,若没有足够的存储空间进行升级,则退出。
步骤203,将CCM正在运行的版本保存到内存中,当前运行的版本可能是版本1也可能是版本2。
步骤204,增大每个版本存储区的长度,重新划分存储区,将划分信息写入CCM参数区。
步骤205,将内存中保留的版本写入版本存储区1(图1中的存储区121),并将本块的起始长度等信息写入系统参数区。
步骤206,下载新软件版本,保留到版本存储区2(图1中的存储区122),并将本块的起始地址及长度等信息写入系统参数区。
步骤207,激活存储在存储区2的新版本,并加载启动。
在上述过程中,为增加系统的稳定性和可靠性,我们将升级的新软件版本存储到扩大后的版本存储区2(即图1中的存储区122)的位置处,而没有覆盖和破坏正在运行的软件版本(即存储在图1中的存储区121中的版本)。这样,如果新的版本不能正常运行,系统仍然可以读取旧的版本1作为工作版本,保证了系统升级出现异常时能够自动回退到原来正常工作状态的版本。
由上可知,本发明方法可以在不影响通信系统正常工作的情况下,对支撑其运行的软件进行升级,该方法充分利用现有存储器资源,灵活划分存储区域以适应新版本大小,实现了通信系统的平滑升级,不仅有利于节省硬件成本,还保证了通信系统升级过程的稳定性和可靠性,保障了运营商的利益。
本方法现应用于移动通信系统,但其原理具有普遍性,略作修改可推广到其它通信系统。因此以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;凡是依本发明所作的等效变化与修改,都被本发明的专利范围所涵盖。