著录项信息
专利名称 | 一种实现软件上主备双机热备份的方法 |
申请号 | CN200310115279.X | 申请日期 | 2003-11-27 |
法律状态 | 权利终止 | 申报国家 | 暂无 |
公开/公告日 | 2005-06-01 | 公开/公告号 | CN1622483 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04B1/74 | IPC分类号 | H;0;4;B;1;/;7;4;;;H;0;4;L;2;9;/;0;2查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 韩厚晓 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 宋志强;王琦 |
摘要
本发明公开了一种实现软件上主备双机热备份的方法,该方法包括:a.备用板运行正常后,向主用板发出批量备份请求;b.主用板接收到该请求,向备用板进行包括TCP协议数据在内的数据的批量备份;c.数据的批量备份结束,进入数据的实时备份状态,判断主用板上包括TCP协议数据的数据是否发生变化,如果是,则主用板向备用板发送实时备份的消息,并执行步骤d;否则,执行步骤e;d.备用板接收到该消息后,将主用板上发生改变的包括TCP协议数据在内的数据,实时地传输给备用板;e.判断主用板是否正常运转,如果是,则返回步骤c;否则,执行步骤f;f.进行主用板和备用板的切换,对包括TCP协议数据在内的数据进行平滑处理,之后进入正常运行状态,利用本方法可以保证通信系统的主用板发生死机或复位等故障时,通信系统内基于TCP协议实现的通信业务不会受到影响,从而保证通信的畅通。
1、一种实现软件上主备双机热备份的方法,其特征在于,其该方法包括以 下步骤:
a、备用板运行正常后,向主用板发出就绪信息和批量备份请求;
b、主用板接收到就绪信息和批量备份请求,向备用板进行包括TCP协议数 据在内的数据的批量备份;所述的TCP协议数据为主用板中每个TCP连接所对 应的数据结构任务控制块结构、文件控制块结构、套接字结构、传输协议控制 块结构以及连接状态控制块结构中的数据;备用板收到批量备份的TCP协议数 据以后,根据任务控制块结构和套接字结构中包含的TCP连接对应的任务号, 恢复TCP连接对应的数据和数据结构;
c、进入数据的实时备份状态,在该状态下,实时判断主用板上包括TCP协 议数据的数据是否发生变化,如果是,则主用板向备用板发送实时备份的消息, 备用板接收到该消息后,将主用板上发生改变的包括TCP协议数据在内的数据, 实时地传输给备用板,并执行步骤d;否则,直接执行步骤d;
d、实时判断主用板是否正常运转,如果是,则返回步骤c;否则,执行步 骤e;
e、进行主用板和备用板的切换,备用板升为主用板,并进入正常运行状态。
2、如权利要求1所述的方法,其特征在于,所述的TCP协议数据包括TCP 协议的配置数据和状态数据。
3、如权利要求1所述的方法,其特征在于,在所述的实时备份状态下,当 主用板上的TCP连接断开以后,主用板向备用板发消息,通知备用板清除该TCP 连接。
4、如权利要求1所述的方法,其特征在于,所述判断主用板是否正常运转 的处理过程为:系统判断主用板的在位信息,如果有在位信息,则主用板正常 运转,否则,主用板没有正常运转。
5、如权利要求1所述的方法,其特征在于,所述主用板和备用板的切换过 程为:系统通知所有的接口板断开与主用板的连接,改为与备用板连接,由备 用板接收和发送数据以及进行数据的处理。
6、如权利要求1所述的方法,其特征在于,所述的切换过程中进一步包括 平滑处理过程,将包括TCP协议数据在内的数据进行平滑处理。
7、如权利要求6所述的方法,其特征在于,所述的数据平滑处理为:备用 板刚刚切换为新主用板时,从接口板上将各个变化的状态数据读取到新主用板 上。
8、如权利要求7所述的方法,其特征在于,所述的平滑处理过程还包括: 所述的新的主用板检查数据中本端各个TCP连接的顺序号和状态信息与对端各 个TCP连接的顺序号和状态信息是否一致,如果一致,则进入正常运行状态, 否则,先对发生错误的TCP连接进行断开或丢包处理,之后再重新进入正常运 行状态。
技术领域\n本发明涉及电信设备的冗余技术,尤其涉及一种实现软件上主备双机热 备份的方法。\n背景技术\n电信设备运行的可靠性和连续性是至关重要的,所以,许多关键的电信设 备在硬件上都设置有主备双机热备份的冗余机制。主备双机热备份是指相同的 两个机器同时工作,一旦主机发生故障,系统应能够自动切换,将备机升为主 机,以保证通信畅通。由于通信协议是非常复杂的协议,通信软件也是复杂度 很高的软件。多年以来,通信软件一直是以集中式为主,近年来,随着接入业 务的不断扩展, 出现了分布式结构的通信软件。分布式软件有主控板和接口板 软件之分。其中主控板软件承载比较重要的系统控制数据,并记录了所有单板 的配置数据及信息,需要很高的可靠性。为了最大限度地减少意外情况下主控 板死机对系统造成的灾难性影响,现在有些技术在软件上也执行主备双机热备 份的倒换机制,即在软件上有主用板和备用板之分,一旦主用板软件发生死机 时或复位等其他故障,备用板软件能够自动转变为主用板软件,系统可以继续 正常运行,同时对一些系统内已经成功建立的业务,如视频、语音、下载等, 在倒换前后不发生中断,整个过程对用户透明。\n当前很多通信业务都是基于传输控制协议(TCP)实现的,在基于TCP协 议实现的通信业务的使用过程中,应用程序不会直接操作TCP协议层,而是利 用一种编程接口Socket与TCP协议进行通信,Socket作为一种TCP协议和应 用程序之间的编程接口,可以向应用程序提供客户端对服务器(client-server) 形式的面向连接的或无连接的通信服务。对于面向连接的服务,一个公用的服 务器长期监听连接请求,有请求时就创建新Socket和新进程与客户端通信,通 信结束后新Socket和新进程都被关闭。\nSocket和TCP所涉及的数据结构庞大且复杂,将其简化、抽象后得到如图1 所示的结构,如图1所示,其中:\nSocket和TCP的数据结构用虚框分隔成三部分:虚框101中的部分为Socket 数据结构;虚框102中的部分是传输层协议的协议控制块INPCB(Internet Protocol Control Block);虚框103中的部分是连接状态控制块(TCPCB)。各 传输协议,比如TCP、用户数据报协议(UDP)等,都有INPCB,而TCPCB是 面向连接的TCP协议特有的。\n在系统中存在一条任务控制块结构(TCB_S)的单向链表104,每个使用 Socket的任务唯一对应一个TCB_S,比如TCB_S105,TCB_S105的主要内容包 括任务号task id和FILE_S,FILE_S是用于描述任务所打开的“文件”结构,这 里所说的“文件”可以是普通意义上的磁盘文件,也可以是Socket,但嵌入式 系统中并不使用磁盘文件,为了描述方便我们将其抽象,认为只有Socket。一 个任务可以打开多个文件,也就有多个FILE_S,这些FILE_S组成线性表放在 TCB_S中,就是TCB_S中的file[0]、file[1]...,每个file对应一个FILE_S106, FILE_S106中主要包括诸如读(read)、写(write)等方法,以及一个指向Socket 结构(SOCKET_S)107的指针socket。\nSOCKET_S107主要包括一个指向传输协议控制块结构(INPCB_S)108的 指针pcb、协议开关表指针proto_sw、任务号task id、发送队列send_q以及接收 队列rcv_q等。\n每个INPCB_S唯一对应一个SOCKET_S。INPCB_S108主要包括远端地址及 端口号foreign、本地地址及端口号local、Socket指针、锁定路由route以及指向 TCPCB_S09结构的协议相关控制块指针prorelated_pcb。\nTCPCB_S109是TCP特有的,用于描述连接的各种参数,主要包括接收数据 队列、连接状态state、各定时器timers、PCB指针pcb、未被确认的数据起始指 针send_unack、发送指针send_next以及期望接收的数据指针rcv_next。\n由上述可知,TCP协议不但是一种面向连接的协议,而且它的数据结构非 常复杂,TCP协议有自己的状态机,有确认和重传机制,有发送窗口等拥塞避 免方法,因此在两个单板上保持TCP协议本身的一致是非常困难的,实现基于 TCP协议的通信业务热备份方法的难度太高,所以当前还没有一种有效的、实 现基于TCP协议的通信业务主备双机热备份的方法。\n发明内容\n有鉴于此,本发明的主要目的是提供一种实现软件上主备双机热备份的 方法,从而保证通信系统的主用板发生死机或复位等故障时,通信系统内基 于TCP协议实现的通信业务不会受到影响,保证通信的畅通,提高通信系 统地可靠性。\n为了实现上述目的,本发明的技术方案具体是这样实现的:\n一种实现软件上主备双机热备份的方法,其特征在于,其该方法包括以下 步骤:\na、备用板运行正常后,向主用板发出就绪信息和批量备份请求;\nb、主用板接收到就绪信息和批量备份请求,向备用板进行包括TCP协议数 据在内的数据的批量备份;所述的TCP协议数据为主用板中每个TCP连接所对 应的数据结构任务控制块结构TCB_S、文件控制块结构FILE_S、套接字结构 SOCKET_S、传输协议控制块结构INPCB_S以及连接状态控制块结构TCPCB_S 中的数据;备用板收到批量备份的TCP协议数据以后,根据任务控制块结构 TCB_S和套接字结构SOCKET_S中包含的TCP连接对应的任务号,恢复TCP连 接对应的数据和数据结构;\nc、进入数据的实时备份状态,在该状态下,实时判断主用板上包括TCP协 议数据的数据是否发生变化,如果是,则主用板向备用板发送实时备份的消息, 备用板接收到该消息后,将主用板上发生改变的包括TCP协议数据在内的数据, 实时地传输给备用板,并执行步骤d;否则,直接执行步骤d;\nd、实时判断主用板是否正常运转,如果是,则返回步骤c;否则,执行步 骤e;\ne、进行主用板和备用板的切换,备用板升为主用板,并进入正常运行状态。\n所述的TCP协议数据包括TCP协议的配置数据和状态数据。\n在所述的实时备份状态下,当主用板上的TCP连接断开以后,主用板向备 用板发消息,通知备用板清除该TCP连接。\n所述判断主用板是否正常运转的处理过程为:系统判断主用板的在位信息, 如果有在位信息,则主用板正常运转,否则,主用板没有正常运转。\n所述主用板和备用板的切换过程为:系统通知所有的接口板断开与主用板 的连接,改为与备用板连接,由备用板接收和发送数据以及进行数据的处理。\n所述的切换过程中进一步包括平滑处理过程,将包括TCP协议数据在内的 数据进行平滑处理。\n所述的数据平滑处理为:备用板刚刚切换为新主用板时,从接口板上将各 个变化的状态数据读取到新主用板上。\n所述的平滑处理过程还包括:所述的新的主用板检查数据中本端各个TCP 连接的顺序号和状态信息与对端各个TCP连接的顺序号和状态信息是否一致, 如果一致,则进入正常运行状态,否则,先对发生错误的TCP连接进行断开或 丢包处理,之后再重新进入正常运行状态。\n本发明所述的方法在主备两板都运转起来,并进入实时备份状态后,随 时可以进行主备倒换,并针对TCP协议特有的、复杂的数据结构,在批量 备份过程中不考虑到底有哪些数据结构发生过变化,而是把所有的数据结构 统一都由主用板备份到备用板上,在实时备份状态中,主用板上引起TCP 协议状态发生的一切变化,都会触发主用板向备用板进行备份,如果一旦主 用板发生死机或复位等情况,备用板会自动升为主用板,此时系统内基于 TCP协议实现的通信业务由于在备用板上都有备份,所以通信不会受到影 响,从而保证通信的畅通,降低了由于通信系统发生故障时造成的损失,间 接地节约了成本,并且可避免在意外情况下主用板死机对电信系统造成的服 务中断等可怕后果,提高通信系统的工作可靠性。\n附图说明\n图1为Socket和TCP所涉及的数据结构图;\n图2为本发明所述方法的流程图;\n图3为本发明所述方法在进行软件热备份时的状态迁移图。\n具体实施方式\n下面结合附图和具体实施例对本发明再作进一步详细的说明。\n本发明所述的方法是在硬件设置有主用板和备用板、且该两板互为备份的 正常运行条件下进行的,其中,主用板软件运行在主用板上,备用板软件运行 在备用板上。本发明的核心思想是:在正常情况下系统中有两块控制板同时在 位运行,但是其中只有一块被称为主用板的在真正地起到主控的作用,另外一 块被称为备用板的则处于备份状态,将主用板上的包括TCP协议数据在内的数 据备份到备用板上,即在主用板和备用板上同时分别保存相同的数据,一旦主 用板由于某种原因不能正常运转时,系统会自动切换到备用板,由该备用板接 替原主用板担任新主用板继续工作,从而使基于TCP协议实现的通信业务不会 受到影响。\n由于与TCP协议相关的数据都存放在数据结构:TCB_S、FILE_S、 SOCKET_S INPCB_S、TCPCB_S中,所以,针对TCP复杂的数据结构,本发明 所述的方法在备份过程中不考虑到底有哪些数据结构发生过变化,而是把所有 的数据结构统一都由主用板备份到备用板上,如图2所示为本发明所述方法的流 程图,其具体过程包括以下步骤:\na、备用板插入通讯系统的插槽中,运行正常后,向主用板发出就绪信息和 批量备份请求;\nb、主用板接收到就绪信息和批量备份请求,向备用板进行数据的批量备份, 其中包括TCP协议数据的批量备份,即把主用板上所有的TCP协议的配置数据 和状态数据批量备份到备用板;\n如图1所示,每个TCP连接对应的数据结构:TCB_S、FILE_S、SOCKET_S INPCB_S、TCPCB_S中的数据,都要备份到备用板,由于备份的过程中,数据 是打包备份的,数据在数据结构中的存储顺序可能被打乱,所以备用板上收到 这些数据以后,找到TCB_S和SOCKET_S中包含的该TCP连接对应的任务号task id,根据该任务号依次恢复该TCP连接对应的这些数据和数据结构。\nc、数据的批量备份结束后,进入数据的实时备份状态,在该状态下,实时 判断主用板中包括TCP协议数据在内的数据是否发生变化,如果是,则主用板 向备用板发送实时备份的消息,备用板接收到该消息后,将主用板上发生的配 置数据的实时改变以及状态数据的实时改变,实时地传输给备用板,并执行步 骤d;否则,直接执行步骤d;\n本步骤中,主用板上引起TCP协议状态发生的一切变化,都会触发主用板 向备用板进行备份,例如,主用板收到TCP报文、主用板向外发送TCP报文或 者应用程序从缓冲区中放入、取出报文时,都要将相应的数据发送到备用板进 行备份,而且当主用板上TCP连接断开以后,主用板向备用板发消息,通知备 用板清除掉该TCP连接。主用板上每个数据的动态改变都被实时备份到备用板 上,由于此时备用板无法收到外界的数据,因此当主用板上的TCP连接每次发 送、接收报文,应用程序从缓冲区中放入、取出报文时,都需要把数据结构 TCB_S、FILE_S、SOCKET_S INPCB_S、TCPCB_S中变化的数据实时备份到备 用板上,并及时恢复数据,从而使得在主用板和备用板上运行相同的应用程序, 执行同样的处理时,主用板和备用板上的所有标识TCP协议状态的数据完全保 持一致。\nd、实时判断主用板是否正常运转,如果是,则返回步骤c;否则,执行步 骤e;\n在通信系统的总线上原本有一套仲裁机制,可以判断主用板的在位信息, 如果有在位信息,则说明主用板正常运转,否则,主用板没有正常运转,通信 系统通过这套机制来判断主用板是否正常运转。\ne、进行主用板和备用板的切换,备用板升为主用板,同时对数据进行平滑 处理,其中包括对TCP协议数据的平滑处理,从而实现软件热备份的目的。\n所述主用板和备用板的切换是通过通信系统总线本身的机制实现的,当主 用板没有在位信息时,系统总线通知所有的接口板断开与主用板的连接,改为 与备用板连接,由备用板接收和发送数据以及进行数据的处理,这样,备用板 就自动升为主用板。\n上述的数据平滑处理为:在发生主备切换时,备用板刚刚切换为主用板, 由于没有来得及对变化的数据进行实时备份,因此新主用板从接口板上将各个 变化的状态数据读取到新主用板上;又由于在主备切换的过程中可能丢失数据, 新的主用板检查数据中本端,即数据接收端的各个TCP连接的顺序号和状态等 信息与对端,即数据输出端的各个TCP连接的顺序号和状态等信息是否一致, 如果一致,则进入正常运行状态,否则,先对发生错误的TCP连接进行断开或 丢包处理,之后再重新进入正常运行状态。\n图3所示为本发明在进行软件热备份时的各个状态之间进行转换的状态迁 移图,如图3所示,虚线框301表示主用板各个状态的迁移,其中包括主用板 的等待备用板插入状态303、等待批量备份请求状态304、批量备份状态305、 实时备份状态306以及数据平滑处理状态307;虚线框302表示备用板各个状 态的迁移,其中包括备用板的接收批量备份数据状态308、接收实时备份数据 状态309和就绪状态310。\n图3同时说明了热备份过程中各个状态事件的进展过程,这些过程包括:\na、主用板先处于等待备用板插入状态303,当事件1发生后,主用板进入 等待批量备份请求状态304,其中的事件1为:备用板插入通讯系统的插槽中;\nb、当事件2发生后,主用板进入批量备份状态305,事件2为:主用板接 到备用板批量备份请求;\nc、当事件3发生后,主用板就进入实时备份状态306,事件3为:软件系 统中各个模块的批量备份结束;\nd、当事件1发生后,备用板处于就绪状态310,当事件5发生后,备用板 进入接收批量备份数据状态308,事件5为:备用板发送的备用板就绪信息和 批量备份请求被主用板成功接收;\ne、当事件6发生后,备用板开始处于接收实时备份数据的状态309,事件 6为:备用板接收到主用板的实时备份消息;\nf、当事件7发生后,系统执行主备倒换,新主用板进入数据平滑处理的状 态,事件7为:主备倒换、主用板复位或主用板发出倒换命令;\ng、事件8结束后,主备切换成功,事件8为:平滑处理过程。\n在上述过程中,当事件4发生时,主用板会从各个不同状态回到等待备用 板插入状态303,同时备用板也从不同状态回到就绪状态310,事件4为:备用 板重启、发送消息到备用板失败、备用板复位或者备用板收到错误消息。\n以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局 限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变 化或替换,都应涵盖在本发明的保护范围之内。
法律信息
- 2019-11-15
未缴年费专利权终止
IPC(主分类): H04B 1/74
专利号: ZL 200310115279.X
申请日: 2003.11.27
授权公告日: 2008.11.26
- 2008-11-26
- 2006-04-26
- 2005-06-01
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2003-11-26
|
2002-05-13
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |