发明内容
鉴于以上所述的一个或多个问题,本发明提供了一种业务节点备份方法及分布式系统,以在降低系统成本的条件下保证系统的可靠性。
根据本发明实施例的业务节点备份方法,包括以下步骤:网管设备对分布式系统中的各物理处理单元与各逻辑业务节点之间的映射关系进行配置,其中,每个物理处理单元与至少一个逻辑业务节点之间存在映射关系,每个逻辑业务节点与至少两个物理处理单元之间存在映射关系;以及与相同逻辑业务节点之间存在映射关系的各物理处理单元并发运行与其存在映射关系的逻辑业务节点中的所有业务应用程序,其中,其业务应用程序在不同物理处理单元上运行的相同逻辑业务节点之间互为备份关系。
根据本发明实施例的业务节点备份方法还包括:网管设备将并发运行同一个逻辑业务节点中的所有业务应用程序的至少两个物理处理单元之一设置为逻辑业务节点的主用物理处理单元,并将至少两个物理处理单元中的其他物理处理单元设置为逻辑业务节点的备用物理处理单元。
其中,其业务应用程序在物理处理单元上运行的逻辑业务节点通过物理处理单元的标识信息和逻辑业务节点的标识信息进行标识。
其中,其业务应用程序在物理处理单元上运行的逻辑业务节点中的业务应用程序通过物理处理单元的标识信息、逻辑业务节点的标识信息、以及逻辑业务节点中的业务应用程序的标识信息进行标识。
根据本发明实施例的分布式系统,包括多个物理处理单元,其中,每个物理处理单元与至少一个逻辑业务节点之间存在映射关系,每个逻辑业务节点与至少两个物理处理单元之间存在映射关系,其中,与同一个逻辑业务节点之间存在映射关系的至少两个物理处理单元并发运行逻辑业务节点中的所有业务应用程序。
其中,并发运行同一个逻辑业务节点中的所有业务应用程序的至少两个物理处理单元之一为逻辑业务节点的主用物理处理单元,至少两个物理处理单元中的其他物理处理单元为逻辑业务节点的备用物理处理单元。
其中,处于同一个物理处理单元中的业务应用程序之间基于业务应用程序的标识信息和业务应用程序所属的逻辑业务节点的标识信息进行通信。处于不同的物理处理单元中的业务应用程序之间基于业务应用程序的标识信息、业务应用程序所属的逻辑业务节点的标识信息、以及业务应用程序所属的逻辑业务节点所在的物理处理单元的标识信息进行通信。
在逻辑业务节点的主用物理处理单元发生故障时,逻辑业务节点的主用物理处理单元通过同一个逻辑业务节点之间的握手通信机制,实现与逻辑业务节点的备用物理处理单元之间的切换。
本发明可以有效降低分布式系统中采用逻辑节点叠加方式增加系统容量时的设备成本,并在不损伤通信系统安全备份机制的同时,充分发挥了系统硬件处理能力,从而提升了系统处理能力。另外,作为附加应用,在多核CPU系统的开发中使用本发明,可以达到充分发挥多核CPU节点运算能力的效果。另外,本发明适用于移动通信系统中所有采用分布式、模块处理节点叠加方式进行业务容量扩充的网元设备。
具体实施方式
本发明的主要思想是:在每个物理节点中央处理单元(CPU)模块上运行一个操作系统,在操作系统下对同一个业务应用程序同时运行多个功能相同的进程实例,多个进程实例并发运行,而每个进程实例对外都表现为分布式系统中的一个逻辑节点,即将原先系统中以一个CPU物理节点作为一个业务节点的方式扩容为多个逻辑业务节点,一个CPU物理节点对外表现为多个逻辑业务节点,多个逻辑业务节点之间相互备份。由此实现在不增加物理设备的同时增加分布式系统中的业务节点数目,在相同物理设备的投入下充分发挥其处理能力提供业务容量,达到降低成本的目的。
其中,节点概念逻辑化是指:对应一个CPU物理实体,底层根据配置,封装实现将该CPU对应到多个业务节点号上,对外表现为多个业务节点,这个变化对于应用进程而言是不可见的(进程只能感觉到业务节点概念),业务的所有处理都不需要变化。
通信设备分布式系统中考虑的可靠备份主要基于单点或者n点故障,假设一个分布式系统中共有M个物理节点,则需要考虑的可靠性备份是基于单个物理节点损坏或者n(n<M)个物理节点损坏,而不是所有M个物理节点都损坏。
基于以上考虑,本发明设计的特征如下:
支撑系统支持物理CPU节点和逻辑业务节点号之间的可配置,维护物理CPU节点和逻辑业务节点号之间的映射关系,该映射关系表是全局的,在分布式系统中的每个SMP上都驻留(表1是CPU和业务节点逻辑模块号之间的映射关系表)。
表1
CPU ID |
逻辑业务节点模块号 |
逻辑业务节点模块号 |
1 |
3 |
4 |
2 |
5 |
6 |
支撑系统应用进程管理:底层对应用进程加上业务节点模块号标识,在启动应用进程时,需要根据本CPU上配置的逻辑业务节点个数,对于同一业务功能的应用进程启动相应个数的拷贝。比如,一个CPU上配置了3号和4号业务节点,那么系统上电时对每个业务功能应用进程都启动两份,同时将应用进程归属分别标识为3号业务节点模块和4号业务节点模块。
系统内部通信:通信链路的维护管理不变,仍然是在多个物理CPU节点之间维护链路。对于本CPU内进程之间的通信需要增加业务节点模块号标识(现行系统中CPU内部通信只通过应用进程号标识);消息发送时,底层需要根据应用进程发送的目的业务节点模块号查询“CPU和业务节点逻辑模块号之间的映射关系表”获取消息接收者的物理CPU ID,如果是本CPU ID则按照CPU内部消息处理,如果非本CPU ID,则将消息发送到相应的通信链路队列中;对于消息接收后分发,从消息队列中取出消息时,需要根据消息接收者的目的业务节点模块号,分发到对应的应用进程上。
主备机制:系统当前的模块主备机制是基于单板CPU物理状态的物理主备,模块逻辑化后,为满足所有物理板可能同时工作的要求,在现有的物理主备机制上,增加以业务节点逻辑模块号为标识的逻辑主备机制。
系统控制:按照业务节点逻辑模块号给应用进程上电、主备链路通信状况报告、主备倒换消息报告。
资源管理:按照业务节点逻辑模块号进行内存等资源的管理和维护,为每个业务逻辑节点分配独立的内存空间。
也就是说,本发明提供了一种业务节点备份方法。图1是根据本发明实施例的业务节点备份方法的流程图。如图1所示,该方法包括以下步骤:S102,网管设备对分布式系统中的各物理处理单元与各逻辑业务节点之间的映射关系进行配置,其中,每个物理处理单元与至少一个逻辑业务节点之间存在映射关系,每个逻辑业务节点与至少两个物理处理单元之间存在映射关系;以及S104,与相同逻辑业务节点之间存在映射关系的各物理处理单元并发运行与其存在映射关系的逻辑业务节点中的所有业务应用程序,其中,其业务应用程序在不同物理处理单元上运行的相同的逻辑业务节点之间互为备份关系。
其中,网管设备将并发运行同一个逻辑业务节点中的所有业务应用程序的至少两个物理处理单元之一设置为逻辑业务节点的主用物理处理单元,并将至少两个物理处理单元中的其他物理处理单元设置为逻辑业务节点的备用物理处理单元。
其中,其业务应用程序在物理处理单元上运行的逻辑业务节点通过物理处理单元的标识信息和逻辑业务节点的标识信息进行标识。其中,其业务应用程序在物理处理单元上运行的逻辑业务节点中的业务应用程序通过物理处理单元的标识信息、逻辑业务节点的标识信息、以及逻辑业务节点中的业务应用程序的标识信息进行标识。
下面结合具体实例,对本发明的具体实施方式进行说明。
表2是根据本发明实施例的逻辑业务节点配置数据表。
表2
物理CPU号 |
有效逻辑节点数目 |
逻辑节点1 |
逻辑节点2 |
逻辑节点3 |
逻辑节点4 |
逻辑节点5 |
逻辑节点6 |
表3是根据本发明实施例的A、B、C三个物理CPU在数据库中配置的数据表。
表3
物理CPU号 |
有效逻辑节点数目 |
逻辑节点号1 |
逻辑节点号2 |
逻辑节点号3 |
逻辑节点号4 |
逻辑节点号5 |
逻辑节点号6 |
A |
1 |
3 |
无效值 |
无效值 |
无效值 |
无效值 |
无效值 |
B |
1 |
4 |
无效值 |
无效值 |
无效值 |
无效值 |
无效值 |
C |
2 |
3 |
4 |
无效值 |
无效值 |
无效值 |
无效值 |
如表3所示,系统中配置了3个物理CPU,其中物理CPU编号为A、B、C,在A、B CPU上都只配置一个逻辑业务节点,分别为3号和4号节点。在C CPU上配置两个逻辑业务节点3号和4号。这样的初始数据配置要求3号业务节点和4号业务节点都具备逻辑主备保护,且系统实际运行时A号物理CPU的3号业务节点和B号物理CPU的4号业务节点为主用节点,C号CPU的3、4号业务节点处于备用状态。当两个主备节点都正常运行时,优选主用CPU也可通过配置确定。
操作系统的支撑管理层在系统启动时,以CPU的物理地址编号查询数据库或者配置文件获得需要创建的逻辑业务节点数目n以及n个逻辑业务节点的标识。据此确认该CPU上运行的业务节点数目和节点号,对所有的业务功能进程创建n个运行实例,创建进程时把n个节点标识通过参数传递分别分配给每一个进程。同时,建立一张进程标识(ID)和业务节点标识之间的对应表。
针对表3中的配置,在物理CPU A和B的操作系统支撑层启动时,只创建一个业务进程节点和一份业务功能进程实例。而在物理CPU C启动时,对所有的业务进程都同时创建2份业务功能进程实例,分别对应3号和4号节点。
业务节点概念逻辑化后,对业务应用进程而言依然使用节点号作为相互通信的标识,在支撑系统的通信层通过初始系统配置的逻辑业务节点和物理CPU号之间的对应关系实现各个逻辑业务节点应用进程间的消息互通。
表4是根据本发明实施例的子进程标识(PID)和节点标识之间的对应关系表。如表4所示,4个业务应用进程Pid1、Pid2、Pid3、Pid4分别归属于物理CPU A的3号逻辑节点、物理CPU B的4号逻辑节点、物理CPU C的3号逻辑节点和物理CPU C的4号逻辑节点。
假设物理CPU C的应用进程Pid3需要发送通信消息到4号业务节点的主用模块的Pid2,同时标识消息发送者的源业务节点号(逻辑业务节点3,备用模块)和进程标识(Pid3):应用进程还是调用原有的消息发送通信接口,在接口中指定消息的目的节点号(4号主用模块)和进程ID(Pid2),支撑系统通信层根据消息目的业务节点号以及消息目的点的主备节点信息同时查询表2和表3获取到该消息目的地址的物理CPU号为B,据此调用CPU间通信链路接口将消息发送到CPU B;CPU B的支撑通信层收到该消息后,根据消息目的业务逻辑节点号查询表4获取该消息的目的应用进程,将消息分发到Pid2应用进程。
同样,假设物理CPU C应用进程Pid3需要发送通信消息到4号业务节点的备用模块的Pid4,则此时支撑通信层根据消息目的业务节点号以及消息目的点的主备节点信息同时查询表2和表3的结果,该消息目的地址的物理CPU号为C,即为本CPU ID内部消息,将该消息按照本CPU内部应用进程间消息处理即可。
在初始配置业务逻辑节点时同时指定当主备两个节点都正常运行时的优选主用CPU。
针对表3中的配置,配置物理CPU A为逻辑业务节点3的优选主用CPU,配置CPU C为逻辑业务节点3的优选备用CPU;操作系统的支撑管理层在系统启动时据此配置控制CPU A上的逻辑业务节点3处于主用状态,只有在CPU A故障(例如,down机)的情况下,逻辑业务节点3的主用态才切换到CPU C上。同时,支撑控制系统通过相同逻辑业务节点号之间的握手通信机制,实现以逻辑业务节点模块号为标识的逻辑主备机制,取代原先的单板物理主备机制。
其中,业务节点号概念逻辑化实现设备降成本的两种实际应用方式:
A)业务节点SMP物理配置方式保持1+1左右板互备模式不变,通过让左右SMP单板同时处于工作态,实现每对SMP物理板支持的用户容量和处理能力提升。以单板的每个CPU举例,假设现在SMP单板的CPU(主用处于工作态,备用不工作)占有率为70%,支持的用户容量为7万;将CPU配置为两个逻辑业务节点(比如分别为3号逻辑业务节点和4号逻辑业务节点),同时通过系统控制功能让3号逻辑业务节点的逻辑主用态在左SMP单板的CPU上,4号逻辑业务节点的逻辑主用态在右边SMP单板的CPU上,那么此时当两个CPU占有率都在50%的情况下,支持的用户容量为10万,容量了增加3万用户。
B)业务节点SMP物理配置方式更改为2+1,其中,2个单板为主用SMP单板(保持一个CPU对应一个逻辑业务节点号),1个为专用的备用SMP单板,通过上述业务处理模块概念逻辑化,将一个备用SMP扩充为2个逻辑业务节点,实现在逻辑上模块备份配置保持1+1模式。以CDMA MSCe设备为例,对于相同的用户容量和系统处理能力,按照上述应用方式进行配置,可以减少1/4SMP物理单板的投入。
通过以上所述的配置过程得出的分布式系统如图2所示,包括包括多个物理处理单元,其中,每个物理处理单元与至少一个逻辑业务节点之间存在映射关系,每个逻辑业务节点与至少两个物理处理单元之间存在映射关系,其中,与同一个逻辑业务节点之间存在映射关系的至少两个物理处理单元并发运行逻辑业务节点中的所有业务应用程序。
其中,并发运行同一个逻辑业务节点中的所有业务应用程序的至少两个物理处理单元之一为逻辑业务节点的主用物理处理单元,至少两个物理处理单元中的其他物理处理单元为逻辑业务节点的备用物理处理单元。
其中,处于同一个物理处理单元中的业务应用程序之间基于业务应用程序的标识信息和业务应用程序所属的逻辑业务节点的标识信息进行通信。处于不同的物理处理单元中的业务应用程序之间基于业务应用程序的标识信息、业务应用程序所属的逻辑业务节点的标识信息、以及业务应用程序所属的逻辑业务节点所在的物理处理单元的标识信息进行通信。
在逻辑业务节点的主用物理处理单元发生故障时,逻辑业务节点的主用物理处理单元通过同一个逻辑业务节点之间的握手通信机制,实现与逻辑业务节点的备用物理处理单元之间的切换。
综上所述,本发明通过在基于每个CPU的操作系统上启动多个业务功能相同的应用进程实例,多个进程实例并发运行,每个进程实例对外都表现为分布式系统中的一个逻辑节点,实现了逻辑业务节点之间的相互备份,由此在不增加物理设备的同时增加了分布式系统中的节点数目,在相同物理设备的投入下充分发挥了硬件系统的处理能力,提升了业务容量,达到了降成本、减少运营投资的目的。同时本发明给出了灵活的配置应用方式供不同的商务需要。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。