发明内容
本申请的目的是提供一种网络故障检测方法、装置以及介质,以用于及时的定位网络链路故障的位置,提高云平台网络链路部分的运维效率,减少时间浪费,提高用户的使用体验。
为解决上述技术问题,本申请提供一种网络故障检测方法,其特征在于,应用于控制节点,包括:
获取目标虚拟机与源虚拟机的ID;
根据所述ID查询所述目标虚拟机与所述源虚拟机的目录信息,以确认所述目标虚拟机与所述源虚拟机各自所在的计算节点;
发送请求信息以及所述目标虚拟机与所述源虚拟机的基础信息至对应的所述计算节点,以便各所述计算节点根据所述基础信息在对应虚拟机的端口进行虚拟流量的生成和捕获,并根据捕获的虚拟流量进行分析;所述基础信息包括虚拟机的网卡信息及网络类型;
接收各所述计算节点反馈的分析结果。
优选的,在所述接收各所述计算节点反馈的分析结果的步骤之后,还包括:
将所述分析结果与专家库中的数据进行分类轮询比对;
向用户发送检测结果;所述检测结果包括比对结果和排查建议。
优选的,所述各所述计算节点根据所述基础信息在对应虚拟机的端口进行虚拟流量生成和捕获包括:
所述源虚拟机所在的计算节点根据所述基础信息在所述源虚拟机的tap端口进行虚拟流量生成,在宿主机的物理端口进行虚拟流量捕获;
所述目标虚拟机所在的计算节点根据所述基础信息在所述目标虚拟机的tap端口和宿主机的物理端口进行虚拟流量捕获。
优选的,还包括:
若在所述专家库中未比对出与所述分析结果对应的数据,则将所述分析结果存入所述专家库。
为解决上述技术问题,本申请还提供另一种网络故障检测方法,应用于计算节点,包括:
接收控制节点发送的请求信息以及目标虚拟机与源虚拟机的基础信息;
根据所述基础信息在对应虚拟机的接口进行虚拟流量生成和捕获,并根据捕获的虚拟流量进行分析;所述基础信息包括虚拟机的网卡信息及网络类型;
反馈分析结果至所述控制节点。
优选的,所述根据所述基础信息在对应虚拟机的接口进行虚拟流量生成和捕获包括:
根据所述基础信息在所述源虚拟机的tap端口进行虚拟流量生成,在宿主机的物理端口进行虚拟流量捕获;
根据所述基础信息在所述目标虚拟机的tap端口和宿主机的物理端口进行虚拟流量捕获。
为解决上述技术问题,本申请还提供一种网络故障检测装置,应用于控制节点,包括:
获取模块,用于获取目标虚拟机与源虚拟机的ID;
查询模块,用于根据所述ID查询所述目标虚拟机与所述源虚拟机的目录信息,以确认所述目标虚拟机与所述源虚拟机各自所在的计算节点;
发送模块,用于发送请求信息以及所述目标虚拟机与所述源虚拟机的基础信息至对应的所述计算节点,以便各所述计算节点根据所述基础信息在对应虚拟机的端口进行虚拟流量的生成和捕获,并根据捕获的虚拟流量进行分析;所述基础信息包括虚拟机的网卡信息及网络类型;
第一接收模块,用于接收各所述计算节点反馈的分析结果。
为解决上述技术问题,本申请还提供另一种网络故障检测装置,应用于计算节点,包括:
第二接收模块,用于接收控制节点发送的请求信息以及目标虚拟机与源虚拟机的基础信息;
处理模块,用于根据所述基础信息在对应虚拟机的接口进行虚拟流量生成和捕获,并根据捕获的虚拟流量进行分析;所述基础信息包括虚拟机的网卡信息及网络类型;
反馈模块,用于反馈分析结果至所述控制节点。
为解决上述技术问题,本申请还提供另一种网络故障检测装置,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述的网络故障检测方法的步骤。
为解决上述技术问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的网络故障检测方法的步骤。
本申请所提供的网络故障检测方法,应用于控制节点,根据目标虚拟机与源虚拟机的ID确认目标虚拟机与源虚拟机各自所在的计算节点,发送请求信息以及目标虚拟机与源虚拟机的基础信息至对应的计算节点,以便各计算节点根据基础信息在对应虚拟机的端口进行虚拟流量的生成和捕获,并根据捕获的虚拟流量进行分析;基础信息包括虚拟机的网卡信息及网络类型;接收各计算节点反馈的分析结果。相对于当前技术中,在虚拟机之间的网络链路故障时,用户需要寻求云平台运维人员的帮助而浪费了大量时间,采用本技术方案,控制节点定位目标虚拟机与源虚拟机所在的计算节点,并控制计算节点在对应虚拟机的端口进行虚拟流量的生成和捕获,计算节点还能对捕获到的虚拟流量进行分析,从而判断出故障的位置,实现了对目标虚拟机与源虚拟机间的网络链路故障的检测。本方法应用于控制节点,通过控制节点即可实现对链路的中断位置的自动识别,能够达到分钟级的网络故障检测,使用本方法可以提高云平台网络链路部分的运维效率,减少时间浪费,提高用户的使用体验。
此外,本申请所提供的应用于计算节点的网络故障检测方法,以及网络故障检测装置以及介质,与网络故障检测方法相对应,效果同上。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
OpenStack是当今最具影响力的云计算管理工具——通过命令或者基于Web的可视化控制面板来管理IaaS云端的资源池(服务器、存储和网络)。OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。它不是一个软件,这个项目由几个主要的组件(Nova、Neutron、Swift、Cinder、Keystone、Glance)组合负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构。OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
在OpenStack云平台的使用过程中,难免会遇到OpenStack云平台中的部分虚拟机之间出现网络无法互相访问的情况,严重影响业务使用。在传统的OpenStack云平台中出现网络链路方面故障时,用户很难能够自己排除出问题所在,因此每次出现网络链路故障时都需要寻求云平台运维人员的帮助,运维人员又可能会向下寻找研发人员介入,就会导致解决问题所花费的时间过长,效率低下,严重影响用户体验。
本申请的核心是提供一种网络故障检测方法、装置以及介质,以用于及时的定位网络链路故障的位置,提高云平台网络链路部分的运维效率,减少时间浪费,提高用户的使用体验。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
图1为本申请实施例提供的一种网络故障检测方法的流程图,如图1所示,该方法应用于控制节点,包括:
S10:获取目标虚拟机与源虚拟机的ID。
S11:根据ID查询目标虚拟机与源虚拟机的目录信息,以确认目标虚拟机与源虚拟机各自所在的计算节点。
S12:发送请求信息以及目标虚拟机与源虚拟机的基础信息至对应的计算节点,以便各计算节点根据基础信息在对应虚拟机的端口进行虚拟流量的生成和捕获,并根据捕获的虚拟流量进行分析;基础信息包括虚拟机的网卡信息及网络类型;
S13:接收各计算节点反馈的分析结果。
首先需要说明的是,本申请实施例提供方法应用于控制节点,控制节点和计算节点都表示云平台中宿主机节点的身份。一个控制节点能够控制多个计算节点,而在一个计算节点中可以有多个虚拟机。本实施例中的执行主体可以是应用于控制节点的网络故障检测装置,也可以是一种插件,部署于作为控制节点的服务器中。
本申请以执行主体为控制节点中的检测控制插件icc-plugin为例,在步骤S10中,用户在使用OpenStack云平台过程中遇到虚拟机发生网络链路连通性故障时,首先在OpenStack云平台网络部分页面中打开网络链路故障检测功能后,输入目标虚拟机和源虚拟机的ID至控制节点。
控制节点中的检测控制插件icc-plugin会首先根据两虚拟机的ID去调用OpenStack中Nova的API进行虚拟机的信息查询,获取两个虚拟机分别所属的计算节点。然后向虚拟机所在的计算节点中的检测执行插件icc-agent发送开始进行网络链路故障智能检测的REST API请求及相关虚拟机的基础信息,包含虚拟机的网卡信息及网络类型,并开始监听各个icc-agent反馈回来的初步分析结果。
在具体实施中,各个计算节点中的检测执行插件icc-agent接收到检测控制插件icc-plugin发送过来的REST API请求和虚拟机的基础信息之后,在宿主机中跟虚拟机有关的各个接口中使用python pcap库进行虚拟流量的生成和捕获,根据捕获到的结果初步判断可能的网络故障原因列表返回给icc-plugin供其结合专家库进行深入分析。
优选的,各计算节点根据基础信息在对应虚拟机的端口进行虚拟流量生成和捕获包括:
源虚拟机所在的计算节点根据基础信息在源虚拟机的tap端口进行虚拟流量生成,在宿主机的物理端口进行虚拟流量捕获;
目标虚拟机所在的计算节点根据基础信息在目标虚拟机的tap端口和宿主机的物理端口进行虚拟流量捕获。
可以看出,通过在不同的多个节点进行虚拟流量的捕获,能够更加精确细节的判断出网络故障的位置,有利于后续对故障位置的分析和比对。
可以看出,对于网络故障原因的分析依托于专家库,因此在具体实施中,还包括:若在专家库中未比对出与分析结果对应的数据,则将分析结果存入专家库。
通过对专家库的更新,提供更丰富的对比数据,以为用户提供更准确的建议,提高用户体验。
检测控制插件icc-plugin接收到各个检测执行插件icc-agent反馈的初步分析结果之后,对收集到的多个初步分析结果结合可扩展的专家库采用分类轮询的方式进行对比分析,再根据得到的故障根因列表自动选择下一步动作,例如如果专家库认为是防火墙或者安全组造成的网络链路故障,icc-plugin就会自动去调用对应的OpenStack API接口进行查询对比得出最终结论,然后给用户返回检测结果和排查建议。
本申请实施例提供的网络故障检测方法,应用于控制节点,根据目标虚拟机与源虚拟机的ID确认目标虚拟机与源虚拟机各自所在的计算节点,发送请求信息以及目标虚拟机与源虚拟机的基础信息至对应的计算节点,以便各计算节点根据基础信息在对应虚拟机的端口进行虚拟流量的生成和捕获,并根据捕获的虚拟流量进行分析;基础信息包括虚拟机的网卡信息及网络类型;接收各计算节点反馈的分析结果。相对于当前技术中,在虚拟机之间的网络链路故障时,用户需要寻求云平台运维人员的帮助而浪费了大量时间,采用本技术方案,控制节点定位目标虚拟机与源虚拟机所在的计算节点,并控制计算节点在对应虚拟机的端口进行虚拟流量的生成和捕获,计算节点还能对捕获到的虚拟流量进行分析,从而判断出故障的位置,实现了对目标虚拟机与源虚拟机间的网络链路故障的检测。本方法应用于控制节点,通过控制节点即可实现对链路的中断位置的自动识别,能够达到分钟级的网络故障检测,使用本方法可以提高云平台网络链路部分的运维效率,减少时间浪费,提高用户的使用体验。
图3为本申请实施例提供的另一种网络故障检测方法的流程图,如图3所示,该方法应用于计算节点,包括:
S20:接收控制节点发送的请求信息以及目标虚拟机与源虚拟机的基础信息;
S21:根据基础信息在对应虚拟机的接口进行虚拟流量生成和捕获,并根据捕获的虚拟流量进行分析;基础信息包括虚拟机的网卡信息及网络类型;
S22:反馈分析结果至控制节点。
在上述实施例中,对于应用于控制节点的网络故障检测方法进行了详细描述,该方法与本实施例中的方法相对应,故在此不再赘述。
本申请实施例提供的网络故障检测方法,应用于计算节点,接收控制节点发送的请求信息以及目标虚拟机与源虚拟机的基础信息;根据基础信息在对应虚拟机的接口进行虚拟流量生成和捕获,并根据捕获的虚拟流量进行分析;基础信息包括虚拟机的网卡信息及网络类型;反馈分析结果至控制节点。相对于当前技术中,在虚拟机之间的网络链路故障时,用户需要寻求云平台运维人员的帮助而浪费了大量时间,采用本技术方案,控制节点定位目标虚拟机与源虚拟机所在的计算节点,并控制计算节点在对应虚拟机的端口进行虚拟流量的生成和捕获,计算节点还能对捕获到的虚拟流量进行分析,从而判断出故障的位置,实现了对目标虚拟机与源虚拟机间的网络链路故障的检测。本方法应用于计算节点,通过在虚拟机端口处生成捕获虚拟流量,能够达到分钟级的网络故障检测,使用本方法可以提高云平台网络链路部分的运维效率,减少时间浪费,提高用户的使用体验。
同样的,在上述实施例的基础上,在本实施例中,根据基础信息在对应虚拟机的接口进行虚拟流量生成和捕获包括:
根据基础信息在源虚拟机的tap端口进行虚拟流量生成,在宿主机的物理端口进行虚拟流量捕获;
根据基础信息在目标虚拟机的tap端口和宿主机的物理端口进行虚拟流量捕获。
通过在不同的多个节点进行虚拟流量的捕获,能够更加精确细节的判断出网络故障的位置,有利于后续对故障位置的分析和比对。
在上述实施例中,对于网络故障检测方法进行了详细描述,本申请还提供网络故障检测装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
图4为本申请实施例提供的一种网络故障检测装置的结构图,如图4所示,该装置应用于控制节点,包括:
获取模块01,用于获取目标虚拟机与源虚拟机的ID;
查询模块02,用于根据ID查询目标虚拟机与源虚拟机的目录信息,以确认目标虚拟机与源虚拟机各自所在的计算节点;
发送模块03,用于发送请求信息以及目标虚拟机与源虚拟机的基础信息至对应的计算节点,以便各计算节点根据基础信息在对应虚拟机的端口进行虚拟流量的生成和捕获,并根据捕获的虚拟流量进行分析;基础信息包括虚拟机的网卡信息及网络类型;
第一接收模块04,用于接收各计算节点反馈的分析结果。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请实施例提供的网络故障检测装置,应用于控制节点,根据目标虚拟机与源虚拟机的ID确认目标虚拟机与源虚拟机各自所在的计算节点,发送请求信息以及目标虚拟机与源虚拟机的基础信息至对应的计算节点,以便各计算节点根据基础信息在对应虚拟机的端口进行虚拟流量的生成和捕获,并根据捕获的虚拟流量进行分析;基础信息包括虚拟机的网卡信息及网络类型;接收各计算节点反馈的分析结果。相对于当前技术中,在虚拟机之间的网络链路故障时,用户需要寻求云平台运维人员的帮助而浪费了大量时间,采用本技术方案,控制节点定位目标虚拟机与源虚拟机所在的计算节点,并控制计算节点在对应虚拟机的端口进行虚拟流量的生成和捕获,计算节点还能对捕获到的虚拟流量进行分析,从而判断出故障的位置,实现了对目标虚拟机与源虚拟机间的网络链路故障的检测。本装置应用于控制节点,通过控制节点即可实现对链路的中断位置的自动识别,能够达到分钟级的网络故障检测,使用本方法可以提高云平台网络链路部分的运维效率,减少时间浪费,提高用户的使用体验。
图5为本申请实施例提供的另一种网络故障检测装置的结构图,如图5所示,该装置应用于计算节点,包括:
第二接收模块10,用于接收控制节点发送的请求信息以及目标虚拟机与源虚拟机的基础信息;
处理模块11,用于根据基础信息在对应虚拟机的接口进行虚拟流量生成和捕获,并根据捕获的虚拟流量进行分析;基础信息包括虚拟机的网卡信息及网络类型;
反馈模块12,用于反馈分析结果至控制节点。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请实施例提供的网络故障检测装置,应用于计算节点,接收控制节点发送的请求信息以及目标虚拟机与源虚拟机的基础信息;根据基础信息在对应虚拟机的接口进行虚拟流量生成和捕获,并根据捕获的虚拟流量进行分析;基础信息包括虚拟机的网卡信息及网络类型;反馈分析结果至控制节点。相对于当前技术中,在虚拟机之间的网络链路故障时,用户需要寻求云平台运维人员的帮助而浪费了大量时间,采用本技术方案,控制节点定位目标虚拟机与源虚拟机所在的计算节点,并控制计算节点在对应虚拟机的端口进行虚拟流量的生成和捕获,计算节点还能对捕获到的虚拟流量进行分析,从而判断出故障的位置,实现了对目标虚拟机与源虚拟机间的网络链路故障的检测。本装置应用于计算节点,通过在虚拟机端口处生成捕获虚拟流量,能够达到分钟级的网络故障检测,使用本方法可以提高云平台网络链路部分的运维效率,减少时间浪费,提高用户的使用体验。
图6为本申请实施例提供的另一种网络故障检测装置的结构图,如图6所示,该装置包括:存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述实施例网络故障检测方法的步骤。
本实施例提供的网络故障检测装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的网络故障检测方法的相关步骤。另外,存储器20所存储的资源还可以包括操作***202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作***202可以包括Windows、Unix、Linux等。数据203可以包括但不限于请求信息、基础信息等。
在一些实施例中,网络故障检测装置还可以包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图6中示出的结构并不构成对网络故障检测装置的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的网络故障检测装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:网络故障检测方法。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例(可以是控制节点侧对应的方法、也可以是计算节点侧对应的方法,还可以是控制节点侧和计算节点侧对应的方法)中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本申请所提供的网络故障检测方法、装置以及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。