主设备选举方法、装置及机器可读存储介质与流程

文档序号:22320757发布日期:2020-09-23 01:54阅读:192来源:国知局
主设备选举方法、装置及机器可读存储介质与流程

本发明涉及通信技术领域,尤其涉及一种主设备选举方法、装置及机器可读存储介质。



背景技术:

同一网段内的所有主机通常都配置有相同的默认网关,该网段内的主机发往其它网段的报文将通过默认网关进行转发,从而实现主机与外部网络的通信。当默认网关发生故障时,该网段内所有主机将无法与外部网络通信。为避免这种情况的发生,可采用虚拟路由冗余协议(virtualrouterredundancyprotocol,vrrp)将可以承担网关功能的一组路由器加入到备份组中,形成一台虚拟路由器,并为该虚拟路由器指定虚拟ip地址,形成该虚拟路由器的路由器组中包括主路由器和备路由器,当主路由器故障时,vrrp通过选举机制决定哪台备路由器切换为主路由器并承担转发任务。局域网内的主机仅需要知道这台虚拟路由器的虚拟ip地址,并将其设置为网关的ip地址即可。局域网内的主机通过这台虚拟路由器与外部网络进行通信。借助vrrp能在某台路由器出现故障时仍然提供高可靠的链路,有效避免单一链路发生故障后网络中断的问题。构成虚拟路由器的路由器组称为备份组,备份组中的路由器根据优先级确定自己在备份组中的角色,其中包括主路由器(主设备)和备路由器(备设备)。路由器加入备份组后,初始处于备份backup状态,处于备份状态的路由器的状态转换依据如下规则:

a.如果等待指定时间段,例如master_down_interval时长,后还未收到vrrp通告报文,则该备路由器转换为master状态;

b.如果在master_down_interval内收到优先级大于或等于自己优先级的vrrp通告报文,则该备路由器保持backup状态;

c.如果在master_down_interval内收到优先级小于自己优先级的vrrp通告报文,且路由器工作在非抢占方式,则保持backup状态;否则,该路由器抢占成为主master路由器。

通过上述步骤选举出的主master路由器启动vrrp通告报文发送时间间隔定时器,定期向外发送vrrp通告报文,通知备份组内的其它路由器自己工作正常,备backup路由器则启动定时器等待vrrp通告报文的到来。

如果backup路由器和master路由器之间的vrrp通告报文所在链路故障,将会导致backup路由器收不到master路由器的vrrp通告报文,如果等待master_down_interval后还未收到vrrp通告报文,则backup路由器会切换为master状态,可能会造成同时存在多台master路由器的情况。当vrrp通告报文所在的链路恢复后,按照vrrp协议定义,这些master路由器会根据优先级和ip地址重新选举出一个master路由器。

vrrp不仅应用于路由器,在服务器高可用系统上,例如以linux系统为基础架构的服务器高可用系统,也有应用。基于vrrp功能实现linux虚拟服务器以提供高可用,即将多台linux服务器组成一台虚拟路服务器以虚拟ip地址对外提供服务,客户端主机访问该虚拟ip地址以访问服务。同前述master路由器故障,backup路由器选举出新的master路由器承担转发功能一样,当master服务器发生故障时,backup服务器选举出新的master服务器继续对外提供服务,保证服务不中断。

上述vrrp应用场景中,如果备设备和主设备之间的通告报文传输故障,则可能出现同时存在多个主设备的情况,这多个主设备可能都对外提供服务,而当通告报文传输故障消除后,应用前述vrrp协议中定义的主master设备选举规则重新选举主master设备,则可能导致某个或某些主设备提供的业务服务大量中断,引起客户业务异常,降低系统的可靠性和有效性。



技术实现要素:

有鉴于此,本发明提供一种主设备选举方法、装置及机器可读存储介质,用于降低vrrp协议在主设备选举过程中对业务连续性的影响。

基于本发明实施例,本发明提供一种主设备选举方法,该方法应用于运行虚拟路由冗余协议vrrp的设备组中处于主设备状态的第一主设备,该方法包括:

第一主设备接收其它主设备发送的vrrp通告报文,所述vrrp通告报文携带有其它主设备的ip地址、优先级和关键资源权重;

第一主设备基于优先级、关键资源权重、ip地址的优先顺序进行主设备选举,确定新的主设备;

第一主设备基于选举结果判断新的主设备是否是自己,若不是则执行主设备到备设备的切换。

进一步地,所述第一主设备基于优先级、关键资源权重、ip地址的优先顺序进行主设备选举,确定新的主设备的步骤包括:

