CN114268533A - 网络设备的配置同步方法及装置、存储介质 - Google Patents
网络设备的配置同步方法及装置、存储介质 Download PDFInfo
- Publication number
- CN114268533A CN114268533A CN202111610178.4A CN202111610178A CN114268533A CN 114268533 A CN114268533 A CN 114268533A CN 202111610178 A CN202111610178 A CN 202111610178A CN 114268533 A CN114268533 A CN 114268533A
- Authority
- CN
- China
- Prior art keywords
- configuration
- configuration operation
- item
- objects
- son
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 5
- 238000011084 recovery Methods 0.000 abstract description 34
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013499 data model Methods 0.000 description 3
- 101150042248 Mgmt gene Proteins 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Abstract
本申请提供一种网络设备的配置同步方法及装置、存储介质。配置同步方法,包括:接收上级网络设备发送的配置消息;配置消息中包括:待配置对象的配置项和索引项;根据索引项和本地的多个对象确定配置操作为新建待配置对象或者修改所述待配置对象;根据索引项判断配置操作是否涉及引用子;若配置操作不涉及引用子,根据配置项在待配置对象上执行配置操作;若配置操作涉及引用子,确定是否存在引用子;若存在引用子,根据配置项在待配置对象上执行所述配置操作;若不存在引用子,根据配置操作缓存配置消息。该方法用以降低配置的一致性恢复的难度,有效实现配置的一致性恢复。
Description
技术领域
本申请涉及网络设备管理技术领域,具体而言,涉及一种网络设备的配置同步方法及装置、存储介质。
背景技术
网络设备管理涉及5个方面的内容,错误、配置、计费、性能、安全五个方面。配置管理,是网络设备管理中最常用的功能。对于分布式网络设备集群,在进行配置管理时,从角色上将集群中的网络设备分为领导者(Leader)和跟随者(Follower)。在同一时刻存在唯一的领导者,其它设备都是跟随者。当对网络设备进行配置操作时,配置命令首先由领导者响应,再由领导者将命令分发给所有的跟随者。
分布式网络设备常部署在云平台中。受网络,策略以及网络存储等众多因素影响,可能出现领导者与跟随者间网络中断,或跟随者宕机的情况,此时称跟随者进入离线状态。跟随者在离线状态期间,如用户修改设备配置,跟随者重新上线后,其本地的配置将与领导者中的配置信息存在差异。因此,需要对跟随者和领导者之间的配置进行一致性恢复。
现有技术中,针对不同的网络设备,基于系统环境设计特定的恢复方式,虽然可以实现配置的一致性恢复,但是难度较大。
发明内容
本申请实施例的目的在于提供一种网络设备的配置同步方法及装置、存储介质,用以降低配置的一致性恢复的难度,有效实现配置的一致性恢复。
第一方面,本申请实施例提供一种网络设备的配置同步方法,包括:接收上级网络设备发送的配置消息;所述配置消息中包括:待配置对象的配置项和索引项;根据所述索引项和本地的多个对象确定配置操作为新建所述待配置对象或者修改所述待配置对象;根据所述索引项判断所述配置操作是否涉及引用子;若所述配置操作不涉及引用子,根据所述配置项在所述待配置对象上执行所述配置操作;若所述配置操作涉及引用子,确定是否存在所述引用子;若存在所述引用子,根据所述配置项在所述待配置对象上执行所述配置操作;若不存在所述引用子,根据所述配置操作缓存所述配置消息。
在本申请实施例中,与现有技术相比,对一致性恢复所需要解决的问题进行分析:网络设备的配置是关系型数据,数据间存在引用关系,当一个配置条目被引用时,如果要删掉该配置条目需要先对其执行解引用操作。因此,利用引用关系对配置操作进行判断,并根据判断结果进行一致性恢复的处理,不存在任何的特例处理;以及,对于每个待配置对象来说,都包括配置项和索引项,实现每个对象的配置模型的统一。进而,利用该方法,降低配置的一致性恢复的难度,有效实现配置的一致性恢复。
作为一种可能的实现方式,所述根据所述索引项和本地的多个对象确定配置操作为新建所述待配置对象或者修改所述待配置对象,包括:根据所述索引项在所述多个对象中查找所述待配置对象;若在所述多个对象中查找到所述待配置对象,判断所述待配置对象的内容与在所述多个对象中对应的对象的内容是否相同;若所述待配置对象的内容与在所述多个对象中对应的对象的内容不相同,确定配置操作为修改所述待配置对象;若在所述多个对象中没有查找到所述待配置对象,确定配置操作为新建所述待配置对象。
在本申请实施例中,在确定待配置对象的配置操作时,利用索引项在本地的多个对象中进行查找,根据查找结果和内容的一致性确定对应的配置操作,实现配置操作的有效确定。
作为一种可能的实现方式,所述配置同步方法还包括:若在所述多个对象中查找到所述待配置对象,且所述待配置对象的内容与在所述多个对象中对应的对象的内容相同,将所述待配置对象标记为配置完成状态。
在本申请实施例,如果查找到待配置对象,且内容与对应的对象一致,则无需对其进行一致性恢复,将其标记为配置完成状态,以便于继续对其他对象进行处理。
作为一种可能的实现方式,所述配置操作为新建所述待配置对象,所述根据所述配置项在所述待配置对象上执行所述配置操作,包括:判断所述配置操作是否满足预设的限制条件;若所述配置操作满足所述预设的限制条件,根据所述配置项和所述索引项新建所述待配置对象,并将新建成的对象标记为配置完成状态;若所述配置操作不满足所述预设的限制条件,根据所述配置操作缓存所述配置消息,并将所述待配置对象标记为需新建状态。
在本申请实施例中,如果需要新建待配置对象,则判断配置操作是否满足预设的限制条件,在满足时,才进行新建;如果不满足,则将配置消息缓存,以及标记需新建状态;以便于后续对其进行处理;实现有效的一致性恢复。
作为一种可能的实现方式,所述配置操作为修改所述待配置对象,所述根据所述配置项在所述待配置对象上执行所述配置操作,包括:根据所述配置项对所述待配置对象进行修改,并将修改完成的对象标记为配置完成状态。
在本申请实施例中,若配置操作为修改待配置对象,则直接基于配置项对其进行修改,以及进行对应状态的标记,实现有效的一致性恢复。
作为一种可能的实现方式,所述根据所述配置操作缓存所述配置消息,包括:若所述配置操作为修改所述待配置对象,对所述待配置对象进行解引用处理,并根据所述配置操作缓存所述配置消息,以及将所述待配置对象标记为需修改状态;若所述配置操作为新建所述待配置对象,根据配置操作缓存配置消息,并将所述待配置对象标记为需新建状态。
在本申请实施例中,在缓存配置消息时,如果配置操作为修改待配置对象,则在进行解引用处理之后,再进行状态的标记;如果配置操作为新建,则直接进行状态的标记;便于后续对两种不同的配置操作的待配置对象进行有效的一致性恢复。
作为一种可能的实现方式,所述配置同步方法还包括:确定本地的多个对象中的第一对象;所述第一对象为没有标记配置状态的对象;将所述第一对象删除。
在本申请实施例中,针对没有标记配置状态的对象,可认定为没有进行一致性恢复的对象,可直接删除,保证各个对象都进行了一致性恢复。
作为一种可能的实现方式,在将所述第一对象删除后,所述配置同步方法还包括:确定所述多个对象中的第二对象;所述第二对象为标记为需新建状态或者需修改状态的对象;获取所述第二对象对应的配置消息;根据所述第二对象对应的配置消息对所述第二对象执行对应的配置操作,并将配置完成的第二对象标记为配置完成状态。
在本申请实施例中,在将第一对象删除之后,标记为需新建状态或者需修改状态的对象便可直接进行一致性恢复处理,有效实现各个对象的配置的一致性恢复。
第二方面,本申请实施例提供一种网络设备的配置同步装置,包括:用于实现第一方面以及第一方面的任意一种可能的实现方式中的网络设备的配置同步方法的各个功能模块。
第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时,执行如第一方面以及第一方面的任意一种可能的实现方式中的网络设备的配置同步方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的分布式网络的示意图;
图2为本申请实施例提供的数据模型的第一示例图;
图3为本申请实施例提供的数据模型的第二示例图;
图4为本申请实施例提供的数据模型的第三示例图;
图5为本申请实施例提供的配置流程的示意图;
图6为本申请实施例提供的网络设备的配置方法的流程图;
图7为本申请实施例提供的配置同步流程的示意图;
图8为本申请实施例提供的网络设备的配置装置的结构示意图。
图标:800-网络设备的配置装置;810-接收模块;820-处理模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请实施例提供的技术方案可以应用于分布式网络设备,请参照图1,为分布式网络设备集群的示意图,在对分布式网络设备集群进行配置管理时,从角色上将集群中的分布式网络设备分为领导者(Leader)和跟随者(Follower)。在同一时刻存在唯一的领导者,其它设备都是跟随者。当对网络设备进行配置操作时,配置命令首先由领导者响应,再由领导者将命令分发给所有的跟随者。
可以理解,领导者相当于跟随者的上级网络设备,领导者将配置命令分发给跟随者,然后跟随者再基于配置命令进行一致性恢复。
如图1所示,领导者和跟随者都具有统一的配置管理模块,其中保存着自身所有功能模块的配置信息。本申请实施例提供的技术方案使跟随者配置管理模块和功能模块中的配置与领导者保持一致。
基于图1所示的分布式网络设备集群,本申请实施例提供的技术方案的硬件运行环境可以是跟随者,即执行配置命令的网络设备。
在本申请实施例中,除了应用图1所示的分布式网络设备集群,还需应用到一种数据抽象模型,该数据抽象模型可以理解为网络设备上的数据的存储模型,基于该数据抽象模型,可实现本申请实施例提供的技术方案,接下来对该数据抽象模型进行介绍。
网络设备具有多个可配置实体,每个实体可以有多个可配置对象,例如一个实体interface可以有name、ip_address、ip_mask、port等多个对象。同时实体可以有一个或多个配置条目,组成这些配置条目为实体的一个实例。一个可配置实体在配置数据存储时可以抽象成一张表,表头为配置实体,列为配置条目,行为实例,如表1所示:
表1
对象又分为索引项(index)和配置项,索引项是惟一的。如果一个实体有多个实例,那么需要通过索引项标识实例。例如上面提到的interface中name就可以是一个索引项,ip_address、ip_mask、port可以是配置项。
一个实体下可能存在多层结构的子实体。例如一个interface可以有多个管理方式(mgmt),例如ssh、telnet、snmp、https等。这个时候可以称interface是mgmt的“结构父”,mgmt是interface的“结构子”。在对具有多层结构的实体的配置数据存储时可以抽象为如图2所示的数据结构。
配置中的所有L0实体,再使用链式结构进行组织,构成一个实体链可如图3所示。实体间也可能出现引用关系,例如图3中L0实体-c的对象2是对L0实体-a的引用。在这种逻辑引用关系中,称引用者为“引用父”,被引用者为“引用子”。
在逻辑引用关系中可能形成环状引用结构,例如interface的某个对象逻辑引用zone(安全域),而zone的某个对象逻辑引用interface。我们引入mirror实体,来解决成环的逻辑引用问题。在上面的例子中,引入一个mirror-zone实体,mirror-zone中只包含索引对象,zone的逻辑引用依然指向interface,而interface的逻辑引用则指向mirror-zone,如图4所示。
mirror实体将逻辑引用关系中可能出现的环状引用结构变为链状,保证了实体链的“引用子”在“引用父”之前的特性。除此之外mirror实体也是正常实体,在一致化处理流程中没有特殊性。
基于上述的数据抽象结构,为使用一致性恢复算法,还需要满足以下2点:逻辑引用中,“引用子”需要可索引其“引用父”,“引用父”也需要可索引其“引用子”;实体链的排列需要保证“引用子”的位置在“引用父”之前。
因此,基于上述的数据抽象结构,本申请实施例提供一种配置同步的方法,在该配置同步的方法中,如图5所示,分为三个过程:配置同步流程、配置删除流程和配置补丁流程。
接下来请参照图6,为本申请实施例提供的网络设备的配置同步方法的流程图,该配置同步方法包括:
步骤610:接收上级网络设备发送的配置消息。配置消息中包括:待配置对象的配置项和索引项。
步骤620:根据索引项和本地的多个对象确定配置操作为新建待配置对象或者修改待配置对象。
步骤630:根据索引项判断配置操作是否涉及引用子。
步骤640:若配置操作不涉及引用子,根据配置项在待配置对象上执行配置操作。
步骤650:若配置操作涉及引用子,确定是否存在引用子。
步骤660:若存在引用子,根据配置项在待配置对象上执行配置操作。
步骤670:若不存在引用子,根据配置操作缓存配置消息。
在本申请实施例中,与现有技术相比,对一致性恢复所需要解决的问题进行分析:网络设备的配置是关系型数据,数据间存在引用关系,当一个配置条目被引用时,如果要删掉该配置条目需要先对其执行解引用操作。因此,利用引用关系对配置操作进行判断,并根据判断结果进行一致性恢复的处理,不存在任何的特例处理;以及,对于每个待配置对象来说,都包括配置项和索引项,实现每个对象的配置模型的统一。进而,利用该方法,降低配置的一致性恢复的难度,有效实现配置的一致性恢复。
在步骤610中,接收上级网络设备发送的配置消息,结合前述实施例中的介绍,此处的上级网络设备为领导者。作为一种可选的实施方式,对于领导者来说,在进行配置同步时,按照实体链的顺序,将配置消息以实例为单位,逐条发送给跟随者,多层结构的实例按照深度优先顺序进行同步。
结合前述实施例的介绍,对于数据对象来说,设置有索引项和配置项,因此,此处的待配置对象同样包括配置项和索引项,基于配置项和索引项,可进行对象的查找。
待配置对象,可以理解为需要配置的对象,为前述数据结构中的实例。该对象对于跟随者来说,存在三种情况,该待配置对象属于自身已有的对象,但是对象的内容(例如具体的实例不相同)不相同;该待配置对象不属于自身已有的对象;该待配置对象属于自身已有的对象,且对象的内容也完全相同。
在上述的三种情况中,对于第三种情况,可将待配置对象直接默认为无需配置(处理)的对象,而对于前两种情况,则需要进行对应的配置处理,并且,前两种情况对应的配置处理方式不相同。具体的,如果待配置对象属于自身已有的对象,但是对象的内容(即实例的内容)不相同,说明此次的配置应当是修改待配置对象的内容。如果待配置对象不属于自身已有的对象,说明此次的配置应当是新建待配置对象。
因此,基于上述三种情况,在步骤620中,根据索引项和本地的多个对象确定配置操作为新建待配置对象或者修改待配置对象,也即,在确定待配置对象属于上述的前两种情况后,再执行步骤620之后的配置流程。
作为一种可选的实施方式,步骤620包括:根据索引项在多个对象中查找待配置对象;若在多个对象中查找到待配置对象,判断待配置对象的内容与在多个对象中对应的对象的内容是否相同;若待配置对象的内容与在多个对象中对应的对象的内容不相同,确定配置操作为修改待配置对象;若在多个对象中没有查找到所述待配置对象,确定配置操作为新建待配置对象。
在这种实施方式中,将待配置对象的索引项与本地的多个对象的索引项进行比较,若查找到一致的索引项,则说明待配置对象为多个对象中的对象。此时可以比较待配置对象的内容与多个对象中对应的对象(即索引项一致的对象)的内容是否一致,若不一致,则可确定配置操作为修改待配置对象。
若没有查找到一致的索引项,则说明待配置对象不是多个对象中的对象,则可确定配置操作为新建待配置对象。
在本申请实施例中,在确定待配置对象的配置操作时,利用索引项在本地的多个对象中进行查找,根据查找结果和内容的一致性确定对应的配置操作,实现配置操作的有效确定。
进一步的,若在多个对象中查找到待配置对象,且待配置对象的内容与在多个对象中对应的对象的内容相同,将待配置对象标记为配置完成状态。
在这种实施方式中,若在多个对象中查找到待配置对象,且待配置对象的内容与在多个对象中对应的对象的内容相同,说明待配置对象无需进行配置,可将其标记为配置完成状态。
在本申请实施例,如果查找到待配置对象,且内容与对应的对象一致,则无需对其进行一致性恢复,将其标记为配置完成状态,以便于继续对其他对象进行处理。
在本申请实施例中,针对各个对象,在对其进行一致性恢复时,利用配置状态的标记来实现对象之间的状态区分。作为一种可选的实施方式,配置状态包括三种:配置完成状态、需新建状态和需修改状态,需新建状态和需修改状态在后续实施例中进行介绍。
在步骤630中,根据索引项判断配置操作是否涉及引用子。作为一种可选的实施方式,判断索引项是否涉及引用关系(例如是引用子,或者引用父),若是,则确定涉及引用子;若不是,则确定不涉及引用子。
在步骤640中,若配置操作不涉及引用子,根据配置项在待配置对象上执行配置操作。
如果配置操作为新建待配置对象,作为一种可选的实施方式,步骤640包括:判断配置操作是否满足预设的限制条件;若配置操作满足预设的限制条件,根据配置项和索引项新建待配置对象,并将新建成的对象标记为配置完成状态;若配置操作不满足预设的限制条件,根据配置操作缓存配置消息,并将待配置对象标记为需新建状态。
在这种实施方式中,预设的限制条件可以为:capacity限制,该限制用于限制一个实体对象中所能存储的最大实例数量,限制条件的具体值可结合实际的应用场景进行设定,在此不作限定。
具体的,如果当前的实体对象中所能存储的实例已达到最大实例数量,则说明不满足预设的限制条件;如果所能存储的实例没有达到最大实例数量,则说明满足预设的限制条件。
在满足预设的限制条件的情况下,可以直接下发配置,即根据配置项和索引项在实体中新建该待配置对象,并将新建完成的对象标记为配置完成状态。
在不满足预设的限制条件的情况下,则可以将配置操作标记在配置消息中,进行缓存,后续可以继续对该缓存的配置消息进行处理。以及,将待配置对象标记为需新建状态。
需新建状态,表征该待配置对象没有完成新建,且没有完成新建的原因是不满足预设的限制条件。
在本申请实施例中,如果需要新建待配置对象,则判断配置操作是否满足预设的限制条件,在满足时,才进行新建;如果不满足,则将配置消息缓存,以及标记需新建状态;以便于后续对其进行处理;实现有效的一致性恢复。
如果配置操作为修改待配置对象,作为一种可选的实施方式,步骤640包括:根据配置项对所述待配置对象进行修改,并将修改完成的对象标记为配置完成状态。
在这种实施方式中,针对修改待配置对象的操作,无需考虑前述的限制条件,可直接下发配置,即,根据配置项对待配置对象进行修改。以及,将将修改完成的对象标记为配置完成状态。
在本申请实施例中,若配置操作为修改待配置对象,则直接基于配置项对其进行修改,以及进行对应状态的标记,实现有效的一致性恢复。
如果配置操作涉及引用子,则在步骤650中,先确定是否存在该引用子。
作为一种可选的实施方式,先根据索引项查找引用子,如果查找到,且引用子的状态为前述的需新建状态或者需修改状态,代表存在引用子;如果没有查找到,或者查找到,但是没有对应的配置状态,代表不存在引用子。
进而,在步骤660中,若存在引用子,根据配置项在待配置对象上执行配置操作。
以及,在步骤670中,若不存在引用子,根据配置操作缓存配置消息。
对于步骤660,可看作配置不涉及引用子的情况,因此,步骤660的实施方式参照步骤640的实施方式,在此不再重复介绍。
作为一种可选的实施方式,步骤670包括:若配置操作为修改待配置对象,对待配置对象进行解引用处理,并根据配置操作缓存配置消息,以及将待配置对象标记为需修改状态;若配置操作为新建待配置对象,根据配置操作缓存配置消息,并将待配置对象标记为需新建状态。
在这种实施方式中,针对修改待配置对象的配置操作,需要先对待配置对象进行解引用处理,解引用处理可以理解为:将不存在的引用子标记为需新建状态;然后再将待配置对象标记为需修改状态;以及缓存配置消息。针对新建待配置对象的配置操作,缓存配置消息,以及将其标记为需新建状态即可。
在本申请实施例中,在缓存配置消息时,如果配置操作为修改待配置对象,则在进行解引用处理之后,再进行状态的标记;如果配置操作为新建,则直接进行状态的标记;便于后续对两种不同的配置操作的待配置对象进行有效的一致性恢复。
在上述实施例中,所提到的缓存消息,可以理解为:仅将同步来的待配置对象插入到自己实体链的对应位置,先不下发到业务模块。
在步骤670之后,配置同步阶段相当于完成,此时,跟随者所有的实例(即对象)可包括三种状态:标注pass(配置完成)表示已经一致;标注UPDATE(需修改状态)或ADD(需新建状态)表示引用子不存在,存在冲突;没有pass、UPDATE、ADD,表示需要删除。
结合前述对步骤610-步骤670的介绍,为了便于理解,请参照图7,为本申请实施例提供的处理流程的示意图,在图7中,将前述的各个同步情况进行整合,可以看出,变更不涉及引用子的情况,与变更涉及引用子但引用子状态为UPDATE或者ADD时的情况,处理流程一致。较为不同的是,变更涉及引用子但引用子不存在的情况。以及,在设计到新建操作时,均需进行限制条件的判断,根据判断结果执行不同的操作。
在步骤670执行完毕之后,可以继续后续的配置流程,即配置删除流程和配置补丁流程。
对于配置删除流程,作为一种可选的实施方式,该配置方法还包括:确定本地的多个对象中的第一对象;第一对象为没有标记配置状态的对象;将第一对象删除。
在这种实施方式中,跟随者反向遍历实体链,将没有标记pass、UPDATE、ADD的实体删除(同时删除了配置管理模块和业务模块中的对应内容)。
在完成配置删除流程后跟随者配置管理模块的实体与领导者一致,但部分实体标记了UPDATE和ADD的实体还需要再进行一次处理,即利用配置补丁流程进行处理。
在本申请实施例中,针对没有标记配置状态的对象,可认定为没有进行一致性恢复的对象,可直接删除,保证各个对象都进行了一致性恢复。
对于配置补丁流程,作为一种可选的实施方式,该配置方法还包括:确定多个对象中的第二对象;第二对象为标记为需新建状态或者需修改状态的对象;获取第二对象对应的配置消息;根据第二对象对应的配置消息对第二对象执行对应的配置操作,并将配置完成的第二对象标记为配置完成状态。
在这种实施方式中,跟随者以实体为单位遍历实体链表,处理UPDATE和ADD标签的实例。配置补丁流程中从前向后遍历实体链表:
当遇到ADD标签的实体时,说明是在同步流程中不满足capacity无法创建的实例。因为经过配置删除流程,已经将多余的实例删除,此时必然是满足capacity限制的。则直接下发ADD配置消息到业务模块,并将实例标记pass。
当遇到UPDATE标签的实体时,说明是在同步流程中“引用子”不存在。“引用子”不存在是因为capacity不满足。在经过配置删除流程后,ADD标签的实例已经可以正常处理。此时“引用子”必然存在,则可以直接下发UPDATE标签的实体到业务模块,并标记实例为pass。
在本申请实施例中,在将第一对象删除之后,标记为需新建状态或者需修改状态的对象便可直接进行一致性恢复处理,有效实现各个对象的配置的一致性恢复。
在执行完上述的配置补丁流程之后,可视为完成一次配置同步,实现一致性恢复。
可以理解,上述实施例中介绍的配置同步流程,为一个跟随者上的配置同步流程,对于一个分布式网络中的其他跟随者,同样按照上述的配置同步流程执行一致性恢复。
在实际应用时,本申请实施例的应用场景例如:分布式网络设备跟随者配置一致性恢复:分布式网络设备因各种原因造成跟随者离线,在离线期间用户对领导者进行配置。待跟随者重新上线后,领导者和跟随者的配置存在差异。使用本算法对跟随者的配置进行恢复。HA(High Available)集群中,备设备上线后,主备设备的一致性恢复。Netconf协议中candidate配置到running配置的恢复过程。
在上述的应用场景中,采用本申请实施例提供的技术方案,可以在较少中间状态的情况下,自动进行配置一致性恢复,对于所有配置,不需要增加特例代码。大大增加了系统的可靠性,减少了运维成本。
基于同一发明构思,请参照图8,本申请实施例中还提供一种网络设备的配置同步装置800,包括:接收模块810和处理模块820。
接收模块810用于:接收上级网络设备发送的配置消息;所述配置消息中包括:待配置对象的配置项和索引项。处理模块820用于:根据所述索引项和本地的多个对象确定配置操作为新建所述待配置对象或者修改所述待配置对象;根据所述索引项判断所述配置操作是否涉及引用子;若所述配置操作不涉及引用子,根据所述配置项在所述待配置对象上执行所述配置操作;若所述配置操作涉及引用子,确定是否存在所述引用子;若存在所述引用子,根据所述配置项在所述待配置对象上执行所述配置操作;若不存在所述引用子,根据所述配置操作缓存所述配置消息。
在本申请实施例中,处理模块820具体用于:根据所述索引项在所述多个对象中查找所述待配置对象;若在所述多个对象中查找到所述待配置对象,判断所述待配置对象的内容与在所述多个对象中对应的对象的内容是否相同;若所述待配置对象的内容与在所述多个对象中对应的对象的内容不相同,确定配置操作为修改所述待配置对象;若在所述多个对象中没有查找到所述待配置对象,确定配置操作为新建所述待配置对象。
在本申请实施例中,处理模块820还用于:若在所述多个对象中查找到所述待配置对象,且所述待配置对象的内容与在所述多个对象中对应的对象的内容相同,将所述待配置对象标记为配置完成状态。
在本申请实施例中,处理模块820具体用于:判断所述配置操作是否满足预设的限制条件;若所述配置操作满足所述预设的限制条件,根据所述配置项和所述索引项新建所述待配置对象,并将新建成的对象标记为配置完成状态;若所述配置操作不满足所述预设的限制条件,根据所述配置操作缓存所述配置消息,并将所述待配置对象标记为需新建状态。
在本申请实施例中,处理模块820具体用于:根据所述配置项对所述待配置对象进行修改,并将修改完成的对象标记为配置完成状态。
在本申请实施例中,处理模块820具体用于:若所述配置操作为修改所述待配置对象,对所述待配置对象进行解引用处理,并根据所述配置操作缓存所述配置消息,以及将所述待配置对象标记为需修改状态;若所述配置操作为新建所述待配置对象,根据配置操作缓存配置消息,并将所述待配置对象标记为需新建状态。
在本申请实施例中,处理模块820还用于:确定本地的多个对象中的第一对象;所述第一对象为没有标记配置状态的对象;将所述第一对象删除。
在本申请实施例中,处理模块820还用于:确定所述多个对象中的第二对象;所述第二对象为标记为需新建状态或者需修改状态的对象;获取所述第二对象对应的配置消息;根据所述第二对象对应的配置消息对所述第二对象执行对应的配置操作,并将配置完成的第二对象标记为配置完成状态。
网络设备的配置同步装置与网络设备的配置同步方法对应,各个功能模块与配置同步方法的各个步骤对应,因此,各个功能模块的实施方式参照前述实施例中各个步骤的实施方式,在此不再重复介绍。
基于同一发明构思,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时,执行前述实施例中所述的网络设备的配置同步方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种网络设备的配置同步方法,其特征在于,包括:
接收上级网络设备发送的配置消息;所述配置消息中包括:待配置对象的配置项和索引项;
根据所述索引项和本地的多个对象确定配置操作为新建所述待配置对象或者修改所述待配置对象;
根据所述索引项判断所述配置操作是否涉及引用子;
若所述配置操作不涉及引用子,根据所述配置项在所述待配置对象上执行所述配置操作;
若所述配置操作涉及引用子,确定是否存在所述引用子;若存在所述引用子,根据所述配置项在所述待配置对象上执行所述配置操作;若不存在所述引用子,根据所述配置操作缓存所述配置消息。
2.根据权利要求1所述的配置同步方法,其特征在于,所述根据所述索引项和本地的多个对象确定配置操作为新建所述待配置对象或者修改所述待配置对象,包括:
根据所述索引项在所述多个对象中查找所述待配置对象;
若在所述多个对象中查找到所述待配置对象,判断所述待配置对象的内容与在所述多个对象中的内容是否相同;
若所述待配置对象的内容与在所述多个对象中对应的对象的内容不相同,确定配置操作为修改所述待配置对象;
若在所述多个对象中没有查找到所述待配置对象,确定配置操作为新建所述待配置对象。
3.根据权利要求2所述的配置同步方法,其特征在于,所述配置同步方法还包括:
若在所述多个对象中查找到所述待配置对象,且所述待配置对象的内容与在所述多个对象中对应的对象的内容相同,将所述待配置对象标记为配置完成状态。
4.根据权利要求1所述的配置同步方法,其特征在于,所述配置操作为新建所述待配置对象,所述根据所述配置项在所述待配置对象上执行所述配置操作,包括:
判断所述配置操作是否满足预设的限制条件;
若所述配置操作满足所述预设的限制条件,根据所述配置项和所述索引项新建所述待配置对象,并将新建成的对象标记为配置完成状态;
若所述配置操作不满足所述预设的限制条件,根据所述配置操作缓存所述配置消息,并将所述待配置对象标记为需新建状态。
5.根据权利要求1所述的配置同步方法,其特征在于,所述配置操作为修改所述待配置对象,所述根据所述配置项在所述待配置对象上执行所述配置操作,包括:
根据所述配置项对所述待配置对象进行修改,并将修改完成的对象标记为配置完成状态。
6.根据权利要求1所述的配置同步方法,其特征在于,所述根据所述配置操作缓存所述配置消息,包括:
若所述配置操作为修改所述待配置对象,对所述待配置对象进行解引用处理,并根据所述配置操作缓存所述配置消息,以及将所述待配置对象标记为需修改状态;
若所述配置操作为新建所述待配置对象,根据配置操作缓存配置消息,并将所述待配置对象标记为需新建状态。
7.根据权利要求1所述的配置同步方法,其特征在于,所述配置同步方法还包括:
确定本地的多个对象中的第一对象;所述第一对象为没有标记配置状态的对象;
将所述第一对象删除。
8.根据权利要求7所述的配置同步方法,其特征在于,在将所述第一对象删除后,所述配置同步方法还包括:
确定所述多个对象中的第二对象;所述第二对象为标记为需新建状态或者需修改状态的对象;
获取所述第二对象对应的配置消息;
根据所述第二对象对应的配置消息对所述第二对象执行对应的配置操作,并将配置完成的第二对象标记为配置完成状态。
9.一种网络设备的配置同步装置,其特征在于,包括:
接收模块,用于接收上级网络设备发送的配置消息;所述配置消息中包括:待配置对象的配置项和索引项;
处理模块,用于:
根据所述索引项和本地的多个对象确定配置操作为新建所述待配置对象或者修改所述待配置对象;
根据所述索引项判断所述配置操作是否涉及引用子;
若所述配置操作不涉及引用子,根据所述配置项在所述待配置对象上执行所述配置操作;
若所述配置操作涉及引用子,确定是否存在所述引用子;若存在所述引用子,根据所述配置项在所述待配置对象上执行所述配置操作;若不存在所述引用子,根据所述配置操作缓存所述配置消息。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时,执行如权利要求1-8任一项所述的网络设备的配置同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111610178.4A CN114268533A (zh) | 2021-12-27 | 2021-12-27 | 网络设备的配置同步方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111610178.4A CN114268533A (zh) | 2021-12-27 | 2021-12-27 | 网络设备的配置同步方法及装置、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114268533A true CN114268533A (zh) | 2022-04-01 |
Family
ID=80830173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111610178.4A Pending CN114268533A (zh) | 2021-12-27 | 2021-12-27 | 网络设备的配置同步方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114268533A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2360869A1 (en) * | 2008-12-15 | 2011-08-24 | Huawei Device Co., Ltd. | Method and apparatus for managing object instance alias |
CN103024065A (zh) * | 2012-12-25 | 2013-04-03 | 曙光信息产业(北京)有限公司 | 用于云存储系统的系统配置管理方法 |
CN110650193A (zh) * | 2019-09-20 | 2020-01-03 | 腾讯科技(深圳)有限公司 | 节点管理方法、集群管理设备及存储介质 |
WO2020237797A1 (zh) * | 2019-05-31 | 2020-12-03 | 烽火通信科技股份有限公司 | 一种微服务框架下动态配置管理方法及系统 |
CN112187548A (zh) * | 2020-10-09 | 2021-01-05 | 深圳壹账通智能科技有限公司 | 配置数据同步更新方法、装置、设备及存储介质 |
-
2021
- 2021-12-27 CN CN202111610178.4A patent/CN114268533A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2360869A1 (en) * | 2008-12-15 | 2011-08-24 | Huawei Device Co., Ltd. | Method and apparatus for managing object instance alias |
CN103024065A (zh) * | 2012-12-25 | 2013-04-03 | 曙光信息产业(北京)有限公司 | 用于云存储系统的系统配置管理方法 |
WO2020237797A1 (zh) * | 2019-05-31 | 2020-12-03 | 烽火通信科技股份有限公司 | 一种微服务框架下动态配置管理方法及系统 |
CN110650193A (zh) * | 2019-09-20 | 2020-01-03 | 腾讯科技(深圳)有限公司 | 节点管理方法、集群管理设备及存储介质 |
CN112187548A (zh) * | 2020-10-09 | 2021-01-05 | 深圳壹账通智能科技有限公司 | 配置数据同步更新方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10547538B2 (en) | Packet forwarding method and apparatus | |
US10764119B2 (en) | Link handover method for service in storage system, and storage device | |
CN108234306A (zh) | 网络装置、网络方法和计算机可读存储介质 | |
CN108337161B (zh) | 一种mlag接口故障三层数据流量平滑切换的方法 | |
CN101702663A (zh) | 一种环网拓扑信息的更新方法、装置和系统 | |
CN104378232A (zh) | 主备集群组网模式下的脑裂发现、恢复方法及装置 | |
EP2541847B1 (en) | Method and system for establishing an associated bidirectional label-switched path | |
CN105959231A (zh) | 一种代理端口通信流量控制方法和冗余设备 | |
CN101477386B (zh) | 一种定时器实现方法和装置 | |
CN103346914A (zh) | 分布式文件系统的拓扑结构更新方法和装置 | |
CN105471725A (zh) | 穿越自治系统的路由方法和装置 | |
CN103995868A (zh) | 面向分布式系统的全局事务管理器及事务处理方法 | |
CN102123104A (zh) | 网络设备配置纠正方法和网络设备 | |
CN107888409B (zh) | 一种具有自愈能力的通信网络配置数据自动同步方法 | |
CN105871737A (zh) | 一种用于冗余网络间通信的通信流量控制装置 | |
CN114268533A (zh) | 网络设备的配置同步方法及装置、存储介质 | |
CN105024928A (zh) | 一种多协议标签交换网络的保护倒换方法和装置 | |
CN113453262A (zh) | 一种双向转发检测bfd方法及装置 | |
CN102891902B (zh) | 介质访问控制地址更新方法及网络设备 | |
CN101115017A (zh) | 一种删除mac地址的方法及装置 | |
CN105323112A (zh) | 一种分组传送网管的一致性处理的快速方法 | |
US20230393985A1 (en) | Takeover method and apparatus for cache partition recovery, device and readable medium | |
CN111698142B (zh) | 一种报文转发方法、装置、电子设备及存储介质 | |
WO2022088931A1 (zh) | 信息处理方法及其装置、宽带接入服务器、存储介质 | |
CN103200025B (zh) | 一种可视化展现快速重路由中路由状态的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |