CN106489251A - 应用拓扑关系发现的方法、装置和系统 - Google Patents

应用拓扑关系发现的方法、装置和系统 Download PDF

Info

Publication number
CN106489251A
CN106489251A CN201580031988.0A CN201580031988A CN106489251A CN 106489251 A CN106489251 A CN 106489251A CN 201580031988 A CN201580031988 A CN 201580031988A CN 106489251 A CN106489251 A CN 106489251A
Authority
CN
China
Prior art keywords
api calls
virtual machine
calls information
information
api
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.)
Granted
Application number
CN201580031988.0A
Other languages
English (en)
Other versions
CN106489251B (zh
Inventor
刘挺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910940823.5A priority Critical patent/CN110865867B/zh
Publication of CN106489251A publication Critical patent/CN106489251A/zh
Application granted granted Critical
Publication of CN106489251B publication Critical patent/CN106489251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种应用拓扑关系发现的方法,涉及IT技术领域,尤其涉及虚拟机间的应用拓扑关系发现的方法、装置和系统。该方法在报文传输过程中,记录下API调用信息,拓扑发现服务器通过分析收集到的API调用信息,确定虚拟机集群中的虚拟机之间是否存在交互,采用上述分析方式,拓扑发现服务器进而可以确定收集到的API调用信息所涉及的各虚拟机间的交互频率,根据各虚拟机间的交互频率确定虚拟机间的应用拓扑关系。上述方法给出了虚拟化场景下发现虚拟机间的应用拓扑关系的方法,通过分析报文传输过程中产生的API调用信息确定虚拟机间的应用拓扑关系,方案复杂度较低。

Description

应用拓扑关系发现的方法、装置和系统
技术领域
本发明涉及IT技术领域,尤其涉及应用拓扑关系发现方法、装置和系统。
背景技术
随着信息时代的到来,对计算机网络的依赖使得计算机网络本身运行的可靠性变得至关重要,对网络管理也就有了更高的要求。按照开放式系统互联(Open SystemInterconnection,OSI)的定义,网络管理主要包括五个功能域:故障管理、配置管理、性能管理、安全管理和计费管理。在五大功能域中,配置管理是基础,它的主要功能包括发现网络的拓扑结构、监视和管理网络设备的配置情况。其它的各项功能都以网络的拓扑结构为基础。网络拓扑发现针对的是网络中端到端之间的连接关系,主要目的是获取和维护网络节点的存在信息和它们之间的连接关系信息,并在此基础上绘制出整个网络拓扑图。
作为网络拓扑的一种具体形式,IT系统中的应用拓扑(Applied Topology)为虚拟机间的网络通信关系,虚拟机间的网络通信是基于虚拟机运行的应用产生的。更具体的来说,应用拓扑即为应用的部件(例如程序、服务、组件,运行该应用的虚拟机等)在IT系统各主机(例如服务器)上的部署关系以及所部署的应用的部件间的交互关系(例如服务请求与响应)。
现有的应用拓扑的发现为主动探测发现。主动探测是通过向网络目标发送相关探测数据包,观察并记录返回结果,以此来研究应用的结构和应用用户的行为。由于需要向网络发送大量的数据,会增加网络的负载,并且拓扑发现的准确性不高。现有技术中缺乏针对虚拟化环境下不采用探测数据包的应用拓扑发现的方法。
发明内容
本申请描述了一种应用拓扑关系发现的方法、装置和系统,提供了针对虚拟化环境的应用拓扑发现方案,降低了建立虚拟机间的应用拓扑关系的复杂度。
一方面,本申请提供了一种应用拓扑关系发现的方法,收集至少两组API调用信息,每组API调用信息对应一次API调用,所述每组API调用信息包括API调用对应的虚拟机的标识、API调用的发生时间以及API调用的报文流向;对上述收集到的API调用信息进行分析,确定满足第一条件的第一API调用信息与第二API调用信息,其中,所述第一API调用信息与第二API调用信息满足所述第一条件包括:所述第一API调用信息中的报文流向与所述第二API调用信息中的报文流向为互为相反的流向,且所述第一API调用信息中的API调用的发生时间与所述第二API调用信息中的API调用的发生时间的差值小于或等于预设阈值;满足上述第一条件即意味着所述第一API调用信息和所述第二API调用信息中的两个虚拟机存在一次交互,进而确定所述第一API调用信息所指示的第一虚拟机和所述第二API调用信息所指示的第二虚拟机之间的交互频率是否满足第二条件;若所述第一虚拟机和所述第二虚拟机之间的交互频率满足所述第二条件,确定所述第一虚拟机和所第二虚拟机之间存在应用拓扑关系。
本申请给出的应用拓扑关系发现的方法,收集报文传输过程中API调用信息,通过匹配两组API调用信息是否满足第一条件确定两组API调用信息对应的两个虚拟机之间是否存在交互,采用上述方式,拓扑发现服务器可以确定收集到的API调用信息所涉及的各虚拟机间的交互频率,根据各虚拟机间的交互频率确定虚拟机间的应用拓扑关系。上述方案给出了虚拟化场景下发现虚拟机间的应用拓扑关系的方法,通过分析报文传输过程中产生的API调用信息确定虚拟机间的应用拓扑关系,方案复杂度较低。
在一种可能的实施方式中,除前述的报文流向和API调用的发生时间的差值外,还需要考虑API调用所涉及到的通信协议。具体的,所述每组API调用信息还包括通信协议;相应地,所述第一API调用信息与第二API调用信息满足所述第一条件还包括:所述第一API调用信息中的通信协议与所述第二API调用信息中的通信协议相同。即只有当两组API调用信息中的通信协议相同时,两组API调用信息对应的两个虚拟机才可能存在应用拓扑关系;当两组API调用信息中的通信协议不同时,即使满足报文流向和API调用的发生时间的差值的要求,也不能认为两组API调用信息对应的两个虚拟机存在交互。通过限定报文发送端和接收端的通信协议,提高了识别虚拟机间交互的准确度。
在一种可能的实施方式中,所述确定所述第一虚拟机和所述第二虚拟机之间的交互频率是否满足第二条件包括:分析所述第一虚拟机的至少两组API调用信息和所述第二虚拟机的至少两组API调用信息,确定所述第一虚拟机和所第二虚拟机之间的交互频率,比较所述交互频率和预设频率,当所述交互频率大于预设频率,确定所述交互频率满足所述第二条件。通过将预设频率作为虚拟机间是否存在应用拓扑关系的判断基准,本领域技术人员可以调整上述预设频率来控制应用拓扑关系认定的严格程度。所述预设频率也可以根据需要自行设定。本发明实施例对此并不进行限定。
在一种可能的实施方式中,在比较所述交互频率和预设频率之前,还包括:确定所述第一虚拟机与所述第二虚拟机是否属于相同的网段,当所述第一虚拟机与所述第二虚拟机属于相同网段时,根据预设的加权系数修正所述交互频率或所述预设频率之一;
所述比较所述交互频率和预设频率包括:比较修正后的交互频率与所述预设频率;或者,比较所述交互频率与修正后的预设频率。
在一种可能的实施方式中,拓扑发现服务器至少可以使用以下两种方式判断所述第一虚拟机与所述第二虚拟机是否属于相同的网段:
方式一、可以通过确定所述第一虚拟机的IP地址与所述第二虚拟机的IP地址是否属于同一网段;
方式二、确定所述第一虚拟机的VXLAN(Virtual eXtensible Local AreaNetwork,虚拟可扩展局域网)标识与所述第二虚拟机的VXLAN标识是否相同,如果相同,则表示所述第一虚拟机与所述第二虚拟机属于同一网段。
同网段的虚拟机之间具备应用拓扑关系的概率较不同网段的虚拟机更大,因此,本发明实施例通过对同一网段的虚拟机间的交互频率进行加权或者降低预设频率,来增加应用拓扑关系发现的准确度。
在一种可能的实施方式中,报文从第一虚拟机发送到第二虚拟机的过程中,API调用信息可以保存在第一虚拟机和第二虚拟机的部署主机上的日志文件中,拓扑发现服务器从日志文件中读取API调用信息。或者,每个主机上安装有代理模块,拓扑发现服务器接收主机的代理模块上报的API调用信息。
在一种可能的实施方式中,在报文的传输过程中,API调用信息被写入到日志文件,可以采用以下几种方式:
在虚拟机调用API向所述虚拟机所在的VMM发送报文时,所述虚拟机、所述VMM中的虚拟交换机或所述VMM将API调用信息写入所述虚拟机的部署主机上的日志文件中;;
虚拟机的部署主机上的代理模块监控报文在所述主机上的传输过程,将所述传输过程中的API调用对应的API调用信息写入所述虚拟机的部署主机上的日志文件中;
虚拟机的部署主机上的代理模块接收所述虚拟机、虚拟交换机或者VMM在所述主机上的报文传输过程中的API调用对应的API调用信息,并将接收到的API调用信息写入所述虚拟机的部署主机上的日志文件中;或,
在虚拟机的VMM调用API向所述虚拟机发送报文时,所述虚拟机、所述VMM中的虚拟交换机或所述VMM任意之一可以将API调用信息写入所述虚拟机的部署主机上的日志文件中。
具体的,主机上的虚拟机、虚拟交换机或者VMM任意之一可以通过调用拓扑上报API函数向所述代理模块上报API调用信息。
在一种可能的实施方式中,每个主机上安装有代理模块,用于收集本主机上的API调用信息,代理模块可以监控本主机上的虚拟机、虚拟交换机以及VMM,获取API调用信息,并将获取的API调用信息写入日志文件;或者,在代理模块获取API调用信息后,上报给拓扑发现服务器。
在一种可能的实施方式中,所述API调用包括输入API函数调用和输出API函数调用。具体的,虚拟机所在的VMM调用输出API函数向虚拟机发送报文;虚拟机调用输入API函数向虚拟机所在的VMM发送报文。
在一种可能的实施方式中,API调用信息中还可以包括源虚拟机标识和目的虚拟机标识,此时,根据一组API调用信息即可获知源虚拟机和目的虚拟机存在一次交互。
进一步的,针对系统中的虚拟机集群,所述拓扑发现服务器确定虚拟机集群中各虚拟机间的应用拓扑关系,生成所述虚拟机集群的应用拓扑视图。
所述拓扑发现服务器为独立的物理服务器;或者,所述拓扑发现服务器以功能模块的形式与所述系统中其他物理服务器合设。
在一种可能的实施方式中,具体应用拓扑关系的虚拟机可以运行在同一主机上或不同主机上。当在不同主机上时,两个主机通过外部的物理网络传输所述报文。具体的传输方法可以采用现有的各种网络传输协议和传输设置,本申请对应传输的网络结构并不进行限定。
另一方面,本发明实施例提供了另一种应用拓扑关系发现的方法,与前述应用拓扑关系发现的方法不同的是,本实施例中记录的每组API信息中的虚拟机的标识既包括报文发送端的源虚拟机的标识,也包括报文接收端的目的虚拟机的标识,此时,根据一组API信息即可确定两个虚拟机之间存在一次交互。具体的,获取API调用信息,所述API调用信息包括源虚拟机标识和目的虚拟机的标识,所述API调用信息对应于一次API调用;确定所述源虚拟机和目的虚拟机之间存在一次交互;分析收集到的API调用信息,根据所述第一虚拟机和所述第二虚拟机之间的交互频率,确定所述第一虚拟机和所第二虚拟机之间存在应用拓扑关系。
再一方面,本发明实施例提供了一种拓扑发现服务器,该拓扑发现服务器具体实现上述方法中的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,拓扑发现服务器的结构中包括处理器和存储器,所述处理器被配置为支持拓扑发现服务器执行上述方法中相应的功能。所述拓扑发现服务器还可以包括存储器,所述存储器用于与处理器耦合,其保存拓扑发现服务器执行上述功能所必要的程序指令和数据。
又一方面,本发明实施例提供了一种应用拓扑关系发现的系统,包括拓扑发现服务器以及至少一个主机,所述至少一个主机上运行有多台虚拟机,拓扑发现服务器通过获取报文传输过程中调用API产生的API调用信息判断两个虚拟机间是否存在应用拓扑关系。具体的,拓扑发现服务器、虚拟机、代理模块等等执行第一方面中应用拓扑关系发现的方法中的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
可选的,执行该应用拓扑关系发现的方法的系统还可以包括数据库,用于存储所述应用拓扑关系以及应用拓扑视图。所述系统还可以包括管理节点,所述管理根节点根据虚拟机间的应用拓扑关系对虚拟机进行管理,从而可以提供管理的效率。
在一个可能的设计中,主机包括处理器和存储器,所述处理器被配置为支持主机执行上述系统中相应的功能。所述主机还可以包括存储器,所述存储器用于与处理器耦合,其保存处理器执行上述功能所必要的程序指令和数据。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述拓扑发现服务器所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述主机所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
本申请给出的应用拓扑关系发现的方法、装置和系统,收集报文传输过程中API调用信息,通过匹配两组API调用信息是否满足第一条件确定两组API调用信息对应的两个虚拟机之间是否存在交互,采用上述方式,拓扑发现服务器可以确定收集到的API调用信息所涉及的各虚拟机间的交互频率,根据各虚拟机间的交互频率确定虚拟机间的应用拓扑关系。上述方案给出了虚拟化场景下发现虚拟机间的应用拓扑关系的方法,通过分析报文传输过程中产生的API调用信息确定虚拟机间的应用拓扑关系,方案复杂度较低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面附图中反映的仅仅是本发明的一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得本发明的其他实施方式。而所有这些实施例或实施方式都在本发明的保护范围之内。
图1A为本发明实施例提供的一种可能的虚拟化系统架构示意图;
图1B为本发明实施例提供的又一种虚拟化系统架构示意图;
图1C为本发明实施例提供的再一种虚拟化系统架构示意图;
图2为所示为本发明实施例提供的计算机设备示意图;
图3A为本发明实施例提供的一种主机上的虚拟化结构示意图;
图3B为本发明实施例提供的一种网卡直通场景下主机上的虚拟化结构示意图;
图3C为本发明实施例提供的另一种网卡直通场景下主机上的虚拟化结构示意图;
图4为本发明实施例提供的一种采集代理通过主动发现的形式获取API调用信息的示意图;
图5为本发明实施例提供的一种采集代理通过被动发现的形式获取API调用信息的示意图;
图6为本发明实施例提供的一种在同一主机上的两个虚拟机之间通信时,采集代理获取API调用信息的流程示意图;
图7为本发明实施例提供的一种在不同主机上的两个虚拟机之间通信时,采集代理获取API调用信息的流程示意图;
图8为本发明实施例提供的一种应用拓扑关系发现系统的结构示意图;
图9为本发明实施例提供的一种拓扑发现服务器的结构示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例描述的网络架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
鉴于现有技术中缺乏在虚拟化层面专门针对虚拟化环境的应用拓扑关系发现的方法,本发明实施例提供了一种针对虚拟化环境下的虚拟机间的应用拓扑关系的发现方法、装置和系统,可以准确识别虚拟机集群中各虚拟机间的应用拓扑关系。具体的,本发明实施例提供了拓扑发现服务器,用于收集各主机上的虚拟机间通信时的API(ApplicationProgramming Interface,应用程序编程接口)的调用信息。拓扑发现服务器分析从各个主机收集的API调用信息,生成虚拟机间的应用拓扑关系。
如图1A所示,为本发明实施例提供的一种虚拟化系统架构示意图,拓扑发现服务器与各个主机相连,用于收集各个主机上的API的调用信息,拓扑发现服务器还可以将虚拟机间的应用拓扑关系存储在数据库中。当管理节点需要根据虚拟机间的应用拓扑关系执行管理操作时,管理节点获取上述虚拟机间的应用拓扑关系。具体的,图1A所示的各个组件的功能如下所述:
每台主机为一台物理服务器,主机上运行有若干个虚拟机。
采集代理:采集代理(Collect Agent)部署在主机上,用来收集本主机上的各虚拟机、虚拟机交换机或虚拟机监视器(Virtual Machine Monitor,VMM)传递报文时产生的API调用信息。采集代理把收集来的API调用信息发送给拓扑发现服务器(Topology DiscoveryServer),由拓扑发现服务器对收集到的API信息进行分析,最终获得虚拟机间的应用拓扑关系。采集代理可以监控本主机上的虚拟机、虚拟交换机或VMM(Virtual MachineMonitor,虚拟机监视器),当发现有报文被发送或接收时,记录下API调用信息;或者,由虚拟机、虚拟交换机或VMM在发送或接收报文后,向采集代理上报API调用信息。
在一个示例中,采集代理收集API调用信息后,可以周期性的或者在其他合适的时间(比如,在主机或者网络空闲的时候)将采集的API调用信息发送给拓扑发现服务器。
在另一个示例中,采集代理可以主动将API调用信息推送给拓扑发现服务器,或者被动的接收拓扑发现服务器的请求后再将API调用信息推送给拓扑发现服务器;或者,采集代理将API调用信息存放在某个与拓扑发现服务器共享的存储空间,由拓扑发现服务器自主读取。
需要说明的是,本发明实施例并不限定采集代理与拓扑发现服务器之间的API调用信息传递的具体方式,只要拓扑发现服务器可以获取各个主机上的API调用信息即可。
还需要说明的是,上述采集代理为可选,当主机上不存在采集代理时,可以由虚拟机、虚拟交换机或VMM采用与采集代理类似的方式向拓扑发现服务器上报API调用信息。
拓扑发现服务器:从与之相连的各个主机上收集API调用信息,并对收集到的API调用信息进行分析,得到虚拟机间的应用拓扑关系,并储存到数据库中。进一步的,拓扑发现服务器可以根据得到的虚拟机间的应用拓扑关系生成应用拓扑视图。
每组API调用信息包括:虚拟机标识、API调用的发生时间以及报文流向。其中,虚拟机标识为接收或发送报文的虚拟机的标识,API调用的发生时间是API调用被执行的时间,报文流向包括输入或输出,其中输入是指报文由虚拟机发送到VMM,输出是指报文由VMM输出到虚拟机。在一个示例中,API调用的发生时间还可以为记录日志的时间、整个调用持续的时间或者监控到该调用发生时的时间等等。每组API调用信息还可以包括通信协议,通信协议为虚拟机进行通信时所使用的通信协议,所述通信协议可以为超文本传输协议(HTTP,HyperText Transfer Protocol)、用户数据报协议(User Datagram Protocol,UDP协议)、传输控制协议/因特网互联协议(Transmission Control Protocol/InternetProtocol,TCP/IP协议)等等;虚拟机标识可以为虚拟机的IP地址。举例来说,API调用信息为(VM1、t1、P1、In),表示VM1在时刻t1采用协议P1调用了输入函数向虚拟交换机VSwitch或VMM传递报文;API调用信息为(VM2、t2、P2、Out),表示虚拟交换机或VMM在时刻t2采用协议P2调用了输出函数向VM2发送报文。
需要说明的是,当主机采用网卡直通的方案时,报文的传输不经过虚拟交换机,而是经过VMM传递到物理网卡。
拓扑发现服务器分析从各个主机收集API调用信息,识别虚拟机间的交互频率,确定虚拟机间的应用拓扑关系。
在一个示例中,所述API调用信息针对的API为输入API函数和输出API函数。
在一个示例中,源虚拟机向目的虚拟机发送报文,当源虚拟机发送报文及目的虚拟机接收报文采用相同的协议,且源虚拟机调用API发送报文的时间Ts和目的虚拟机接收报文的API调用的时间Te在可接受的自定义的预设阈值内,则认为源虚拟机和目的虚拟机发生一次交互。进一步的,在某段时长内,如果两个虚拟机发生的交互频率大于预设频率,则确定这两个虚拟机之间存在应用拓扑关系。
示例性的,如下所示,为本申请给出的拓扑发现服务器收集到的API调用信息的举例:
VM1,Time1,protocol,In; VM1’,Time1’,protocol,Out;
VM2,Time2,protocol,In; VM2’,Time2’,protocol,Out;
…… ……
VMn,Timen,protocol,In; VMn’,Timen’,protocol,Out;
拓扑发现服务器对上述API调用信息进行分析,确定满足第一条件的第一API调用信息与第二API调用信息,其中,所述第一API调用信息与第二API调用信息满足所述第一条件包括:所述第一API调用信息中的报文流向与所述第二API调用信息中的报文流向为互为相反的流向,且所述第一API调用信息中的API调用的发生时间与所述第二API调用信息中的API调用的发生时间的差值小于或等于预设阈值;满足上述第一条件即意味着所述第一API调用信息和所述第二API调用信息中的两个虚拟机存在一次交互,进而确定所述第一API调用信息所指示的第一虚拟机和所述第二API调用信息所指示的第二虚拟机之间的交互频率是否满足第二条件;若所述第一虚拟机和所述第二虚拟机之间的交互频率满足所述第二条件,确定所述第一虚拟机和所第二虚拟机之间存在应用拓扑关系。
上述分析过程给出了拓扑发现服务器根据API调用信息确定虚拟机间的应用拓扑关系的方法,具体的,当考虑通信协议时,分析过程可以归纳为下述三种判断过程:
判断一:两组API调用信息中的报文流向分别为输入和输出;
判断二:两组API调用信息中的通信协议相同;
判断三:两组API调用信息中的API调用的发生时间的差值小于或等于预设阈值(即为上述第二条件)。
上述三种判断采用编程语言表示为:
Then VM1和VM1’发生一次交互。
需要说明的是,本发明实施例并不限定拓扑发现服务器同时执行上述三种判断过程,拓扑发现服务器可以根据需要以不同的顺序执行上述三种判断过程。示例性的,当不考虑通信协议时,针对收集到的API调用信息,拓扑发现服务器可以先根据API调用的发生时间对API调用信息进行筛选,选出符合判断三的API调用信息,再进一步的筛选出判断一的API调用信息,确定最终筛选出的API调用信息中存在交互关系的虚拟机间的交互频率,从而确定虚拟机之间的应用拓扑关系。
更进一步的,当某个虚拟机集群中均采用相同的通信协议或者某个虚拟机集群中大部分虚拟机使用相同的通信协议进行通信时,上述API调用信息可以不包括通信协议,相应地,拓扑发现服务器也无需判断两组API调用信息中的通信协议是否相同。此时,应用拓扑关系发现的效率提高,准确度可能会降低。
在一个示例中,判断三中的阈值可以根据需要自行设定,具体的,可以考虑实际的网络负载情况,本发明实施例对此并不进行限定。
拓扑发现服务器遍历收集到的API调用信息,得到任意两个虚拟机之间的交互频率,当交互频率大于预设频率时,则认为两个虚拟机之间存在应用拓扑关系。拓扑发现服务器将虚拟机间的应用拓扑关系存储到数据库中。需要说明的是,拓扑发现服务器可以遍历某个时间段内发生的API调用的API调用信息,将得到的虚拟机间的交互次数作为交互频率,时间段的时长大小可以根据需要自行设定,相对应的,所述预设频率也可以根据需要自行设定。本发明实施例对此并不进行限定。
需要说明的是,可以预见,采用上述方式,计算虚拟机间的交互将会产生误差。例如,在不考虑协议的情况下,如果虚拟机a在时刻t1调用输入API函数向VMM发送一个报文,该报文的目的虚拟机是虚拟机b,记录的API调用信息为(a,t1,in);虚拟机b在时刻t2收到VMM转发的来自虚拟机a的报文,记录的API调用信息为(b,t2,out);虚拟机c在时刻t2收到VMM转发的来自虚拟机X发的报文,记录的API调用信息为(b,t2,out),当t1和t2的差值小于预设间隔时,根据上述规则,会得出虚拟机a和虚拟机b存在一次交互;虚拟机a与虚拟机c存在一次交互。显然的,此时由于虚拟机c的报文来自虚拟机X,虚拟机a与虚拟机c之间不存在交互。
需要说明的是,在实际的产品实现场景中,当虚拟机间存在大量的报文交互时,上述误差相对较小,且不会对海量虚拟机间的应用拓扑关系产生明显影响,因此,上述误差是可以接受的。
还需要说明的是,在某些情况下,所述API调用信息中的虚拟机标识可以同时包括源虚拟机标识和目的虚拟机标识,此时,理论上,一组API调用信息记录就可以确定源虚拟机和目的虚拟机之间存在一次交互。在本申请中,为了保证计算效率,无论API调用信息包括通信双方的标识还是只有通信一方的标识,本申请均可以按照上述分析方法判断虚拟机间是否存在交互,即对于报文流向为输入的API调用信息,仅使用API调用信息中源虚拟机的标识,对于报文流向为输出的API调用信息,仅使用API调用信息中的目的虚拟机的标识。针对两种API调用信息格式,均按照上述三种判断过程判断虚拟机间是否存在交互,而不需要针对两种API调用信息的格式进行分别计算,可以有效提高分析的效率。
管理节点:可以为VMware Vcenter,FusionManager等等需要获取虚拟机的网络拓扑的功能实体。管理节点从拓扑发现服务器或者上述数据库中读取应用拓扑关系。
在一个示例中,拓扑发现服务器可以为一台独立的物理服务器,或者拓扑发现服务器作为一个功能模块与管理节点等其他物理服务器合设。
如图1B所示,为本发明实施例提供的另一种虚拟化系统架构示意图,与图1A不同的是,主机上不包含采集代理,而是由VM、虚拟机交换机或者VMM将API调用信息存储到日志文件中或者直接发送给拓扑发现服务器。
如图1C所示,为本发明实施例提供的再一种虚拟化系统架构示意图,此时,拓扑发现服务器与管理节点合设,上述的拓扑发现服务器的功能由管理节点中的拓扑发现模块实现。
在图1B和图1C给出的虚拟化架构是在图1A基础上的改进,虚拟化架构中各部件的功能与图1A类似,可以根据架构的变化适应性的修改,同样可以实现API调用信息的上报和分析功能,本发明实施例对图1B和图1C中各部件的功能不再赘述。
应用拓扑关系有着广泛的用途:比如,属于同一应用拓扑集群的虚拟机应该尽量放在同一交换机覆盖的网络中或者相近网络中,以节省交互时间;如果需要分批升级系统中的虚拟机集群,应该尽量将同一应用拓扑集群的虚拟机放在同一批次升级;有着应用拓扑关系的虚拟机集群应该尽量放在同一个服务器或者就近的服务器中;有着应用拓扑关系的虚拟机集群跟相应的备份集群应该在不同的服务器上;在迁移的时候也应该尽量将整个应用拓扑集群对应的虚拟机一起迁移等等。当执行上述功能的管理节点需要使用虚拟机的应用拓扑时,即可从拓扑发现服务器获取。
采集代理和拓扑发现服务器可以采用硬件/软件实现,示例性的,如图2所示,为本发明实施例提供的计算机设备示意图。计算机设备200包括至少一个处理器201,通信总线202,存储器203以及至少一个通信接口204。
处理器201可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线202可包括一通路,在上述组件之间传送信息。所述通信接口304,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器203用于存储执行本发明方案的应用程序代码,并由处理器201来控制执行。所述处理器201用于执行所述存储器203中存储的应用程序代码。
在具体实现中,作为一种实施例,处理器201可以包括一个或多个CPU,例如图2中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备200可以包括多个处理器,例如图2中的处理器201和处理器208。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备200还可以包括输出设备205和输入设备206。输出设备205和处理器201通信,可以以多种方式来显示信息。例如,输出设备205可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备206和处理器201通信,可以以多种方式接受用户的输入。例如,输入设备206可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备200可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备200可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图2中类似结构的设备。本发明实施例不限定计算机设备200的类型。
图1A、1B和1C中的采集代理、主机和拓扑发现服务器可以为图2所示的设备,存储器中存储了一个或多个软件模块,用于实现采集代理、主机和拓扑发现服务器的功能(例如:拓扑发现服务器中的API调用信息分析功能等)。采集代理、主机和拓扑发现服务器可以通过处理器以及存储器中的程序代码来实现虚拟机间的应用拓扑发现的方法。
需要说明的是,图2所示的计算机设备仅仅是给出了应用拓扑发现系统中各部分的可能的硬件实现方式,根据系统各部分功能的不同或者变化,可以对计算机设备的硬件组件进行增删,以使得与系统各部分的功能进行匹配。
如图3A所述,为本发明实施例提供的主机上的虚拟化结构示意图。主机为一台物理服务器,该物理服务器的底层为硬件层,硬件层主要包括中央处理器(CPU,CentralProcessing Unit)、内存、硬盘以及网卡等硬件资源。服务器虚拟化是在物理服务器上借助虚拟化软件(如VMWare ESX、Citrix XEN)实现多个虚拟机(Virtual Machine,VM)的虚拟化运行环境。安装在服务器上实现虚拟化环境的软件层被称为VMM。运行在硬件层之上的VMM承担对硬件层中的硬件资源进行调度、分配和管理工作。VMM之上运行多个虚拟机VM,VMM为每个虚拟机提供虚拟化的CPU、内存、存储、IO设备(如网卡)以及以太网交换机等硬件环境,保证多个虚拟机相互隔离运行。
在虚拟化运行环境中,VMM为每个虚拟机创建一个虚拟网卡(Virtual NetworkInterface Card,vNIC),虚拟交换机VSwitch提供了虚拟机之间,以及虚拟机与外部网络之间的通讯能力。对于在VMM中运行的VSwitch,每个虚拟机的虚拟网卡对应到VSwitch的一个逻辑端口上,主机的物理网卡对应于VSwitch与外部物理交换机相连的端口。
虚拟机报文接收流程为:VSwitch从物理网卡接收以太网报文,之后根据VMM下发的虚拟机媒体访问控制(Media Access Control,MAC)地址与VSwitch逻辑端口对应关系表(即静态MAC表)来转发报文。
虚拟机报文发送流程:当报文的MAC地址在外部网络时,VSwitch直接将报文从物理网卡发向外部网络;当报文目的MAC地址是连接在相同VSwitch上的虚拟机时,则VSwitch通过静态MAC表来转发报文。
如图3B所示,为本发明实施例提供的一种网卡直通场景下主机上的虚拟化结构示意图,此时,物理网卡未进行虚拟机,物理网卡的每个出端口分配给一个虚拟机。如图3C所示,为本发明实施例提供的另一种网卡直通场景下主机上的虚拟化结构示意图,与图3B不同的是,物理网卡经过虚拟化被虚拟机为多个虚拟功能设备(Virtual Function,VF),上述网卡虚拟化技术可以为单根IO虚拟化(Single-Root I/O Virtualization,SR-IOV)以及多根IO虚拟化(Multi-Root I/O Virtualization,MR-IOV)。各虚拟功能设备能共享物理网卡的物理资源(例如网卡端口),各虚拟功能设备还可以与主机上的虚拟机系统进行关联。
本发明实施例提供的应用拓扑关系的发现方法同样适用于图3B和图3C所示的场景,此时,虚拟机可以直接调用物理网卡的出接口来传递报文,从而绕过VMM中的虚拟交换机。代理模块可以从虚拟机或VMM获取API调用信息。举例来说,在网卡直通的场景下,当虚拟机调用输入API函数将报文通过VMM传递到物理网卡时,虚拟机或VMM可以将API调用信息记录到日志文件中或者直接传递给采集代理;或者,采集代理监控报文在虚拟机、VMM以及物理网卡之间的传输,将API调用信息记录到日志文件中。
采集代理可以采用主动发现或者被动发现两种采集API调用信息。如图4所示,为本发明实施例提供的采集代理通过主动发现的形式获取API调用信息的示意图。如图5所示,为本发明实施例提供的采集代理通过被动发现的形式获取API调用信息的示意图。其中,主动发现是指,虚拟机调用输入API函数(Port_Input API)时,虚拟机、虚拟交换机或VMM会将API调用信息写入日志log文件,或者,虚拟交换机调用输出API函数(Port_OutputAPI)时,虚拟机、虚拟交换机或VMM会将API调用信息写入日志文件,采集代理可以通过扫描日志文件,从中获取API调用信息;被动发现是指,新增向采集代理进行API信息上报的拓扑信息上报API函数(Topo_Info_API),当虚拟机调用输入API函数(Port_Input API)通过VMM传输报文时,虚拟机、虚拟交换机或VMM调用拓扑信息上报API函数,将本次调用的API调用信息发送给采集代理,或者,当虚拟交换机调用输出API函数(Port_Output API)时,虚拟机、虚拟交换机或VMM调用拓扑信息上报API函数,将本次调用的API调用信息发送给采集代理。
需要说明的是,对于不同的操作系统,上述输入API函数、输出API函数以及拓扑上报API函数可能会有不同的格式,本发明实施例对此并不进行限定,本领域技术人员可以理解的是,上述函数可以分别实现输入、输出及上报功能即可。可以通过API函数的工具书查找API函数,示例性的,人民邮电出版社出版的《Windows API函数参考手册》是关于Microsoft Win32API函数的参考手册,其他版本和其他类型的操作系统也可以从相关的工具书中查找对应的输入API函数和输出API函数。
还需要说明的是,将API调用信息存储在日志文件中仅为一个举例,API调用信息可以存储在其他文件或其他位置,采集代理可以获取即可。
拓扑发现服务器从各主机上收集API调用信息,每组API调用信息对应一次API调用,在本发明各实施例中,API调用具体包括输入API函数调用和输出API函数调用,其中,报文发送端的源虚拟机调用输入API函数将报文传递到VMM,由VMM将报文经过网络传递到报文接收端的VMM,报文接收端的VMM调用输出API函数将报文发送给目的虚拟机,在上述过程中,在报文发送端的主机和报文接收端的主机均会记录一组API调用信息,每组API调用信息包括API调用对应的虚拟机的标识、API调用的发生时间以及API调用的报文流向;更进一步的,还可能包括通信协议。拓扑发现服务器对收集到的API调用信息进行分析,当两组API调用信息中的API调用的发生时间的差值小于预设阈值,且两组API调用信息中的报文流向互为相反(一个是输入,另外一个是输出)时,则两组API调用信息中的两个虚拟机标识对应的两个虚拟机之间存在一次交互关系,从而确定两个虚拟机之间的交互频率,若所述第一虚拟机和所述第二虚拟机之间的交互频率满足所述第二条件,确定所述第一虚拟机和所第二虚拟机之间存在应用拓扑关系。具体的,确定所述第一虚拟机和所第二虚拟机之间的交互频率,比较所述交互频率和预设频率,当所述交互频率大于预设频率,确定所述交互频率满足所述第二条件。显然的,上述两组API调用信息中的两个虚拟机标识对应的两个虚拟机不同。上述方案给出了虚拟化场景下发现虚拟机间的应用拓扑关系的方法,通过分析报文传输过程中产生的API调用信息确定虚拟机间的应用拓扑关系,方案复杂度较低。
结合图3A所示的主机上的虚拟化结构示意图,如图6所示,为本发明实施例提供的在同一主机上的两个虚拟机之间通信时,采集代理获取API调用信息的流程示意图。采集代理运行在主机中,作为主机的一个功能模块,主机上运行有VM1和VM2(本发明实施例以2个VM为例进行说明),VM1的虚拟网卡为vNIC1,VM2的虚拟网卡为vNIC2,与vNIC1对应虚拟交换机上的端口为Port1,与vNIC2对应的虚拟机交换机上的端口为Port2。需要说明的是,为虚拟机分配虚拟网卡以及建立虚拟网卡与虚拟交换机端口之间的对应关系为本领域常用技术手段,本发明实施例对具体流程不再赘述。图6所示的方法包括:
步骤601:当VM1需要向VM2发送报文时,VM1调用VMM的输入API函数(Port_InputAPI),通过vNIC1将所述报文发送到虚拟交换机的Port1;
步骤602:虚拟交换机通过查找静态MAC表,确定所述报文的目的MAC确定VM2对应的虚拟交换机的端口为Port2;
在一种可能的方式中,如果VM1不知道VM2的地址,则VM1发送给VM2的所述报文中不携带VM2的地址。此时,虚拟交换机将VM1的报文进行广播,通过广播的方式,将VM1的报文发送到该虚拟机交换机下的所有VM,VM2即可收到VM1的报文并返回响应。
步骤603:虚拟交换机调用输出API函数(Port_Output API),通过Port2将所述报文发送到VM2的虚拟网卡vNIC2,VM2即接收到了VM1发送的报文。
在步骤601中,鉴于VM1要调用输入API函数,发生了一次API调用,因此,需要记录API调用信息,VM1可以通过两种方式记录API调用信息:
方式一:VM1调用与采集代理之间的接口,上报API调用信息,具体的,VM1调用所述采集代理的拓扑上报API函数(Topo_Info API),将API调用信息发送给所述采集代理。需要说明的是,本发明实施例并不对VM1向采集代理发送API调用信息的时机进行限制,可选的,VM1可以在网络负荷小时发送所述API调用信息。
方式二:VM1将所述API调用信息写入日志文件,由采集代理进行读取。需要说明的是,本发明实施例对采集代理从日志文件中获取API调用信息的时机并不进行限定,可选的,采集代理可以周期性的从日志文件中读取或者VM1在将API调用信息写入日志文件后通知采集代理读取。
更进一步的,除了由VM记录API调用信息外,也可以由虚拟机交换机或VMM记录API调用信息,具体的,当虚拟交换机或VMM接收到VM1发送的报文时,将API调用信息写入到日志文件或者发送给采集代理。
所述API调用信息包括虚拟机标识、API调用的发生时间、通信协议以及报文流向。可选的,所述API调用信息中的虚拟机标识可以包括源虚拟机标识以及目的虚拟机标识,此时,仅根据一条API调用信息即可直接识别出源虚拟机和目的虚拟机之间发生了一次交互。需要说明的是,当VM1知道通信对端VM2的地址时,则可以在记录的API调用信息中包括源虚拟机标识和目的虚拟机标识。上述通信协议可以为HTTP协议、TCP/IP协议,以及UDP协议等等。
在步骤603中,鉴于虚拟交换机调用了输出API函数(Port_Output API),发生了一次API调用,因此,需要记录API调用信息。与VM1类似,虚拟交换机也可以通过两种方式记录API调用信息:
方式一:虚拟交换机调用与采集代理之间的接口,上报API调用信息,具体的,虚拟交换机调用所述采集代理的拓扑上报API函数(Topo_Info API),将API调用信息发送给所述采集代理。需要说明的是,本发明实施例并不对虚拟交换机向采集代理发送API调用信息的时机进行限制。所述拓扑上报API函数的实现可以用HOOK函数或者修改代码,只要能够提供API调用信息的传递即可。
方式二:虚拟交换机将所述API调用信息写入日志文件,由采集代理进行读取。需要说明的是,本发明实施例对采集代理从日志文件中获取API调用信息的时机并不进行限定。
更进一步的,在步骤603中,除了虚拟交换机外,也可以由虚拟机(VM2)或者VMM记录API调用信息,本发明实施例不再赘述。
图6所示的方法给出了同一主机上两个虚拟机进行通信时采集代理获取API调用信息的流程。结合图3A所示的虚拟化结构示意图,如图7所示,为本发明实施例提供的在不同主机上的两个虚拟机之间通信时,采集代理获取API调用信息的流程示意图。两个主机可以采用如图3A所示的虚拟化结构,主机间通过物理交换机相连。主机1上运行有VM1和虚拟交换机1,主机2上运行有VM2和虚拟交换机2(本发明实施例以2个VM为例进行说明),VM1的虚拟网卡为vNIC1,VM2的虚拟网卡为vNIC2,与vNIC1对应虚拟交换机1上的端口为Port1,与vNIC2对应的虚拟机交换机2上的端口为Port2。需要说明的是,为虚拟机分配虚拟网卡以及建立虚拟网卡与虚拟交换机端口之间的对应关系为本领域常用技术手段,本发明实施例对具体流程不再赘述。图7所示的方法包括:
步骤701:当VM1需要向VM2发送报文时,VM1调用VMM的输入API函数(Port_InputAPI),通过vNIC1将所述报文发送到虚拟交换机1的Port1;
步骤702:虚拟交换机1在port1上接收所述报文,确定所述报文的目的MAC地址外部网络,则所述虚拟交换机1通过主机1的物理网卡将所述报文发送到外部网络;
步骤703:依据现有的报文转发规则,所述报文被路由到VM2所在的主机的物理网卡;
步骤704:主机2通过自身的物理网卡接收到所述报文;
步骤705:虚拟交换机2确定与VM2对应的端口为Port2,虚拟交换机2通过端口Port2将报文发送到VM2的虚拟网卡vNIC2。VM2即接收到了VM1发送的报文。
需要说明的是,在上述报文传输流程中,依据现有规则,报文可能被封装和解封装,本发明实施例不再赘述。
在步骤701中,VM1采用与步骤601中定义的类似的方式记录API调用信息。主机1的采集代理获取API调用信息。
在步骤705中,虚拟交换机2采用与步骤603中定义的方式记录API调用信息。主机2的采集代理获取API调用信息。
需要说明的是,本发明实施例可以采用分布式虚拟机交换机,分布式虚拟交换机可以跨多个主机从而使得多个主机上的虚拟机如同连接在同一虚拟机交换机上一样,虚拟机可以在上述多个主机之间迁移,或者,一个主机上可以存在多个分布式虚拟交换机。当采用分布式虚拟交换机时,采集代理获取API调用信息的方式与前述类似,本申请不再赘述。
针对图6和图7所示的方法流程,当主机上不包含采集代理时,虚拟机或虚拟交换机可以采用图6和图7定义的方式将API调用信息直接上报给拓扑发现服务器。
本申请给出的应用拓扑关系发现的方法,在报文传输过程中,记录下API调用信息,通过匹配两组API调用信息是否满足第一条件确定两组API调用信息对应的两个虚拟机之间是否存在交互,采用上述方式,拓扑发现服务器进而可以确定收集到的API调用信息所涉及的各虚拟机间的交互频率,根据各虚拟机间的交互频率确定虚拟机间的应用拓扑关系。上述方案给出了虚拟化场景下发现虚拟机间的应用拓扑关系的方法,只需要由存在报文传输的两端进行API调用信息的记录,方案复杂度较低。
如图8所示,为本发明实施例提供的一种应用拓扑关系发现系统,所述系统80包括拓扑发现服务器81以及至少一个主机82,所述至少一个主机82上运行有多台虚拟机,
所述多台虚拟机中的一台虚拟机822发送报文或者所述至少一个主机82上的VMM向所述多台虚拟机中的一台虚拟机822转发报文时,产生应用程序编程接口API调用信息;
拓扑发现服务器81,用于收集至少两组应用程序编程接口API调用信息,每组API调用信息对应一次API调用,所述每组API调用信息包括API调用对应的虚拟机的标识、API调用的发生时间以及API调用的报文流向;
所述拓扑发现服务器81,还用于分析所述至少API调用信息,确定满足第一条件的第一API调用信息与第二API调用信息,其中,所述第一API调用信息与第二API调用信息满足所述第一条件包括:所述第一API调用信息中的报文流向与所述第二API调用信息中的报文流向为互为相反的流向,且所述第一API调用信息中的API调用的发生时间与所述第二API调用信息中的API调用的发生时间的差值小于或等于预设阈值;
所述拓扑发现服务器81,还用于确定所述第一API调用信息所指示的第一虚拟机822和所述第二API调用信息所指示的第二虚拟机822之间的交互频率是否满足第二条件,若确定所述第一虚拟机822和所述第二虚拟机822之间的交互频率满足所述第二条件,确定所述第一虚拟机822和所第二虚拟机822之间存在应用拓扑关系。
进一步的,所述每组API调用信息还包括通信协议;相应地,所述第一API调用信息与第二API调用信息满足所述第一条件还包括:所述第一API调用信息中的通信协议与所述第二API调用信息中的通信协议相同。
所述拓扑发现服务器81,具体用于分析所述第一虚拟机822的至少两组API调用信息和所述第二虚拟机822的至少两组API调用信息,确定所述第一虚拟机822和所第二虚拟机822之间的交互频率,比较所述交互频率和预设频率,当所述交互频率大于预设频率,确定所述交互频率满足所述第二条件。
所述拓扑发现服务器81,具体用于确定所述第一虚拟机822与所述第二虚拟机822是否属于相同的网段,当所述第一虚拟机822与所述第二虚拟机822属于相同网段时,根据预设的加权系数修正所述交互频率或所述预设频率之一,比较修正后的交互频率与所述预设频率;或者,比较所述交互频率与修正后的预设频率。
所述拓扑发现服务器81,具体用于从所述多台虚拟机的部署主机82上的日志文件中分别读取所述至少两组API调用信息;或者,
所述拓扑发现服务器81,具体用于接收所述多台虚拟机的部署主机上的代理模块上报的所述至少两组API调用信息。
进一步的,所述API调用包括输入API函数调用和输出API函数调用。
所述应用拓扑发现的系统80还包括:
所述虚拟机822,还用于在调用API向所述虚拟机822所在的VMM发送报文或者接收所述VMM转发的报文时,将API调用信息写入所述虚拟机822的部署主机82上的日志文件中;或,
虚拟机822的部署主机上的代理模块,用于将报文传输过程中的API调用对应的API调用信息写入所述虚拟机822的部署主机82上的日志文件中。
与前述系统相对应,如图9所示,为本发明实施例提供的一种拓扑发现服务器,包括:获取单元91,用于收集至少两组应用程序编程接口API调用信息,每组API调用信息对应一次API调用,所述每组API调用信息包括API调用对应的虚拟机的标识、API调用的发生时间以及API调用的报文流向;
分析单元92,用于分析所述至少两组应用程序编程接口API调用信息,确定满足第一条件的第一API调用信息与第二API调用信息,其中,所述第一API调用信息与第二API调用信息满足所述第一条件包括:所述第一API调用信息中的报文流向与所述第二API调用信息中的报文流向为互为相反的流向,且所述第一API调用信息中的API调用的发生时间与所述第二API调用信息中的API调用的发生时间的差值小于或等于预设阈值;
所述分析单元92,还用于确定所述第一API调用信息所指示的第一虚拟机和所述第二API调用信息所指示的第二虚拟机之间的交互频率是否满足第二条件,若所述第一虚拟机和所述第二虚拟机之间的交互频率满足所述第二条件,确定所述第一虚拟机和所第二虚拟机之间存在应用拓扑关系。
进一步的,所述每组API调用信息还包括通信协议;相应地,所述第一API调用信息与第二API调用信息满足所述第一条件还包括:所述第一API调用信息中的通信协议与所述第二API调用信息中的通信协议相同。
所述分析单元92,具体用于分析所述第一虚拟机的至少两组API调用信息和所述第二虚拟机的至少两组API调用信息,确定所述第一虚拟机和所第二虚拟机之间的交互频率,比较所述交互频率和预设频率,当所述交互频率大于预设频率,确定所述交互频率满足所述第二条件。
所述分析单元92,具体用于确定所述第一虚拟机与所述第二虚拟机是否属于相同的网段,当所述第一虚拟机与所述第二虚拟机属于相同网段时,根据预设的加权系数修正所述交互频率或所述预设频率之一;
所述分析单元92,具体用于比较修正后的交互频率与所述预设频率;或者,比较所述交互频率与修正后的预设频率。
所述获取单元91,具体用于从所述多台虚拟机的部署主机上的日志文件中分别读取所述至少两组API调用信息;或者,
所述获取单元91,具体用于接收所述多台虚拟机的部署主机上的代理模块上报的所述至少两组API调用信息。
所述API调用包括输入API函数调用和输出API函数调用。
本发明实施例给出的应用拓扑关系发现的方法、装置和系统,收集报文传输过程中API调用信息,通过匹配两组API调用信息是否满足第一条件确定两组API调用信息对应的两个虚拟机之间是否存在交互,采用上述方式,拓扑发现服务器可以确定收集到的API调用信息所涉及的各虚拟机间的交互频率,根据各虚拟机间的交互频率确定虚拟机间的应用拓扑关系。上述方案给出了虚拟化场景下发现虚拟机间的应用拓扑关系的方法,通过分析报文传输过程中产生的API调用信息确定虚拟机间的应用拓扑关系,方案复杂度较低。
在图8和9对应的实施例中,虚拟机、采集代理、虚拟交换机,以及拓扑发现服务器是以功能单元/功能模块的形式来呈现。这里的“单元/模块”可以指特定应用集成电路(application-specific integrated circuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到虚拟机、采集代理、虚拟交换机,以及拓扑发现服务器可以采用图2所示的形式。例如,获取单元901和处理单元902可以通过图2的处理器和存储器来实现。
本发明实施例还提供了一种计算机存储介质,用于储存为上述图8和9所示的设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现应用拓扑关系发现的方法。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (21)

1.一种应用拓扑关系发现的方法,其特征在于,所述方法包括:
收集至少两组应用程序编程接口API调用信息,每组API调用信息对应一次API调用,所述每组API调用信息包括API调用对应的虚拟机的标识、API调用的发生时间以及API调用的报文流向;
分析所述至少两组API调用信息,确定满足第一条件的第一API调用信息与第二API调用信息,其中,所述第一API调用信息与第二API调用信息满足所述第一条件包括:所述第一API调用信息中的报文流向与所述第二API调用信息中的报文流向为互为相反的流向,且所述第一API调用信息中的API调用的发生时间与所述第二API调用信息中的API调用的发生时间的差值小于或等于预设阈值;
确定所述第一API调用信息所指示的第一虚拟机和所述第二API调用信息所指示的第二虚拟机之间的交互频率是否满足第二条件;
若所述第一虚拟机和所述第二虚拟机之间的交互频率满足所述第二条件,确定所述第一虚拟机和所第二虚拟机之间存在应用拓扑关系。
2.如权利要求1所述的方法,其特征在于,所述每组API调用信息还包括通信协议;相应地,所述第一API调用信息与第二API调用信息满足所述第一条件还包括:所述第一API调用信息中的通信协议与所述第二API调用信息中的通信协议相同。
3.如权利要求1或2所述的方法,其特征在于,所述确定所述第一虚拟机和所述第二虚拟机之间的交互频率是否满足第二条件包括:
分析所述第一虚拟机的至少两组API调用信息和所述第二虚拟机的至少两组API调用信息,确定所述第一虚拟机和所第二虚拟机之间的交互频率,比较所述交互频率和预设频率,当所述交互频率大于所述预设频率,确定所述交互频率满足所述第二条件。
4.如权利要求3所述的方法,其特征在于,所述比较所述交互频率和预设频率之前,还包括:
确定所述第一虚拟机与所述第二虚拟机是否属于相同的网段,当所述第一虚拟机与所述第二虚拟机属于相同网段时,根据预设的加权系数修正所述交互频率或所述预设频率之一;
所述比较所述交互频率和预设频率包括:
比较修正后的交互频率与所述预设频率;或者,比较所述交互频率与修正后的预设频率。
5.如权利要求1-4任一所述的方法,其特征在于,所述收集至少两组API调用信息包括:
从所述多台虚拟机的部署主机上的日志文件中分别读取所述至少两组API调用信息;或者,
接收所述多台虚拟机的部署主机上的代理模块上报的所述至少两组API调用信息。
6.如权利要求5所述的方法,其特征在于,在从所述多台虚拟机的部署主机上的日志文件中分别读取所述至少两组API调用信息之前,所述方法还包括以下至少一种:
第一种、在虚拟机调用API向所述虚拟机所在的VMM发送报文时,所述虚拟机、所述VMM中的虚拟交换机或所述VMM任意之一将API调用信息写入所述虚拟机的部署主机上的日志文件中;
第二种、虚拟机的部署主机上的代理模块将报文传输过程中的API调用对应的API调用信息写入所述虚拟机的部署主机上的日志文件中;
第三种、在虚拟机的VMM调用API向所述虚拟机发送报文时,所述虚拟机、所述VMM中的虚拟交换机或所述VMM任意之一将API调用信息写入所述虚拟机的部署主机上的日志文件中。
7.如权利要求5所述的方法,其特征在于,在接收所述多台虚拟机的部署主机上的代理模块上报的所述至少两组API调用信息之前,所述方法还包括:
虚拟机的部署主机上的代理模块监控报文在所述主机上的传输过程,记录所述传输过程中的API调用对应的API调用信息;或,
虚拟机的部署主机上的代理模块接收所述虚拟机、虚拟交换机或者VMM发送的在所述主机上的报文传输过程中的API调用对应的API调用信息。
8.如权利要求1所述的方法,其特征在于,所述API调用包括输入API函数调用和输出API函数调用。
9.一种拓扑发现服务器,其特征在于,包括:
获取单元,用于收集至少两组应用程序编程接口API调用信息,每组API调用信息对应一次API调用,所述每组API调用信息包括API调用对应的虚拟机的标识、API调用的发生时间以及API调用的报文流向;
分析单元,用于分析所述至少两组API调用信息,确定满足第一条件的第一API调用信息与第二API调用信息,其中,所述第一API调用信息与第二API调用信息满足所述第一条件包括:所述第一API调用信息中的报文流向与所述第二API调用信息中的报文流向为互为相反的流向,且所述第一API调用信息中的API调用的发生时间与所述第二API调用信息中的API调用的发生时间的差值小于或等于预设阈值;
所述分析单元,还用于确定所述第一API调用信息所指示的第一虚拟机和所述第二API调用信息所指示的第二虚拟机之间的交互频率是否满足第二条件,若所述第一虚拟机和所述第二虚拟机之间的交互频率满足所述第二条件,确定所述第一虚拟机和所第二虚拟机之间存在应用拓扑关系。
10.如权利要求9所述的拓扑发现服务器,其特征在于,所述每组API调用信息还包括通信协议;相应地,所述第一API调用信息与第二API调用信息满足所述第一条件还包括:所述第一API调用信息中的通信协议与所述第二API调用信息中的通信协议相同。
11.如权利要求9或10所述的拓扑发现服务器,其特征在于,
所述分析单元,具体用于分析所述第一虚拟机的至少两组API调用信息和所述第二虚拟机的至少两组API调用信息,确定所述第一虚拟机和所第二虚拟机之间的交互频率,比较所述交互频率和预设频率,当所述交互频率大于所述预设频率,确定所述交互频率满足所述第二条件。
12.如权利要求9-11任一所述的拓扑发现服务器,其特征在于,
所述分析单元,具体用于确定所述第一虚拟机与所述第二虚拟机是否属于相同的网段,当所述第一虚拟机与所述第二虚拟机属于相同网段时,根据预设的加权系数修正所述交互频率或所述预设频率之一;
所述分析单元,具体用于比较修正后的交互频率与所述预设频率;或者,比较所述交互频率与修正后的预设频率。
13.如权利要求9-12任一所述的拓扑发现服务器,其特征在于,
所述获取单元,具体用于从所述多台虚拟机的部署主机上的日志文件中分别读取所述至少两组API调用信息;或者,
所述获取单元,具体用于接收所述多台虚拟机的部署主机上的代理模块上报的所述至少两组API调用信息。
14.如权利要求9所述的拓扑发现服务器,其特征在于,
所述API调用包括输入API函数调用和输出API函数调用。
15.一种应用拓扑关系发现的系统,其特征在于,所述系统包括拓扑发现服务器以及至少一个主机,所述至少一个主机上运行有多台虚拟机,
所述多台虚拟机中的一台虚拟机发送报文或者所述至少一个主机上的VMM向所述多台虚拟机中的一台虚拟机转发报文时,产生应用程序编程接口API调用信息;
拓扑发现服务器,用于收集至少两组API调用信息,每组API调用信息对应一次API调用,所述每组API调用信息包括API调用对应的虚拟机的标识、API调用的发生时间以及API调用的报文流向;
所述拓扑发现服务器,还用于分析所述至少API调用信息,确定满足第一条件的第一API调用信息与第二API调用信息,其中,所述第一API调用信息与第二API调用信息满足所述第一条件包括:所述第一API调用信息中的报文流向与所述第二API调用信息中的报文流向为互为相反的流向,且所述第一API调用信息中的API调用的发生时间与所述第二API调用信息中的API调用的发生时间的差值小于或等于预设阈值;
所述拓扑发现服务器,还用于确定所述第一API调用信息所指示的第一虚拟机和所述第二API调用信息所指示的第二虚拟机之间的交互频率是否满足第二条件,若所述第一虚拟机和所述第二虚拟机之间的交互频率满足所述第二条件,确定所述第一虚拟机和所第二虚拟机之间存在应用拓扑关系。
16.如权利要求15所述的系统,其特征在于,所述每组API调用信息还包括通信协议;相应地,所述第一API调用信息与第二API调用信息满足所述第一条件还包括:所述第一API调用信息中的通信协议与所述第二API调用信息中的通信协议相同。
17.如权利要求15或16所述的系统,其特征在于,
所述拓扑发现服务器,具体用于分析所述第一虚拟机的至少两组API调用信息和所述第二虚拟机的至少两组API调用信息,确定所述第一虚拟机和所第二虚拟机之间的交互频率,比较所述交互频率和预设频率,当所述交互频率大于所述预设频率,确定所述交互频率满足所述第二条件。
18.如权利要求15-17任一所述的系统,其特征在于,
所述拓扑发现服务器,具体用于确定所述第一虚拟机与所述第二虚拟机是否属于相同的网段,当所述第一虚拟机与所述第二虚拟机属于相同网段时,根据预设的加权系数修正所述交互频率或所述预设频率之一,比较修正后的交互频率与所述预设频率;或者,比较所述交互频率与修正后的预设频率。
19.如权利要求15-18任一所述的系统,其特征在于,
所述拓扑发现服务器,具体用于从所述多台虚拟机的部署主机上的日志文件中分别读取所述至少两组API调用信息;或者,
所述拓扑发现服务器,具体用于接收所述多台虚拟机的部署主机上的代理模块上报的所述至少两组API调用信息。
20.如权利要求15所述的系统,其特征在于,所述API调用包括输入API函数调用和输出API函数调用。
21.如权利要求19所述的系统,其特征在于,还包括:
所述虚拟机,还用于在调用API向所述虚拟机所在的VMM发送报文或者接收所述VMM转发的报文时,将API调用信息写入所述虚拟机的部署主机上的日志文件中;或,
虚拟机的部署主机上的代理模块,用于将报文传输过程中的API调用对应的API调用信息写入所述虚拟机的部署主机上的日志文件中。
CN201580031988.0A 2015-12-21 2015-12-21 应用拓扑关系发现的方法、装置和系统 Active CN106489251B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910940823.5A CN110865867B (zh) 2015-12-21 2015-12-21 应用拓扑关系发现的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/098125 WO2017107018A1 (zh) 2015-12-21 2015-12-21 应用拓扑关系发现的方法、装置和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910940823.5A Division CN110865867B (zh) 2015-12-21 2015-12-21 应用拓扑关系发现的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN106489251A true CN106489251A (zh) 2017-03-08
CN106489251B CN106489251B (zh) 2019-10-18

Family

ID=58238289

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580031988.0A Active CN106489251B (zh) 2015-12-21 2015-12-21 应用拓扑关系发现的方法、装置和系统
CN201910940823.5A Active CN110865867B (zh) 2015-12-21 2015-12-21 应用拓扑关系发现的方法、装置和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910940823.5A Active CN110865867B (zh) 2015-12-21 2015-12-21 应用拓扑关系发现的方法、装置和系统

Country Status (6)

Country Link
US (1) US10459754B2 (zh)
EP (1) EP3226493B1 (zh)
JP (1) JP6571161B2 (zh)
KR (1) KR101979363B1 (zh)
CN (2) CN106489251B (zh)
WO (1) WO2017107018A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107861821A (zh) * 2017-10-26 2018-03-30 北京百度网讯科技有限公司 模块调用关系的挖掘方法、装置及计算机可读介质
CN108038236A (zh) * 2017-12-27 2018-05-15 深信服科技股份有限公司 文件共享方法、装置、系统及可读存储介质
CN108388501A (zh) * 2018-01-10 2018-08-10 链家网(北京)科技有限公司 一种系统间集成测试方法
CN108964959A (zh) * 2017-05-27 2018-12-07 阿里巴巴集团控股有限公司 一种用于虚拟化平台的网卡直通系统及数据包监管方法
CN109428824A (zh) * 2017-08-28 2019-03-05 中国电信股份有限公司 主机拓扑生成方法和系统
CN109525515A (zh) * 2018-10-23 2019-03-26 郑州云海信息技术有限公司 一种云平台中网卡的管理方法和装置
CN109802842A (zh) * 2017-11-16 2019-05-24 华为软件技术有限公司 应用拓扑的生成方法及相关设备
CN109905436A (zh) * 2017-12-08 2019-06-18 华为软件技术有限公司 根因事件的确定方法、装置及存储介质
CN110196750A (zh) * 2018-02-26 2019-09-03 华为技术有限公司 一种设备的分配方法及其相关设备

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9912739B1 (en) * 2017-01-12 2018-03-06 Red Hat Israel, Ltd. Open virtualized multitenant network scheme servicing virtual machine and container based connectivity
US10698664B2 (en) * 2017-12-21 2020-06-30 Fujitsu Limited API mashup generation
WO2020044192A1 (en) 2018-08-26 2020-03-05 Celeno Communications (Israel) Ltd. Wi-fi radar detection using synchronized wireless access point
US11240160B2 (en) * 2018-12-28 2022-02-01 Alibaba Group Holding Limited Method, apparatus, and computer-readable storage medium for network control
EP3906426A4 (en) 2018-12-31 2022-09-28 Celeno Communications (Israel) Ltd. CONSISTENT WI-FI RADAR USING WIRELESS ACCESS POINT
WO2020141415A1 (en) * 2019-01-01 2020-07-09 Celeno Communications (Israel) Ltd. Improved positioning system based on distributed transmission and reception of wi-fi signals
US11108642B2 (en) 2019-04-22 2021-08-31 Vmware, Inc. Method and apparatus for non-intrusive agentless platform-agnostic application topology discovery
US11055191B2 (en) * 2019-05-17 2021-07-06 Citrix Systems, Inc. Service graph highlights missing nodes and links
WO2021238596A1 (zh) * 2020-05-26 2021-12-02 腾讯科技(深圳)有限公司 接口调用方法、装置和计算机可读存储介质
US11262990B2 (en) 2020-05-26 2022-03-01 International Business Machines Corporation Application topology discovery
CN114157931A (zh) * 2020-09-07 2022-03-08 中兴通讯股份有限公司 波分设备的拓扑关系确定方法、系统、设备及存储介质
CN114697319B (zh) * 2020-12-30 2023-06-16 华为云计算技术有限公司 一种公有云的租户业务管理方法及装置
US20220283840A1 (en) 2021-03-05 2022-09-08 Vmware, Inc. Configuring direct access to hardware accelerator in an o-ran system
CN113778423B (zh) * 2021-09-10 2024-03-01 上海幻电信息科技有限公司 接口文档生成方法及系统
CN114327748B (zh) * 2021-11-29 2022-10-18 北京志凌海纳科技有限公司 虚拟机交互方法、装置、非易失性存储介质及处理器
CN113992428B (zh) * 2021-11-29 2024-02-09 天融信雄安网络安全技术有限公司 容器环境下的入侵防御方法及装置、电子设备、存储介质
US20230171303A1 (en) * 2021-12-01 2023-06-01 X Development Llc Dynamic allocation of platform-independent machine learning state machines between edge-based and cloud-based computing resources
CN115333966B (zh) * 2022-08-11 2023-05-12 天翼数字生活科技有限公司 一种基于拓扑的Nginx日志分析方法、系统及设备
KR102486087B1 (ko) * 2022-09-16 2023-01-09 오픈나루 주식회사 Msa에서의 호출관계 추적 및 이에 따른 로그정보 디스플레이 방법
US11838176B1 (en) 2022-12-19 2023-12-05 Vmware, Inc. Provisioning and deploying RAN applications in a RAN system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099580B1 (en) * 2001-11-02 2006-08-29 Ciena Corporation Method and system for communicating network topology in an optical communications network
CN101278274A (zh) * 2005-09-30 2008-10-01 微软公司 简单对等点名称解析协议应用程序接口
CN102306156A (zh) * 2011-07-05 2012-01-04 成都智汇科技有限公司 用于交互式地编辑gis拓扑数据集的方法
US20150127815A1 (en) * 2013-11-07 2015-05-07 International Business Machines Corporation Modeling computer network topology based on dynamic usage relationships
CN104618246A (zh) * 2015-02-12 2015-05-13 浪潮电子信息产业股份有限公司 一种面向xen虚拟化环境的网络拓扑发现方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774446B2 (en) * 2005-12-30 2010-08-10 Microsoft Corporation Discovering, defining, and implementing computer application topologies
JP5458308B2 (ja) * 2010-06-11 2014-04-02 株式会社日立製作所 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置
CN102137007B (zh) * 2011-01-17 2014-05-21 华为技术有限公司 网络拓扑生成方法、系统、协调者
CN102082692B (zh) 2011-01-24 2012-10-17 华为技术有限公司 基于网络数据流向的虚拟机迁移方法、设备和集群系统
US8943499B2 (en) * 2012-04-30 2015-01-27 Hewlett-Packard Development Company, L.P. Providing a virtual network topology in a data center
US9898317B2 (en) * 2012-06-06 2018-02-20 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US9183033B2 (en) * 2012-12-06 2015-11-10 Industrial Technology Research Institute Method and system for analyzing root causes of relating performance issues among virtual machines to physical machines
EP2943880A4 (en) * 2013-01-12 2016-10-19 F5 Networks Inc USER INTERFACE FOR VISUALIZING RESOURCE PERFORMANCE AND MANAGING RESOURCES IN CLOUD OR DISTRIBUTED SYSTEMS
US9665474B2 (en) * 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships derived from trace data
US10069677B2 (en) * 2013-04-06 2018-09-04 Citrix Systems, Inc. Systems and methods to collect logs from multiple nodes in a cluster of load balancers
CN103281248B (zh) * 2013-06-09 2016-03-30 北京星网锐捷网络技术有限公司 网络拓扑的发现方法、装置和系统
US9722927B2 (en) * 2014-06-05 2017-08-01 Futurewei Technologies, Inc. Service chain topology map construction
CN104363159B (zh) * 2014-07-02 2018-04-06 北京邮电大学 一种基于软件定义网络的开放虚拟网络构建系统和方法
CN105446792B (zh) * 2014-08-27 2019-09-24 联想(北京)有限公司 一种虚拟机的部署方法、部署装置和管理节点
CN104468219B (zh) * 2014-12-11 2019-01-08 新华三技术有限公司 虚拟组网网络拓扑发现方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099580B1 (en) * 2001-11-02 2006-08-29 Ciena Corporation Method and system for communicating network topology in an optical communications network
CN101278274A (zh) * 2005-09-30 2008-10-01 微软公司 简单对等点名称解析协议应用程序接口
CN102306156A (zh) * 2011-07-05 2012-01-04 成都智汇科技有限公司 用于交互式地编辑gis拓扑数据集的方法
US20150127815A1 (en) * 2013-11-07 2015-05-07 International Business Machines Corporation Modeling computer network topology based on dynamic usage relationships
CN104618246A (zh) * 2015-02-12 2015-05-13 浪潮电子信息产业股份有限公司 一种面向xen虚拟化环境的网络拓扑发现方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108964959B (zh) * 2017-05-27 2022-02-25 阿里巴巴集团控股有限公司 一种用于虚拟化平台的网卡直通系统及数据包监管方法
CN108964959A (zh) * 2017-05-27 2018-12-07 阿里巴巴集团控股有限公司 一种用于虚拟化平台的网卡直通系统及数据包监管方法
CN109428824B (zh) * 2017-08-28 2021-09-17 中国电信股份有限公司 主机拓扑生成方法和系统
CN109428824A (zh) * 2017-08-28 2019-03-05 中国电信股份有限公司 主机拓扑生成方法和系统
CN107861821A (zh) * 2017-10-26 2018-03-30 北京百度网讯科技有限公司 模块调用关系的挖掘方法、装置及计算机可读介质
CN109802842A (zh) * 2017-11-16 2019-05-24 华为软件技术有限公司 应用拓扑的生成方法及相关设备
CN109802842B (zh) * 2017-11-16 2021-12-03 华为技术有限公司 应用拓扑的生成方法及相关设备
CN109905436A (zh) * 2017-12-08 2019-06-18 华为软件技术有限公司 根因事件的确定方法、装置及存储介质
CN108038236A (zh) * 2017-12-27 2018-05-15 深信服科技股份有限公司 文件共享方法、装置、系统及可读存储介质
CN108388501B (zh) * 2018-01-10 2021-09-17 贝壳找房(北京)科技有限公司 一种系统间集成测试方法
CN108388501A (zh) * 2018-01-10 2018-08-10 链家网(北京)科技有限公司 一种系统间集成测试方法
CN110196750A (zh) * 2018-02-26 2019-09-03 华为技术有限公司 一种设备的分配方法及其相关设备
CN110196750B (zh) * 2018-02-26 2023-02-24 华为技术有限公司 一种设备的分配方法及其相关设备
CN109525515A (zh) * 2018-10-23 2019-03-26 郑州云海信息技术有限公司 一种云平台中网卡的管理方法和装置
CN109525515B (zh) * 2018-10-23 2021-04-30 郑州云海信息技术有限公司 一种云平台中网卡的管理方法和装置

Also Published As

Publication number Publication date
CN110865867A (zh) 2020-03-06
US10459754B2 (en) 2019-10-29
EP3226493A1 (en) 2017-10-04
JP6571161B2 (ja) 2019-09-04
CN106489251B (zh) 2019-10-18
CN110865867B (zh) 2023-08-25
EP3226493B1 (en) 2020-03-25
KR101979363B1 (ko) 2019-05-16
BR112017000458A2 (pt) 2017-11-07
BR112017000458A8 (pt) 2022-08-23
EP3226493A4 (en) 2018-01-03
WO2017107018A1 (zh) 2017-06-29
JP2018503275A (ja) 2018-02-01
KR20180088577A (ko) 2018-08-06
US20180121226A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
CN106489251A (zh) 应用拓扑关系发现的方法、装置和系统
US20210028981A1 (en) Application migration system
CN109328335B (zh) 智能配置发现技术
CN112866333B (zh) 基于云原生的微服务场景优化方法、系统、设备和介质
US11093296B2 (en) System, virtualization control apparatus, method for controlling a virtualization control apparatus, and program
US20170373932A1 (en) Configuration discovery service data visualization
US10892948B2 (en) Creating and using service control functions
US11843510B2 (en) Automatically inferring software-defined network policies from the observed workload in a computing environment
US11539754B2 (en) Techniques for generating network security policies for application components deployed in a computing environment
KR20170104500A (ko) 네트워크 기능 가상화 관리 및 오케스트레이션 방법과 장치와 프로그램
US9882993B2 (en) Creating services using service modules
WO2021043066A1 (zh) 一种多管理域的通信方法和装置
Mangas et al. WoTemu: An emulation framework for edge computing architectures based on the Web of Things
US20220329529A1 (en) 5g filters for virtual network functions
CN109213566B (zh) 一种虚拟机迁移的方法、装置和设备
CN108123821B (zh) 一种数据分析方法及装置
US20230113327A1 (en) Scalable fine-grained resource count metrics for cloud-based data catalog service
Metsch et al. D3. 1 Infrastructure Management Foundations—Specifications & Design for Mobile Cloud framework
CN115996238A (zh) 一种基于云计算的云服务提供方法、系统及相关设备
CN118158135A (zh) 集群性能测试方法及装置、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220222

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.