CN103685015B - 基于构件的可扩展路由器任务分派方法 - Google Patents
基于构件的可扩展路由器任务分派方法 Download PDFInfo
- Publication number
- CN103685015B CN103685015B CN201310693523.4A CN201310693523A CN103685015B CN 103685015 B CN103685015 B CN 103685015B CN 201310693523 A CN201310693523 A CN 201310693523A CN 103685015 B CN103685015 B CN 103685015B
- Authority
- CN
- China
- Prior art keywords
- master control
- component
- super master
- super
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种基于构件的可扩展路由器任务分派方法,包括如下步骤:S1:从构件库中选择需要启动的构件,生成构件连接拓扑结构,测试每个构件的任务量;S2:从所有主控中选举超级主控和备份超级主控,对所述构件进行分派,生成任务分派表并构造任务更新消息;S3:非超级主控接收超级主控的任务更新消息,启动需要启动的构件并向构件管理器注册。本发明把路由器的软件模块作为组件,把组件进一步划分成粒度更小的构件,对构件进行连接实现组件的功能,通过对粒度更小的构件进行任务分散管理,可以实现各个路由器处理器占用平均,在对级联路由器进行任务分派的过程中,具有分派均匀、路由器处理效率高、稳定性好的优点。
Description
技术领域
本发明属于可扩展路由器研究领域,涉及一种基于构件的可扩展路由器任务分派方法。
背景技术
可扩展路由器是由多个可独立运行的路由节点,通过某种互连结构连接而成性能、功能可扩展的单映像路由器,它具有多方面的可扩展性:规模可扩展性、路由计算可扩展性、功能可扩展性,因此,可扩展路由器体系结构将是路由器未来的发展方向。
基于级联的可扩展路由器对外部来说,是一台高端路由器,可以在运行状态下加入子路由器或删除子路由器,级联方案如图1所示。级联路由器的任务是分散管理,把计算量较大的软件模块(如OSPF、BGP、路由管理等)分别安排在不同的主控节点中完成,从而提高效率。但是,不同软件模块的任务量区别较大,直接对这些大粒度软件模块进行任务分派很难做到分派均匀,如何把大粒度的软件模块划分成粒度更小的构件,然后对这些构件进行分派,实现更加均匀的划分是亟需解决的技术问题。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于构件的可扩展路由器任务分派方法。
为了实现本发明的上述目的,本发明提供了一种基于构件的可扩展路由器任务分派方法,其包括如下步骤:
S1:从构件库中选择需要启动的构件,生成构件连接拓扑结构,测试每个构件的任务量;
S2:从所有主控中选举超级主控和备份超级主控,对所述构件进行分派,根据动态构件分配算法生成任务分派表并构造任务更新消息;
S3:非超级主控接收超级主控的任务更新消息,启动需要启动的构件并向构件管理器注册。
本发明的基于构件的可扩展路由器任务分派方法把路由器的软件模块作为组件,把组件进一步划分成粒度更小的构件,对构件进行连接实现组件的功能,通过对粒度更小的构件进行任务分散管理,可以实现各个路由器处理器占用平均,在对级联路由器进行任务分派的过程中,具有分派均匀、路由器处理效率高、稳定性好的优点。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是现有技术中可扩展路由器级联方案图;
图2是本发明基于构件的可扩展路由器任务分派方法的流程图;
图3是本发明中一种优选实施方式的构件交互流程图;
图4是本发明中构件动态分配技术部署的体系结构图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
图2是本发明基于构件的可扩展路由器任务分派方法的流程图,从图中可见,该图像集合匹配方法包括如下步骤:
S1:从构件库中选择需要启动的构件,生成构件连接拓扑结构,测试每个构件的任务量;
S2:从所有主控中选举超级主控和备份超级主控,对所述构件进行分派,根据构件动态分配算法生成任务分派表并构造任务更新消息;
S3:非超级主控接收超级主控的任务更新消息,启动需要启动的构件并向构件管理器注册。
在本发明的一种优选实施方式中,该基于构件的可扩展路由器任务分派方法的具体步骤是:
第一步:从构件库中选择需要启动的构件,生成构件连接拓扑结构,测试每个构件的任务量,本发明测试每个构件的任务量的方法是在一台测试路由器上启动要运行的构件,调用操作系统提供的工具查看各个构件运行占用处理器的情况并记录。
在本发明中,组件是路由器软件中具有独立功能的消息处理模块,如BGP组件、RIP组件等。构件是组件的组成单位,是具有独立功能的软件模块,组件由相关构件连接而成,通过若干构件之间的连接和交互组成了组件,不同的组件可共用同一个构件,可以实现特定消息的处理功能,例如,BGP组件和OSPF组件都可以由三个构件组成:协议报文处理构件,邻居管理构件,路由计算构件。可以设计出协议无关的构件,在本发明中,不同的组件共用同一个构件,提高开发效率,提高软件的重用率。构件管理器是管理构件的注册、注销和信息存储,维护各构件连接的拓扑结构,并且负责管理构件运行和动态变化,比如构件增删、修改、替换等。在本发明的优选实施方式中,构件管理器也可以看成是一个构件。构件管理器客户端是构件间的通信接口,提供构件和构件、构件和构件管理器之间通信的功能,为构件屏蔽了具体操作系统底层的通信细节,实现了支持异构系统,在本发明一种优选实施方式中构件交互流程图如图3所示。
在本发明的一种优选实施方式中,假设要在级联路由器中启动BGP和OSPF路由协议组件,则从构件库中选择BGP协议报文处理构件,BGP邻居管理构件,BGP路由计算构件,OSPF协议报文处理构件,OSPF邻居管理构件,OSPF路由计算构件,生成构件连接拓扑结构,存入XML文件;然后在一台测试路由器上启动这六个构件,调用linux的top命令查看各个构件运行时占用cpu的情况记为Load1—Load6。
第二步:从所有主控中选举超级主控和备份超级主控,对构件进行分派,根据构件动态分配算法生成任务分派表并构造任务更新消息。
在本实施方式中,把加入级联路由器的一台路由器称为一个节点,在本发明另外的优选实施方式中,把一个机框称为一个节点。超级主控是级联路由器中唯一的总控节点,主要负责节点管理,任务分派,信息汇总等功能,超级主控需要维护一个构件和主板对应表。备份超级主控是超级主控的备份,拥有超级主控的管理的镜像,一旦超级主控失效,备份超级主控充当超级主控。备份超级主控失效,则将选举新的备份超级主控,备份超级主控学习超级主控中的总控信息。
首先,利用节点管理模块选举出超级主控和备份超级主控。启动级联路由器中的每个主控,当一个主控X启动并与一个或多个相邻路由器之间的双向通信建立起来之后,对每个相邻路由器发送来的Hello包中的优先级、超级主控域和备份超级主控域进行检查,列出所有能够参加选举的主控,即优先级高于0并且邻居状态至少为“双向”的主控,根据这个主控列表,执行的步骤包括:
11):如果网络上有当前超级主控和备份超级主控,记录网络上当前的超级主控和备份超级主控的数值,以用于以后的比较。
12):计算网络上的备份超级主控,计算方法为:列表上的主控中,只有那些不宣告自己为超级主控的才可能成为备份超级主控,考虑列表中所有宣告自己是备份超级主控且不是超级主控的主控,即接口地址置于Hello包的备份超级主控域中且不在超级主控域中的主控,选择其中拥有最高路由器优先级的成为备份超级主控;如果优先级相同,选择拥有最大ID的主控。如果没有主控宣告自己为备份超级主控,则排除宣告自己为超级主控的路由器,选择列表中拥有最高路由器优先级的成为备份超级主控,没有主控宣告自己为备份超级主控的情况下,如果路由器优先级相同,选择拥有最大ID的主控。
13):计算网络上的超级主控,计算方法为:如果有一台或多台主控宣告自己为超级主控,即将它们的接口地址置于Hello包的超级主控域中,则选择其中拥有最高路由器优先级的成为超级主控;如果优先级相同,选择拥有最大ID的主控。如果没有路由器宣告自己为超级主控,将新选举出的备份超级主控设定为超级主控。
14):如果启动的进行计算的主控X是新选举出来的超级主控或备份超级主控,或者不再是超级主控或备份超级主控,则重复步骤2)和步骤3),计算网络上的备份超级主控和超级主控。
然后:选举成功后所述节点管理模块发布告知消息,在告知消息中包括节点列表,列表指明了超级主控和备份超级主控的节点ID及所有普通主控ID。
最后:超级主控收到所述节点管理模块发来的告知消息,告知自身被选举成为超级主控,任务分散管理模块进行任务分派,生成任务分派表并构造任务更新消息,具体包括如下步骤:
21):超级主控查看节点管理模块发来的告知消息中指定的超级主控是否是自己,如果是其他节点,则打印错误信息并返回;
22):启动构件管理器并进行初始化,读取构件连接拓扑结构XML文件并保存,调用操作系统提供的函数,初始化通信模块,具体可以为但不限于开启Socket服务,绑定地址监听Socket;
23):对构件连接拓扑结构中的所有构件根据构件动态分配算法进行分派,生成任务分派表,任务分派表的内容是各个构件和所在主控节点id的对应关系。
在超级主控中,部署如图4所示的系统架构,其中,负载感知层用于感知系统各端当前负责情况,并上报核心控制层。核心控制层中,分配方案生成模块部署动态分配算法,根据各模块提供的系统信息,计算当前优化分配方案并发送给系统资源及构件分布管理器;组、构件平均负责信息管理模块负责统计各组、构件的平均运行负载,以供分配方案生成模块运行动态分配算法时调用;组件重构信息管理器负责管理当前系统中各组件的组成、连接以及重构信息,供动态分配算法调用。系统资源及构件分布管理器接收优化后的动态构件分配方案,并按此方案调整系统端各组、构件的分布和连接关系。
图G=(V,E)描述网络拓扑环境,其中V是表示网络环境中各设备端的节点集合,E是边集合,每条边表示相连通信设备的一个数据连接。对于任意一条边e(u,v)∈E都有一个连接开销Cost,表示选择在设备u和v之间建立连接的相应成本,同时,对于任意一个节点v∈V都有一个负载指数Load。
整体的优化为了到达两个目标,其一是使得系统的整体通信开销尽可能的小;另一个是使得系统的整体负载尽可能的均衡。根据这两个优化目标,我们设函数F为全局优化目标函数,即全局优化目为找到一个全网构件分布和连接状态S,使得下式取得最小值:
F(S)=Σe∈EαR(e)V(e)+Num(S)-β{(1+φ)Loadmax(S)-(1-φ)Loadmin(S)-2φLoadavg(S)}
其中α和β为Cost和Load的计算权重,可根据系统部署的具体环境,动态测试调整。对于任意i∈E,链路的连接开销记为Cost(i)。对于全局连接状态S,记某一连接i∈E的通信频度为R(i),平均数据量为V(i),并设此时系统设备间的连接数为Num(S)。记状态S下,系统所有设备端中的最高负载指数为Loadmax,最低负载指数为Loadmin,平均负载为Loadavg,φ为调整参数。
算法描述如下:
S2331:对当前系统各设备端按照负载高低降序排列,取负载最高节点至最接近平均负载的节点之间的所有节点组成集合Vtop;
S2332:对集合Vtop中每一个节点做S2333至S2338的循环处理;
S2333:检查当前系统设备端所有节点的集合是否成立,若成立则跳转S2339;不成立,则记录当前系统状态的优化函数值F(S),查找当前系统中负载最高的节点Vmax和最小的节点Vmin;
S2334:分析Vmax节点上的组、构件运行情况,对所有组、构件按照平均负载高低降序排序,记此集合为Listcomp;
S2335:对Listcomp中的所有节点进行S2336至S2338的循环处理;
S2336:查找出其中平均占用资源最多的组、构件Compmax,若则跳转S2337;否则,从Vtop中剔除当前最高负载节点,跳转S2332;
S2337:根据组、构件平均负载数据,判断Vmin节点上是否有足够资源运行Compmax,若支持运行,则跳转S2338;
S2338:计算将Compmax分配至Vmin节点后,系统此时状态的函数值F(S′),若F(S′)<F(S)成立,则将Compmax分配至Vmin节点计入分配方案Plan,Listcomp中剔除Compmax,跳转S2335;若F(S′)<F(S)不成立,则分析Compmax是否为组件级,若为组件级,查询其组成信息,将其中包含的平均负载最大的构件记为Compmax,跳转S2337;若为构件级,则将节点Vmin剔除出设备端集合V,跳转S2333;
S2339:输出Plan,即为所要求的优化分配方案。
24):构造任务更新消息将步骤23)生成的任务分派表发给所有主控。
第三步:非超级主控收超级主控的任务更新消息,启动需要启动的构件并向构件管理器注册,具体包括如下步骤:
31):检查消息源头的id是否为所述非超级主控所知的超级主控的id,如果是,则进行步骤32),如果不是,则退出;
32):保存任务分派表;
33):将任务分派表中分派给非超级主控应该启动的构件与非超级主控已经启动了的构件相比对,将分派给非超级主控但还未启动的构件启动起来并向构件管理器注册,具体启动构件的步骤如下:
331):构件进行初始化;
332):构件管理器客户端获取所在主控节点的IP和socket监听端口号,构造注册消息向构件管理器注册,注册消息包括构件ID、所在的节点ID、IP地址和socket监听端口号;构件通过通信接口构件管理器客户端向构件管理器注册,通知构件ID、所在的节点ID、自身IP地址和监听端口号。构件管理器收到注册消息后更新数据库,维护构件和其所在节点ID的对应信息。构件管理器查询构件连接拓扑结构,向新注册构件的关联构件,即需要向新注册构件发送消息的构件以及需要接收新注册构件消息的构件,转发新注册构件的注册信息包括通信地址。
在本实施方式中,还提供了对超级主控以外的主控和备份超级主控以外的主控进行删除的方法,以及对超级主控进行删除和加主控的方法。还提供了删除构件、增加构件和重启构件的方法,具体描述如下:
对超级主控以外的主控和备份超级主控以外的主控进行删除包括如下步骤:
41):删除主控向所有主控节点发送删除消息;
42):收到删除消息的主控先核实自身是否为超级主控或备份超级主控,,如果不是超级主控或备份超级主控,则打印错误信息并返回;
43):超级主控的构件管理器遍历要删除的主控上运行的所有构件,对于每一个构件,应通知和它关联的构件,关联构件得知后要做解除关联的处理;
44):超级主控将要删除的主控上运行的构件重新分派到其他主控上,更新任务分派表;
45):超级主控构造任务更新消息并将步骤44)中更新的任务分派表发送到全部主控;
46):除超级主控或备份超级主控以外的所有其他主控按步骤33)的方法更新自身的构件。其他主控保存新任务分派表,对表中分派为自身所应该启动的构件与自身已经启动了的构件相比对,将被分派给自己但还未启动的构件按照构件启动步骤启动起来。
对超级主控进行删除包括如下步骤:
51):超级主控向所有主控节点发送删除消息;
52):收到超级主控删除消息的主控核实自身是否为备份超级主控,如果非备份超级主控,则打印错误信息并返回;
53):备份超级主控的任务分散管理模块将任务分派表中超级主控的栏目删除,将超级主控的构件重新分派到其他主控上,构造新的任务分派表,备份超级主控启动构件管理器,读取构件连接拓扑结构并保存;
54):备份超级主控构造任务更新消息将步骤53)中更新的任务分派表发送到全部主控;
55):除备份超级主控以外的其他所有主控按步骤33)的方法更新自身的构件。其他主控保存新任务分派表,对表中分派为自身所应该启动的构件与自身已经启动了的构件相比对,将被分派给自己但还未启动的构件按照构件启动步骤启动起来。
增加主控的方法包括如下步骤:
61):将增加主控的信息告知超级主控和备份超级主控的任务分散管理模块;
62):超级主控和备份超级主控的任务分散管理模块把新增主控信息存入主控链表。
删除构件的方法包括如下步骤:
71):待删除构件向构件管理器发送注销信息,构件管理器通知待删除构件的关联构件,关联构件得知后要做解除关联的处理,构件管理器更新构件连接拓扑结构的数据库;
72):具有删除功能的构件所在的主控调用操作系统提供的函数删除所述待删除构件。
增加构件的方法包括如下步骤:
81):在构件连接拓扑结构XML文件中增加需要增加的构件及其连接关系;
82):查询每个路由器当前的处理器占用情况,在一台测试路由器上启动要增加的构件,查看该构件运行占用处理器的情况;
83):测试路由器给超级主控发送消息,超级主控综合考虑增加构件占用处理器的多少和增加构件和其关联构件的通信开销为增加构件分派主控节点,原则是使得增加构件启动后各主控的处理器占用情况平均,同时不会大幅增加主控节点间的控制报文流量,按照步骤23)到步骤24)的任务分派方法得到新的任务分派表并发送给所有主控;
84):启动构件并向构件管理器注册,新的任务分派表中对应增加构件的主控节点启动增加的构件,并要做如下处理:通过构件管理器客户端向构件管理器注册,通知构件ID、所在节点ID、自身IP地址和监听端口号;构件管理器更新数据库,添加新增构件和其所在节点ID的对应信息;构件管理器查询构件连接拓扑结构,向新增构件的关联构件转发新注册构件的注册信息包括通信地址。
重启构件的步骤如下:
91):按照步骤71)至步骤72)中删除构件的方法删除构件;
92):按照步骤81)至步骤82)中增加构件的方法增加构件,启动构件,重新获取需要的配置信息。
本发明的基于构件的可扩展路由器任务分派方法把路由器的软件模块作为组件,把组件进一步划分成粒度更小的构件,如路由协议处理构件、邻居管理构件等,对构件进行连接实现组件的功能,通过对粒度更小的构件进行任务分散管理,实现各个路由器处理器占用平均,在对级联路由器进行任务分派的过程中,具有分派均匀、路由器处理效率高、稳定性好的优点。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (11)
1.一种基于构件的可扩展路由器任务分派方法,其特征在于,包括如下步骤:
S1:从构件库中选择需要启动的构件,生成构件连接拓扑结构,测试每个构件的任务量;
S2:从所有主控中选举超级主控和备份超级主控,对所述构件进行分派,生成任务分派表并构造任务更新消息;
S3:非超级主控接收超级主控的任务更新消息,启动需要启动的构件并向构件管理器注册。
2.如权利要求1所述的基于构件的可扩展路由器任务分派方法,其特征在于,所述步骤S2包括如下步骤:
S21:利用节点管理模块选举出超级主控和备份超级主控;
S22:选举成功后所述节点管理模块发布告知消息,在所述告知消息中包括节点列表;
S23:超级主控收到所述节点管理模块发来的告知消息,系统资源及构件分布管理器进行任务分派,生成任务分派表并构造任务更新消息。
3.如权利要求2所述的基于构件的可扩展路由器任务分派方法,其特征在于,所述步骤S21中,当一个主控启动并与相邻路由器之间建立起双向通信之后,对每个相邻路由器发送来的Hello包中的优先级、超级主控域和备份超级主控域进行检查,列出所有能够参加选举的主控,形成主控列表,根据这个主控列表,执行的步骤包括:
S211:记录网络上当前的超级主控和备份超级主控的数值;
S212:计算网络上的备份超级主控;
S213:计算网络上的超级主控;
S214:如果启动的主控是新选举出来的超级主控或备份超级主控,或者不再是超级主控或备份超级主控,则重复步骤S212至步骤S213。
4.如权利要求2所述的基于构件的可扩展路由器任务分派方法,其特征在于,所述步骤S23中,包括如下步骤:
S231:超级主控查看所述节点管理模块发来的告知消息中指定的超级主控是否是自己,如果是其他节点,则打印错误信息并返回;
S232:启动构件管理器并进行初始化,读取构件连接拓扑结构并保存,初始化通信模块;
S233:对构件连接拓扑结构中的所有构件进行分派,运行动态构件分配算法生成任务分派表;
S234:构造任务更新消息,所述任务分派表发给所有主控。
5.如权利要求4所述的基于构件的可扩展路由器任务分派方法,其特征在于,所述步 骤S233中,包括如下步骤:
S2331:对当前系统各设备端按照负载高低降序排列,取负载最高节点至最接近平均负载的节点之间的所有节点组成集合Vtop;
S2332:对集合Vtop中每一个节点做S2333至S2338的循环处理;
S2333:检查当前系统设备端所有节点的集合是否成立,若成立则跳转S2339;不成立,则记录当前系统状态的优化函数值F(S),查找当前系统中负载最高的节点Vmax和最小的节点Vmin;
S2334:分析Vmax节点上的组、构件运行情况,对所有组、构件按照平均负载高低降序排序,记此集合为Listcomp;
S2335:对Listcomp中的所有节点进行S2336至S2338的循环处理;
S2336:查找出其中平均占用资源最多的组、构件Compmax,若则跳转S2337;否则,从Vtop中剔除当前最高负载节点,跳转S2332;
S2337:根据组、构件平均负载数据,判断Vmin节点上是否有足够资源运行Compmax,若支持运行,则跳转S2338;
S2338:计算将Compmax分配至Vmin节点后,系统此时状态的函数值F(S′),若F(S′)<F(S)成立,则将Compmax分配至Vmin节点计入分配方案Plan,Listcomp中剔除Compmax,跳转S2335;若F(S′)<F(S)不成立,则分析Compmax是否为组件级,若为组件级,查询其组成信息,将其中包含的平均负载最大的构件记为Compmax,跳转S2337;若为构件级,则将节点Vmin剔除出设备端集合V,跳转S2333;
S2339:输出Plan,即为所要求的优化分配方案;
其中,优化目标函数F(S)的定义如下:
F(S)=Σe ∈ EαR(e)V(e)+Num(S)-β{(1+φ)Loadmax(S)-(1-φ)Loadmin(S)-2φLoadavg(S)},
图G=(V,E)描述网络拓扑环境,其中V是表示网络环境中各设备端的节点集合,E是边集合,每条边表示相连通信设备的一个数据连接;
对于任意i∈E,链路的连接开销记为Cost(i);对于全局连接状态S,记某一连接i∈E的通信频度为R(i),平均数据量为V(i),并设此时系统设备间的连接数为Num(S);记状态S下,系统所有设备端中的最高负载指数为Loadmax,最低负载指数为Loadmin,平均负载为Loadavg,φ为调整参数,
其中α和β为Cost和Load的计算权重,可根据系统部署的具体环境,动态测试调整。
6.如权利要求1所述的基于构件的可扩展路由器任务分派方法,其特征在于,步骤S3包括如下步骤:
S31:检查消息源头的id是否为所述非超级主控所知的超级主控的id,如果是,则进行 步骤S32,如果不是,则退出;
S32:保存任务分派表;
S33:将任务分派表中分派给所述非超级主控应该启动的构件与所述非超级主控已经启动了的构件相比对,将分派给所述非超级主控但还未启动的构件启动起来并向构件管理器注册。
7.如权利要求1所述的基于构件的可扩展路由器任务分派方法,其特征在于,对所述超级主控以外的主控和备份超级主控以外的主控进行删除包括如下步骤:
S61:删除主控向所有主控节点发送删除消息;
S62:收到删除消息的主控核实自身是否为超级主控或备份超级主控,如果不是超级主控或备份超级主控,则打印错误信息并返回;
S63:超级主控的构件管理器遍历要删除的主控上运行的所有构件;
S64:超级主控将要删除的主控上运行的构件重新分派到其他主控上,更新任务分派表;
S65:超级主控构造任务更新消息并将步骤S63中更新的任务分派表发送到全部主控;
S66:除超级主控或备份超级主控以外的所有主控更新自身构件。
8.如权利要求1-5任一项所述的基于构件的可扩展路由器任务分派方法,其特征在于,对所述超级主控进行删除包括如下步骤:
S71:超级主控向所有主控节点发送删除消息;
S72:核实收到超级主控删除消息的主控是否为备份超级主控,如果非备份超级主控,则打印错误信息并返回;
S73:备份超级主控的任务分散管理模块将任务分派表中超级主控的栏目删除,将超级主控的构件重新分派到其他主控上,构造新的任务分派表,启动构件管理器,读取构件连接拓扑结构并保存;
S74:备份超级主控构造任务更新消息将步骤S72中更新的任务分派表发送到全部主控;
S75:除备份超级主控以外的所有主控更新自身构件。
9.如权利要求1所述的基于构件的可扩展路由器任务分派方法,其特征在于,增加所述主控的方法包括如下步骤:
S81:将增加主控的信息告知超级主控和备份超级主控的任务分散管理模块;
S82:超级主控和备份超级主控的任务分散管理模块把新增主控信息存入主控链表。
10.如权利要求1所述的基于构件的可扩展路由器任务分派方法,其特征在于,删除所述构件的方法包括如下步骤:
S91:待删除构件向构件管理器发送注销信息,构件管理器通知所述待删除构件的关联构件,构件管理器更新构件连接拓扑结构的数据库;
S92:删除构件所在的主控删除所述待删除构件。
11.如权利要求1所述的基于构件的可扩展路由器任务分派方法,其特征在于,增加所述构件的方法包括如下步骤:
S101:在构件连接拓扑结构文件中增加需要增加的构件及其连接关系;
S102:查询每个路由器当前的处理器占用情况,在一台测试路由器上启动要增加的构件,查看所述构件运行占用处理器的情况;
S103:所述测试路由器给所述超级主控发送消息,所述超级主控得到新的任务分派表并发送给所有主控;
S104:启动所述构件并向构件管理器注册。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310693523.4A CN103685015B (zh) | 2013-12-17 | 2013-12-17 | 基于构件的可扩展路由器任务分派方法 |
US14/572,859 US9710312B2 (en) | 2013-12-17 | 2014-12-17 | Component-based task allocation method for extensible router |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310693523.4A CN103685015B (zh) | 2013-12-17 | 2013-12-17 | 基于构件的可扩展路由器任务分派方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103685015A CN103685015A (zh) | 2014-03-26 |
CN103685015B true CN103685015B (zh) | 2016-08-17 |
Family
ID=50321375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310693523.4A Active CN103685015B (zh) | 2013-12-17 | 2013-12-17 | 基于构件的可扩展路由器任务分派方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9710312B2 (zh) |
CN (1) | CN103685015B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105119836B (zh) * | 2015-09-14 | 2018-03-30 | 上海红神信息技术有限公司 | 一种基于状态池的路由协议构件动态运行方法 |
CN112764893B (zh) * | 2019-11-04 | 2024-03-26 | 华为技术有限公司 | 数据处理方法和数据处理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263091B1 (en) * | 2002-05-23 | 2007-08-28 | Juniper Networks, Inc. | Scalable routing system |
US7269348B1 (en) * | 2002-11-18 | 2007-09-11 | At&T Corp. | Router having dual propagation paths for packets |
CN101719921A (zh) * | 2009-12-10 | 2010-06-02 | 清华大学 | 可重构路由器软件开发中的路由协议构件的生成方法 |
CN102055651A (zh) * | 2009-10-30 | 2011-05-11 | 成都市华为赛门铁克科技有限公司 | 可扩展路由器分布式控制平面的任务分配方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287063B2 (en) * | 2001-10-05 | 2007-10-23 | International Business Machines Corporation | Storage area network methods and apparatus using event notifications with data |
US7209449B2 (en) * | 2002-03-27 | 2007-04-24 | Intel Corporation | Systems and methods for updating routing and forwarding information |
DE60204940T2 (de) * | 2002-03-27 | 2006-04-20 | Lightmaze Solutions Ag | Intelligentes optisches Netzelement |
US7586839B2 (en) * | 2004-12-16 | 2009-09-08 | Lenovo Singapore Pte. Ltd. | Peer to peer backup and recovery |
US7983158B2 (en) * | 2005-11-30 | 2011-07-19 | Motorola Solutions, Inc. | Routing topology bandwidth management methods and system |
KR100881462B1 (ko) * | 2006-06-07 | 2009-02-06 | 삼성전자주식회사 | 백본네트워크의 서브네트워크 간 릴레이 전송이 가능한네트워크 토폴로지 구축방법 |
EP2066101B1 (en) * | 2007-11-28 | 2012-10-17 | Alcatel Lucent | System and method for an improved high availability component implementation |
KR20130049110A (ko) * | 2011-11-03 | 2013-05-13 | 삼성전자주식회사 | 인터럽트 할당 방법 및 장치 |
US9071609B2 (en) * | 2012-10-08 | 2015-06-30 | Google Technology Holdings LLC | Methods and apparatus for performing dynamic load balancing of processing resources |
US20150170078A1 (en) * | 2013-12-13 | 2015-06-18 | Mitchell International, Inc. | System and method of allocating large numbers of tasks |
US20150227586A1 (en) * | 2014-02-07 | 2015-08-13 | Futurewei Technologies, Inc. | Methods and Systems for Dynamically Allocating Resources and Tasks Among Database Work Agents in an SMP Environment |
US9372500B2 (en) * | 2014-02-27 | 2016-06-21 | Applied Micro Circuits Corporation | Generating a timeout signal based on a clock counter associated with a data request |
-
2013
- 2013-12-17 CN CN201310693523.4A patent/CN103685015B/zh active Active
-
2014
- 2014-12-17 US US14/572,859 patent/US9710312B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263091B1 (en) * | 2002-05-23 | 2007-08-28 | Juniper Networks, Inc. | Scalable routing system |
US7269348B1 (en) * | 2002-11-18 | 2007-09-11 | At&T Corp. | Router having dual propagation paths for packets |
CN102055651A (zh) * | 2009-10-30 | 2011-05-11 | 成都市华为赛门铁克科技有限公司 | 可扩展路由器分布式控制平面的任务分配方法及装置 |
CN101719921A (zh) * | 2009-12-10 | 2010-06-02 | 清华大学 | 可重构路由器软件开发中的路由协议构件的生成方法 |
Non-Patent Citations (4)
Title |
---|
NetSlices: Scalable Multi-core Packet Processing in User-Space;Tudor Marian 等;《ANC"12 Proseedings of the eight ACM/IEEE Symposium on Architectures for Networking and Communications Systems》;20121231;第27-38页 * |
The Design and Research of cluster Router Based on ForCES Protocol;ZHUGE Bin 等;《JOURNAL OF NETWORKS》;20121031;第7卷(第10期);第1677-1686页 * |
任务驱动的动态可重构路由器结构;许都、兰巨龙;《信息工程大学学报》;20090315;第10卷(第1期);第18-22页 * |
可重构集群路由器并行路由分发模型;陈文龙、徐明伟、徐恪;《通信学报》;20120625;第23卷(第6期);第118-124页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103685015A (zh) | 2014-03-26 |
US20150172094A1 (en) | 2015-06-18 |
US9710312B2 (en) | 2017-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | A survey on software defined networking with multiple controllers | |
US7894372B2 (en) | Topology-centric resource management for large scale service clusters | |
Houidi et al. | Adaptive virtual network provisioning | |
US8122281B2 (en) | System and method for dependent failure-aware allocation of distributed data-processing systems | |
CN1977500B (zh) | 在自组织网络中对通信进行路由 | |
EP2277110B1 (en) | Distributed service framework | |
WO2012092802A1 (zh) | 无线网络管理系统和方法 | |
CN106161610A (zh) | 一种分布式存储的方法和系统 | |
JP2012174081A (ja) | 情報処理システム | |
CN105515977B (zh) | 获取网络中传输路径的方法、装置和系统 | |
WO2019233061A1 (zh) | 一种三层交换机的路由资源控制方法及系统 | |
CN112532751B (zh) | 城市大脑ai计算中心分布式异构算力的调度方法及系统 | |
Dhar et al. | A comprehensive study of different objectives and solutions of controller placement problem in software‐defined networks | |
CN103685015B (zh) | 基于构件的可扩展路由器任务分派方法 | |
CN117149445B (zh) | 一种跨集群负载均衡方法及装置、设备及存储介质 | |
CN1625109A (zh) | 虚拟化网络资源的方法和装置 | |
US20220191777A1 (en) | Telecommunications network | |
CN113992695B (zh) | 网元设备间业务协同的方法和网元设备 | |
CN101534255A (zh) | 一种实现特定请求定向处理的方法及装置 | |
WO2009113293A1 (ja) | コンピュータリンク方法及びコンピュータシステム | |
CN109981437B (zh) | 一种基于vpc的多数据中心互通方法及相关设备 | |
US20240176762A1 (en) | Geographically dispersed hybrid cloud cluster | |
CN104065754A (zh) | 一种基于p2p技术的无线传感器网络及其构建方法 | |
Lv et al. | A hierarchical management architecture for virtual network mapping | |
Lashgari et al. | A shared-path shared-compute planning strategy for a resilient hybrid C-RAN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |