一种配置差异检测方法和装置与流程

文档序号:18791677发布日期:2019-09-29 18:55阅读:165来源:国知局
本申请涉及互联网
技术领域
:,尤其涉及一种配置差异检测方法和装置。
背景技术
::vsm是一种将多台网络设备虚拟成一台网络设备的新型网络设备虚拟化技术,在整个vsm环境中,将vsm成员分为主成员设备(master)和备成员设备备(slave)。其中,主成员设备负责管理控制整个vsm系统,vsm的所有配置信息都是由主成员设备统一下发给所有的备成员设备,vsm中运行的数据链路层及上层协议状态机的状态信息都统一由主成员设备来维护管理,并将这些信息同步给备成员设备。备成员设备由主成员设备控制管理,作为主成员设备的备份设备运行,同时备成员设备也可以进行数据业务转发。在同一个vsm环境中,通常只有一台主成员设备,但可以有多台备成员设备备。由于整机配置由主成员设备统一同步给备成员设备,所以理论上整机环境中主成员设备和所有备成员设备配置一致,但是有些异常情况可能会导致同步失败,使主备设备的配置不一致。目前缺少一种准确快速的检测方法,来检测主成员设备和所有备成员设备的配置情况。技术实现要素:针对上述技术问题,本申请实施例提供一种配置差异检测方法和装置,技术方案如下:根据本申请实施例的第一方面,提供一种配置差异检测方法,应应用于由配置同步的主设备和备设备组成的系统中,所述方法包括:主设备向备设备发送配置请求信息,以通知备设备将本地配置文件发送给主设备;主设备收到备设备发送的配置文件数据包后,针对主设备和备设备中的任意两个同步配置文件,将所述两个配置文件分别导出为第一文本文件和第二文本文件;使用预定义的对比工具,对第一文本文件和第二文本文件中的内容进行对比,根据对比结果输出主设备和备设备之间的配置差异。根据本申请实施例的第二方面,提供一种配置差异检测装置,应用于由配置同步的主设备和备设备组成的系统中,所述装置包括:配置文件请求模块:用于控制主设备向备设备发送配置请求信息,以通知备设备将本地配置文件发送给主设备;配置文件导出模块:用于控制主设备收到备设备发送的配置文件数据包后,针对主设备和备设备中的任意两个同步配置文件,将所述两个配置文件分别导出为第一文本文件和第二文本文件;配置文件对比模块:用于使用预定义的对比工具,对第一文本文件和第二文本文件中的内容进行对比,根据对比结果输出主设备和备设备之间的配置差异。本申请实施例所提供的技术方案,先将主设备和备设备中同步配置文件的内容按顺序转换并导出到用于比较的两个文本文件中,再对两个文本文件进行对比和文本差异输出,准确快速地实现了主设备与备设备的自动化配置同步检测,避免了主备之间配置不同可能导致的问题。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请实施例。此外,本申请实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本申请一示例性实施例示出的配置差异检测方法一种流程图;图2是本申请一示例性实施例示出的主设备与备设备之间配置文件传输的一种示意图;图3是本申请一示例性实施例示出的配置差异检测方法中导出文本文件的一种流程图;图4是本申请一示例性实施例示出的配置差异检测方法中对比文本文件的一种流程图;图5是本申请一示例性实施例示出的配置差异检测装置一种示意图;图6是本申请一示例性实施例示出的一种计算机设备的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。vsm是一种将多台网络设备虚拟成一台网络设备的新型网络设备虚拟化技术,在整个vsm环境中,将vsm成员分为主成员设备(master)和备成员设备备(slave)。其中,主成员设备负责管理控制整个vsm系统,vsm的所有配置信息都是由主成员设备统一下发给所有的备成员设备,vsm中运行的数据链路层及上层协议状态机的状态信息都统一由主成员设备来维护管理,并将这些信息同步给备成员设备。备成员设备由主成员设备控制管理,作为主成员设备的备份设备运行,同时备成员设备也可以进行数据业务转发。在同一个vsm环境中,通常只有一台主成员设备,但可以有多台备成员设备备。由于整机配置由主成员设备统一同步给备成员设备,所以理论上整机环境中主成员设备和所有备成员设备配置一致,但是有些异常情况可能会导致同步失败,使主备设备的配置不一致。目前缺少一种准确快速的检测方法,来检测主成员设备和所有备成员设备的配置情况。针对以上问题,本申请实施例提供一种配置差异检测方法,以及一种用于执行该方法的配置差异检测装置。下面对本实施例涉及的配置差异检测方法进行详细说明,该方法应用于由配置同步的主设备和备设备组成的系统中,参见图1所示,可以包括以下步骤:s101,主设备向备设备发送配置请求信息,以通知备设备将本地配置文件发送给主设备;用户可在需要执行配置差异检测的时间,手动启动本实施例示出的差异检测流程;也可设定自动化检测执行时间,控制主设备按照预定周期执行与各个备设备之间配置差异检测。具体而言,在系统只包括一个主设备和一个备设备时,可预定义主设备与备设备之间的配置差异检测周期,如每小时检测一次两者差异;或预定义主设备和备设备的配置差异检测时间点,举例说明:可根据实际应用场景选择设备空闲时间段自动执行配置差异检测,如选择每天清晨或深夜的时间点执行检测。进一步地,在系统包括一个主设备和多个备设备时,如vsm环境中,则可分别设定每个备设备与主设备的差异检测时间点,如,可根据各个备设备的日常使用情况分别设定各自的配置差异检测频率和具体检测时间;也可设定一个汇总检测时间和备设备检测顺序,当到达检测时间后,按照检测顺序依次控制备设备发送自身配置文件进行差异检测。参考图2,在具有多个备设备的系统中,一般将主设备的配置文件作为参照标准,将各个备设备的配置文件发送到主设备,分别与主设备进行配置差异对比。在一些应用场景中,也可将某个或某几个备设备作为参照标准,将其他备设备与标准备设备进行配置差异对比。具体而言,每台设备具有多个配置文件,其中可包括数据库型配置文件和文本型配置文件等等。在本步骤中,备设备可将所有配置文件进行打包整合,将获取的配置文件包发送给主设备。在本申请的其中一种实施例中,也可控制主设备和备设备分别打包自身的配置文件,并分别将本地配置文件发送给第三方对比设备,由第三方设备执行配置文件的差异检测。s102,主设备收到备设备发送的配置文件数据包后,针对主设备和备设备中的任意两个同步配置文件,将所述两个配置文件分别导出为第一文本文件和第二文本文件;同步配置文件,即主设备和备设备中理论上应该内容相同的两个配置文件。在本步骤中,可通过查找相同文件名等信息获取两个装备侧的同步配置文件。获取同步配置文件后,还可进行一次判断,判断这两个配置文件的文件类型是否为文本型,如果是文本型,则可不进行文本转换,如果不是文本型,则需要将所述两个配置文件分别导出为文本文件。s103,使用预定义的对比工具,对第一文本文件和第二文本文件中的内容进行对比,根据对比结果输出主设备和备设备之间的配置差异。比较两个配置文件差异的方法很多。通常来说可以逐行进行比较。例如通过linux系统下的diff命令分别比较主设备、备设备的配置文件的同行数数据。即,本申请提供的方法需获取两个用于对比的文本文件,参见图3,可具体包括以下步骤:s301,主设备向备设备发送配置请求信息,以通知备设备将本地配置文件发送给主设备;s302,主设备收到备设备发送的配置文件数据包后,针对待对比的两个配置文件,按照预定义的转换方式将所述两个配置文件中的内容转换为文本格式;将配置文件的内容转换为文本文件的方法有很多,具体的转换方法可视配置文件的原格式而定。以vsm环境进行举例说明,在vsm环境中,主设备为主框主控,备设备为备框主控:主框主控收到备框主控发送的配置文件后,逐一数据库或文本文件与备框主控中同一文件作对比。在对比数据库配置文件时,由于数据库配置文件是二进制文件,直接对比无法体现出具体配置数据的差异,因此将数据库中的内容用特定方法导出为文本文件再进行比较。如sqlite数据库,可先执行.dump命令,该命令的输出结果是针对该数据库中每条记录生成一条insert语句,语句包含了该条记录的所有数据。再打开一个空的数据库文件将该输出结果回刷到该数据库文件中。如此即可实现将这些数据库记录原样填入该数据库文件。因此,.dump命令的输出结果即是该数据库的内容的文本形式。通过该方法,将数据库配置文件转换为文本文件对比,转换为文本文件的方法以sqlite3为例:可以通过sqlite3source.db‘.dump’>dest.txt命令将source.db数据库文件转换为dest.txt文本文件。在对比于文本型配置文件,则可直接进行比较,不需要执行上述流程。s303,将转换后的内容按行排序,分别写入第一文本文件或第二文本文件中。可以知道,必须保证主设备对应的文本文件和备设备对应的文本文件的内容顺序一致。在后续比较两个文件的差异时,才能准确的显示出差异的位置。具体地,可利用diff命令进行差异对比,diff命令以逐行的方式,比较文本文件的异同处,如果两个文件内容顺序不一致,比较结果中就会出现很多差异的信息,影响结果分析。以配置文件为数据库配置文件进行举例:通过步骤303将配置文件转换为文本文件后,按文本文件中的每行数据的内容排序,这样才能保证主设备和备设备的相同的两个数据库的内容顺序一致。其中,步骤s103中,使用预定义的对比工具,对第一文本文件和第二文本文件中的内容进行对比,根据对比结果输出主设备和备设备之间的配置差异,还可参见图4,包括以下具体步骤:s401,使用预定义的对比工具,将第一文本文件和第一文本文件中的文本内容逐行进行对比;s402,选定一相同行数,判断第二文本文件对比第一文本文件的内容差异,若第二文本文件与第一文本文件相比,有多出内容,则执行步骤s303,若第二文本文件与第一文本文件相比,无差异内容,则执行步骤s304,若第二文本文件与第一文本文件相比,有减少内容,则执行步骤s305;s403,将所述多出内容输出到结果文本文件的对应行中,并在所述结果文本文件的对应行增加多出标识;s404,将空白行输出到结果文本文件的对应行中;s405,将所述减少内容输出到结果文本文件的对应行中,并在所述结果文本文件的对应行增加减少标识。具体而言,可通过调用diff命令,针对每个数据库的配置导出文件逐个对比,将数据库名和对比结果写入结果文件中,分析结果文件,将有不同配置数据的模块名称显示在命令中。也可以将具体的不同配置数据显示在命令行中,将命令行的显示结果发送给开发人员分析。具体而言,diff命令的第一次参数为参考文件,第二个参数为需要比较的文件。结果中每行第一个字符若为‘+’,表示与参考文件相比,增加了哪些数据,若为‘-’则表示与参考文件相比,缺少了哪些数据,若为空格则表示无差异的行(仅用于示意上下文位置)。使用diff命令对比两个文本文件,举例如下:#diffmaster.txtslave.txt---master.txt+++slave.txt@@-2,7+2,7@@begintransaction;createtable`tb_inline_rule`(`rule_id`integerprimarykeyautoincrement,`priority`integerdefault-1,`slot_id`integerdefault-1,`iflist`textnotnulldefault"",`operate`textnotnulldefault"",`mode`integerdefault0,`netaddr_id`textnotnulldefault"",`vlan_id`integerdefault0);insertinto"tb_inline_rule"values(1,1,3,'100663488','33554460,0,0,0,0,0,0,0',0,'1/1;0;0;0',);-insertinto"tb_inline_rule"values(2,1,3,'100663488','33554460,0,0,0,0,0,0,0',0,'1/1;;;',0);+insertinto"tb_inline_rule"values(3,1,3,'100663488','33554460,0,0,0,0,0,0,0',0,'1/1;;;',0);本例中即表示了主设备和备设备中流定义策略的rule_id值不同。rule_id的差异会提醒相关模块的开发维护人员发现其中存在的问题。相应于上述方法实施例,本申请实施例还提供一种配置差异检测装置,应用于发送端,参见图5所示,所述装置可以包括:配置文件请求模块510,配置文件导出模块520与配置文件对比模块530。配置文件请求模块510:用于控制主设备向备设备发送配置请求信息,以通知备设备将本地配置文件发送给主设备;配置文件导出模块520:用于控制主设备收到备设备发送的配置文件数据包后,针对主设备和备设备中的任意两个同步配置文件,将所述两个配置文件分别导出为第一文本文件和第二文本文件;配置文件对比模块530:用于使用预定义的对比工具,对第一文本文件和第二文本文件中的内容进行对比,根据对比结果输出主设备和备设备之间的配置差异。本申请实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述配置差异检测方法,所述方法至少包括:主设备向备设备发送配置请求信息,以通知备设备将本地配置文件发送给主设备;主设备收到备设备发送的配置文件数据包后,针对主设备和备设备中的任意两个同步配置文件,将所述两个配置文件分别导出为第一文本文件和第二文本文件;使用预定义的对比工具,对第一文本文件和第二文本文件中的内容进行对比,根据对比结果输出主设备和备设备之间的配置差异。图6示出了本申请实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1110、存储器1120、输入/输出接口1130、通信接口1140和总线1150。其中处理器1110、存储器1120、输入/输出接口1130和通信接口1140通过总线1150实现彼此之间在设备内部的通信连接。处理器1110可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。存储器1120可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1120可以存储操作系统和其他应用程序,在通过软件或者固件来实现本申请实施例所提供的技术方案时,相关的程序代码保存在存储器1120中,并由处理器1110来调用执行。输入/输出接口1130用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。通信接口1140用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。总线1150包括一通路,在设备的各个组件(例如处理器1110、存储器1120、输入/输出接口1130和通信接口1140)之间传输信息。需要说明的是,尽管上述设备仅示出了处理器1110、存储器1120、输入/输出接口1130、通信接口1140以及总线1150,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。以上所述仅是本申请实施例的具体实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本申请实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请实施例的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1