用于网络装置上容错的持久性服务的方法和设备的制作方法

文档序号:7752318阅读:187来源:国知局

专利名称::用于网络装置上容错的持久性服务的方法和设备的制作方法
技术领域
:本发明涉及通信网络,更具体地,涉及用于光学通信网络的数据存储。
背景技术
:尽管到2002年,因特网协议(“IP”)通信量将达到公共通信网络通信总量的90%以上,并且通信服务供应商计划在核心路由以及光学传输设备方面投入700多亿美元的资金,以大大扩展其IP/光学主干网,然而从IP服务获得的收入仅将达到250亿美元,与750亿美元的通信网络服务总收入相比,只占三分之一。此收入困境主要是因特网访问市场中过度的竞争造成的,其从根本上导致了商品的包价收费制。虽然图形、音频以及视频内容的广泛使用大大提高了平均使用率,然而对用户来说收取的费率仍然是相同的。服务供应商必须增加网络核心的容量但在收入方面没有任何相应的增加。对于服务供应商来说,真正的挑战在于如何从他们的IP/光学主干网得到更多的收入。通过利用IP服务质量(“QoS”)、多协议标记交换(“MPLS”)以及服务转换技术(非IP服务向IP服务的转换)方面的最新进展,服务供应商可以将专用的IP结构发展为多服务网络结构,作为操作分离的服务专用网络的一种选择。该新型的网络结构是单一的多服务网络,使用IP作为所有服务传递的基本协议。这就允许服务供应商在其他已确定的网络服务收入的基础上补充源自帧中继、TDM专线以及ATM的IP收入,这样就使得他们在IP/光学网络中巨大的运营投入得到更快的回报。然而,所述多服务网络结构的方方面面都必须确保其想要补充或者替代的网络具有可靠性。容错必须在服务集中的网络边际开始。尽管传统的数据库提供了有效的存储,但是它们没有解决在此环境中提供网络装置所必须的高度可靠的容错系统的问题。因此需要一种用于该多服务网络环境中的高度可靠的容错的数据库存储。
发明内容一方面,本发明提供了一种在网络化环境中针对外部应用,提供持久性容错数据的方法,其中所述数据存储在所述网络化环境中的一装置的数据库中,该装置具有一现用的处理器系统以及一备用处理器系统。该方法包括下列步骤在所述备用处理器系统上提供与位于现用处理器系统上的现用数据库相同的备用副本;监视该现用处理器是否出现故障;当检测到故障时由所述备用处理器接管控制;其中,从所述现用数据库到所述备用数据库的切换对外部应用来说是透明的。并且公开了一种系统。结合附图考虑以下说明书内容可以获得对本发明的更完整的理解,在附图中图1是表示系统元件关系的高级原理框图;以及图2是表示一代表性的外部应用和数据存储模块之间交互作用的高级原理框图。具体实施例方式尽管本发明特别适合与琥珀网(AmberNetwork)ASR2000和ASR2020路由器装置一起使用,并且在本文中也是这样描述的,但是其也同样适合与具有类似容量和特性用于实现MPLS冗余的的其他光学路由器一起使用。MPLS(多协议标记交换)是一项得到标准改善的技术,用于加速网络业务流量并且使其更容易管理。MPLS涉及为一给定顺序的信息包设置一个特定的路径,其中,所述给定顺序的信息包由放在每个信息包中的标记来识别,因此节省了路由器查找将信息包转发到的下一节点的地址所需要的时间。MPLS被称为多协议是因为其使用因特网协议(“IP”)、异步传输模式(“ATM”)以及各种帧中继网络协议工作。参照标准的开放系统互连(“OSI”),MPLS允许绝大多数信息包在第二(交换)层而不是在第三(路由)层被转发。除了使通信整体移动更快之外,MPLS还使管理用于服务质量(“QoS”)的网络变得容易。由于这些原因,随着网络开始承载更多不同业务的组合,预计该技术将容易被采用。尽管最初MPLS是提高路由器转发速度的一种方法,然而其正在成为能够为大规模IP网络提供新性能的一个关键的标准技术。业务流量工程一网络操作员指令业务流通过其网络行进的路径的能力,以及虚拟专用网支持是MPLS优于当前任何可用的IP技术的两个关键应用的例子。因特网工程任务组(“IETF”)定义了MPLSLDP,CR-LDP,RSVP,RSVP-TE以及其他的一些协议。这些定义描述了对协议冗余的需要;但是没有提供其实施信息,这实际上是留给销售商/制造商结合他们特别的应用要求来实现。边缘路由器是边缘装置的一个例子,并且有时其被称为是指边界路由器。边缘路由器有时是与核心路由器相对而言的,所述核心路由器在一网络内(而不是在网络之间)将信息包转发到计算机主机。随着聚合和核心路由器的应用,协议的故障会导致不可接受的网络故障时间。必须提供硬件和软件冗余以提供网络的高度可靠性。尽管传统的数据库提供了有效的存储,但是它们没有解决提供在该环境下网络装置所需的高度可靠的容错系统的问题。本发明,用于网络装置上的容错服务的方法和设备,能够实现在多服务网络环境中的高可靠性的容错数据库存储。一方面,本发明提供了一种在网络化环境中为外部应用提供持久性容错数据的系统和方法。简言之,该方法包括使用第二版本的管理信息结构(SMIv2)的格式来定义一数据库,然后使用该SMIv2定义产生对应于该数据库的结构和元数据。在一第二系统上提供与位于主系统上的数据库相同的备用副本,并且通过一应用程序接口访问所述现用的数据库。当在主系统中检测到故障时,从所述主数据库切换到所述备用数据库,该切换的完成对于外部应用来说是透明的。本发明为容错的网络数据存储装置提供了有效的持久性。本发明允许一应用程序以SMIv2(管理信息结构-版本2)格式来定义数据持久性要求,并且产生所需的方案。该应用程序使用API(应用程序接口)交互作用来读取或者写入持久性信息。这样就使该应用程序高度可用,因为所述数据和必需的数据库的副本被冗余地保存在另一控制面板中。当发生故障时,由该冗余卡来接管,在该冗余的控制面板上可以获得同样的数据。本发明支持不同种类的常规数据,包括不透明的数据。该应用程序可以对该数据库的带有其签名的副本进行校验,而不必从该数据库抽取该数据。从网络管理员的角度来看,网络管理发生在两种主要类型的系统之间那些进行控制的系统,称为管理系统,那些被观察并且被控制的系统,称为被管理的系统。最常见的管理系统称为网络管理系统(NMS)。被管理的系统可以包括主机、服务器或者网络组件,例如路由器或者智能中继器。为了促进互操作性,协同操作的系统必须遵守一公用框架以及一公用语言,称为协议。在因特网网络管理框架中,该协议是简单网络管理协议,通常称为SNMP。在被管理的网络装置与一强壮的NMS之间进行信息交换对于被管理的网络的可靠运行来说是必要的。因为这些装置中的一些装置在运行管理软件方面的能力有限,因此所述软件必须使其对被管理装置的运行影响达到最小化。因此大量的计算机处理负担由该NMS来承担。该NMS依次运行网络管理应用程序,所述网络管理应用程序向网络管理员以及其他用户提供管理信息。在一被管理的装置中,专用的低影响软件模块,称为代理,访问与被管理的装置有关的信息,并且使其可以被该NMS使用。被管理的装置保存若干变量的值,并且根据需要将它们报告到该NMS。例如,一代理可以报告诸如以下的数据出入该装置的字节和信息包的数量,或者被发送和接收的广播消息数量。在因特网网络管理框架中,这些变量中的每一个被称为一个被管理的对象。一个被管理的对象是可以被管理的任何事物的一个分类,其中,代理能够访问所述的任何事物并且能够将其报回至NMS。所有被管理的对象均被包含在管理信息库(MIB)中,其为被管理的对象的数据库。NMS可以通过向(该被管理的装置的)代理发送一消息,请求该装置改变一个或者多个其变量的值来控制一被管理的装置。该被管理的装置可以对例如Set和Get的指令作出反应。NMS使用Set来控制该装置。NMS使用Get来监视该装置。MIB变量可以通过简单网络管理协议(SNMP)来访问,其为一应用层协议,被设计用于促进网络装置之间的管理信息的交换。该SNMP系统由三个部分组成SNMP管理员、SNMP代理以及MIB。SNMP不是定义一个大的指令集,而是将所有的操作设置在get-request、get-next-request、get-bulk-request以及set-request格式中。例如,一SNMP管理员可以从一SNMP代理获取一个值,或者在该SNMP代理中存储一个值。该SNMP管理员可以是网络管理系统(NMS)的一部分,并且该SNMP代理可以驻留在一网络装置,例如路由器上。该MIB由网络管理软件来编辑。如果SNMP被配置在一路由器上,则该SNMP代理可以对由该NMS发送的与MIB相关的查询作出响应。NMS的一个例子是网络管理软件,其使用MIB变量来设置装置变量,并对因特网上的装置进行轮询以获取特定的信息。可以将轮询的结果制成图表并对其进行分析,以帮助你排除因特网问题,提高网络品质,检验装置的配置,监视通信负荷等等。该SNMP代理获取来自该MIB的数据,所述MIB是与装置参数和网络数据相关的信息的储存库。该代理也可以将捕获的信息(traps)或者特定事件的通知发送到管理员。本发明,即用于在网络装置上进行容错服务的方法和装置使用了一个数据库,所述数据库使用IETFSMIv2格式实现为包含在一MIB中的被管理对象的集合,其中MIB是一个被管理对象的数据库。该程序使用API交互作用以读取或者写入持久性信息。该数据库使用IETFSMIv2格式作为数据定义语言。SMIv2管理信息被看作是被管理对象的集合,驻留在虚拟信息存储器MIB(管理信息库)中。相关对象的集合被定义在MIB模块中。这些模块是使用OSI的抽象语法表示1,ASN.1(1988)的一个适合的子集而写入的。管理信息的结构(SMI)定义了所述适合的子集,并且用于分配一组相关的管理值。该SMI被分成三部分模块定义、目标定义以及通知定义。定义SMIv2的最终的RFC(请求注解)已经在1999年4月公布为因特网标准58管理信息结构-版本2(SMIv2),RFC2578,STD58,1999年4月;SMIv2的原文规则,RFC2579,STD58,1999年4月;以及SMIv2的一致性描述,RFC2580,STD58,1999年4月,这里参考引用上述标准的详细内容。常规的数据库使用复杂的机制来存储数据,其实质上并非被设计用作一网络装置,因为它们缺少容错。本发明提供了一种能够容错的用于存储数据的新方法。该应用服务需要持久性信息,其使用SMIv2格式来定义该数据库的设计方案。其他的数据库或者使用一种专有的数据定义语言或者使用一种结构化查询语言(SQL)来定义其数据。本发明具有以SMIv2格式定义的数据元,其随后被用于产生结构和元数据。所产生的结构被该应用程序用来读写数据。该元数据被称为数据存储(datastore)的数据库服务使用以提供对数据的访问。当网络装置第一次启动时,在该文件系统上启动设计方案。该文件系统被期待提供符合POSIX的文件IO功能。在完成第一次读取时,通过返回一个错误消息,该应用程序被通知随后对其记录进行初始化。本发明支持能够动态增加的动态记录。该应用程序随后能够使用数据库记录id(由工具产生)以及行号来读写该持久性信息。为每个记录保存一个校验和,并且每次在该系统重新启动时检验该校验和。该数据库的一个相同的副本保持在备用状态。当插入备用模块时,冻结现用模块的供给并且将数据库从该模块复制到该备用系统。该数据库副本完成之后,备用任务就产生了。因为现用数据库中的每个改变均被同样地发送到该备用数据库,因此,这就使所有的任务看到同样的数据库。该数据库的备份副本(快照)是通过使用tar和压缩技术来制作的。该备份机制类似于标准应用程序。另外保留一个幻数以使用数据存储快照来区分任何采用tar和zip格式压缩的文件。版本号被存储在该采用zip格式压缩的文件中。gzip的标题的注释区域用于存储该幻数以及版本信息。所有的备份副本都保持为冗余的。该数据库被设计为在其检测到旧版本时提供一个透明的版本升级。其完成是通过使用dsrevise工具寻找数据库版本之间的变化,然后产生将旧的版本更新为较新的版本的代码来实现的。参见图1,其示出了在定义、datastore和应用程序之间的交互作用。该应用程序实际上是通过定义该MIB而确定数据定义。这些方案文件102描述了诸如以下项目的定义主机、温度传感器、系统卡信息以及线路卡信息,这些信息需要是持久性的,以使该系统高度可靠并且高度可用。在MIB被定义之后,随后使用该MIB定义来产生该系统使用的信息。这通过使用datastore语言处理器实用程序(dslp)104来完成。这样产生由datastore106和应用程序108使用的文件。其包括元数据110以及C标题文件112。该应用程序108使用一个编译程序114从该运行时程序库118以及C源代码文件120来产生一个可执行模块116。该dslp实用程序104随后产生下列文件。●dsRecId.h包含记录标识。其包含确定的所有记录的记录标识符。这些记录标识符由该应用程序来使用。●dsMeta.h包括datastore需要的记录信息。●dsPrintDir.h包括打印功能的映射。其被用于ds_showRecords。●dsPrintProto.h包括所有的datastore记录的打印原型。该应用程序开发商能够提供这些程序的执行。默认的执行还以dsPrintImpl.c文件的形式来实现。●dsPrintImpl.c该C文件包括所有记录的默认的打印消息。该应用程序也能够提供该程序的执行。●rmDsStruc.h该结构被应用程序使用来读写该文件。参见表1,其示出了典型的代码(在该MIB文件中找到),其被使用IETFSMIV2格式写为数据定义语言。该例子涉及温度传感器的定义。表1tempSensorTable对象类型SYNTAXtempSensorEntry的序列MAX-ACCESS不可访问STATUS当前的DESCRIPTION“Systemcardinfotable”∷={systemCard3}tempSensorEntry对象类型SYNTAXtempSensorEntryMAX-ACCESS不可访问STATUS当前的DESCRIPTION“Anentry(conceptualrow)inthetempSensorTable.”INDEX{lcIndex}∷={tempSensorTable1}TempSensorEntry∷=SEQUENCE{tsNumber无符号16位,tsThresholdLow无符号16位,tsThresholdHigh无符号16位,}tsNumber对象类型SYNTAX无符号16位MAX-ACCESS只读的STATUS当前的DESCRIPTION“传感器号码”∷={tempSensorEntry1}tsThresholdLow对象类型SYNTAX无符号16位MAX-ACCESS读-写STATUS当前的DESCRIPTION“以摄氏度表示的低阈值”∷={tempSensorEntry2}tsThresholdHigh对象类型SYNTAX读-写MAX-ACCESS当前的STATUS“以摄氏度表示的高阈值”DESCRIPTION∷={tempSensorEntry3}tempSensorTableMaxRows对象类型SYNTAX整数(4)MAX-ACCESS只读STATUS当前的DESCRIPTION“最大的行数”∷={systemCard4}...tempSensorGroup对象组OBJECTS{tempSensorTableMaxRows}STATUS当前的DESCRIPTION“thesystemgroupdefinesobjectswhicharecommontoallmanagedsystems”∷={resMgr17}参见图2,其示出了一框图,描述了代表性的外部应用程序202与datastore模块204之间的交互作用。该外部应用程序202通过调用由“dslibrary(数据库)”206提供的库功能来使用datastore模块204。Datastore204包括元数据208、日志文件210以及数据文件212。用于访问datastore204的指令包括dsinitialize(数据库启动)214,dsutils(数据库应用)(检查、编辑、清除、转储等等)216以及dsexport(数据库导出)218。Dsexport218提供了产生一ASCII文件220的必要的接口。参见表2,其示出了用于访问永久性信息(数据)的采样伪代码。表2intresMgrTaskMain(){AX2000HOST_DS_REChostEntry;/*从该datastore读取记录*/if(ds_getRecord(AX2000HOST_ID,0,&hostEntry)==ERROR){/*检查该记录是否没有初始化。以默认的值来初始化该记录*/if(errno==DS_INIT_RECORD){appTaskUpdateDefaultValue(&hostEntry);ds_setRecord(AX2000HOST_ID,0,&hostEntry);}}else{/*根据该值来采取行动*/appUpdatePrompt(hostEntry.ax2000hostName);}/*应用程序具体码*//*改变值以及更新该datastore*/strncpy(hostEntry.ax2000hostName,”ASRBOX1”);ds_setRecord(AX2000HOST_ID,0,&hostEntry);}这里,负责保持主机名称的资源管理器任务使用指令ds_getRecord来获取存储在该持久性信息中的值。其使用在dsRecId.h文件中定义的记录标识,行号(0),以及用于放置该值的缓冲区。如果该数据还没有初始化,则ds_getRecord返回一个错误,并且使用默认值来初始化该记录。当一个记录改变时,其被使用ds_setRecord来更新。本发明包括一种用于(通过使用dsreport指令)以ASCII格式输出数据的方法,并且该显示机构使用幻数来处理字节调整。每个数据文件包含一个四个字节的幻数,其十六进制表示是Oxafbeadde。当在小尾数(endian)机器上读取datastore数据文件时,此幻数被读为Oxdeadbeaf。这指示尾数已经完全改变了,并且随后的显示通过将大尾数转换为小尾数来完成。考虑到前面的描述,对于本专业技术人员来说,本发明的大多数修改和可选的实施方式都是显而易见的。需要清楚理解的是,可以以多种语言多种方式来实现特定的典型的计算机代码,其同样能够很好地适应多个硬件平台。因此,此说明书仅应该被看作是说明性的,并且目的是向本专业技术人员讲解本发明的最佳模式。在不脱离本发明的精神的范围内该结构的细节可以有很大的不同,并且保留对落在该附加的权利要求的范围内的所有修改的专用权。权利要求1.一种在网络化环境中针对外部应用提供持久性容错数据的方法,其中,所述数据存储在该网络化环境中的一装置的数据库中,所述装置具有一现用处理器系统以及一备用处理器系统,所述方法包括以下步骤在所述备用处理器系统上提供与位于所述现用处理器系统上的现用数据库相同的备用副本;监视所述现用处理器是否有故障;当检测到有故障时,由所述备用处理器接管控制;其中,从所述现用数据库到所述备用数据库的切换对外部应用来说是透明的。2.如权利要求1所述的方法还包括在所述现用处理器系统以及所述备用处理器系统上保留所述数据库带签名的压缩备用副本的步骤。3.如权利要求2所述的方法还包括在故障事件发生时从所述压缩的备用副本恢复数据的步骤。4.如权利要求2所述的方法还包括在有恶化事件发生时从所述压缩的备用副本恢复数据的步骤。5.如权利要求1所述的方法还包括使用一预定的格式来定义所述数据库的步骤。6.如权利要求5所述的方法还包括使用所述预定格式的定义产生与所述数据库相对应的结构和元数据的步骤。7.如权利要求1所述的方法还包括通过一个应用程序接口访问所述现用数据库的步骤。8.如权利要求5所述的方法,其中所述预定的格式是管理信息结构版本2(SMIv2)的格式。9.一种在网络化环境中针对外部应用提供持久性容错数据的系统,其中,所述数据存储在该网络化环境中的一装置上的数据库中,所述装置具有一现用处理器系统以及一备用处理器系统,所述系统包括以下装置用于在所述备用处理器系统上提供与位于所述现用处理器系统上的现用数据库相同的备用副本的备用装置;监视所述现用处理器是否出现故障的监视装置;当检测到故障时,用于由所述备用处理系统接管控制的控制装置;其中,从所述现用数据库到所述备用数据库的切换对外部应用来说是透明的。10.如权利要求9所述的系统,还包括备份装置,用于在所述现用处理器系统以及所述备用处理器系统上保留所述数据库带签名的压缩备用副本。11.如权利要求10所述的系统,还包括用于在发生故障事件时从所述压缩的备用副本恢复数据的装置。12.如权利要求10所述的系统,还包括用于在出现恶化事件时从所述压缩的备用副本恢复数据的装置。13.如权利要求9所述的系统,还包括使用一预定的格式来定义所述数据库的装置。14.如权利要求13所述的系统,还包括使用所述预定格式的定义产生与所述数据库相对应的结构和元数据的装置。15.如权利要求9所述的系统,还包括通过一个应用程序接口访问所述现用数据库的装置。16.如权利要求13所述的系统,其中所述预定的格式是管理信息结构版本2(SMIv2)的格式。全文摘要一种在网络化环境中针对外部应用提供持久性容错数据的方法,其中,所述数据存储在该网络化环境中的一装置的数据库中,所述装置具有一现用处理器系统以及一备用处理器系统,所述方法包括以下步骤在所述备用处理器系统上提供与位于所述现用处理器系统上的现用数据库相同的备用副本;监视所述现用处理器是否出现故障;当检测到有故障时,由所述备用处理器接管控制;其中,从所述现用数据库到所述备用数据库的切换对外部应用来说是透明的。文档编号H04L12/24GK1605067SQ02825244公开日2005年4月6日申请日期2002年12月20日优先权日2001年12月20日发明者阿贾伊·卡马万什,马德希·格朗迪申请人:诺基亚有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1