第一主设备判断vrrp通告报文携带的优先级是否大于、等于或小于自身的优先级,若大于则第一主设备从主设备状态切换到备设备状态,若小于则第一主设备维持自身的主设备状态;

当第一主设备自身的优先级等于vrrp通告报文携带的优先级时,第一主设备判断vrrp通告报文携带的关键资源权重是否大于、等于或小于自身的关键资源权重,若大于则第一主设备从主设备状态切换到备设备状态,若小于则第一主设备维持自身的主设备状态。

进一步地,当第一主设备自身的关键资源权重等于vrrp通告报文携带的关键资源权重时,基于vrrp报文携带的ip地址和第一主设备自身的ip地址随机选择、采用以大优先或以小优先的规则确定谁是主设备。

进一步地,所述vrrp通告报文的报文结构中包含新增的用于携带所述关键资源权重的字段。

进一步地,所述关键资源权重为会话连接数量、接入的客户端或用户数量、或设备资源的综合评估得分。

基于本发明实施例,本发明提供一种主设备选举装置,该装置运行虚拟路由冗余协议vrrp且处于主设备状态,该装置包括:

接收模块,用于接收其它主设备发送的vrrp通告报文,所述vrrp通告报文携带有其它主设备的ip地址、优先级和关键资源权重;

选举模块,用于基于优先级、关键资源权重、ip地址的优先顺序进行主设备选举,确定新的主设备;

切换模块,用于基于选举结果判断新的主设备是否是自己,若不是则执行主设备到备设备的切换。

进一步地,所述选举模块判断vrrp通告报文携带的优先级是否大于、等于或小于自身的优先级,若大于则指令切换模块从主设备状态切换到备设备状态,若小于则维持自身的主设备状态;

当选举模块判定vrrp通告报文携带的优先级等于自身的优先级时,所述选举模块判断vrrp通告报文携带的关键资源权重是否大于、等于或小于自身的关键资源权重,若大于则指令切换模块从主设备状态切换到备设备状态,若小于则指令切换模块维持自身的主设备状态。

进一步地,当所述选举模块判定自身的关键资源权重等于vrrp通告报文携带的关键资源权重时,基于vrrp报文携带的ip地址和自身的ip地址随机选择、采用以大优先或以小优先的规则确定谁是主设备。

进一步地,所述vrrp通告报文的报文结构中包含新增的用于携带所述关键资源权重的字段;所述关键资源权重为会话连接数量、接入的客户端或用户数量、或设备资源的综合评估得分。

本发明提供的实施方案中,主设备接收到其它主设备发送的vrrp通告报文后,比较通告报文携带的和自身的优先级、关键资源权重及ip地址,基于优先顺序进行主设备选举,确定新的主设备。本发明在主设备选举规则中增加了判断主设备上关键资源权重的决策条件,优先维持关键资源权重大的主设备的主设备状态,从而减少对当前正在进行的业务的影响,从而保证尽量多的客户端主机或用户的服务连续性。

附图说明

为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其他的附图。

图1为本发明一实施例提供的主设备选举方法的流程示意图;

图2为本发明一实施例提供的v2版本的vrrp通告报文的报文结构;

图3为本发明一实施例提供的v3版本的vrrp通告报文的报文结构;

图4为本发明一具体实施例提供的主设备选择方法步骤流程图;

图5为本发明一实施例提供的一种主设备选举装置结构示意图;

图6为本发明一实施例提供的一个硬件电子设备硬件结构示意图。

具体实施方式

在本发明实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明实施例。本发明实施例和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本发明中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在以vrrp构建的高可用系统中,例如由多个运行vrrp的路由器组成的高可用虚拟路由器、由多个运行vrrp的服务器组成的高可用虚拟服务器等,当主设备和备设备之间的通告报文传输链路故障或出现其它任何可能造成传输通告报文传输故障的软硬件问题时,会导致备设备接收不到主设备发送的通告报文,使得由主备设备构成的设备组中同时出现多个主设备。在这种情况下,由于虚拟ip地址并没有发生变化,具有不同物理地址的主设备仍然可以对外提供服务,此时可能会有不同数量的客户端分别接入不同的主设备,例如主设备a可能为n个接入的客户端提供业务服务,主设备b可能为m个接入的客户端提供业务服务,如果此时主设备与备设备之间的通告报文传输恢复正常,则vrrp会触发重新选举主设备的动作,按当前vrrp的选举规则,一个高可用设备组中只会选举出一个主设备,其它主设备则需要从主设备状态切换到备设备状态,这样将可能导致从主设备状态切回备设备状态的设备上的业务产生中断,引起客户业务异常,从而降低基于vrrp的高可用系统的可靠性、可用性降低。

图1为本发明一实施例提供的主设备选举方法的流程示意图,为避免过多的客户端业务产生中断,本发明实施例主要从两方面对vrrp的主设备选举过程进行了改进,一个方面对vrrp通告报文的结构进行了改进,另一方面对选举规则和选举流程进行了改进。该实施例提供的主设备选举方法应用于运行vrrp的设备组中处于主设备状态的第一主设备,该方法包括:

步骤101.第一主设备接收其它主设备发送的vrrp通告报文,所述vrrp通告报文携带有其它主设备的ip地址、优先级和关键资源权重。

步骤102.第一主设备基于优先级、关键资源权重、ip地址的优先顺序进行主设备选举,确定新的主设备。

该步骤中,本发明改进了vrrp的主设备选举规则,在考虑设备优先级和ip地址大小的同时,还考虑自身和其它主设备上的关键资源权重。新选举规则以优先级、关键资源权重、ip地址的优先顺序进行主设备选举,即优先考虑设备优先级,设备优先级高的将被选举为新的主设备,如果优先级相等,则再考虑关键资源权重,关键资源权重多的将被选举为新的主设备,最后再考虑ip地址的大小。

本发明实施例中的关键资源权重可以是会话连接的数量、接入的客户端或用户数量等,也可以是设备资源的综合评估得分。例如,当设备为路由器时,则关键资源权重可以为处于激活状态的会话连接数量或转发表项数量;当设备为服务器时,关键资源权重可以为接入终端或接入用户的数量、启动的虚拟机的数量等。所述的权重,可以通过连接的数量或用户的数量等指标来表征,也可以是基于不同资源的权重进行综合评分后得到的综合评分值。关键资源权重的作用是用来表征设备上为用户提供业务的关键资源的使用量的多少,通过对同时处于主设备状态的多个设备上的关键资源权重的横向比较,基于对现有正在进行的业务的影响最小化的原则来选举新的主设备。

步骤103.第一主设备基于选举结果判断新的主设备是否是自己,若不是则执行主设备到备设备的切换。

本发明实施例为了在vrrp通告报文中携带关键资源权重信息,该实施例对vrrp通告报文的报文结构进行了改进。图2为本发明一实施例提供的v2版本的vrrp通告报文的报文结构,该报文结构的有效载荷payload中新增了用于携带关键资源权重的weight字段。图3为本发明一实施例提供的v3版本的vrrp通告报文的报文结构,同样地在该报文结构的有效载荷payload中新增了用于携带关键资源权重的weight字段。

图4为本发明另一实施例提供的主设备选择方法步骤流程图,该实施例以路由器为例来实例化说明本发明提供的主设备选择方法的步骤流程,该实施例中,在执行本发明提供的主设备选择方法之前,已由3个路由器形成高可用虚拟路由器,配置有虚拟ip地址,对外以虚拟ip提供路由服务。假设在链路保持稳定的状态下,路由器1已被选举为主设备,路由器1的优先级为10(假设数值越大优先级越高),ip地址为1.1.198.1,路由器1上已建立有100条链路,或者说已有100条会话的数据报文通过路由器1进行转发。路由器2为备设备,路由器2的优先级也为10,ip地址为1.1.198.2,且此时由于为备设备,因此没有数据链路建立在该路由器上。路由器3为备设备,路由器3的优先级为2,同样没有数据链路。在某个时刻,由于路由器1与路由器2和路由器3之间的vrrp报文传输故障(可能是链路故障导致),导致路由器2和路由器3无法在预先配置的主设备宕机时长master_down_interval间隔时间范围内收到路由器1的vrrp通告报文,因此迫使路由器2和路由器3重新进行主设备选举,由于路由器2的优先级高于路由器3的优先级,所以最终路由器2会被选举为主设备,路由器3仍然为备设备。此时在由路由器1、路由器2、路由器3构成的路由器组中就会同时存在两个路由器处于主设备状态,分别为路由器1和路由器2,由于他们的虚拟ip地址相同,因此理论上会同时对外提供服务,假设在路由器1与路由器2和路由器3之间的链路恢复通畅之前,路由器2已建立了200条链路,则当路由器1与路由器2和路由器3之间的链路恢复通畅之后,3个路由器会重新进行选举。以下以路由器2接收到路由器1发送的vrrp路由通告报文为例说明主设备选举的方法步骤。

步骤401.路由器2收到路由器1发送的vrrp通告报文,其中携带路由器1的优先级、ip地址及关键资源权重。

步骤402.路由器2判断vrrp通告报文携带路由器1的优先级是否大于本地即自身的优先级?若判断为是则执行步骤410,否则执行步骤403。

步骤403.路由器2判断vrrp通告报文携带的优先级是否等于本地即自身的优先级,若等于则执行步骤404,否则执行步骤步骤420。

