双主控网络设备冗余备份的研究与应用
2011-11-26刘国秀蒋朝根
刘国秀,蒋朝根
(西南交通大学 信息科学与技术学院,成都 610031)
双主控网络设备中的主用主控板、备用主控板和业务卡分布在背板不同的槽位上,为了保障系统的高可靠性,需要主从备份和实时信息变化时主用主控板、备用主控板和业务卡的信息同步,并且还需要存储路由信息、设备信息和配置数据等。然而,目前双主控网络设备冗余备份在实现上存在着代码重用率低和数据同步的质量不可控等缺点,并且需要同步的路由信息、设备信息和配置数据等由各个应用模块采取不同的数据结构存储,存储接口不统一。针对以上存在的问题,设计了嵌入式分布式数据库,它具有的特点可以满足双主控网络设备中的主用主控板、备用主控板和业务卡对物理分布性和对存储、备份功能的需求。
1 主控冗余备份
主控冗余备份是指设备提供两块主控板,互为备份。其中一块为主用主控板(Master Mpu),处于工作状态,另一块作为备用主控板(Slave Mpu),处于备份状态。主用主控板运行过程中,将所有静态配置信息和一部分动态信息备份到备用主控板,使得备用主控板具有与主用主控板相同的配置信息。
在双主控网络设备中,为了提高网络设备的可靠性,主控采用冗余备份,当主用主控板宕掉或用户强制切换时,备用主控板将接替主用主控板,保证系统无间断的转发。双主控网络设备冗余备份的实现包括热切换和热备份两个部分。而本文主要介绍基于嵌入式分布式数据库实现的热备份。系统提供同步机制来实现热备份功能。系统同步主要包括批量同步、实时同步和强制同步。
2 基于嵌入式分布式数据库双主控网络设备的冗余备份
2.1 嵌入式分布式数据库
嵌入式分布式数据库运行在嵌入式设备上,并且在物理分布上是分布在双主控网络设备的不同槽位上的主控卡、备用主控卡和线卡上,不仅具有嵌入式数据库的特点,而且具有分布式数据库的特点,因此,在本课题中称之为嵌入式分布式数据库。
嵌入式分布式数据库是使用精简代码编写的,运行在嵌入式设备上,需要较少的内存,其速度更快,效果更理想。并且还具有应用的可配置性和可适应性、支持全驻内存的操作、支持多线程等特点。在实际应用中,嵌入式应用一般很少需要处理结构化查询语言(SQL)那样的复杂查询,能够针对具体应用完成用户提出的任务比支持通用的查询界面更重要。因此嵌入式分布式数据库就无需像传统大型数据库那样支持开放数据库互联(ODBC)和SQL界面。
嵌入式分布式数据库从所处的物理位置上来讲,是物理上分散而逻辑上集中的数据库系统。它们虽分布在双主控网络设备的不同槽位上的主控板和业务板上,但又需要集中管理和控制,由以太通道连接起来共同组成一个统一的数据库系统。
2.2 嵌入式分布式数据库体系结构
嵌入式分布式数据库首先是一个数据库管理系统,它有一般数据库管理系统(DBMS)的基本功能,即:数据管理包括数据库的定义、存储和维护等;有效的数据库操作包括查询、插入、更新和删除。当然它也具有嵌入式数据库和分布式数据库的特点,如嵌入式、代码量小轻便灵活、物理分布性、自治性和同步性等。其中同步性是嵌入式分布式数据库的显著特点。
嵌入式分布式数据库的首要设计目标是实现简单的存储和数据库的同步机制,在设计中把数据库的同步机制作为重点。嵌入式分布式数据库可以分为分布式数据库数据同步和表的公共存储两大部分,体系结构如图1。其中,分布式数据库数据同步主要由以下几个子模块构成:
图1 嵌入式分布式数据库体系结构
(1)数据库初始化模块:完成数据库资源的初始化。
(2)分布式数据库注册模块:分布式数据库注册模块完成数据库的分布式注册,建立主用主控板、备用主控板和业务板上数据库表间的关系。
(3)分布式数据库基础机制模块:提供分布式数据库运行所必须的任务、定时器、消息处理等基础机制。
(4)数据库管理模块:提供外部模块对数据库操作和控制的接口,维护表的分布相关信息及管理数据库的事务等。
(5)数据分发模块:完成对数据库管理的操作进行同步。
表的公共存储由公共表存储查询模块完成表存储、查询和日志管理等功能。
2.3 基于嵌入式分布式数据库双主控网络设备冗余备份的方案
主控冗余备份在软件上的实现包括热切换和热备份两个部分。所谓热切换,是主控冗余系统采用的一种技术,是指在有两块主控板的分布式系统中,对其主控板进行1+1的冗余备份;其中主控板的主备两板保持实时通信,在备用主控板上保持一份与主用主控板上同样的数据而实现热备份;主用主控板会定期向备用主控板发送“心跳”报文,当备用主控板一旦检测到“心跳”报文终止或者收到主用主控板的切换通知,会认为主用主控板发生了故障,接替主用主控板的工作,从而实现了热切换。而热备份就是在系统启动之后,主用主控板定期将配置信息备份到备用主控板。当备用主控板检测到主用主控板宕掉或接收到强制切换的shell命令,将接替主用主控板。同时,对原来的主控板会进行故障恢复。由于篇幅所限,本文仅介绍基于嵌入式分布式数据库实现双主控网络设备的热备份。
基于嵌入式分布式数据库实现双主控网络设备的热备份方案如图2,在系统启动时主用主控板和备用主控板同时启动,或在系统已运行的情况下再插入备用主控板,主从协商完之后,进入嵌入式分布式数据库系统,互相通告数据库表的相关信息,完成数据库的分布式注册,建立主用主控板和备用主控板同步时数据库表间的关联;数据库表的相关信息通告完之后,则进入主用主控板和备用主控板的批量同步阶段,主用主控板会遍历与备用主控板建立了关联的数据库表,把表中的记录封装成报文的形式发送到备用主控板,备用主控板接收到报文后,根据操作类型完成相关表的操作(包括对表的插入、删除和更新)。完成批量同步后,则进入实时同步阶段,当应用模块通过嵌入式分布式数据库提供的操作接口对数据库表进行插入、删除和更新时,则会引起数据库表信息的变化,主用主控板上的嵌入式分布式数据库系统则会及时同步到备用主控板的嵌入式分布式数据库系统中。如果主用主控板发生故障或强制切换时,备用主控板则会接替主用主控板的工作。
在运行的系统中插入一张业务卡,业务卡启动完毕后,进入嵌入式分布式数据库系统,建立与主用主控板同步时数据库表间的关联;和上述类似,接着批量同步和实时同步,这里不再赘述。便保证了业务的正常运转。
如图2,对嵌入式分布式数据库需要实现的功能和接口描述如下。
图2 双主控网络设备的热备份方案
分布式数据库数据同步:该模块提供框架,应用程序使用该框架函数集就可以在嵌入式分布式系统中将信息从主用主控板同步到备用主控板和业务卡,并且该模块还提供将同步过来的数据根据操作类型分发到相应模块的数据库表中。
应用模块:在本文中指需要使用分布式数据库数据同步的应用模块。
公共数据库:该数据库提供函数集,应用模块可以通过函数集向数据库中进行插入、删除和更新等操作,该数据库仅仅是一个简化的数据库,提供以表的形式进行存储。
接口A:应用程序操作数据库接口,包括创建表、插入、删除、更新表项、设置表属性、启动、确认、回滚事务等。
接口B:分布式数据库数据同步模块内部接口,通过卡间通讯等将信息传递到备用主控板和业务卡上,接口不对外公开。
接口C:数据库操作接口,包括创建表、插入、删除、更新表项、设置表属性和查询表。
接口D:分布式数据库数据同步模块与应用程序接口,包括插入、删除、更新表项、启动、确认和回滚事务。
3 新架构在三层交换机上的应用
近年来,随着互联网和信息化建设的迅猛发展,三层交换机也得到了广泛应用,它的领域已遍及骨干网、城域网骨干和汇聚层等,特别是用于核心骨干网。因此对三层交换机的可靠性也提出了很高的要求。三层交换机为了提高可靠性,主控板采用了冗余备份技术。
以前冗余备份的实现,在三层交换机的开发中采用的方式为:上层应用模块通过相关模块提供的数据收发接口来实现数据同步,由于提供的接口相对比较简单,因此上层应用必须关心数据的封装、解封装和分发,所以也需要关心热拔插,主用主控板和备用主控板的批量同步等事件,同时需要设计机制保证数据在主用主控板、备用主控板和业务卡中的一致性。在软件设计上由于没有对上层应用模块的约束,上层应用模块实现的方式多样化,没有统一的接口。缺点:(1)应用模块代码重用性差;(2)各个应用模块实现不统一;(3)应用模块数据同步的实现质量不可控。
另外需要同步的数据在存储方面,应用模块采取不同的数据结构存储数据,缺乏标准的存储接口。并且每增加一款新产品,应用模块就要增加相应的数据结构存储产品的新特性。各个应用模块实现复杂,工作量大。
而基于嵌入式分布式数据库冗余备份的新架构,提供了标准且固定,隔离性好的统一的API接口。各个应用模块直接调用API接口,不必关心内部的实现细节,实现极其简单,工作量减小。并且数据的同步对各个应用模块已屏蔽。嵌入式分布式数据库还具有存储查询功能。
综上所述,采用新架构的三层交换机的主控板的冗余备份,提高了代码的重用性,减少了其它应用模块的工作量和提高了数据同步的质量,并且实现了三层交换机的可靠性。
4 结束语
本文首先介绍了双主控网络设备的冗余备份,在冗余备份的实现上引入了分布式数据库技术,接着对基于嵌入式分布式数据库双主控网络设备冗余备份的实现进行了研究,提出了新的设计方案并进行了原理性介绍,最后把提出的新方案应用在三层交换机的主控板的冗余备份上。这种新方案,提高了代码的重用性和数据同步的质量,并减少了其它应用模块的开发工作量,在一定程度上减少了开发成本,并且实现了设备的高可靠性。本论文的研究意义不仅局限于此,这些成果对于应用于其它领域的研究与运用也具有一定的参考价值。
[1]王能斌. 数据库系统教程[M]. 北京:科学出版社,2002.
[2]肖文鹏. 开源嵌入式数据库Berkeley DB[EB/OL]. http://tech.ccidnet.com, 2004-04-09.
[3]肖迎远. 分布式实时数据库技术[M]. 北京:科学出版社,2009.
[4]滕永昌. Oracle9i数据库管理员使用大全[M]. 北京:清华大学出版,2004,3.
[5]Thomas Kyte. Oracle 9i & 10g编程艺术:深入数据库体系结构[M]. 苏金国,王小振. 北京:人民邮电出版社,2006,10.