
一种复杂大规模sdn网络实体快速查询方法及平台
技术领域
1.本发明涉及网络智能运维领域,尤其涉及一种可部署于复杂大规模sdn网络的网络实体快速查询方法及平台。
背景技术:2.现代大规模sdn网络结构日益复杂,网元、设备、集群等各种网络实体种类繁多,相互之间关系复杂。以复杂大规模sdn的代表云网络为例,其中存在大量异构的实体和虚拟网元,其中包括各种软硬件交换机、路由器、负载均衡器、控制器等。数量繁多的网元、设备之间在逻辑上连接关系复杂,在空间上分布地域广泛,同时这些网元之间网络流量转发关系复杂。此外,底层物理设备和更为抽象的租户、可用区、集群等网络实体之间也通过复杂的关系关联在一起,包括网络连接关系、设备间的相互管理关系、网络带宽共享关系等。
3.在复杂大规模sdn的运维中,运维人员有快速查询与特定网络实体相关联的其他网络实体的需求。比如在一次网络变更中,进行网络变更的设备本身可能由于变更无法正常进行告警或者提供的告警信息不可信,此时需明确哪些实体与此次变更的网络实体存在关联,要并重点关注与其存在关联的设备是否受到变更的影响。此外,在设备发生故障和性能告警时,运维人员也需要快速确定受到影响的关联设备,进一步定位故障源以加快网络故障的修复。现有的网络实体查询方法仍然较强地依赖于运维人员经验和人力。由于网络实体间连接关系和相互依赖关系复杂,运维人员需要查询包括sdn控制器中配置表项、用户信息等多个不同数据源的众多配置文件,以关联可能涉及到的网络实体,而这是一个耗费人力且效率低下的方案。
4.综上所述,在大规模sdn中设计一个能够应对复杂网络特性,快速查询与网络实体相关联的运维工具是十分困难的。
技术实现要素:5.本发明的目的是针对现有技术的不足,设计一套可部署在复杂大规模sdn网络的网络实体快速查询方法及平台,供网络运维人员快速查询与一个网络实体相关联的所有网络实体,基于查询结果,网络运维人员可以快速分析和定位发生网络故障的网元,也可以用于分析网络故障和变更的影响面。
6.本发明的目的是通过以下技术方案实现的:
7.根据本说明书的第一方面,提供一种复杂大规模sdn网络实体快速查询方法,该方法包括以下步骤:
8.s1:运维人员根据专家经验提取sdn网络实体的元数据并将其存储在图数据库中作为节点,同时根据专家经验提取网络实体间的关系并存储到图数据库中;图数据库中的节点和关系构成规则知识图谱;
9.s2:基于规则知识图谱,输入包含网络实体名称的查询条件,图数据库快速查询所有相关联的满足查询条件的节点;
10.s3:基于s2中查询得到的节点的元数据,使用多源分布式查询引擎到实际存储该节点数据的数据源查询,获得该节点代表的网络实体具体信息(即网络实体id列表)。
11.进一步地,所述网络实体包括但不限于软硬件网络设备,比如虚拟交换机,边缘路由器,负载均衡器等;sdn网络管理实例,比如云网络中的租户,可用区,集群等;物理基础设施,比如物理服务器,机柜等。
12.进一步地,规则知识图谱中仅存储网络实体的元数据,而不存储任何具体的网络实体信息,比如设备id;网络实体的元数据包括但不限于网络实体在sdn中唯一的标志性名称、实体类型、业务属性、主键信息、查询规则;
13.所述标志性名称是网络实体的独特命名,比如边缘路由器,七层负载均衡等,标志性名称并非具体的设备id;
14.所述实体类型和所述业务属性根据sdn中对网络实体的实际分类确定,比如实体类型包括云网络逻辑对象,虚拟网络实例,具体应用,网络设备等类型;业务属性包括在云网络中的具体产品和产品线等;
15.所述主键信息为查询该网络实体的具体个体必须的信息,比如云网络可用区信息;
16.所述查询规则为格式化的查询语句,包含数据源信息等,可以是包含完整参数定义的sql查询语句或者api调用命令。
17.进一步地,s1中,网络实体间的关系为图数据中节点之间的有向连边,一条关系需要包含以下内容:关系名称(由所连接的节点唯一标识);关系类型,比如“组成/由组成”、“挂载/挂载于”、“控制/被控制”等;数量属性,比如一对多、一对一、多对一、多对多等;方向属性,比如出和入。
18.进一步地,s1中,可以采用任何支持存储图数据结构的数据库存储规则知识图谱;任何可以抽象出上述必要元数据,以及能够与其他网络实体建立某种关系的网络实体,均可以存放在规则知识图谱中。
19.进一步地,s2中,要求输入的查询条件信息至少包含s1中规则知识图谱中一个节点的如下信息:网络实体标志性名称和关联跳数,比如(负载均衡器,3)表示查询与负载均衡器在s1中规则知识图谱上最多隔着三跳即可达的所有网路实体;还可以有网络实体id、具体的查询的主键等。
20.进一步地,s2中,支持输入s1中规则知识图谱的多个节点信息,将查询多个节点间最短可达路径上所有节点代表的网络实体。
21.在查询节点间最短路径时,利用最短路径搜索算法,获得两两节点间的最短路径,减少源目的节点间路径上节点的数量,从而减少后续多源分布式查询引擎对数据库的查询操作,提高系统响应速度;具体来说,由于利用元数据抽象得到的知识图谱对云网络的复杂结构进行了高度地抽象,因此虽然云网络本身的规模巨大,设备实例达到千万级别,但是知识图谱的规模可以控制在较小规模;在选择路径规划算法上面传统的dijkstra算法、a*算法等都可以用于最短路径的搜索,在本设计中选择了a*算法,本设计中设置任意两个节点之间边的权重为1,也可以根据搜索的偏好增加某些节点间的权重,比如在设置为查询物理设备优先的条件下,设置物理设备与其他节点间连边权重为更小的值。
22.进一步地,s2中,网络实体列表以知识图谱的形式进行可视化,图谱节点为网络实
体,图谱连边为实体间关系。
23.进一步地,s3中,将用户输入的查询条件信息填充到网络实体元数据中的查询规则内,生成有效可实际执行的查询语句。具体来说,元数据的查询规则可以分为两种,一种是sql类查询,另一种是对api的调用;对于前者,使用sql解析算法,比如java语言编写的druid,go语言编写的kingshard等,对查询规则进行解析获得抽象语法树,基于抽象语法树和填充的主键信息生成实际可执行的sql查询语句;对于后者,为了保障对api的正确调用,设置了语义识别规则对填充进来的主键信息进行格式校验,具体语义识别规则由api设计者提供,校验无误则直接填充到元数据中的查询api中,即可生成有效调用命令。比如,输入“虚拟机”,给出具体地域,并填充s2中查询得到的具体查询规则中,比如预定义的sql语句,可以得到在sql数据库上可执行的查询语句。
24.进一步地,s3中,基于得到的可执行查询语句,使用多源分布式查询引擎(比如,presto)在具体存储对应网络实体数据的数据库中进行查询,则可以进一步得到所查询的所有具体网络实体的id列表;同时还设计了模糊查询功能、生成相邻节点查询语句的功能。具体来说,根据已查询得到网络实体id列表和输入的查询条件,可以填充相邻节点元数据中的查询规则并继续执行查询,比如查询得到某地域虚拟机列表后,根据地域和虚拟机的可用区信息填充虚拟交换机节点的查询规则,可以进一步查询得到与虚拟机相连的所有虚拟交换机。
25.进一步地,s3中,查询得到的网络实体id列表可以在s2中知识图谱可视化的基础上进行展示,点选网络实体节点,可展示该实体对应所有id列表及其他相关信息。
26.进一步地,采用支持执行多种类型的查询语句、可接入多个数据源的多源分布式查询引擎执行查询。
27.进一步地,根据运维人员输入节点和连边数量,知识图谱规模会同步扩大,需要的多源分布式查询引擎算力也会同步增加,可以采用简单的弹性伸缩追加计算资源解决。
28.进一步地,多源分布式查询引擎查询的结果会进行缓存,查询结果中的热点数据会获得更多缓存时间,后续较低查询频度的数据会被替换,从而使用缓存技术保证热点数据的查询速度。
29.根据本说明书的第二方面,提供一种复杂大规模sdn网络实体快速查询平台,该平台可以部署于各种规模和结构的sdn,包括但不限于云网络,运营商网络,数据中心网络,企业局域网等,该平台包括以下模块:
30.规则知识图谱模块:运维人员根据专家经验将sdn网络实体元数据作为节点、网络实体间的关系作为连边构建规则知识图谱;规则知识图谱的节点存储的元数据包括网络实体在sdn中唯一的标志性名称、实体类型、业务属性、主键信息、查询规则;规则知识图谱的连边为实体间的关系;规则知识图谱存储在任何支持图数据结构的数据库中,用户查询信息,图数据库返回复合查询条件的所有节点及节点间的关系;
31.多源查询模块:基于用户输入的查询条件和节点元数据中的查询规则,生成具体可执行查询语句或者api调用命令并在多源分布式查询引擎上执行,在实际存放网络实体信息的数据库中查询所有符合查询主键要求的实体及相关信息并返回查询结果;
32.可视化查询模块:可视化查询模块用于用户输入查询条件和以知识图谱的方式可视化查询结果;在用户输入网络实体id或者查询主键的情况下,首先以包含节点和连边的
图的形式展示规则知识图谱模块返回的网络实体节点和关系,然后将多源查询模块查询得到的网络实体id列表展示在图下方,点选图中的节点可以展示不同网络实体的id列表。若用户未输入网络实体id或者查询主键,则不展示网络实体id列表。
33.本发明与现有技术相比,具有如下的优点:
34.第一,通过规则知识图谱,本方法可以使用较低存储开销就完成对大规模sdn中复杂网络实体及其相互之间复杂关系的存储,节省了直接存储和查询网络实体带来的海量存储、计算开销;
35.第二,通过可以灵活定义的实体间关系和精简的网络实体元数据定义,可以抽象广泛范围的网络实体并进行存储,从而获得广泛的使用场景;
36.第三,通过元数据填充查询条件并基于多源分布式查询引擎执行的设计,获得了适应数据量进行伸缩的查询计算能力。
37.第四,通过对热点查询数据的缓存机制减少了实际执行的查询次数,加速了提取所需查询结果的过程。
附图说明
38.图1是本发明实施例提供的复杂大规模sdn网络实体快速查询方法流程图;
39.图2是本发明实施例提供的复杂大规模sdn网络实体快速查询平台结构图。
具体实施方式
40.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
41.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
42.如图1所示,本技术实施例提出的一种复杂大规模sdn网络实体快速查询方法,具体实现可以分为三个步骤。
43.(1)运维人员根据专家经验提取网络实体的元数据并将其存储在图数据库中作为节点,同时根据专家经验抽取网络实体间的关系并存储到图数据库中作为连边。图数据库中的节点和连边构成规则知识图谱。
44.其中,所述网络实体包括但不限于软硬件网络设备,比如虚拟交换机,边缘路由器,负载均衡器等;sdn网络管理实例,比如云网络中的租户,可用区,集群等;物理基础设施,比如物理服务器,机柜等。网络实例间的关系包括但不限于组成、挂载、控制关系,可根据实际部署场景抽象各种新的网络实体和关系。
45.其中,所述网络实体的元数据包括但不限于网络实体在sdn中唯一的标志性名称、实体类型、业务属性、主键信息、查询规则;标志性名称是网络实体的独特命名,比如七层负载均衡;实体类型、业务属性根据sdn中对网络实体的实际分类确定,比如虚拟网络实例,虚拟网络运维产品;主键信息为查询该网络实体的具体个体必须的信息,比如云网络可用区信息;查询规则为格式化的查询语句,包含了数据源信息等,可以是sql或者api调用命令。
46.其中,所述关系需要包含以下内容:关系名称(由所连接的节点唯一标识);关系类
型,比如“组成/由组成”、“挂载/挂载于”、“控制/被控制”等;数量属性,比如一对多、一对一、多对一、多对多等;方向属性,比如出和入。
47.(2)在存储规则知识图谱的图数据库执行查询以获得网络实体和其相互间的关系。
48.其中,要求输入的查询条件信息至少包含步骤(1)中规则知识图谱中一个节点的如下信息:网络实体标志性名称和关联跳数n,图数据库返回图谱中指定网络实体n跳可达所有网络实体及其之间的关系,比如(负载均衡器,3)表示查询与负载均衡器在步骤(1)中规则知识图谱上最多隔着三跳即可达的所有网路实体;还可以有网络实体id、具体的查询的主键等。
49.其中,查询返回结果中包含了规则知识图谱节点代表的元数据和连边代表的关系信息。查询结果可以以合适的方式展示,包括但不限于以图、列表的形式展示。
50.进一步地,支持输入步骤(1)中规则知识图谱的多个节点信息,将查询多个节点间最短可达路径上所有节点代表的网络实体。在查询节点间最短路径时,利用最短路径搜索算法,获得两两节点间的最短路径,减少源目的节点间路径上节点的数量,从而减少后续多源分布式查询引擎对数据库的查询操作,提高系统响应速度;具体来说,由于利用元数据抽象得到的知识图谱对云网络的复杂结构进行了高度地抽象,因此虽然云网络本身的规模巨大,设备实例达到千万级别,但是知识图谱的规模可以控制在较小规模;在选择路径规划算法上面传统的dijkstra算法、a*算法等都可以用于最短路径的搜索,在本设计中选择了a*算法,本设计中设置任意两个节点之间边的权重为1,也可以根据搜索的偏好增加某些节点间的权重,比如在设置为查询物理设备优先的条件下,设置物理设备与其他节点间连边权重为更小的值。
51.(3)多源分布式查询引擎根据步骤(2)中获得网络实体元数据中的查询规则和步骤(2)中输入查询条件填充有效的查询语句。生成的有效查询语句经过执行,可以从对应的数据源查询得到具体的网络实体id及其他存储的信息。
52.其中,步骤(3)返回的网络实体id列表可以与步骤(2)的结果以合适的方式一同展示,比如以图的形式展示查询得到的节点和连边,点选节点可以得到网络实体id列表。
53.进一步地,元数据的查询规则可以分为两种,一种是sql类查询,另一种是对api的调用;对于前者,使用sql解析算法,比如java语言编写的druid,go语言编写的kingshard等,对查询规则进行解析获得抽象语法树,基于抽象语法树和填充的主键信息生成实际可执行的sql查询语句;对于后者,为了保障对api的正确调用,设置了语义识别规则对填充进来的主键信息进行格式校验,校验无误则直接填充到元数据中的查询api中,即可生成有效调用命令。
54.进一步地,基于得到的可执行查询语句,使用多源分布式查询引擎(比如,presto)在具体存储对应网络实体数据的数据库中进行查询,则可以进一步得到所查询的所有具体网络实体的id列表;同时还设计了模糊查询功能、生成相邻节点查询语句的功能。对于云网络,使用可用区作为条件查询网络实体虚拟交换机在该可用区的id列表,进一步根据虚拟交换机id列表填充相邻网络实体节点的查询规则,生成对相邻节点网络实体id列表的查询语句。
55.进一步地,多源分布式查询引擎查询的结果会进行缓存,查询结果中的热点数据
会获得更多缓存时间,后续较低查询频度的数据会被替换,从而使用缓存技术保证热点数据的查询速度。
56.如图2所示,本技术实施例提出的一种复杂大规模sdn网络实体快速查询平台,包括以下模块:
57.规则知识图谱模块:运维人员根据专家经验将sdn网络实体元数据作为节点、网络实体间的关系作为连边构建规则知识图谱;规则知识图谱的节点存储的元数据包括网络实体在sdn中唯一的标志性名称、实体类型、业务属性、主键信息、查询规则;规则知识图谱的连边为实体间的关系;规则知识图谱存储在任何支持图数据结构的数据库中,用户查询信息,图数据库返回复合查询条件的所有节点及节点间的关系。
58.多源查询模块:基于用户输入的查询条件和节点元数据中的查询规则,生成具体可执行查询语句或者api调用命令并在多源分布式查询引擎上执行,在实际存放网络实体信息的数据库中查询所有符合查询主键要求的实体及相关信息并返回查询结果。
59.可视化查询模块:可视化查询模块用于用户输入查询条件和以知识图谱的方式可视化查询结果。在用户输入网络实体id或者查询主键的情况下,首先以包含节点和连边的图的形式展示规则知识图谱模块返回的网络实体节点和关系,然后将多源查询模块查询得到的网络实体id列表展示在图下方,点选图中的节点可以展示不同网络实体的id列表。
60.此外,当部署的sdn规模扩大或者缩小时,可以灵活伸缩图数据和多源分布式查询引擎的规模,以保持查询速度和节省资源。
61.本技术实施例在云网络平台上实现了原型系统,并测试了方法效果。但是根据sdn网络类型和规模不同,可以灵活定义规则知识图谱和选择合适的多源分布式查询引擎。
62.以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。