一种路由器线卡热插拔实现方法及装置的制作方法

文档序号:7921964阅读:170来源:国知局

专利名称::一种路由器线卡热插拔实现方法及装置的制作方法
技术领域
:本发明涉及数据通信领域,尤其涉及路由器线卡的热插拔实现方法及装置。在目前最常见的支持分布转发的路由器体系结构中,路由器内部通常都由主控板,交换结构和线卡(业务卡)组成。其中主控板负责整个设备的管理和路由的收集、计算功能,并将计算出的转发表下发到各线卡;而各线卡则根据保存的路由转发表独立地对报文进行路由转发及业务处理;交换结构为主控板和线卡之间提供了内部交换和通信的能力。为了保证路由器的可靠性,路由器大多支持线卡的热插拔功能。热插拔,又叫在线插拔(OIR,OnlineInsertionandRemoval)和热切换(hotswap,hotplug)等等,是指在高可靠性系统中,在不影响系统正常工作的情况下(不重启不断电),允许带电拔出故障线卡,插入备用线卡的能力。热插拔技术是提高系统可靠性的重要途径,它属于一种容错技术,它在一定程度上包括了故障检测和诊断技术,系统重组和恢复技术,它可以有效地减少设备部件失效进行替换时带来的平均故障修复时间,从而提高系统的可用性和可靠性。热插拔对系统的可扩展性又有重要的支持。对于一些系统和设备来说,一开始也许并不需要提供所有的功能。在系统运行过程中,如果用户想要添加某些功能,则只需要将相应的功能模块加入系统即可;而如果用户不需要某些功能时,可以把相应的功能模块从系统中分离即可,用户也可以根据应用需求来对系统进行重构。现有技术公开了一种在支持接口热插拔的系统上进行接口备份的方法,该方法在系统中创建用于记录接口配置信息的控制块,每一控制块对应一个接口;由备份中心维护所述控制块,并使该控制块动态地记录接口管理模块上报的对应接口的状态和信息;在所述接口被拔出后再插回时,从该接口对应的控制块恢复接口拔出前的配置信息。现有技术另公开了一种热插拔板卡配置保存方法,该方法在板卡热拔出过程中,系统采用配置比较的方法统一保存热插拔板卡的所有配置,即通过比较热插拔板卡拔出前后系统的配置,并保存差异行到指定位置,差异行配置即为同一型号热插拔板卡和同类热插拔板卡插入时需要恢复的所有配置。该方法的配置比较和保存过程不需要当前板卡非接口配置相关的各个协议模块分别参与,使得软件系统和各协议模块间耦合度减少,提高了软件开发和维护效率。以上两种现有技术方案将线卡及其配置进行了分离,专门设计线卡及接口配置信息的保存和恢复机制来实现热插拔过程中配置的保存和恢复能力。但这两种方案存在如下缺陷在没有线卡的情况下,无法预先进行软件的配置,即没有预配置的能力。
发明内容针对现有技术存在的上述问题,本发明提供一种路由器线卡热插拔实现方法及装置。本发明实施例提供的路由器线卡热插拔实现方法包括在路由器的待插入物理线卡的槽位上创建虚拟线卡,并加载虚拟驱动;保存针对所述虚拟线卡配置的配置信息;在向所述槽位中插入与所述虚拟线卡的类型相匹配的物理线卡时,向该物理线卡加载真实驱动,并将所述配置的配置信息下发到物理线卡中。本发明实施例提供的路由器线卡热插拔实现装置包括虚拟驱动模块,用于在路由器的待插入物理线卡的槽位上创建虚拟线卡,并加载虚拟驱动;配置信息保存模块,用于保存针对所述虚拟线卡配置的配置信息;真实驱动模块,在向所述槽位中插入与所述虚拟线卡的类型相匹配的物理线卡时,向该物理线卡加载真实驱动;以及配置信息下发模块,用于将所述配置的配置信息下发到所述物理线卡中。利用本发明实施例的路由器线卡热插拔实现方法及装置,在进行大规模网络部署时,可以在物理线卡到位前就可以进行网络的设计和预配置,相对于普通热插拔方案在插入物理线卡后再才能进行配置,本发明实施例中物理线卡配置信息的预配置能力可以避免手工误操作过程中产生的不确定的网络抖动和异常,因此本发明实施例方便了产品的维护与升级。此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中图1为本发明实施例中线卡热插拔的实现步骤示意图2为本发明实施例中线卡槽位的状态迁移示意图3为本发明实施例的路由器线卡热插拔的实现装置示意图。具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的具体实施例进行详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。本发明实施例是通过将线卡的软件配置与该配置在实际线卡中的物理应用相分离、将线卡的存在与线卡的启用相分离来实现路由器线卡的热插拔。其中,将线卡的软件配置与该配置在实际线卡中的物理应用相分离是指用户可以在没有插入物理线卡的情况下,通过软件命令在某个槽位上安装一块虚拟线卡,然后可以针对该虚拟线卡进行相关的配置;当插入一块与虚拟线卡的类型相匹配的物理线卡时,之前的针对虚拟线卡的配置能够自动下发到物理线卡中,使得物理线卡能够按照该配置正常工作;而拔出物理线卡时,保存该配置(线卡的软件配置),使线卡的软件配置并不会丢失,仍然可以通过创建的虚拟线卡继续对线卡配置进行修改等操作。将线卡的存在与线卡的启用相分离是指只有软件安装的虚拟线卡类型与实际插入的物理线卡类型一致,物理线卡才能正常工作。本发明实施例中,安装配置虚拟线卡的软件能够指令相关的硬件执行图1所示的如下步骤实现线卡的软件安装状态和硬件插拔在位状态的分离步骤IIO,在路由器的待插入物理线卡的槽位上创建虚拟线卡,并加载驱动所述虚拟线卡的虚拟驱动。步骤120,针对所述虚拟线卡进行配置信息的预配置并保存配置的所述配置信息。此处进行配置信息的预配置可以是选择在软件中预先默认设置好的配置信息,也可以是软件安装后,通过配置管理界面基于创建的虚拟线卡进行修改或重新配置的配置信息。步骤130,在向所述槽位中插入与所述虚拟线卡的类型相匹配的物理线卡时,向该物理线卡加载真实驱动,并将预配置的所述配置信息下发到物理线卡中。这样物理线卡就能够按照预先配置的配置信息正常工作。步骤140,在拔出所述物理线卡时,保存所述下发到物理线卡中的配置信息,切换线卡的驱动状态为虚拟驱动,该状态下仍然可以通过创建的虚拟线卡继续对线卡配置进行修改等操作。步骤150,在重新插入与虚拟线卡的类型相匹配的物理线卡时,切换线卡的驱动状态为真实驱动,并将保存的所述配置信息重新下发到该物理线卡中,实现线卡配置的恢复。为了将线卡的软件安装状态和硬件插拔在位状态进行分离,并支持线卡的预配置,本发明实施例设计了专门的热插拔线卡软件配置命令(1)installslotcard-type(install命令)和(2)noinstallslot(noinstall命令),其中install是命令关键字。第一条命令表示在slot槽位上软件安装card-type类型的线卡;第二条命令则表示软件卸载WW槽位上的线卡。为了进行线卡热插拔状态的管理,又为线卡热插拔定义了如表1中所示的五个状态表1.热插拔状态表状态软件安装物理在位说明NONE否否既没有软件安装线卡也没有插物理线卡的状态INSTALLED是否软件安装了线卡,但没有插物理线卡的状态RUNNING是是软件安装了线卡又插入了物理线卡的状态。线卡的工作状态,线卡的软硬件状态都是正常的。UNINSTALL否是没有软件安装线卡,但插入了物理线卡的状态。此状态下,虽然物理线卡在位,但软件状态被卸载了。CONFLICT是是软件安装了线卡又插入了物理线卡的状态,但软件安装的线卡与实际插入的线卡类型不匹配。驱动这五个状态进行转换的事件是install命令、noinstall命令、物理插卡和物理拔卡,具体的状态迁移如图2所示。参照图2,典型的热插拔转换过程如下-(1)初始状态下,线卡处于NONE(既没有软件安装也没有物理线卡)的状态。(2)此时如果用户通过配置管理界面输入installWotcard-07e命令,那么将在待插入物理线卡的槽位上创建一块虚拟线卡,进行线卡的软件安装,进入INSTALLED状态。线卡在软件层面上是创建和安装好了的,但由于物理线卡没有插入,加载的是线卡虚拟驱动;INSTALLED状态为线卡的预配置状态,这一状态下,用户可以针对软件安装的线卡(虚拟线卡)进行配置信息的预配置。(3)此时如果用户插入了匹配的物理线卡,那么物理线卡将进入RUNNING状态,预先配置的线卡配置信息此时会自动下发到物理线卡中,此状态下物理线卡可以真正正常地进行报文收发处理等工作了。(4)用户也可以不用预配置功能,直接在初始的NONE状态下将线卡直接插入,那么线卡能直接进入RUNNING状态,此时加载的是空的线卡配置信息。(5)如果用户由于某些原因需要替换线卡,而又不想影响设备及其他线卡的正常工作(即不想设备下电),那么用户可以在RUNNING状态下,直接拔出物理线卡,此时线卡的热插拔状态会回复到INSTALLED状态,即又进入了预配置状态,由于仅仅是进行了线卡的物理状态的更新,线卡的软件状态和配置信息8都不会丢失;在重新插入匹配的线卡时,又能够正常下发。(此为常规的一个线卡热插拔过程)。(6)在RU丽ING状态下,用户还可以通过配置管理界面输入noinstalls7"命令,将线卡的软件状态直接清除,进入UNINSTALL状态,此时物理线卡虽然在位,但线卡在软件上己经被卸载了(线卡对上层软件不可见了),配置信息也被一次性清除了;UNINSTALL状态下,用户可以通过配置管理界面输入installWWC7S7Y/-命令,重新进行线卡的软件安装和加载。这一过程可以简单地进行线卡软件状态的复位和重新初始化。(7)如果软件安装的虚拟线卡的类型与实际插入的物理线卡的类型不一致,那么线卡将进入CONFLICT状态,并产生出错信息(如提示用户发生了误操作),用户可以通过拔卡或者noinstall(卸载软件线卡)来进行恢复。本发明实施例的实现路由器线卡热插拔的装置可以包括如下模块-虚拟驱动模块,用于在路由器的待插入物理线卡的槽位上创建虚拟线卡,并加载虚拟驱动;配置模块,用于在驱动状态为虚拟驱动时,针对虚拟线卡配置或修改配置f曰息;配置信息保存模块,用于保存所述配置信息;真实驱动模块,在向所述槽位中插入与所述虚拟线卡的类型相匹配的物理线卡时,向该物理线卡加载真实驱动;以及配置信息下发模块,用于将所述配置的配置信息下发到所述物理线卡中。热插拔处理模块,用于根据线卡的热插拔事件和状态创建或删除线卡及接口数据结构;以及驱动切换模块,用于根据线卡的插拔事件和状态启动真实驱动模块或虚拟驱动模块;所述配置信息保存模块在所述物理线卡拔出时,保存所述下发到物理线卡中的配置信息。所述配置信息下发模块在与虚拟线卡的类型相匹配的物理线卡重新插入槽位时,将保存的所述配置信息重新下发到该物理线卡中。上述虚拟驱动模块和真实驱动模块可以整合在一个线卡驱动模块中;所述配置模块、配置信息保存模块和配置信息下发模块可以整合在一起,形成一个配置管理模块;所述热插拔处理模块和驱动切换模块可以整合在一个热插拔状态管理模块中。这样,在具体实现上,如图3所示,本发明实施例的实现路由器线卡热插拔的装置,包括如下的子模块热插拔状态管理模块,热插拔硬件模块,线卡驱动模块(驱动层)和配置管理模块。图3中设备/接口管理模块和上层模块是现有的线卡安装软件所共有的,在此不作详述。所述热插拔状态管理模块是线卡热插拔方案的状态维护和调度管理中心,它不仅负责维护和管理上面介绍的线卡的热插拔状态以及状态转换,并负责在状态转换时通知其他模块(如设备/接口管理模块和线卡驱动模块)一起完成热插拔事件的处理。本发明实施例中,所述热插拔处理模块还包括错误提示模块,用于在向所述槽位中插入与所述虚拟线卡的类型不匹配的物理线卡时,产生出错信息。所述热插拔硬件模块负责实现物理的线卡热插拔功能,确保带电插拔过程中不对线卡和设备造成损伤,并产生线卡的插卡或拔卡事件,通告给热插拔状态管理模块。所述线卡驱动模块主要负责对物理线卡控制管理和芯片驱动,不仅需要设计实际线卡的驱动,另外需要通过设计虚拟驱动构造出虚拟的线卡,因此该线卡驱动模块包括虚拟驱动模块(虚拟驱动层)和真实驱动模块(真实驱动层)。线卡驱动模块向上层模块屏蔽了物理线卡和虚拟线卡间的差异。虚拟驱动可以理解为一种特殊的驱动,它与真实驱动一样可以支持所有上层所有的针对线卡的配置和査询等各种交互操作,但由于没有实际在位的物理线卡,所以这些交互操作都是一些空的或者默认的处理(比如用户针对一块虚拟线卡的以太接口配置MAC地址时,这个配置信息到达了虚拟驱动后,仅仅是将这个地址信息保存到驱动的数据结构中,并不会也没法设置到硬件中去)。所述配置管理模块主要负责在线卡发生热插拔时进行配置的收集和下发。该配置管理模块可以通过仅在系统已有的相关软件模块(如图3的上层模块)中的配置管理处理中增加了热插拔事件的接收处理来实现,如在没有热插拔的情况下,相关软件模块只需要接收用户的输入配置,进行配置。为了支持热插拔过程中配置的不丢失,相关软件模块还需要接收热插拔事件,以在检测到插入了实际的线卡时,进行配置向物理线卡的下放。线卡热插拔的外部事件主要是用户配置管理界面的install、noinstall命令和热插拔硬件模块的插拔卡事件。这些外部事件都会首先集中发送到热插拔状态管理模块,热插拔状态管理模块维护了前面描述的线卡热插拔状态以及状态迁移机制,并在合法的状态迁移过程中负责通知和调度线卡驱动模块(驱动层),设备/接口管理等模块来完成相关的热插拔处理和动作。表2是热插拔状态管理模块的状态迁移表(最左边一列是所有热插拔事件,最上面一行是热插拔状态,表2中对应的位置表示在该热插拔状态下发生该热插拔事件时需要进行的处理和下一个状态)表2.热插拔状态管理模块的状态迁移表<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>根据表2,在热插拔状态为"NONE",发生"install(软件安装线卡)"热插拔事件时,所述热插拔状态管理模块通知设备/接口管理模块创建线卡及接口数据结构,同时通知驱动层加载虚拟驱动。"NONE"状态下进行"install(软件安装线卡)"操作后,热插拔状态变为"INSTALLED"状态。在热插拔状态为"INSTALLED"时,不允许再进行"install(软件安装线卡)"操作。在热插拔状态为"UNINSTALL"(没有安装软件线卡,插入了物理线卡),进行"install(软件安装线卡)"操作时,所述热插拔状态管理模块通知设备/接口管理模块创建线卡及接口数据结构,同时通知驱动层加载真实驱动,"UNINSTALL"状态下进行"install(软件安装线卡)"操作后,热插拔状态变为"RUNNING"状态。在热插拔状态为"RUNNING"时,不允许再进行"install(软件安装线卡)"操作。在热插拔状态为"CONFLICT"时,不允许再进行"install(软件安装线卡)"操作。根据表2第3行对应的各列的信息可以看出在"NONE"热插拔状态下,不存在"install(软件安装不匹配的线卡)"事件;在"INSTALLED"热插拔状态下,不允许进行"install(软件安装不匹配的线卡)"操作;"UNINSTALL"热插拔状态下,发生"install(软件安装不匹配的线卡)"事件时,热插拔状态变为"CONFLICT"状态;"RUNNING"热插拔状态下,不允许进行"install(软件安装不匹配的线卡)"操作;"CONFLICT"热插拔状态下,不允许进行"install(软件安装不匹配的线卡)"操作。类似地,根据表2中其它热插拔事件(noinstall、物理拔卡、插入匹配的线卡、插入不匹配的线卡)和各热插拔状态的对应关系,可以清楚地看出随着热插拔事件的操作,热插拔状态的转换,因而在此不再详述。本发明如上实施例的路由器线卡热插拔的实现方法,设计了线卡的虚拟驱动层,将线卡物理插拔状态与线卡软件形态进行彻底分离,它不仅提供了基本的线卡热插拔配置保存和恢复功能,还能够支持预配置的能力,即在没有实际插入物理线卡的时候,允许用户安装和配置虚拟线卡。本发明实施例的有益效果可体现在通过预配置,在大规模网络部署时,可以在物理线卡到位前就可以进行网络的设计和配置;并且相对于普通热插拔方案在插入物理线卡后再才能进行配置,预配置的能力可以避免手工误操作过程中产生的不确定的网络抖动和异常;另由于本发明实施例的线卡驱动层向上层模块屏蔽了物理线卡和虚拟线卡间的差异,因此可以直接利用系统已有层间配置处理方式来进行配置的保存和恢复,从而更加降低了软件系统间的耦合度,提高了系统的稳定性和可用性。总之,本发明实施例提供了一种新的路由器线卡热插拔实现方案,方便了13产品的维护和升级。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如R0M/RAM、磁碟、光盘等。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种路由器线卡热插拔实现方法,其特征在于,该方法包括在路由器的待插入物理线卡的槽位上创建虚拟线卡,并加载虚拟驱动;保存针对所述虚拟线卡配置的配置信息;在向所述槽位中插入与所述虚拟线卡的类型相匹配的物理线卡时,向该物理线卡加载真实驱动,并将所述配置的配置信息下发到物理线卡中。2,根据权利要求1所述的方法,其特征在于在拔出所述物理线卡时,保存所述下发到物理线卡中的配置信息,切换线卡的驱动状态为虚拟驱动。3.根据权利要求2所述的方法,其特征在于在重新插入与虚拟线卡的类型相匹配的物理线卡时,切换线卡的驱动状态为真实驱动,并将保存的所述配置信息重新下发到该物理线卡中。4.根据权利要求1所述的方法,其特征在于,该方法还包括在向所述槽位中插入与所述虚拟线卡的类型不匹配的物理线卡时,产生出错信息。5.根据权利要求1-4中任意一项所述的方法,其特征在于,该方法还包括在驱动状态为虚拟驱动时,修改针对所述虚拟线卡配置的配置信息。6.—种路由器线卡热插拔实现装置,其特征在于,该装置包括虚拟驱动模块,用于在路由器的待插入物理线卡的槽位上创建虚拟线卡,并加载虚拟驱动;配置信息保存模块,用于保存针对所述虚拟线卡配置的配置信息;真实驱动模块,在向所述槽位中插入与所述虚拟线卡的类型相匹配的物理线卡时,向该物理线卡加载真实驱动;以及配置信息下发模块,用于将所述配置的配置信息下发到所述物理线卡中。7.根据权利要求6所述的装置,其特征在于,该装置还包括热插拔处理模块,用于根据线卡的热插拔事件和状态创建或删除线卡及接口数据结构;以及驱动切换模块,用于根据线卡的插拔事件和状态启动真实驱动模块或虚拟驱动模块;所述配置信息保存模块在所述物理线卡拔出时,保存所述下发到物理线卡中的配置信息。8.根据权利要求7所述的装置,其特征在于所述配置信息下发模块在与虚拟线卡的类型相匹配的物理线卡重新插入槽位时,将保存的所述配置信息重新下发到该物理线卡中。9.根据权利要求6所述的装置,其特征在于,所述热插拔处理模块还包括错误提示模块,用于在向所述槽位中插入与所述虚拟线卡的类型不匹配的物理线卡时,产生出错信息。10.根据权利要求6—9中任意一项所述的装置,其特征在于,该装置还包括配置模块,用于在驱动状态为虚拟驱动时,针对虚拟线卡配置或修改配置f曰息。全文摘要本发明提供一种路由器线卡热插拔实现方法及装置,所述方法包括在路由器的待插入物理线卡的槽位上创建虚拟线卡,并加载虚拟驱动;保存针对所述虚拟线卡配置的配置信息;在向所述槽位中插入与所述虚拟线卡的类型相匹配的物理线卡时,向该物理线卡加载真实驱动,并将所述配置的配置信息下发到物理线卡中。本发明实施例设计了线卡的虚拟驱动层,将线卡物理插拔状态与线卡软件形态进行彻底分离,并支持预配置的能力,在没有实际插入物理线卡的时候,允许用户安装和配置虚拟线卡。文档编号H04L12/02GK101459521SQ20081017945公开日2009年6月17日申请日期2008年11月28日优先权日2008年11月28日发明者毅夏申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1