具体实施方式
为了使本技术领域的人员更好的理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中的技术方案作进一步详细的说明。
在以下本发明各实施例中,所描述的VSM系统中的Master和Slave可以分别代表主成员设备和备成员设备。
参见图1,为本发明实施例同步配置信息的方法的一个应用场景示意图:
图1中示出了一种VSM系统的网络架构。其中,一个VSM系统包括一台Master与多台Slave。其中,Master可以通过VSM系统中各设备的选举产生。本发明实施例中,VSM系统的启动过程可以分为以下两个阶段:
第一个阶段:VSM系统中各设备加电启动后,生成VSM拓扑,各设备从VSM拓扑中选举出一台Master;以Master上的现有配置为标准,各Slave从所述Master上获取所述Master的现有配置并进行备份,即:现有配置的批量备份。所述现有配置是指用户通过Master对VSM系统进行配置前,Master自身已经存在的配置信息。
第二个阶段:VSM系统中各设备启动配置同步进程。VSM系统中的配置同步是指当用户对VSM系统进行配置时,Master先接收配置信息,然后Master再将接收的配置信息下发给Slave,这个下发过程可以依靠Master和Slave的配置同步进程做支持。
以在图1所示的VSM系统中进行配置同步为例,现有技术中,在VSM系统启动的第二个阶段,当Master接收到配置信息后,向Slave_1和Slave_2下发所接收的配置信息,若下发时Master和Slave_1的配置同步进程已启动,而Slave_2的配置同步进程尚未启动,则会造成配置信息在Slave_2上的丢失。可见,现有技术中,VSM系统中配置信息的同步性不稳定,安全性差。
因此,本发明实施例中,当Master接收到配置信息后会判断当前VSM系统中Master、Slave_1和Slave_2的配置同步进程是否都已经启动,只有在Master、Slave_1和Slave_2的配置同步进程都启动后,才会向Slave_1和Slave_2下发所接收的配置信息,从而保证Slave_1和Slave_2可以通过配置同步进程接收到配置信息。可见,本发明实施例可以使配置信息的同步性更稳定。
需要指出的是,本发明实施例中的VSM系统的拓扑结构可以不限于图1所示的拓扑结构,例如,也可以是Master与Slave两两相连。
参见图2,图2为本发明同步配置信息的方法的一个实施例流程图,该实施例从Master侧进行描述,包括以下步骤:
步骤201:接收配置信息。
本步骤中,Master可以从外部设备接收配置信息,该配置信息可以由操作该外部设备的用户输入。其中,该Master与外部设备的连接方式可以包括:通过外接串口与外部设备直接连接,或者也可以是通过设置的IP(Internet Protocol,网络之间互连的协议)地址接入网络后与外部设备连接。
步骤202:判断所述VSM系统中所有设备是否都已经启动配置同步进程。
其中,所述所有设备包括VSM系统中的Master以及所有的Slave。
在一个可选的例子中,Master预先为VSM系统中所有设备设置同步进程启动标记,所述同步进程启动标记的状态分为未启动和已启动。在VSM拓扑建立后,Master从各Slave接收各Slave的同步进程启动情况信息,并根据所述各Slave的同步进程启动情况信息以及Master自身的同步进程启动情况信息,实时更新所述同步进程启动标记的状态。如果所述同步进程启动标记的状态全部为已启动,则可以确定VSM系统中所有的设备都已经启动配置同步进程;如果所述同步进程启动标记的状态并非全部为已启动,则可以确定VSM系统中并非所有设备都已经启动配置同步进程。
在另一个可选的例子中,Master可以向VSM系统中所有Slave实时同步所有设备的同步进程启动标记,从而可以在Master发生故障,需要进行主备切换时,从原来的Slave中新选举出的任一Master都可以根据所述同步的所有设备的同步进程启动标记,对所有设备的配置同步进程启动情况进行判断。
步骤203:如果所述VSM系统中所有设备都已经启动配置同步进程,向所述Slave发送所述配置信息。
在一个可选的例子中,当VSM系统中所有设备未都启动配置同步进程时,Master可以输出提示信息,例如,该提示信息可以为“暂缓配置,请等待……”。
在另一个可选的例子中,Master可以在接收到配置信息后,保存该配置信息,当VSM系统中所有设备未都启动配置同步进程时,Master可按预设周期判断所有设备的配置同步进程是否都已经启动,直至VSM系统中所有设备都启动配置同步进程时,Master可以向所有Slave发送所述保存的配置信息,从而避免了用户对VSM系统的再次配置,提升了用户体验和同步配置的效率。
由上述实施例可见,Master会判断VSM系统中所有设备的同步进程启动状态,只有当VSM系统中所有设备的配置同步进程启动后,才会向Slave下发配置信息。避免了在Slave的配置同步进程尚未启动时对Slave进行配置信息同步,从而避免了配置信息的丢失。本发明实施例可以使配置信息的同步性更稳定。
参见图3,图3为本发明同步配置信息的方法的另一个实施例流程图,与图2所示实施例相比,图3所示实施例针对VSM系统所有设备的配置同步进程的启动情况,对配置信息的同步过程进行了详细描述,该实施例从Master侧进行描述,包括以下步骤:
步骤301:保存VSM系统中所有设备的同步进程启动情况信息。
在一个可选的例子中,Master预先为VSM系统中所有设备设置同步进程启动标记,所述同步进程启动标记的状态分为未启动和已启动。在VSM拓扑建立后,Master从各Slave接收各Slave的同步进程启动情况信息,并根据所述各Slave的同步进程启动情况信息以及Master自身的同步进程启动情况信息,实时更新所述同步进程启动标记的状态。
步骤302:向VSM系统中所有Slave发送所有设备的同步进程启动情况信息。
本步骤中,所述发送过程可以是实时的,例如:当Master中的同步进程启动标记的状态更新时,Master将最新的同步进程启动标记同步给VSM系统中所有的Slave。
步骤303:接收并保存配置信息。
步骤304:根据所述同步进程启动情况信息判断VSM系统中所有设备的配置同步进程是否都已经启动,若是,则执行步骤305,否则,执行步骤306。
在一个可选的例子中,当所述判断结果为否时,Master可以输出提示信息,例如,该提示信息可以为“暂缓配置,请等待……”。
步骤305:向VSM系统中所有Slave发送所述配置信息,结束当前流程。
在一种情况下,如果步骤304中判断VSM系统中所有设备的配置同步进程都已经启动,则执行本步骤,由Master向VSM系统中所有Slave发送所述配置信息,完成配置信息的同步。
在另一种情况下,如果步骤304中的判断结果为VSM系统中所有设备的配置同步进程未都启动,则结合步骤306,Master可以按一定周期重复执行步骤304中的判断,直至所有设备的配置同步进程是否都已经启动,此时执行本步骤,由Master向VSM系统中所有Slave发送保存的配置信息。
步骤306:判断是否达到预设周期,若是,则执行步骤304,若否,则继续执行步骤306。
该步骤中,所述预设周期可以为默认值,也可由用户根据需要自行设定。
由上述实施例可见,一方面,Master会判断VSM系统中所有设备的同步进程启动状态,只有当VSM系统中所有设备的配置同步进程启动后,才会向Slave下发配置信息。避免了在Slave的配置同步进程尚未启动时对Slave进行配置信息同步,从而避免了配置信息的丢失。因此,可以使配置信息的同步性更稳定。另一方面,Master向所有Slave发送VSM系统中所有设备的同步进程启动情况信息,实现了在VSM系统主备切换后,新的Master对VSM系统中所有设备的配置同步进程启动情况的判断,所以避免了主备切换后由于Slave的配置同步进程未启动所带来的配置信息的丢失的情况,可以使主备切换后VSM系统配置信息的同步性更稳定。再一方面,Master收到配置信息后保存接收的配置信息,如果VSM系统中所有设备的配置同步进程未都启动,则按预设周期对VSM系统中所有设备的配置同步进程再次判断,直到VSM系统中所有设备的配置同步进程都启动后,自动将配置信息下发给Slave,避免了用户的重复配置,提升了用户体验和同步配置的效率。
参见图4,图4为本发明同步配置信息的方法的另一个实施例流程图,该实施例结合图1示出的应用场景,从Master侧对配置信息的同步过程进行详细描述,包括以下步骤:
步骤401:当VSM系统的拓扑生成后,为VSM系统中所有设备设置同步进程启动标记。
在一个可选的例子中,所述同步进程启动标记的状态包括已启动和未启动,每个设备的同步进程启动标记的初始状态均设置为未启动。上述初始状态可以对应于该VSM系统的拓扑初次生成,或设备恢复出厂设置后的首次启动。
当VSM系统中加入新的Slave时,Master为其同步进程启动标记的初始状态同样设置为未启动。
步骤402:从Slave_1及Slave_2接收Clear(清空)报文。
本实施例中,VSM系统中的每个Slave可以向Master发送Clear报文,通过Clear报文携带该Slave的同步进程启动情况信息。
所述Slave_1的Clear报文与所述Slave_2的Clear报文的发送过程是相互独立的,并不限于图4所示的顺序,其发送的先后次序由Slave_1及Slave_2的启动情况决定,即:对于各Slave,先启动并完成拓扑建立的Slave可以先发送Clear报文。
步骤403:将Slave_1及Slave_2的同步进程启动标记保存为未启动。
本实施例中,Master保存所述Slave_1的同步进程启动标记与所述Slave_2的同步进程启动标记的保存过程是独立的,并不限于图4所示的顺序,其先后次序可以由Master收到Slave_1及Slave_2的Clear报文的次序决定。
对于上述步骤402和步骤403,Slave_1的报文接收过程、同步进程启动标记保存过程与Slave_2的报文接收过程、同步进程启动标记保存过程可以相互独立。
步骤404:向Slave_1及Slave_2发送Sync(同步)报文。
本实施例中,Master可以通过Sync报文向各个Slave同步其所保存的VSM系统中所有设备的同步进程启动标记。
在一个可选的例子中,所述Sync报文中的同步进程启动标记可以通过同步进程启动标记表承载,所述同步进程启动标记表包含VSM系统中所有设备的同步进程启动标记。当所述同步进程启动标记表中任意一个同步进程启动标记状态更新时,Master通过Sync报文向所有Slave发送更新后的所述同步进程启动标记表。
步骤405:当Master的配置同步进程启动后,将自身的同步进程启动标记保存为已启动。
步骤406:当Slave_1及Slave_2的配置同步进程启动后,从Slave_1及Slave_2接收Set(设置)报文。
本实施例中,VSM系统中的每个Slave可以向Master发送Set报文,通过Set报文携带该Slave的同步进程启动情况信息。
所述Slave_1的Set报文与所述Slave_2的Set报文的发送过程是相互独立的,并不限于图4所示的顺序,其发送的先后次序由Slave_1及Slave_2的配置同步进程启动情况决定,即:对于各Slave,先启动配置同步进程的Slave可以先发送Set报文。
步骤407:将Slave_1及Slave_2的同步进程启动标记保存为已启动。
本实施例中,Master保存所述Slave_1的同步进程启动标记与所述Slave_2的同步进程启动标记的保存过程是独立的,并不限于图4所示的顺序,其先后次序可以由Master收到Slave_1及Slave_2的Set报文的次序决定。
对于上述步骤406和步骤407,Slave_1的报文接收过程、同步进程启动标记保存过程与Slave_2的报文接收过程、同步进程启动标记保存过程可以相互独立。
步骤408:向Slave_1及Slave_2发送Sync报文。
本实施例中,Master可以通过Sync报文向各个Slave同步其所保存的VSM系统中所有设备的同步进程启动标记。
在一个可选的例子中,所述Sync报文中的同步进程启动标记可以通过同步进程启动标记表承载,所述同步进程启动标记表包含VSM系统中所有设备的同步进程启动标记。当所述同步进程启动标记表中任意一个同步进程启动标记状态更新时,Master通过Sync报文向所有Slave发送更新后的所述同步进程启动标记表。
步骤409:接收并保存配置信息。
步骤410:判断VSM系统中所有设备的配置同步进程是否都已启动,若是,则执行步骤411,若否,则按照预设周期再次判断,直至所有设备的配置同步进程都已启动。
该步骤中,所述预设周期可以为默认值,也可由用户根据需要自行设定。
在一个可选的例子中,当所述判断结果为否时,Master可以输出提示信息,例如,该提示信息可以为“暂缓配置,请等待……”。
步骤411:向Slave_1及Slave_2发送配置信息。
由上述实施例可见,一方面,Master会判断VSM系统中所有设备的同步进程启动状态,只有当VSM系统中所有设备的配置同步进程启动后,才会向Slave下发配置信息。避免了在Slave的配置同步进程尚未启动时对Slave进行配置信息同步,从而避免了配置信息的丢失。因此,可以使配置信息的同步性更稳定。另一方面,Master向所有Slave发送VSM系统中所有设备的同步进程启动情况信息,实现了在VSM系统主备切换后,新的Master对VSM系统中所有设备的配置同步进程启动情况的判断,所以避免了主备切换后由于Slave的配置同步进程未启动所带来的配置信息的丢失的情况,可以使主备切换后VSM系统配置信息的同步性更稳定。再一方面,Master收到配置信息后保存接收的配置信息,如果VSM系统中所有设备的配置同步进程未都启动,则按预设周期对VSM系统中所有设备的配置同步进程再次判断,直到VSM系统中所有设备的配置同步进程都启动后,自动将配置信息下发给Slave,避免了用户的重复配置,提升了用户体验和同步配置的效率。
与前述同步配置信息的方法实施例相对应,本发明还提供了同步配置信息的装置的实施例。
本发明同步配置信息的装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明同步配置信息的装置所在设备的一种硬件结构图,除了图5所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该装置的实际功能,还可以包括其他硬件,如负责处理报文的转发芯片等等,在此不再赘述。
参见图6,为本发明同步配置信息的装置的一个实施例框图,所述装置应用于虚拟交换矩阵VSM系统的Master,所述VSM系统还包括多个Slave,所述装置包括:接收单元610、判断单元620、第一发送单元630。
其中,接收单元610,用于接收配置信息;
判断单元620,用于判断所述VSM系统中所有设备是否都已经启动配置同步进程;
第一发送单元630,用于当所述VSM系统中所有设备都已经启动配置同步进程时,向所述Slave发送所述配置信息。
由上述实施例可见,Master会判断VSM系统中所有设备的同步进程启动状态,只有当VSM系统中所有设备的配置同步进程启动后,才会向Slave下发配置信息。避免了在Slave的配置同步进程尚未启动时对Slave进行配置信息同步,从而避免了配置信息的丢失。本发明实施例可以使配置信息的同步性更稳定。
在一个可选的例子中,所述装置还可以包括(图6中未示出):第一保存单元。
所述第一保存单元,用于预先保存所述VSM系统中所有设备的同步进程启动情况信息;
所述判断单元620,具体用于根据所述同步进程启动情况信息判断所述VSM系统中所有设备是否都已经启动配置同步进程。
在另一个可选的例子中,所述装置还可以包括(图6中未示出):第二发送单元。
所述第二发送单元,用于向所述Slave发送所述VSM系统中所有设备的同步进程启动情况信息。
以上述例子为基础,在另一个可选的例子中,所述第一保存单元,包括:
标记设置子单元,用于为所述VSM系统中所有设备设置同步进程启动标记;
标记保存子单元,用于如果所述Master自身的配置同步进程启动,将自身的同步进程启动标记保存为已启动;
如果接收到清空报文,将发送所述清空报文的Slave的同步进程启动标记保存为未启动;
如果接收到置位报文,将发送所述置位报文的Slave的同步进程启动标记保存为已启动。
在另一个可选的例子中,所述装置还可以包括(图6中未示出):第二保存单元和周期触发单元。
第二保存单元,用于当Master接收所述配置信息后,保存所述配置信息;
周期触发单元,用于如果所述VSM系统中所有设备未都启动配置同步进程,则按照预设周期,触发所述判断单元判断所述VSM系统中所有设备是否都已经启动配置同步进程,直至所述VSM系统中所有设备都已经启动配置同步进程;
所述第一发送单元630,还用于向所述Slave发送保存的配置信息。
其中,所述预设周期可以为默认值,也可由用户根据需要自行设定。
由上述实施例可见,一方面,Master会判断VSM系统中所有设备的同步进程启动状态,只有当VSM系统中所有设备的配置同步进程启动后,才会向Slave下发配置信息。避免了在Slave的配置同步进程尚未启动时对Slave进行配置信息同步,从而避免了配置信息的丢失。因此,可以使配置信息的同步性更稳定。另一方面,Master向所有Slave发送VSM系统中所有设备的同步进程启动情况信息,实现了在VSM系统主备切换后,新的Master对VSM系统中所有设备的配置同步进程启动情况的判断,所以避免了主备切换后由于Slave的配置同步进程未启动所带来的配置信息的丢失的情况,可以使主备切换后VSM系统配置信息的同步性更稳定。再一方面,Master收到配置信息后保存接收的配置信息,如果VSM系统中所有设备的配置同步进程未都启动,则按预设周期对VSM系统中所有设备的配置同步进程再次判断,直到VSM系统中所有设备的配置同步进程都启动后,自动将配置信息下发给Slave,避免了用户的重复配置,提升了用户体验和同步配置的效率。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。