基于前述场景,由于路由器2的优先级与路由器1的优先级相同,因此将执行步骤404。如果通告报文携带的路由器1的优先级小于且不等于路由器2的优先级,则说明路由器2的优先级最大,这种情况下将执行步骤420,即维持路由器2的主设备状态。

步骤404.路由器2判断vrrp通告报文携带的关键资源权重是否大于本地权重,如果判断为是则执行步骤410,否则执行步骤405。

基于前述场景,vrrp通告报文中携带的路由器1的关键资源权重为100,此时路由器2本地的关键资源权重为200,因此说明在优先级相同的情况下,路由器1的关键资源权重小于路由器2的关键资源权重,因此将执行步骤405。如果该步骤中,路由器1的关键资源权重大于路由器2的关键资源权重,则该步骤将执行步骤410,即维持路由器1为主设备状态。

步骤405.路由器2判断vrrp通告报文携带的关键资源权重是否小于本地权重,如果判断为是则执行步骤420,否则执行步骤406。

当vrrp通告报文中携带的路由器1的关键资源权重小于路由器2的关键资源权重时,将执行步骤420,即路由器2被选举为主设备,路由器2仍然维持主设备状态。

步骤406.路由器2判断vrrp通告报文发送方的主ip地址是否大于本地即路由器2自身的主ip地址?如果判定为是,则执行步骤410,否则执行步骤420。

步骤410.路由器2执行由主设备状态到备设备状态的切换。

步骤420.路由器2维持主设备状态不变。

基于上述流程可知,只有在路由器1和路由器2的优先级相同,且关键资源权重也相同的情况下,才会判断二者的ip地址的大小,由此也可以看出,本发明改进的主设备筛选规则以优先级、关键资源权重、ip地址的优先顺序依次进行判断,以优先级作为第一重要的判断条件,关键资源权重作为第二重要的判断条件,ip地址为最低优先级的判断条件。

通过上述主设备选举步骤可以看出,本发明在选举规则增加了判断主设备上关键资源权重的决策条件,优先维持关键资源权重大的主设备的主设备状态,从而减少对当前正在进行的业务的影响,从而保证尽量多的客户端主机或用户的服务连续性。

图5为本发明一实施例提供的一种主设备选举装置结构示意图,该装置应用于中由主设备和备设备构成的高可用系统中的主设备,即处于主设备状态的设备。基于本发明实施例,该装置运行虚拟路由冗余协议vrrp且处于主设备状态,该装置500包括:

接收模块501,用于接收其它主设备发送的vrrp通告报文,所述vrrp通告报文携带有其它主设备的ip地址、优先级和关键资源权重;

选举模块502,用于基于优先级、关键资源权重、ip地址的优先顺序进行主设备选举,确定新的主设备;

切换模块503,用于基于选举结果判断新的主设备是否是自己,若不是则执行主设备到备设备的切换。

选举模块502判断vrrp通告报文携带的优先级是否大于、等于或小于自身的优先级,若大于则指令切换模块503从主设备状态切换到备设备状态,若小于则指令切换模块503维持自身的主设备状态。

当选举模块502判断判定vrrp通告报文携带的优先级等于自身的优先级时,所述选举模块502判断vrrp通告报文携带的关键资源权重是否大于、等于或小于自身的关键资源权重,若大于则指令切换模块503从主设备状态切换到备设备状态,若小于则指令切换模块503维持自身的主设备状态。

当选举模块502判定自身的关键资源权重等于vrrp通告报文携带的关键资源权重时,基于vrrp报文携带的ip地址和自身的ip地址随机选择、采用以大优先或以小优先的规则确定谁是主设备。

在本发明一实施例中,接收模块501接收的vrrp通告报文的报文结构中包含新增的用于携带所述关键资源权重的字段。

在本发明一实施例中,关键资源权重为会话连接数量、接入的客户端或用户数量、或设备资源的综合评估得分。

图6示例了在一个硬件电子设备硬件结构示意图,所述硬件设备可以为路由器、交换机或服务器等,该硬件电子设备可实现上述装置500和前述步骤101~103的步骤功能。该电子设备600包括处理器601、机器可读存储器介质602及总线603,处理器601和机器可读存储器介质602通过总线603连接。

电子设备600可以是通用计算机或特殊用途的计算机,两者都可以用于实现本发明实施例提供的主设备选举方法。

机器可读存储器介质602可能包括高速随机存取存储器(ram:randomaccessmemory),也可能还包括非易失存储器(non-volatilememory),例如至少一个磁盘存储器。

处理器601可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本发明实施例中提供的实现主设备选举的方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1