BR112017000458B1 - METHOD, APPARATUS AND SYSTEM FOR DISCOVERING AN APPLICATION TOPOLOGY RELATIONSHIP - Google Patents

METHOD, APPARATUS AND SYSTEM FOR DISCOVERING AN APPLICATION TOPOLOGY RELATIONSHIP Download PDF

Info

Publication number
BR112017000458B1
BR112017000458B1 BR112017000458-5A BR112017000458A BR112017000458B1 BR 112017000458 B1 BR112017000458 B1 BR 112017000458B1 BR 112017000458 A BR112017000458 A BR 112017000458A BR 112017000458 B1 BR112017000458 B1 BR 112017000458B1
Authority
BR
Brazil
Prior art keywords
api call
virtual machine
call information
api
frequency
Prior art date
Application number
BR112017000458-5A
Other languages
Portuguese (pt)
Other versions
BR112017000458A8 (en
BR112017000458A2 (en
Inventor
Ting Liu
Original Assignee
Huawei Cloud Computing Technologies Co., Ltd
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co., Ltd filed Critical Huawei Cloud Computing Technologies Co., Ltd
Priority claimed from PCT/CN2015/098125 external-priority patent/WO2017107018A1/en
Publication of BR112017000458A2 publication Critical patent/BR112017000458A2/en
Publication of BR112017000458A8 publication Critical patent/BR112017000458A8/en
Publication of BR112017000458B1 publication Critical patent/BR112017000458B1/en

Links

Abstract

Este pedido refere-se ao campo das tecnologias de TI e, em particular, a um método, um aparelho e um sistema para descobrir uma relação de topologia de aplicativo entre máquinas virtuais. De acordo com o método para descobrir uma relação de topologia de aplicativo fornecido por este pedido, em um processo de transmissão de pacote, informações de chamada de API são registradas e um servidor de descoberta de topologia determina, ao analisar as informações de chamada de API coletadas, se existe interação entre máquinas virtuais em um agrupamento de máquinas virtuais. Ao usar a maneira de análise supracitada, o servidor de descoberta de topologia pode determinar, ainda, uma frequência de interação que ocorre entre máquinas virtuais e à qual as informações de chamada de API coletadas se referem e pode determinar uma relação de topologia de aplicativo entre as máquinas virtuais de acordo com a frequência de interação das máquinas virtuais. A solução supracitada fornece um método para descobrir uma relação de topologia de aplicativo entre máquinas virtuais em uma situação de virtualização, em que uma relação de topologia de aplicativo entre máquinas virtuais é determinada através da análise das informações de chamada de API geradas em um processo (...).This application relates to the field of IT technologies and, in particular, to a method, an apparatus and a system for discovering an application topology relationship between virtual machines. According to the method for discovering an application topology relationship provided by this application, in a packet transmission process, API call information is recorded and a topology discovery server determines, by analyzing the API call information collected, whether there is interaction between virtual machines in a cluster of virtual machines. By using the aforementioned analysis manner, the topology discovery server can further determine an interaction frequency that occurs between virtual machines and to which the collected API call information refers, and can determine an application topology relationship between virtual machines according to the frequency of interaction of virtual machines. The aforementioned solution provides a method for discovering an application topology relationship between virtual machines in a virtualization situation, wherein an application topology relationship between virtual machines is determined by analyzing the API call information generated in a process ( ...).

Description

CAMPO DA TÉCNICAFIELD OF TECHNIQUE

[0001] A presente invenção refere-se ao campo das tecnologias de TI e, em particular, a um método, um aparelho e um sistema para descobrir uma relação de topologia de aplicativo.[0001] The present invention relates to the field of IT technologies and, in particular, to a method, an apparatus and a system for discovering an application topology relationship.

ANTECEDENTESBACKGROUND

[0002] Com a chegada da era das informações, a necessidade de uma rede de computadores torna a confiabilidade da operação da rede de computadores significativamente importante e uma exigência superior é imposta no gerenciamento de rede. De acordo com uma definição de uma interconexão de sistema aberto (Open System Interconnection, OSI), há, principalmente, cinco domínios funcionais para gerenciamento de rede: gerenciamento de falhas, gerenciamento de configurações, gerenciamento de desempenho, gerenciamento de segurança e gerenciamento de contabilidade. Dentre os cinco domínios funcionais, o gerenciamento de configurações é uma base e funções principais de gerenciamento de configurações incluem descobrir uma estrutura de topologia de rede e monitorar e gerenciar um estado de configuração de um dispositivo de rede. Todas as outras funções são baseadas na estrutura de topologia de rede. A descoberta de topologia de rede é realizada para uma relação de conexão ponta a ponta em uma rede e um objetivo principal é obter e manter informações de existência de nós de rede e informações de relação de conexão dos nós de rede e desenhar um diagrama de topologia da rede inteira com base nas informações de existência e nas informações de relação de conexão.[0002] With the arrival of the information age, the need for a computer network makes the reliability of computer network operation significantly important and a higher requirement is imposed on network management. According to a definition of an Open System Interconnection (OSI), there are mainly five functional domains for network management: fault management, configuration management, performance management, security management, and accounting management . Among the five functional domains, configuration management is a foundation, and main functions of configuration management include discovering a network topology structure and monitoring and managing a configuration state of a network device. All other functions are based on the network topology structure. Network topology discovery is performed for an end-to-end connection relationship in a network and a main objective is to obtain and maintain existence information of network nodes and connection relationship information of network nodes and draw a topology diagram of the entire network based on existence information and connection relationship information.

[0003] Como uma forma específica de uma topologia de rede, uma topologia de aplicativo (Application Topology) em um sistema de TI é uma relação de comunicação de rede entre máquinas virtuais e uma comunicação de rede entre as máquinas virtuais é gerada com base em aplicativos executados pelas máquinas virtuais. Mais especificamente, a topologia de aplicativo é uma relação de emprego de componentes de aplicativo (tal como um programa, um serviço, um componente e uma máquina virtual que executa o aplicativo) em hospedeiros (tais como servidores) no sistema de TI e uma relação de interação (tal como uma solicitação de serviço e resposta) entre os componentes de aplicativo empregados.[0003] As a specific form of a network topology, an Application Topology in an IT system is a network communication relationship between virtual machines, and a network communication between virtual machines is generated based on applications run by virtual machines. More specifically, application topology is a relationship of employment of application components (such as a program, a service, a component, and a virtual machine that runs the application) on hosts (such as servers) in the IT system and a relationship of interaction (such as a service request and response) between the employed application components.

[0004] A descoberta de topologia de aplicativo existente é uma descoberta de detecção ativa. A detecção ativa é uma ação de estudar uma estrutura de aplicativo e um usuário de aplicativo enviando-se um pacote de dados de detecção relacionado para um alvo de rede e observar, registrar e retornar um resultado. Devido ao fato de que uma quantidade grade de dados precisa ser enviada para uma rede, a carga na rede é aumentada e a precisão da descoberta de topologia é baixa. Na técnica anterior, há uma falta de um método para descobrir uma topologia de aplicativo sem o uso de um pacote de dados de detecção em um ambiente de virtualização.[0004] Existing application topology discovery is an active detection discovery. Active sensing is an action of studying an application framework and an application user by sending a related sensing data packet to a network target and observing, recording, and returning a result. Due to the fact that a large amount of data needs to be sent to a network, the load on the network is increased and the accuracy of topology discovery is low. In the prior art, there is a lack of a method for discovering an application topology without the use of a detection data packet in a virtualization environment.

SUMÁRIOSUMMARY

[0005] Este pedido descreve um método, um aparelho e um sistema para descobrir uma relação de topologia de aplicativo e fornece uma solução de descoberta de topologia de aplicativo para um ambiente de virtualização, de modo a reduzir a complexidade do estabelecimento de uma relação de topologia de aplicativo entre máquinas virtuais.[0005] This application describes a method, an apparatus and a system for discovering an application topology relationship and provides an application topology discovery solution for a virtualization environment so as to reduce the complexity of establishing an application topology relationship application topology between virtual machines.

[0006] De acordo com um aspecto, este pedido fornece um método para descobrir uma relação de topologia de aplicativo, em que o método inclui: coletar pelo menos dois conjuntos de informações de chamada de API, em que cada conjunto de informações de chamada de API corresponde a uma chamada de API e cada conjunto de informações de chamada de API inclui um identificador de uma máquina virtual que corresponde à chamada de API, um tempo de ocorrência da chamada de API e uma direção de fluxo de pacote da chamada de API; analisar as informações de chamada de API coletadas mencionadas anteriormente e determinar primeiras informações de chamada de API e segundas informações de chamada de API que atendem a uma primeira condição, em que o fato de as primeiras informações de chamada de API e as segundas informações de chamada de API atenderem a primeira condição inclui: uma direção de fluxo de pacote nas primeiras informações de chamada de API e uma direção de fluxo de pacote nas segundas informações de chamada de API são mutualmente opostas e uma diferença entre um tempo de ocorrência de uma chamada de API nas primeiras informações de chamada de API e um tempo de ocorrência de uma chamada de API nas segundas informações de chamada de API é menor do que ou igual a um limite predefinido; uma vez que atender à primeira condição significa que um tempo de interação existe entre duas máquinas virtuais nas primeiras informações de chamada de API e as segundas informações de chamada de API, determinar se a frequência de interação de uma primeira máquina virtual indicada pelas primeiras informações de chamada de API e uma segunda máquina virtual indicada pelas segundas informações de chamada de API atender uma segunda condição; e, se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atender à segunda condição, determinar que existe uma relação de topologia de aplicativo entre a primeira máquina virtual e a segunda máquina virtual.[0006] According to one aspect, this application provides a method for discovering an application topology relationship, wherein the method includes: collecting at least two sets of API call information, wherein each set of API call information API corresponds to an API call, and each set of API call information includes an identifier of a virtual machine that corresponds to the API call, an occurrence time of the API call, and a packet flow direction of the API call; analyze the aforementioned collected API call information and determine first API call information and second API call information that meet a first condition, wherein the fact that the first API call information and the second API call information of APIs meeting the first condition includes: a packet flow direction in the first API call information and a packet flow direction in the second API call information are mutually opposite and a difference between an occurrence time of an API call API in the first API call information and an occurrence time of an API call in the second API call information is less than or equal to a predefined threshold; Since meeting the first condition means that an interaction time exists between two virtual machines in the first API call information and the second API call information, determining whether the interaction frequency of a first virtual machine indicated by the first API call information calling the API and a second virtual machine indicated by the second API calling information meeting a second condition; and, if the interaction frequency of the first virtual machine and the second virtual machine meets the second condition, determine that an application topology relationship exists between the first virtual machine and the second virtual machine.

[0007] De acordo com o método para descobrir uma relação de topologia de aplicativo fornecida por este pedido, informações de chamada de API em um processo de transmissão de pacote são coletadas e a existência de interação entre duas máquinas virtuais que correspondem a dois conjuntos de informações de chamada de API é determinada correlacionando se os dois conjuntos de informações de chamada de API atenderem uma primeira condição. Com o uso da maneira mencionada anteriormente, um servidor de descoberta de topologia pode determinar a frequência de interação, envolvida nas informações de chamada de API coletadas, de máquinas virtuais e uma relação de topologia de aplicativo entre as máquinas virtuais é determinada de acordo com a frequência de interação das máquinas virtuais. A solução supracitada fornece um método para descobrir uma relação de topologia de aplicativo entre máquinas virtuais em um caso de virtualização, em que uma relação de topologia de aplicativo entre máquinas virtuais é determinada analisando-se informações de chamada de API geradas em um processo de transmissão de pacote e, portanto, a complexidade da solução é relativamente baixa.[0007] According to the method for discovering an application topology relationship provided by this application, API call information in a packet transmission process is collected and the existence of interaction between two virtual machines corresponding to two sets of API call information is determined by correlating whether the two sets of API call information meet a first condition. Using the previously mentioned manner, a topology discovery server can determine the frequency of interaction, involved in the collected API call information, of virtual machines and an application topology relationship between the virtual machines is determined according to the frequency of interaction of virtual machines. The aforementioned solution provides a method for discovering an application topology relationship between virtual machines in a virtualization case, wherein an application topology relationship between virtual machines is determined by analyzing API call information generated in a streaming process of package and therefore the complexity of the solution is relatively low.

[0008] Em uma maneira de implantação possível, além das direções de fluxo de pacote e da diferença entre os tempos de ocorrência das chamadas de API, protocolos para comunicações envolvidos pelas chamadas de API também precisam ser considerados. Especificamente, cada conjunto de informações de chamada de API inclui, ainda, um protocolo de comunicações; e, de modo correspondente, o fato de que as primeiras informações de chamada de API e as segundas informações de chamada de API atendem à primeira condição inclui, ainda: um protocolo de comunicações nas primeiras informações de chamada de API e um protocolo de comunicações nas segundas informações de chamada de API são iguais. Isto é, apenas quando os protocolos para comunicações nos dois conjuntos de informações de chamada de API são iguais, uma relação de topologia de aplicativo pode existir entre duas máquinas virtuais que correspondem aos dois conjuntos de informações de chamada de API; e quando os protocolos para comunicações nos dois conjuntos de informações de chamada de API são diferentes, embora as exigências sobre as direções de fluxo de pacote e a diferença entre os tempos de ocorrência das chamadas de API sejam atendidas, ainda não é considerado que existe interação entre das duas máquinas virtuais que correspondem aos dois conjuntos de informações de chamada de API. A precisão da interação de identificação entre máquinas virtuais é aprimorada especificando-se protocolos para comunicações em uma extremidade de transmissão de pacote e uma extremidade de recebimento de pacote.[0008] In a possible deployment manner, in addition to packet flow directions and the difference between the occurrence times of API calls, protocols for communications involved by API calls also need to be considered. Specifically, each set of API call information further includes a communications protocol; and correspondingly, the fact that the first API call information and the second API call information meet the first condition further includes: a communications protocol on the first API call information and a communications protocol on the second API call information is the same. That is, only when the protocols for communications on the two sets of API call information are the same, an application topology relationship can exist between two virtual machines that correspond to the two sets of API call information; and when the protocols for communications in the two sets of API call information are different, although the requirements on the packet flow directions and the difference between the occurrence times of the API calls are met, it is still not considered that there is interaction between the two virtual machines that correspond to the two sets of API call information. The accuracy of identification interaction between virtual machines is improved by specifying protocols for communications at a packet transmitting end and a packet receiving end.

[0009] Em uma maneira de implantação possível, determinar se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atende a uma segunda condição inclui: analisar pelo menos dois conjuntos de informações de chamada de API na primeira máquina virtual e pelo menos dois conjuntos de informações de chamada de API na segunda máquina virtual, determinar a frequência de interação da primeira máquina virtual e da segunda máquina virtual, comparar a frequência de interação com a frequência predefinida, e, quando a frequência de interação for maior que a frequência predefinida, determinar que a frequência de interação atende à segunda condição. Com o uso da frequência predefinida como uma base para determinar se uma relação de topologia de aplicativo existir entre máquinas virtuais, pessoas versadas na técnica podem ajustar a frequência predefinida mencionada anteriormente para controlar a rigidez da determinação de uma relação de topologia de aplicativo. A frequência predefinida pode também ser definida de acordo com uma exigência que não é limitada por uma modalidade da presente invenção.[0009] In one possible deployment manner, determining whether the interaction frequency of the first virtual machine and the second virtual machine meets a second condition includes: analyzing at least two sets of API call information on the first virtual machine and at least two sets of API call information on the second virtual machine, determine the interaction frequency of the first virtual machine and the second virtual machine, compare the interaction frequency with the predefined frequency, and when the interaction frequency is greater than the frequency predefined, determine that the interaction frequency meets the second condition. Using the predefined frequency as a basis for determining whether an application topology relationship exists between virtual machines, persons skilled in the art can adjust the aforementioned predefined frequency to control the strictness of determining an application topology relationship. The preset frequency may also be set according to a requirement that is not limited by an embodiment of the present invention.

[0010] Em uma maneira de implantação possível, antes de comparar a frequência de interação com a frequência predefinida, o método inclui, ainda: determinar se a primeira máquina virtual e a segunda máquina virtual estão em um mesmo segmento de rede, e, quando a primeira máquina virtual e a segunda máquina virtual estiverem no segmento de rede, corrigir uma dentre a frequência de interação ou a frequência predefinida de acordo com um coeficiente de ponderação predefinido; e a comparação da frequência de interação com a frequência predefinida inclui: comparar a frequência de interação corrigida com a frequência predefinida; ou comparar a frequência de interação com a frequência predefinida corrigida.[0010] In a possible deployment manner, before comparing the interaction frequency with the predefined frequency, the method further includes: determining whether the first virtual machine and the second virtual machine are on the same network segment, and, when the first virtual machine and the second virtual machine are on the network segment, correct one of the interaction frequency or the predefined frequency according to a predefined weighting coefficient; and comparing the interaction frequency with the predefined frequency includes: comparing the corrected interaction frequency with the predefined frequency; or compare the interaction frequency with the corrected predefined frequency.

[0011] Em uma maneira de implantação possível, um servidor de descoberta de topologia pode determinar, pelo menos nas duas maneiras a seguir, se a primeira máquina virtual e a segunda máquina virtual estão no mesmo segmento de rede: maneira 1: determinar se um endereço IP da primeira máquina virtual e um endereço IP da segunda máquina virtual estão no mesmo segmento de rede; e maneira 2: determinar se um identificador de VXLAN (Virtual eXtensible Local Area Network, rede de local extensível virtual) da primeira máquina virtual e um identificador de VXLAN da segunda máquina virtual serem iguais, em que os dois identificadores são iguais, isso indica que a primeira máquina virtual e a segunda máquina virtual estão no mesmo segmento de rede.[0011] In one possible deployment manner, a topology discovery server may determine, in at least the following two ways, whether the first virtual machine and the second virtual machine are on the same network segment: way 1: determining whether a IP address of the first virtual machine and an IP address of the second virtual machine are on the same network segment; and Way 2: Determine whether a Virtual eXtensible Local Area Network (VXLAN) identifier of the first virtual machine and a VXLAN identifier of the second virtual machine are the same, where the two identifiers are the same, this indicates that the first virtual machine and the second virtual machine are on the same network segment.

[0012] É mais possível que máquinas virtuais em um mesmo segmento de rede tenham uma relação de topologia de aplicativo do que máquinas virtuais em diferentes segmentos de rede. Portanto, em uma modalidade da presente invenção, a ponderação é realizada na frequência de interação de máquinas virtuais em um mesmo segmento de rede ou a frequência predefinida é reduzida, para aumentar a precisão de descoberta uma relação de topologia de aplicativo.[0012] It is more possible for virtual machines on the same network segment to have an application topology relationship than virtual machines on different network segments. Therefore, in one embodiment of the present invention, weighting is performed on the interaction frequency of virtual machines in the same network segment or the predefined frequency is reduced, to increase the accuracy of discovering an application topology relationship.

[0013] Em uma maneira de implantação possível, em um processo de enviar um pacote da primeira máquina virtual para a segunda máquina virtual, informações de chamada de API podem ser armazenadas em um arquivo de log em um hospedeiro implantado da primeira máquina virtual e da segunda máquina virtual e o servidor de descoberta de topologia lê as informações de chamada de API do arquivo de log. Alternativamente, um módulo de agente é instalado em cada hospedeiro e o servidor de descoberta de topologia recebe informações de chamada de API relatadas pelo módulo de agente do hospedeiro.[0013] In one possible deployment manner, in a process of sending a package from the first virtual machine to the second virtual machine, API call information may be stored in a log file on a deployed host of the first virtual machine and the second virtual machine and the topology discovery server reads the API call information from the log file. Alternatively, an agent module is installed on each host and the topology discovery server receives API call information reported by the host's agent module.

[0014] Em uma maneira de implantação possível, em um processo de transmissão de pacote, informações de chamada de API podem ser gravas em um arquivo de log das maneiras a seguir: quando uma máquina virtual chama uma API para enviar um pacote para um VMM em que a máquina virtual está localizada, gravar, através da máquina virtual, um comutador virtual no VMM o VMM, informações de chamada de API em um arquivo de log em um hospedeiro implantado da máquina virtual;monitorar, através de um módulo de agente no hospedeiro implantado de uma máquina virtual, um processo de transmissão de um pacote no hospedeiro e gravar informações de chamada de API que correspondem a uma chamada de API no processo de transmissão em um arquivo de log no hospedeiro implantado da máquina virtual; receber, através de um módulo de agente no hospedeiro implantado de uma máquina virtual, informações de chamada de API que correspondem a uma chamada de API em um processo de transmissão de pacote no hospedeiro e é enviado através da máquina virtual, um comutador virtual ou um VMM, e gravar as informações de chamada de API recebidas em um arquivo de log no hospedeiro implantado da máquina virtual; ou quando um VMM de uma máquina virtual chamada uma API para enviar um pacote para a máquina virtual, gravar, através de uma dentre a máquina virtual, um comutador virtual no VMM ou o VMM, informações de chamada de API no arquivo de log no hospedeiro implantado da máquina virtual.[0014] In one possible deployment manner, in a packet transmission process, API call information may be written to a log file in the following ways: When a virtual machine calls an API to send a packet to a VMM where the virtual machine is located, write, through the virtual machine, a virtual switch in the VMM the VMM, API call information to a log file on a deployed host of the virtual machine; monitor, through an agent module in the deployed host of a virtual machine, a process of transmitting a packet on the host and recording API call information corresponding to an API call in the transmission process in a log file on the deployed host of the virtual machine; receive, through an on-host agent module deployed from a virtual machine, API call information that corresponds to an API call in an on-host packet transmission process and is sent through the virtual machine, a virtual switch, or a VMM, and write the received API call information to a log file on the virtual machine's deployed host; or when a VMM of a virtual machine calls an API to send a packet to the virtual machine, writes, through one of the virtual machine, a virtual switch in the VMM or the VMM, API call information to the log file on the host deployed from the virtual machine.

[0015] Especificamente, qualquer uma dentre a máquina virtual, o comutador virtual ou o VMM no hospedeiro pode relatar as informações de chamada de API ao módulo de agente chamando-se uma função de API de relatório de informações de topologia.[0015] Specifically, any of the virtual machine, virtual switch, or VMM on the host can report API call information to the agent module by calling a topology information reporting API function.

[0016] Em uma maneira de implantação possível, um módulo de agente é instalado em cada hospedeiro e é configurado para coletar informações de chamada de API no hospedeiro; e o módulo de agente pode monitorar uma máquina virtual, um comutador virtual e um VMM no hospedeiro, obter informações de chamada de API e gravar as informações de chamada de API obtidos em um arquivo de log; ou, após obter informações de chamada de API, o módulo de agente relata as informações de chamada de API ao servidor de descoberta de topologia.[0016] In one possible deployment manner, an agent module is installed on each host and is configured to collect API call information on the host; and the agent module can monitor a virtual machine, a virtual switch and a VMM on the host, obtain API call information, and write the obtained API call information to a log file; or, after obtaining API call information, the agent module reports the API call information to the topology discovery server.

[0017] Em uma maneira de implantação possível, a chamada de API inclui uma chamada de função de API de entrada e uma chamada de função de API de saída. Especificamente, um VMM em que uma máquina virtual está localizada chama uma função de API de saída para enviar um pacote para a máquina virtual; e a máquina virtual chamada uma função de API de entrada para enviar um pacote para o VMM em que a máquina virtual está localizada.[0017] In one possible deployment manner, the API call includes an input API function call and an output API function call. Specifically, a VMM in which a virtual machine is located calls an output API function to send a packet to the virtual machine; and the virtual machine calls an input API function to send a packet to the VMM where the virtual machine is located.

[0018] Em uma maneira de implantação possível, as informações de chamada de API podem incluir adicionalmente um identificador de uma máquina virtual de origem e um identificador de uma máquina virtual de destino; neste caso, pode ser aprendido, de acordo com um conjunto de informações de chamada de API, que um tempo de interação existe entre a máquina virtual de origem e a máquina virtual de destino.[0018] In one possible deployment manner, the API call information may additionally include an identifier of a source virtual machine and an identifier of a target virtual machine; In this case, it can be learned, according to a set of API call information, that an interaction time exists between the source virtual machine and the target virtual machine.

[0019] Adicionalmente, em termos de um bloco de máquinas virtuais em um sistema, o servidor de descoberta de topologia determina uma relação de topologia de aplicativo entre máquinas virtuais no bloco de máquinas virtuais e gera uma visualização de topologia de aplicativo do bloco de máquinas virtuais.[0019] Additionally, in terms of a block of virtual machines in a system, the topology discovery server determines an application topology relationship between virtual machines in the block of virtual machines and generates an application topology view of the block of machines virtual.

[0020] O servidor de descoberta de topologia é um servidor físico independente; ou o servidor de descoberta de topologia é disposto juntamente, em uma forma de um módulo funcional, com outros servidores físicos no sistema.[0020] The topology discovery server is an independent physical server; or the topology discovery server is arranged together, in a form of a functional module, with other physical servers in the system.

[0021] Em uma maneira de implantação possível, máquinas virtuais em uma relação de topologia de aplicativo específica podem ser executadas em um mesmo hospedeiro ou em hospedeiros diferentes. Quando as máquinas virtuais são executadas em hospedeiros diferentes, dois hospedeiros transmitem o pacote através de uma rede física externa. Em um método de transmissão específico, vários protocolos de transmissão e definições de transmissão de rede podem ser usados e este pedido não impõe limitações em uma estrutura de rede de transmissão.[0021] In one possible deployment manner, virtual machines in a specific application topology relationship can be executed on the same host or on different hosts. When virtual machines run on different hosts, two hosts transmit the packet over an external physical network. In a specific transmission method, various transmission protocols and network transmission definitions may be used, and this order does not impose limitations on a transmission network structure.

[0022] De acordo com outro aspecto, uma modalidade da presente invenção fornece outro método para descobrir uma relação de topologia de aplicativo. Uma diferença do método supracitado para descoberta de relação de topologia de aplicativo está em que, um identificador de uma máquina virtual em cada conjunto de informações de chamadas de API registradas nessa modalidade inclui tanto um identificador de uma máquina virtual de origem em uma extremidade de transmissão de pacote e um identificador de uma máquina virtual de destino em uma extremidade de recebimento de pacote. Neste caso, é determinado, de acordo com um conjunto de informações de chamadas de API, que um tempo de interação existe entre duas máquinas virtuais. Especificamente, informações de chamada de API são obtidas, em que as informações de chamada de API incluem um identificador de uma máquina virtual de origem e um identificador de uma máquina virtual de destino e as informações de chamada de API correspondem a uma chamada de API; é determinado que um tempo de interação existe entre a máquina virtual de origem e a máquina virtual de destino; e informações de chamada de API coletadas são analisadas e é determinado, de acordo com a frequência de interação da primeira máquina virtual e a segunda máquina virtual, que uma relação de topologia de aplicativo existe entre a primeira máquina virtual e a segunda máquina virtual.[0022] According to another aspect, an embodiment of the present invention provides another method for discovering an application topology relationship. A difference from the aforementioned method for application topology relationship discovery is that an identifier of a virtual machine in each set of API call information recorded in this embodiment includes both an identifier of a source virtual machine at a transmission end of packet and an identifier of a destination virtual machine on a packet receiving end. In this case, it is determined, according to a set of API call information, that an interaction time exists between two virtual machines. Specifically, API call information is obtained, wherein the API call information includes an identifier of a source virtual machine and an identifier of a target virtual machine and the API call information corresponds to an API call; it is determined that an interaction time exists between the source virtual machine and the target virtual machine; and collected API call information is analyzed and it is determined, according to the interaction frequency of the first virtual machine and the second virtual machine, that an application topology relationship exists between the first virtual machine and the second virtual machine.

[0023] De acordo com ainda outro aspecto, uma modalidade da presente invenção fornece um servidor de descoberta de topologia, em que o servidor de descoberta de topologia implanta especificamente funções dos métodos mencionados anteriormente. As funções podem ser implantadas com o uso de hardware, ou podem ser implantadas executando-se um software correspondente com o uso de hardware. O hardware ou o software inclui um ou mais módulos que correspondem às funções mencionadas anteriormente.[0023] According to yet another aspect, an embodiment of the present invention provides a topology discovery server, wherein the topology discovery server specifically implements functions of the aforementioned methods. Functions can be implemented using hardware, or they can be implemented by running corresponding software using hardware. The hardware or software includes one or more modules that correspond to the functions mentioned above.

[0024] Em um design possível, uma estrutura do servidor de descoberta de topologia inclui um processador e uma memória, em que o processador é configurado para suportar o servidor de descoberta de topologia na implantação de funções correspondentes nos métodos mencionados anteriormente. O servidor de descoberta de topologia pode incluir, ainda, a memória, em que a memória é configurada para ser acoplada ao processador e para armazenar uma instrução de programa e dados que são exigidos pelo servidor de descoberta de topologia para implantar as funções mencionadas anteriormente.[0024] In one possible design, a topology discovery server structure includes a processor and a memory, wherein the processor is configured to support the topology discovery server in implementing corresponding functions in the aforementioned methods. The topology discovery server may further include memory, wherein the memory is configured to be coupled to the processor and to store a program instruction and data that are required by the topology discovery server to implement the aforementioned functions.

[0025] De acordo com ainda outro aspecto, uma modalidade da presente invenção fornece um sistema para descobrir uma relação de topologia de aplicativo, que inclui um servidor de descoberta de topologia e pelo menos um hospedeiro, em que múltiplas máquinas virtuais são executadas no pelo menos um hospedeiro e o servidor de descoberta de topologia determinar, obtendo-se informações de chamada de API geradas quando uma API é chamado em um processo de transmissão de pacote, se uma relação de topologia de aplicativo existe entre duas máquinas virtuais. Especificamente, o servidor de descoberta de topologia, as máquinas virtuais, um módulo de agente e semelhantes implantam funções no método para descobrir uma relação de topologia de aplicativo no primeiro aspecto. As funções podem ser implantadas com o uso de hardware, ou podem ser implantadas executando-se um software correspondente com o uso de hardware. O hardware ou o software inclui um ou mais módulos que correspondem às funções mencionadas anteriormente.[0025] According to yet another aspect, an embodiment of the present invention provides a system for discovering an application topology relationship, which includes a topology discovery server and at least one host, wherein multiple virtual machines are running on the at least one at least one host and the topology discovery server determines, by obtaining API call information generated when an API is called in a packet transmission process, whether an application topology relationship exists between two virtual machines. Specifically, the topology discovery server, virtual machines, an agent module and the like deploy functions in the method to discover an application topology relationship in the first aspect. Functions can be implemented using hardware, or they can be implemented by running corresponding software using hardware. The hardware or software includes one or more modules that correspond to the functions mentioned above.

[0026] Opcionalmente, o sistema para executar o método para descobrir uma relação de topologia de aplicativo pode incluir, ainda, um banco de dados, em que o banco de dados é configurado para armazenar a relação de topologia de aplicativo e uma visualização de topologia de aplicativo. O sistema pode incluir, ainda, um nó de gerenciamento, em que o nó de gerenciamento gerencia máquinas virtuais de acordo com uma relação de topologia de aplicativo entre as máquinas virtuais, de modo a aprimorar a eficiência de gerenciamento.[0026] Optionally, the system for performing the method for discovering an application topology relationship may further include a database, wherein the database is configured to store the application topology relationship and a topology view of application. The system may further include a management node, wherein the management node manages virtual machines according to an application topology relationship between the virtual machines so as to improve management efficiency.

[0027] Em um design possível, o hospedeiro inclui um processador e uma memória, em que o processador é configurado para suportar o hospedeiro na implantação de funções correspondentes no sistema supracitado. O hospedeiro pode incluir, ainda, a memória, em que a memória é configurada para ser acoplada ao processador e armazenar uma instrução de programa e dados que são exigidos pelo processador para implantar as funções mencionadas anteriormente.[0027] In one possible design, the host includes a processor and a memory, wherein the processor is configured to support the host in implementing corresponding functions in the aforementioned system. The host may further include memory, wherein the memory is configured to be coupled to the processor and store a program instruction and data that are required by the processor to implement the aforementioned functions.

[0028] De acordo com ainda outro aspecto, uma modalidade da presente invenção fornece um meio de armazenamento de computador, em que o meio de armazenamento de computador é configurado para armazenar uma instrução de software de computador usada pelo servidor de descoberta de topologia supracitado e inclui um programa projetado para implantar as funções mencionadas anteriormente.[0028] According to yet another aspect, an embodiment of the present invention provides a computer storage medium, wherein the computer storage medium is configured to store a computer software instruction used by the aforementioned topology discovery server and includes a program designed to implement the previously mentioned functions.

[0029] De acordo com um aspecto adicional, uma modalidade da presente invenção fornece um meio de armazenamento de computador, em que o meio de armazenamento de computador é configurado para armazenar uma instrução de software de computador usada pelo hospedeiro supracitado e inclui um programa projetado para implantar as funções mencionadas anteriormente.[0029] According to a further aspect, an embodiment of the present invention provides a computer storage medium, wherein the computer storage medium is configured to store a computer software instruction used by the aforementioned host and includes a program designed to implement the previously mentioned functions.

[0030] De acordo com o método, o aparelho e o sistema para descobrir uma relação de topologia de aplicativo fornecida por este pedido, informações de chamada de API em um processo de transmissão de pacote são coletadas e a existência de interação entre duas máquinas virtuais que correspondem a dois conjuntos de informações de chamada de API é determinada correlacionando se os dois conjuntos de informações de chamada de API atendem uma primeira condição. Com o uso da maneira mencionada anteriormente, um servidor de descoberta de topologia pode determinar a frequência de interação, envolvida nas informações de chamada de API coletadas, de máquinas virtuais e uma relação de topologia de aplicativo entre as máquinas virtuais é determinada de acordo com a frequência de interação das máquinas virtuais. A solução supracitada fornece um método para descobrir uma relação de topologia de aplicativo entre máquinas virtuais em um caso de virtualização, em que uma relação de topologia de aplicativo entre máquinas virtuais é determinada analisando-se informações de chamada de API geradas em um processo de transmissão de pacote e, portanto, a complexidade da solução é relativamente baixa.[0030] According to the method, the apparatus and the system for discovering an application topology relationship provided by this application, API call information in a packet transmission process is collected and the existence of interaction between two virtual machines that correspond to two sets of API call information is determined by correlating whether the two sets of API call information meet a first condition. Using the previously mentioned manner, a topology discovery server can determine the frequency of interaction, involved in the collected API call information, of virtual machines and an application topology relationship between the virtual machines is determined according to the frequency of interaction of virtual machines. The aforementioned solution provides a method for discovering an application topology relationship between virtual machines in a virtualization case, wherein an application topology relationship between virtual machines is determined by analyzing API call information generated in a streaming process of package and therefore the complexity of the solution is relatively low.

BREVE DESCRIÇÃO DE DESENHOSBRIEF DESCRIPTION OF DRAWINGS

[0031] Para descrever as soluções técnicas nas modalidades da presente invenção ou na técnica anterior mais claramente, o seguinte descreve brevemente os desenhos em anexo necessários para descrever as modalidades da técnica anterior. Evidentemente, os desenhos em anexo na descrição seguinte meramente mostram algumas modalidades da presente invenção e pessoas de habilidade comum na técnica podem derivar outras maneiras de implantação desses desenhos em anexo sem esforços criativos. Todas essas modalidades ou maneiras de implantação devem incidir no escopo de proteção da presente invenção.[0031] To describe the technical solutions in the embodiments of the present invention or in the prior art more clearly, the following briefly describes the attached drawings necessary to describe the embodiments of the prior art. Of course, the attached drawings in the following description merely show some embodiments of the present invention and persons of ordinary skill in the art can derive other ways of implementing these attached drawings without creative efforts. All these modalities or ways of implementation must fall within the scope of protection of the present invention.

[0032] A Figura 1A é um diagrama de arquitetura esquemático de um sistema de virtualização possível de acordo com uma modalidade da presente invenção;[0032] Figure 1A is a schematic architectural diagram of a virtualization system possible in accordance with an embodiment of the present invention;

[0033] A Figura 1B é um diagrama de arquitetura esquemático de outro sistema de virtualização de acordo com uma modalidade da presente invenção;[0033] Figure 1B is a schematic architectural diagram of another virtualization system in accordance with an embodiment of the present invention;

[0034] A Figura 1C é um diagrama de arquitetura esquemático de ainda outro sistema de virtualização de acordo com uma modalidade da presente invenção;[0034] Figure 1C is a schematic architectural diagram of yet another virtualization system in accordance with an embodiment of the present invention;

[0035] A Figura 2 é um diagrama esquemático de um dispositivo de computador de acordo com uma modalidade da presente invenção;[0035] Figure 2 is a schematic diagram of a computer device in accordance with an embodiment of the present invention;

[0036] A Figura 3A é um diagrama esquemático de uma estrutura de virtualização e um hospedeiro de acordo com uma modalidade da presente invenção;[0036] Figure 3A is a schematic diagram of a virtualization structure and a host in accordance with an embodiment of the present invention;

[0037] A Figura 3B é um diagrama esquemático de uma estrutura de virtualização em um hospedeiro em uma situação direto de cartão de interface de rede de acordo com uma modalidade da presente invenção;[0037] Figure 3B is a schematic diagram of a virtualization structure in a host in a direct network interface card situation in accordance with an embodiment of the present invention;

[0038] A Figura 3C é um diagrama esquemático de uma estrutura de virtualização em um hospedeiro em outra situação direta de cartão de interface de rede de acordo com uma modalidade da presente invenção;[0038] Figure 3C is a schematic diagram of a virtualization structure in a host in another direct network interface card situation in accordance with an embodiment of the present invention;

[0039] A Figura 4 é um diagrama esquemático de obtenção de informações de chamada de API através de um agente de coleta por meio de descoberta ativa de acordo com uma modalidade da presente invenção;[0039] Figure 4 is a schematic diagram of obtaining API call information through a collection agent through active discovery in accordance with an embodiment of the present invention;

[0040] A Figura 5 é um diagrama esquemático de obtenção de informações de chamada de API através de um agente de coleta por meio de descoberta passiva de acordo com uma modalidade da presente invenção;[0040] Figure 5 is a schematic diagram of obtaining API call information through a collection agent through passive discovery in accordance with an embodiment of the present invention;

[0041] A Figura 6 é um fluxograma esquemático de obtenção, quando duas máquinas virtuais em um mesmo hospedeiro se comunicam uma com a outra, de informações de chamada de API através de um agente de coleta de acordo com uma modalidade da presente invenção;[0041] Figure 6 is a schematic flowchart of obtaining, when two virtual machines on the same host communicate with each other, API call information through a collection agent in accordance with an embodiment of the present invention;

[0042] A Figura 7 é um fluxograma esquemático de obtenção, quando duas máquinas virtuais em diferentes hospedeiros se comunicam uma com a outra, de informações de chamada de API através de um agente de coleta de acordo com uma modalidade da presente invenção;[0042] Figure 7 is a schematic flowchart of obtaining, when two virtual machines on different hosts communicate with each other, API call information through a collection agent in accordance with an embodiment of the present invention;

[0043] A Figura 8 é um diagrama estrutural esquemático de um sistema para descobrir uma relação de topologia de aplicativo de acordo com uma modalidade da presente invenção; e[0043] Figure 8 is a schematic structural diagram of a system for discovering an application topology relationship in accordance with an embodiment of the present invention; It is

[0044] A Figura 9 é um diagrama estrutural esquemático de um servidor de descoberta de topologia de acordo com uma modalidade da presente invenção.[0044] Figure 9 is a schematic structural diagram of a topology discovery server in accordance with an embodiment of the present invention.

DESCRIÇÃO DAS MODALIDADESDESCRIPTION OF MODALITIES

[0045] As soluções técnicas, de acordo com modalidades da presente invenção, são clara e completamente descritas em seguida com referência aos desenhos em anexo. Aparentemente, as modalidades descritas são meramente algumas, mas não todas as modalidades da presente invenção. Todas as outras modalidades obtidas por pessoas de habilidade comum na técnica com base nas modalidades da presente invenção sem criar esforços devem incidir no escopo de proteção da presente invenção.[0045] The technical solutions, according to embodiments of the present invention, are clearly and completely described below with reference to the attached drawings. Apparently, the described embodiments are merely some, but not all, embodiments of the present invention. All other embodiments obtained by persons of ordinary skill in the art based on the embodiments of the present invention without creating effort shall fall within the scope of protection of the present invention.

[0046] Uma arquitetura de rede e uma situação de serviço descritos nas modalidades da presente invenção são usados para descrever as soluções técnicas das modalidades da presente invenção mais claramente e não constituem uma limitação nas soluções técnicas fornecidas pelas modalidades da presente invenção. Pessoas de habilidade comum na técnica podem saber que, com a evolução da arquitetura de rede e a ocorrência de novos cenários de serviço, as soluções técnicas fornecidas pelas modalidades da presente invenção também são aplicáveis a problemas técnicas similares.[0046] A network architecture and a service situation described in the embodiments of the present invention are used to describe the technical solutions of the embodiments of the present invention more clearly and do not constitute a limitation on the technical solutions provided by the embodiments of the present invention. Persons of ordinary skill in the art may know that, with the evolution of network architecture and the occurrence of new service scenarios, the technical solutions provided by embodiments of the present invention are also applicable to similar technical problems.

[0047] Uma vez que há uma falta de um método para descobrir uma relação de topologia de aplicativo dedicada a um ambiente de virtualização em um nível de virtualização na técnica anterior, as modalidades da presente invenção fornecem um método, um aparelho e um sistema para descobrir uma relação de topologia de aplicativo entre máquinas virtuais em um ambiente de virtualização que podem identificar precisamente uma relação de topologia de aplicativo entre máquinas virtuais em um bloco de máquinas virtuais. Especificamente, as modalidades da presente invenção fornecem um servidor de descoberta de topologia configurado para coletar informações de chamada de API (Application Programming Interface, interface de programação de aplicativo) usadas em comunicação entre máquinas virtuais em cada hospedeiro. O servidor de descoberta de topologia analisa as informações de chamada de API coletadas de cada hospedeiro e gera uma relação de topologia de aplicativo entre as máquinas virtuais.[0047] Since there is a lack of a method for discovering an application topology relationship dedicated to a virtualization environment at a virtualization level in the prior art, embodiments of the present invention provide a method, an apparatus, and a system for discover an application topology relationship between virtual machines in a virtualization environment that can precisely identify an application topology relationship between virtual machines in a block of virtual machines. Specifically, embodiments of the present invention provide a topology discovery server configured to collect application programming interface (API) call information used in communication between virtual machines on each host. The topology discovery server analyzes the API call information collected from each host and generates an application topology relationship between the virtual machines.

[0048] Conforme mostrado na Figura 1A, a Figura 1A é um diagrama de arquitetura esquemático de um sistema de virtualização de acordo com uma modalidade da presente invenção. Um servidor de descoberta de topologia é conectado a cada hospedeiro e é configurado para coletar informações de chamada de API no hospedeiro. O servidor de descoberta de topologia pode armazenar, ainda, uma relação de topologia de aplicativo entre máquinas virtuais em um banco de dados. Quando um nó de gerenciamento precisa realizar uma operação de gerenciamento de acordo com a relação de topologia de aplicativo entre as máquinas virtuais, o nó de gerenciamento obtém a relação de topologia de aplicativo entre as máquinas virtuais. Especificamente, funções de cada componente mostrado na Figura 1A são descritas da seguinte forma:[0048] As shown in Figure 1A, Figure 1A is a schematic architectural diagram of a virtualization system in accordance with an embodiment of the present invention. A topology discovery server is connected to each host and is configured to collect API call information on the host. The topology discovery server can also store an application topology relationship between virtual machines in a database. When a management node needs to perform a management operation according to the application topology relationship between virtual machines, the management node obtains the application topology relationship between virtual machines. Specifically, functions of each component shown in Figure 1A are described as follows:

[0049] Cada hospedeiro é um servidor físico e diversas máquinas virtuais são executadas no hospedeiro.[0049] Each host is a physical server and several virtual machines run on the host.

[0050] Agente de coleta: Um agente de coleta (Collect Agent) é implantado em um hospedeiro e é configurado para coletar informações de chamada de API geradas quando cada máquina virtual, um comutador virtual ou um monitor de máquina virtual (Virtual Machine Monitor, VMM) no hospedeiro transmite um pacote. O agente de coleta envia as informações de chamada de API coletadas para o servidor de descoberta de topologia (Topology Discovery Server) e o servidor de descoberta de topologia analisa as informações de chamada de API coletadas, de modo a finalmente obter uma relação de topologia de aplicativo entre máquinas virtuais. O agente de coleta pode monitorar as máquinas virtuais, o comutador virtual ou o VMM (Virtual Machine Monitor, monitor de máquina virtual) no hospedeiro e registrar informações de chamada de API quando sabe-se que um pacote é enviado ou recebido; ou a máquina virtual, o comutador virtual ou o VMM relata informações de chamada de API ao agente de coleta após enviar ou receber um pacote.[0050] Collection Agent: A Collection Agent is deployed on a host and is configured to collect API call information generated when each virtual machine, virtual switch, or Virtual Machine Monitor. VMM) on the host transmits a packet. The collection agent sends the collected API call information to the Topology Discovery Server, and the Topology Discovery Server analyzes the collected API call information, so as to finally obtain a topology relationship. application between virtual machines. The collection agent can monitor the virtual machines, virtual switch, or Virtual Machine Monitor (VMM) on the host and log API call information when a packet is known to be sent or received; or the virtual machine, virtual switch, or VMM reports API call information to the collection agent after sending or receiving a packet.

[0051] Em um exemplo, após coletar as informações de chamada de API, o agente de coleta pode enviar as informações de chamada de API coletadas para o servidor de descoberta de topologia periodicamente ou em um momento apropriado (por exemplo, quando o hospedeiro ou uma rede está ocioso).[0051] In one example, after collecting the API call information, the collection agent may send the collected API call information to the topology discovery server periodically or at an appropriate time (e.g., when the host or a network is idle).

[0052] Em outro exemplo, o agente de coleta pode enviar por push ativamente as informações de chamada de API para o servidor de descoberta de topologia ou enviar por push as informações de chamada de API para o servidor de descoberta de topologia após receber passivamente uma solicitação do servidor de descoberta de topologia. Alternativamente, o agente de coleta salva as informações de chamada de API no espaço de armazenamento compartilhado com o servidor de descoberta de topologia e o servidor de descoberta de topologia lê de modo autônomo as informações de chamada de API.[0052] In another example, the collection agent may actively push the API call information to the topology discovery server or push the API call information to the topology discovery server after passively receiving a topology discovery server request. Alternatively, the collection agent saves the API call information in the storage space shared with the topology discovery server, and the topology discovery server autonomously reads the API call information.

[0053] Deve-se observar que essa modalidade da presente invenção não impõe limitação em uma maneira de transmissão específica das informações de chamada de API entre o agente de coleta e o servidor de descoberta de topologia, desde que o servidor de descoberta de topologia possa obter as informações de chamada de API de cada hospedeiro.[0053] It should be noted that this embodiment of the present invention imposes no limitation on a specific manner of transmitting the API call information between the collection agent and the topology discovery server, as long as the topology discovery server can Get the API call information from each host.

[0054] Deve-se observar, ainda, que o agente de coleta supracitado é opcional e quando nenhum agente de coleta está no hospedeiro, a máquina virtual, o comutador virtual ou o VMM podem relatar as informações de chamada de API ao servidor de descoberta de topologia de uma maneira similar àquela usada pelo agente de coleta.[0054] It should also be noted that the aforementioned collection agent is optional and when no collection agent is on the host, the virtual machine, virtual switch or VMM can report the API call information to the discovery server topology in a manner similar to that used by the collection agent.

[0055] Servidor de descoberta de topologia: O servidor de descoberta de topologia coleta informações de chamada de API de cada hospedeiro conectado ao servidor de descoberta de topologia, analisa as informações de chamada de API coletadas para obter uma relação de topologia de aplicativo entre máquinas virtuais e armazena a relação de topologia de aplicativo em um banco de dados. Adicionalmente, o servidor de descoberta de topologia pode gerar uma visualização de topologia de aplicativo de acordo com a relação de topologia de aplicativo obtida entre as máquinas virtuais.[0055] Topology discovery server: The topology discovery server collects API call information from each host connected to the topology discovery server, analyzes the collected API call information to obtain an application topology relationship between machines virtual and stores the application topology relationship in a database. Additionally, the topology discovery server can generate an application topology view according to the application topology relationship obtained between virtual machines.

[0056] Cada conjunto de informações de chamada de API inclui: um identificador de uma máquina virtual, um tempo de ocorrência de uma chamada de API e uma direção de fluxo de pacote. O identificador da máquina virtual é um identificador de uma máquina virtual que recebe ou envia um pacote. O tempo de ocorrência da chamada de API é um tempo em que a chamada de API é realizada. A direção de fluxo de pacote inclui entrada ou saída, em que a entrada se refere um pacote ser enviado de uma máquina virtual para um VMM e a saída se refere a um pacote ser emitido de um VMM para uma máquina virtual. Em um exemplo, o tempo de ocorrência da chamada de API pode ser, ainda, um tempo em que um log é registrado, a duração da chamada inteira ou um tempo em que a ocorrência da chamada é monitorada. Cada conjunto de informações de chamada de API pode incluir, ainda, um protocolo de comunicações e o protocolo de comunicações é um protocolo de comunicações usado quando a máquina virtual realiza comunicação. O protocolo de comunicações pode ser o Protocolo de Transferência de Hipertexto (HTTP, HyperText Transfer Protocol), o Protocolo de Datagrama de Usuário (User Datagram Protocol, Protocolo UDP), o Protocolo de Controle de Transmissão/Protocolo de Internet (Transmission Control Protocol/Internet Protocol, Protocolo TCP/IP) e semelhantes. O identificador da máquina virtual pode ser um endereço IP da máquina virtual. Por exemplo, as informações de chamada de API são (VM1, t1, P1, Entrada), o que indica que uma VM1 chama uma função de entrada em um momento t1 com o uso de um protocolo P1 para transmitir um pacote para um comutador virtual VSwitch ou um VMM. As informações de chamada de API são (VM2, t2, P2, Saída), o que indica que um comutador virtual ou um VMM chama uma função de saída em um momento t2 com o uso de um protocolo P2 para transmitir um pacote para um VM2.[0056] Each set of API call information includes: an identifier of a virtual machine, an occurrence time of an API call, and a packet flow direction. The virtual machine identifier is an identifier of a virtual machine that receives or sends a packet. API call occurrence time is a time at which the API call is performed. The packet flow direction includes ingress or egress, where ingress refers to a packet being sent from a virtual machine to a VMM and egress refers to a packet being emitted from a VMM to a virtual machine. In an example, the API call occurrence time may further be a time in which a log is recorded, the duration of the entire call, or a time in which the occurrence of the call is monitored. Each set of API call information may further include a communications protocol, and the communications protocol is a communications protocol used when the virtual machine performs communication. The communications protocol may be the HyperText Transfer Protocol (HTTP), the User Datagram Protocol (UDP), the Transmission Control Protocol/Internet Protocol/ Internet Protocol, TCP/IP Protocol) and the like. The virtual machine identifier can be an IP address of the virtual machine. For example, the API call information is (VM1, t1, P1, Input), which indicates that a VM1 calls an input function at a time t1 using a P1 protocol to transmit a packet to a virtual switch VSwitch or a VMM. The API call information is (VM2, t2, P2, Output), which indicates that a virtual switch or a VMM calls an output function at a time t2 using a P2 protocol to transmit a packet to a VM2 .

[0057] Deve-se observar que, quando o hospedeiro usa uma solução direta de cartão de interface de rede, um pacote é transmitido de um VMM para um cartão de interface de rede física em vez de através de um comutador virtual.[0057] It should be noted that when the host uses a direct network interface card solution, a packet is transmitted from a VMM to a physical network interface card rather than through a virtual switch.

[0058] O servidor de descoberta de topologia analisa as informações de chamada de API coletadas de cada hospedeiro, identifica a frequência de interação de máquinas virtuais e determina uma relação de topologia de aplicativo entre as máquinas virtuais.[0058] The topology discovery server analyzes the API call information collected from each host, identifies the interaction frequency of virtual machines, and determines an application topology relationship between the virtual machines.

[0059] Em um exemplo, uma API alvo das informações de chamada de API é uma função de API de entrada e uma função de API de saída.[0059] In an example, an API target of API call information is an input API function and an output API function.

[0060] Em um exemplo, uma máquina virtual de origem envia um pacote para uma máquina virtual de destino. Quando um protocolo usado pela máquina virtual de origem para enviar o pacote é igual a um protocolo usado pela máquina virtual de destino para receber o pacote e um tempo Ts pelo qual a máquina virtual de origem chama uma API para enviar o pacote e um tempo Te pelo qual a máquina virtual de destino recebe uma chamada de API do pacote estão dentro de um limite predefinido personalizado aceitável, é considerado que um tempo de interação ocorre entre a máquina virtual de origem e a máquina virtual de destino. Adicionalmente, em um período de tempo, se a frequência de interação de duas máquinas virtuais é maior do que a frequência predefinida, é determinado que uma relação de topologia de aplicativo existe entre as duas máquinas virtuais.[0060] In one example, a source virtual machine sends a packet to a destination virtual machine. When a protocol used by the source virtual machine to send the packet is the same as a protocol used by the destination virtual machine to receive the packet and a time Ts by which the source virtual machine calls an API to send the packet and a time Te by which the target virtual machine receives an API call from the package are within an acceptable custom predefined threshold, an interaction time is considered to occur between the source virtual machine and the target virtual machine. Additionally, in a period of time, if the interaction frequency of two virtual machines is greater than the predefined frequency, it is determined that an application topology relationship exists between the two virtual machines.

[0061] Exemplificativamente, o seguinte mostra exemplos de informações de chamada de API coletadas pelo servidor de descoberta de topologia neste pedido: [0061] By way of example, the following shows examples of API call information collected by the topology discovery server in this request:

[0062] O servidor de descoberta de topologia analisa as informações de chamada de API mencionadas anteriormente e determinar primeiras informações de chamada de API e segundas informações de chamada de API que atendem a uma primeira condição, em que o fato de as primeiras informações de chamada de API e as segundas informações de chamada de API atenderem a primeira condição inclui: uma direção de fluxo de pacote nas primeiras informações de chamada de API e uma direção de fluxo de pacote nas segundas informações de chamada de API são mutuamente opostas e uma diferença entre um tempo de ocorrência de uma chamada de API nas primeiras informações de chamada de API e um tempo de ocorrência de uma chamada de API nas segundas informações de chamada de API é menor do que ou igual a um limite predefinido; uma vez que atender à primeira condição significa que um tempo de interação existe entre duas máquinas virtuais nas primeiras informações de chamada de API e nas segundas informações de chamada de API, determina, ainda, se a frequência de interação de uma primeira máquina virtual indicada pelas primeiras informações de chamada de API e de uma segunda máquina virtual indicada pelas segundas informações de chamada de API atender a uma segunda condição; e se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atender à segunda condição, determinar que existe uma relação de topologia de aplicativo entre a primeira máquina virtual e a segunda máquina virtual.[0062] The topology discovery server analyzes the aforementioned API call information and determines first API call information and second API call information that meet a first condition, wherein the fact that the first call information of API call information and the second API call information meet the first condition includes: a packet flow direction in the first API call information and a packet flow direction in the second API call information are mutually opposite and a difference between an occurrence time of an API call in the first API call information and an occurrence time of an API call in the second API call information is less than or equal to a predefined threshold; Since meeting the first condition means that an interaction time exists between two virtual machines in the first API call information and the second API call information, it further determines whether the interaction frequency of a first virtual machine indicated by the first API call information and a second virtual machine indicated by the second API call information meets a second condition; and if the interaction frequency of the first virtual machine and the second virtual machine meets the second condition, determine that an application topology relationship exists between the first virtual machine and the second virtual machine.

[0063] O processo de análise supracitado fornece um método em que o servidor de descoberta de topologia determina uma relação de topologia de aplicativo entre máquinas virtuais de acordo com informações de chamada de API. Especificamente, quando um protocolo de comunicações é considerado, o processo de análise pode ser resumido nos três processos de determinação a seguir: maneira 1: determinar que direções de fluxo de pacote nos dois conjuntos de informações de chamada de API são respectivamente entrada e saída; maneira 2: determinar que protocolos para comunicações nos dois conjuntos de informações de chamada de API são iguais; ou maneira 3: determinar que a diferença entre os tempos de ocorrência das chamadas de API nos dois conjuntos de informações de chamada de API é menor ou igual ao limite predefinido (nomeadamente a segunda condição mencionada anteriormente).[0063] The aforementioned analysis process provides a method in which the topology discovery server determines an application topology relationship between virtual machines according to API call information. Specifically, when a communications protocol is considered, the analysis process can be summarized as the following three determination processes: way 1: determine which packet flow directions in the two sets of API call information are respectively input and output; Way 2: Determine which protocols for communications in the two sets of API call information are the same; or way 3: determine that the difference between the occurrence times of API calls in the two sets of API call information is less than or equal to the predefined threshold (namely the second condition mentioned above).

[0064] Os três processos de determinação mencionados anteriormente são expressos da seguinte forma em uma linguagem de programação:If( Protocolo == Protocolo && |(Tempo1 – Tempo1’)| < T && Entrada⇔Saída)[0064] The three previously mentioned determination processes are expressed as follows in a programming language:If( Protocol == Protocol && |(Time1 – Time1’)| < T && Input⇔Output)

[0065] Então, um tempo de interação ocorre entre VM1 e VM1’.[0065] Then, an interaction time occurs between VM1 and VM1’.

[0066] Deve-se observar que essa modalidade da presente invenção não impõe limitação em que o servidor de descoberta de topologia implanta os três processos de determinação mencionados anteriormente ao mesmo tempo e o servidor de descoberta de topologia pode implantar os três processos de determinação mencionados anteriormente em uma sequência diferente de acordo com uma exigência. Exemplificativamente, quando nenhum protocolo de comunicações é considerado, em termos de informações de chamada de API coletadas, o servidor de descoberta de topologia pode primeiro filtrar as informações de chamada de API de acordo com um tempo de ocorrência de uma chamada de API, selecionar informações de chamada de API que atendem a maneira 3 de determinação, filtrar adicionalmente informações de chamada de API que atendem a maneira 1 de determinação e determinar a frequência de interação de máquinas virtuais entre as quais uma relação de interação existe nas informações de chamada de API finalmente filtradas, de modo a determinar uma relação de topologia de aplicativo entre as máquinas virtuais.[0066] It should be noted that this embodiment of the present invention imposes no limitation in that the topology discovery server deploys the three aforementioned determination processes at the same time and the topology discovery server can deploy the three aforementioned determination processes previously in a different sequence according to a requirement. For example, when no communications protocol is considered, in terms of collected API call information, the topology discovery server may first filter the API call information according to an API call occurrence time, select information finally filtered to determine an application topology relationship between virtual machines.

[0067] Ainda adicionalmente, quando um bloco de máquinas virtuais usa um mesmo protocolo de comunicações ou a maioria das máquinas virtuais em um bloco de máquinas virtuais usa um mesmo protocolo de comunicações para realizar comunicação, as informações de chamada de API mencionadas anteriormente podem não incluir o protocolo de comunicações. De modo correspondente, o servidor de descoberta de topologia não precisa determinar se os protocolos para comunicações nos dois conjuntos de informações de chamada de API serem iguais. Nesse caso, a eficiência de descoberta de uma relação de topologia de aplicativo é aprimorada e a precisão pode ser reduzida.[0067] Still further, when a block of virtual machines uses the same communications protocol or the majority of virtual machines in a block of virtual machines use the same communications protocol to perform communication, the aforementioned API call information may not include the communications protocol. Correspondingly, the topology discovery server does not need to determine whether the protocols for communications in the two sets of API call information are the same. In this case, the discovery efficiency of an application topology relationship is improved and the accuracy may be reduced.

[0068] Em um exemplo, o limite na maneira 3 de determinação pode ser definido de acordo com uma exigência. Especificamente, um estado de carga de rede real pode ser considerado, o que não é limitado por essa modalidade da presente invenção.[0068] In an example, the limit in determination way 3 can be defined according to a requirement. Specifically, a real network load state can be considered, which is not limited by this embodiment of the present invention.

[0069] O servidor de descoberta de topologia cruza as informações de chamada de API coletadas para obter a frequência de interação de quaisquer duas máquinas virtuais. Quando a frequência de interação é maior do que uma frequência de interação predefinida, considera- se que uma relação de topologia de aplicativo existe entre as duas máquinas virtuais. O servidor de descoberta de topologia armazena a relação de topologia de aplicativo entre as máquinas virtuais em um banco de dados.Deve-se observar que o servidor de descoberta de topologia pode cruzar informações de chamada de API de uma chamada de API que ocorre em um período de tempo e usar um tempo de interação obtido entre as máquinas virtuais como a frequência de interação, o período de tempo pode ser definido de acordo com uma exigência. De modo correspondente, a frequência predefinida pode também ser definida de acordo com uma exigência que não é limitada por essa modalidade presente invenção.[0069] The topology discovery server cross-references the collected API call information to obtain the interaction frequency of any two virtual machines. When the interaction frequency is greater than a predefined interaction frequency, an application topology relationship is considered to exist between the two virtual machines. The Topology Discovery Server stores the application topology relationship between virtual machines in a database. It should be noted that the Topology Discovery Server can cross-reference API call information from an API call that occurs in a period of time and use an interaction time obtained between virtual machines as the interaction frequency, the period of time can be defined according to a requirement. Correspondingly, the preset frequency can also be set according to a requirement that is not limited by this embodiment of the present invention.

[0070] Deve-se observar que um erro pode ser gerado previsivelmente quando a interação entre as máquinas virtuais é calculada da maneira mencionada anteriormente. Por exemplo, em um caso em que o protocolo não é considerado, se uma máquina virtual chama uma função de API de entrada em um momento t1 para enviar um pacote para um VMM e uma máquina virtual de destino do pacote é uma máquina virtual b, informações de chamada de API registradas são (a, t1, in). A máquina virtual b recebe, em um momento t2, o pacote que é da máquina virtual a e é encaminhado pelo VMM e as informações de chamada de API registradas são (b, t2, out). Uma máquina virtual c recebe, no momento t2, um pacote que é de uma máquina virtual X e é encaminhado pelo VMM e as informações de chamada de API registradas são (b, t2, out). Uma diferença entre t1 e t2 é menor do que um intervalo predefinido, de acordo com a regra mencionada anteriormente, pode ser aprendido que um tempo de interação existe entre a máquina virtual a e a máquina virtual b; e um tempo de interação existe entre a máquina virtual a e a máquina virtual c. Aparentemente, neste caso, uma vez que o pacote da máquina virtual c é da máquina virtual X, nenhuma interação existe entre a máquina virtual a e a máquina virtual c.[0070] It should be noted that an error can be generated predictably when the interaction between virtual machines is calculated in the aforementioned manner. For example, in a case where protocol is not considered, if a virtual machine calls an inbound API function at a time t1 to send a packet to a VMM and the packet's destination virtual machine is a virtual machine b, Registered API call information is (a, t1, in). Virtual machine b receives, at time t2, the packet that is from virtual machine a and is forwarded by VMM and the registered API call information is (b, t2, out). A virtual machine c receives, at time t2, a packet that is from a virtual machine X and is forwarded by VMM and the registered API call information is (b, t2, out). A difference between t1 and t2 is less than a predefined interval, according to the previously mentioned rule, it can be learned that an interaction time exists between virtual machine a and virtual machine b; and an interaction time exists between virtual machine a and virtual machine c. Apparently, in this case, since the package from virtual machine c is from virtual machine X, no interaction exists between virtual machine a and virtual machine c.

[0071] Deve-se observar que, em uma situação de implantação de produto real, quando há uma quantidade grande de trocas de pacote entre máquinas virtuais, o erro supracitado é relativamente pequeno e não causa impacto aparente em uma relação de topologia de aplicativo entre máquinas virtuais enormes. Portanto, o erro supracitado é aceitável.[0071] It should be noted that, in a real product deployment situation, when there is a large amount of package exchanges between virtual machines, the aforementioned error is relatively small and does not cause apparent impact on an application topology relationship between huge virtual machines. Therefore, the aforementioned error is acceptable.

[0072] Deve-se observar, ainda, que, em alguns casos, identificadores de máquinas virtuais nas informações de chamada de API podem incluir, todos, um identificador de uma máquina virtual de origem e um identificador de uma máquina virtual de destino. Neste caso, teoricamente, pode ser determinado, registrando-se um conjunto de informações de chamada de API, que um tempo de interação existe entre a máquina virtual de origem e a máquina virtual de destino. Neste pedido, para garantir a eficiência de cálculo, se as informações de chamada de API incluem identificadores de dois grupos em comunicação ou apenas um identificador de um grupo em comunicação, se a existência de interação entre máquinas virtuais pode ser determinada neste pedido de acordo com o método de análise supracitado. Isto é, em termos de informações de chamada de API cuja direção de fluxo de pacote é de entrada, apenas o identificador da máquina virtual de origem nas informações de chamada de API é usado. Em termos de informações de chamada de API cuja direção de fluxo de pacote é de saída, apenas o identificador da máquina virtual de destino nas informações de chamada de API é usado. Em relação a dois tipos de formatos de informações de chamada de API, a existência de interação entre máquinas virtuais é determinada de acordo com os três processos de determinação mencionados anteriormente sem uma necessidade de realizar separadamente o cálculo para os dois tipos de formatos de informações de chamada de API, de modo que a eficiência de análise possa ser aprimorada de modo eficaz.[0072] It should also be noted that, in some cases, virtual machine identifiers in the API call information may all include an identifier of a source virtual machine and an identifier of a target virtual machine. In this case, theoretically, it can be determined by recording a set of API call information that an interaction time exists between the source virtual machine and the target virtual machine. In this application, to ensure calculation efficiency, whether the API call information includes identifiers of two communicating groups or just one identifier of a communicating group, whether the existence of interaction between virtual machines can be determined in this application according to the aforementioned analysis method. That is, in terms of API call information whose packet flow direction is inbound, only the source virtual machine identifier in the API call information is used. In terms of API call information whose packet flow direction is outbound, only the target virtual machine identifier in the API call information is used. Regarding two types of API call information formats, the existence of interaction between virtual machines is determined according to the three previously mentioned determination processes without a need to separately perform the calculation for the two types of API call information formats. API call, so that analysis efficiency can be improved effectively.

[0073] Nó de gerenciamento: Um nó de gerenciamento pode ser uma entidade funcional, tal como VMware Vcenter e FusionManager que precisa obter uma topologia de rede de uma máquina virtual. O nó de gerenciamento lê uma relação de topologia de aplicativo do servidor de descoberta de topologia ou do banco de dados supracitado.[0073] Management node: A management node can be a functional entity such as VMware Vcenter and FusionManager that needs to obtain a network topology from a virtual machine. The management node reads an application topology relationship from the topology discovery server or the aforementioned database.

[0074] Em um exemplo, o servidor de descoberta de topologia pode ser um servidor físico independente ou o servidor de descoberta de topologia serve como um módulo funcional e é disposto juntamente com outros servidores físicos, tal como o nó de gerenciamento.[0074] In one example, the topology discovery server may be an independent physical server or the topology discovery server serves as a functional module and is arranged together with other physical servers, such as the management node.

[0075] Conforme mostrado na Figura 1B, a Figura 1B é um diagrama de arquitetura esquemático de outro sistema de virtualização de acordo com uma modalidade da presente invenção e uma diferença da Figura 1A está em que um hospedeiro não inclui um agente de coleta e as informações de chamada de API são armazenadas em um arquivo de log ou enviadas diretamente para um servidor de descoberta de topologia através de uma VM, um comutador virtual ou um VMM.[0075] As shown in Figure 1B, Figure 1B is a schematic architectural diagram of another virtualization system in accordance with an embodiment of the present invention and a difference from Figure 1A is that a host does not include a collection agent and the API call information is stored in a log file or sent directly to a topology discovery server through a VM, virtual switch, or VMM.

[0076] Conforme mostrado na Figura 1C, a Figura 1C é um diagrama de arquitetura esquemático de ainda outro sistema de virtualização de acordo com uma modalidade da presente invenção. Neste caso, um servidor de descoberta de topologia e um nó de gerenciamento são dispostos juntamente e as funções do servidor de descoberta de topologia supracitado são implantadas por um módulo de descoberta de topologia no nó de gerenciamento.[0076] As shown in Figure 1C, Figure 1C is a schematic architectural diagram of yet another virtualization system in accordance with an embodiment of the present invention. In this case, a topology discovery server and a management node are arranged together, and the functions of the aforementioned topology discovery server are implemented by a topology discovery module on the management node.

[0077] Arquiteturas de virtualização fornecidas na Figura 1B e na Figura 1C são aprimoramentos com base na Figura 1A. Funções de componentes nas arquiteturas de virtualização são similares àquelas na Figura 1A, podem ser modificadas adaptativamente de acordo com mudanças nas arquiteturas e também podem implantar funções de relatório e análise de informações de chamada de API. As funções dos componentes na Figura 1B e na Figura 1C não são descritas repetidamente nas modalidades da presente invenção.[0077] Virtualization architectures provided in Figure 1B and Figure 1C are enhancements based on Figure 1A. Component functions in virtualization architectures are similar to those in Figure 1A, can be adaptively modified according to changes in architectures, and can also implement API call information reporting and analysis functions. The functions of the components in Figure 1B and Figure 1C are not repeatedly described in embodiments of the present invention.

[0078] Uma relação de topologia de aplicativo é amplamente aplicada, por exemplo, máquinas virtuais que pertencem a um mesmo agrupamento de topologia de aplicativo devem ser mais bem colocadas em uma rede coberta por um mesmo comutador ou uma rede similar, de modo a reduzir o tempo de interação. Se agrupamentos de máquinas virtuais em um sistema precisarem ser atualizados em lotes, máquinas virtuais de um mesmo agrupamento de topologia de aplicativo devem ser mais bem atualizadas em um mesmo lote. Agrupamentos de máquinas virtuais em uma relação de topologia de aplicativo devem ser mais bem colocados em um mesmo servidor ou um servidor adjacente. Os agrupamentos de máquinas virtuais em uma relação de topologia de aplicativo e agrupamentos de backup correspondentes devem ser colocados em servidores diferentes. As máquinas virtuais que correspondem a um agrupamento de topologia de aplicativo inteiro devem também ser mais bem migradas durante a migração e semelhantes. Quando um nó de gerenciamento que implanta as funções mencionadas anteriormente precisa usar uma topologia de aplicativo de uma máquina virtual, a topologia de aplicativo pode ser obtida do servidor de descoberta de topologia.[0078] An application topology relationship is widely applied, for example, virtual machines that belong to the same application topology grouping should be better placed in a network covered by the same switch or a similar network, in order to reduce the interaction time. If groupings of virtual machines in a system need to be updated in batches, virtual machines from the same application topology grouping should best be updated in the same batch. Groupings of virtual machines in an application topology relationship should best be placed on the same server or an adjacent server. Virtual machine clusters in an application topology relationship and corresponding backup clusters must be placed on different servers. Virtual machines that correspond to an entire application topology grouping should also be better migrated during migration and the like. When a management node that deploys the previously mentioned functions needs to use an application topology of a virtual machine, the application topology can be obtained from the topology discovery server.

[0079] Um agente de coleta e um servidor de descoberta de topologia podem ser implantados com o uso de hardware/software.Exemplificativamente, conforme mostrado na Figura 2, a Figura 2 é um diagrama esquemático de um dispositivo de computador de acordo com uma modalidade da presente invenção. Um dispositivo de computador 200 inclui pelo menos um processador 201, um barramento de comunicações 202, uma memória 203 e pelo menos uma interface de comunicações 204.[0079] A collection agent and a topology discovery server can be deployed using hardware/software. Exemplarily, as shown in Figure 2, Figure 2 is a schematic diagram of a computer device in accordance with one embodiment of the present invention. A computer device 200 includes at least one processor 201, a communications bus 202, a memory 203, and at least one communications interface 204.

[0080] O processador 201 pode ser uma unidade de processamento central (CPU), um microprocessador, um circuito integrado para aplicação específica (application-specific integrated circuit, ASIC) ou um ou mais circuitos integrados para controlar a execução de programa em uma solução da presente invenção.[0080] Processor 201 may be a central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling program execution in a solution of the present invention.

[0081] O barramento de comunicações 202 pode incluir um caminho para transferir informações entre os componentes mencionados anteriormente. A interface de comunicações 204 é um aparelho que usa qualquer tipo de transceptor e é configurado para se comunicar com outro dispositivo ou uma rede de comunicações, tal como Ethernet, rede de acesso de rádio (RAN) ou uma rede local sem fio (Wireless Local Area Networks, WLAN).[0081] Communications bus 202 may include a path for transferring information between the aforementioned components. Communications interface 204 is a device that uses any type of transceiver and is configured to communicate with another device or a communications network, such as Ethernet, radio access network (RAN), or a Wireless Local Area Network. Area Networks, WLAN).

[0082] A memória 203 pode ser uma memória só de leitura (readonly memory, ROM) ou outro tipo de dispositivo de armazenamento estático que pode armazenar informações e instruções estáticas, uma memória de acesso aleatório (random access memory, RAM) ou outro tipo de dispositivo de armazenamento dinâmico que pode armazenar informações e instruções, ou pode ser uma memória só de leitura programável apagável eletricamente (Electrically Erasable Programmable Read-Only Memory, EEPROM), uma memória só de leitura de disco compacto (Compact Disc Read-Only Memory, CD-ROM) ou outro armazenamento de disco compacto, armazenamento de disco óptico (incluindo um disco óptico comprimido, um disco a laser, um disco óptico, um disco versátil digital, um disco Blu-ray e semelhantes) um meio de armazenamento de disco magnético ou outro dispositivo de armazenamento magnético ou qualquer outro meio que pode ser usado para portar ou armazenar um código de programa esperado em uma forma de uma instrução ou uma estrutura de dados e pode ser acessado por um computador que não é limitado. A memória pode existir independentemente e é conectada ao processador com o uso do barramento. A memória pode também ser integrada ao processador.[0082] Memory 203 may be a readonly memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of a dynamic storage device that can store information and instructions, or it may be an Electrically Erasable Programmable Read-Only Memory, EEPROM, a Compact Disc Read-Only Memory , CD-ROM) or other compact disc storage, optical disc storage (including a compressed optical disc, a laser disc, an optical disc, a digital versatile disc, a Blu-ray disc, and the like) a magnetic disk or other magnetic storage device or any other medium that can be used to carry or store an expected program code in a form of an instruction or a data structure and can be accessed by a computer that is not limited. Memory can exist independently and is connected to the processor using the bus. Memory can also be integrated into the processor.

[0083] A memória 203 é configurada para armazenar um código de programa de aplicativo para executar uma solução da presente invenção e é implantado por meio de controle do processador 201. O processador 201 é configurado para executar o código de programa de aplicativo armazenado na memória 203.[0083] Memory 203 is configured to store an application program code for executing a solution of the present invention and is implemented through control of the processor 201. The processor 201 is configured to execute the application program code stored in the memory 203.

[0084] Em uma implantação específica, como uma modalidade, o processador 201 pode incluir uma ou mais CPUs, por exemplo, uma CPU0 e uma CPU1 na Figura 2.[0084] In a specific implementation, as one embodiment, the processor 201 may include one or more CPUs, e.g., a CPU0 and a CPU1 in Figure 2.

[0085] Em uma implantação específica, como uma modalidade, o dispositivo de computador 200 pode incluir múltiplos processadores, por exemplo, o processador 201 e um processador 208 na Figura 2. Cada um dos processadores pode ser um processador de único núcleo (CPU única) ou pode ser um processador de múltiplos núcleos (CPU múltipla). O processador, no presente documento, pode ser referir a um ou mais dispositivos, circuitos e/ou núcleos de processamento para processar dados (por exemplo, uma instrução de programa de computador).[0085] In a specific implementation, as one embodiment, the computer device 200 may include multiple processors, e.g., the processor 201 and a processor 208 in Figure 2. Each of the processors may be a single-core processor (single CPU ) or it can be a multi-core processor (multi-CPU). The processor herein may refer to one or more devices, circuits and/or processing cores for processing data (e.g., a computer program instruction).

[0086] Em uma implantação específica, como uma modalidade, o dispositivo de computador 200 pode incluir, ainda, um dispositivo de saída 205 e um dispositivo de entrada 206. O dispositivo de saída 205 se comunica com o processador 201 e pode exibir informações de múltiplas maneiras. Por exemplo, o dispositivo de saída 205 pode ser um visor de cristal líquido (liquid crystal display, LCD), um dispositivo de exibição de díodo emissor de luz (light emitting diode, LED), um dispositivo de exibição de tubo de raios catódicos cathode ray tube, CRT), um projetor (projector) ou semelhantes. O dispositivo de entrada 206 se comunica com o processador 201 e pode receber uma entrada de um usuário de múltiplas maneiras. Por exemplo, o dispositivo de entrada 206 pode ser um mouse, um teclado, um dispositivo de tela sensível ao toque, um dispositivo de detecção ou semelhantes.[0086] In a specific implementation, as one embodiment, the computer device 200 may further include an output device 205 and an input device 206. The output device 205 communicates with the processor 201 and may display information from multiple ways. For example, the output device 205 may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube display device, and a cathode ray tube display device. ray tube, CRT), a projector (projector) or similar. Input device 206 communicates with processor 201 and can receive input from a user in multiple ways. For example, the input device 206 may be a mouse, a keyboard, a touch screen device, a sensing device, or the like.

[0087] O dispositivo de computador 200 supracitado pode ser um dispositivo de computador de uso geral ou um dispositivo de computador dedicado. Em uma implantação específica, o dispositivo de computador 200 pode ser um computador de mesa, um computador portátil, um servidor de rede, um assistente pessoal digital (Personal Digital Assistant, PDA), um telefone móvel, um computador do tipo tablet, um dispositivo de terminal sem fio, um dispositivo de comunicações, um dispositivo integrado ou um dispositivo com uma estrutura similar na Figura 2. Essa modalidade da presente invenção não impõe limitação em um tipo do dispositivo de computador 200.[0087] The aforementioned computer device 200 may be a general purpose computer device or a dedicated computer device. In a specific deployment, the computer device 200 may be a desktop computer, a portable computer, a network server, a Personal Digital Assistant (PDA), a mobile phone, a tablet computer, a device of a wireless terminal, a communications device, an integrated device, or a device with a similar structure in Figure 2. This embodiment of the present invention imposes no limitation on a type of the computer device 200.

[0088] O agente de coleta, o hospedeiro e o servidor de descoberta de topologia na Figura 1A, na Figura 1B e na Figura 1C podem ser um dispositivo mostrado na Figura 2. Um ou mais módulos de software são armazenados na memória para implantar funções do agente de coleta, do hospedeiro e do servidor de descoberta de topologia (por exemplo, uma função de análise de informações de chamada de API no servidor de descoberta de topologia). O agente de coleta, o hospedeiro e o servidor de descoberta de topologia podem implantar, com o uso do processador e o código de programa na memória, um método para descobrir uma topologia de aplicativo entre máquinas virtuais.[0088] The collection agent, host, and topology discovery server in Figure 1A, Figure 1B, and Figure 1C may be a device shown in Figure 2. One or more software modules are stored in memory to deploy functions of the collection agent, the host, and the topology discovery server (for example, an API call information parsing function on the topology discovery server). The collection agent, host, and topology discovery server may implement, using processor usage and in-memory program code, a method for discovering an application topology between virtual machines.

[0089] Deve-se observar que o dispositivo de computador mostrado na Figura 2 fornece meramente uma maneira de implantação de hardware possível de partes em um sistema para descobrir uma topologia de aplicativo e componentes de hardware do dispositivo de computador podem ser adicionados ou removidos de acordo com uma diferença ou uma mudança de funções das partes no sistema, para correlacionar as funções das partes no sistema.[0089] It should be noted that the computer device shown in Figure 2 merely provides a means of possible hardware deployment of parts in a system to discover an application topology and hardware components of the computer device can be added or removed from according to a difference or a change of functions of the parts in the system, to correlate the functions of the parts in the system.

[0090] Conforme mostrado na Figura 3A, a Figura 3A é um diagrama esquemático de uma estrutura de virtualização em um hospedeiro de acordo com uma modalidade da presente invenção. O hospedeiro é um servidor físico, uma camada de fundo do servidor físico é uma camada de hardware e a camada de hardware inclui, principalmente, recursos de hardware tal como uma unidade de processamento central (CPU, Central Processing Unit), uma memória, um disco rígido e um cartão de interface de rede. A virtualização do servidor se refere à implantação de um ambiente em execução virtualizado de múltiplas máquinas virtuais (Virtual Machine, VM) em um servidor físico com o uso de software de virtualização (tal como VMWare ESX e Citrix XEN). Uma camada de software instalada no servidor para implantar um ambiente virtualizado é denominada VMM. O VMM executado na camada de hardware é responsável por programar, alocar e gerenciar os recursos de hardware na camada de hardware. Múltiplas máquinas virtuais VMs executadas no VMM e o VMM fornece a cada máquina virtual um ambiente de hardware tal como uma CPU virtualizada, uma memória, um armazenamento, um dispositivo de ES (tal como um cartão de interface de rede) e um comutador de Ethernet, de modo a garantir que as múltiplas máquinas virtuais executadas de uma maneira isolada umas das outras.[0090] As shown in Figure 3A, Figure 3A is a schematic diagram of a virtualization structure on a host in accordance with an embodiment of the present invention. The host is a physical server, a bottom layer of the physical server is a hardware layer, and the hardware layer mainly includes hardware resources such as a central processing unit (CPU), a memory, a hard disk and a network interface card. Server virtualization refers to the deployment of a virtualized running environment of multiple virtual machines (Virtual Machine, VM) on a physical server using virtualization software (such as VMWare ESX and Citrix XEN). A software layer installed on the server to deploy a virtualized environment is called VMM. The VMM running at the hardware layer is responsible for scheduling, allocating, and managing hardware resources at the hardware layer. Multiple virtual machines VMs run in VMM, and VMM provides each virtual machine with a hardware environment such as a virtualized CPU, memory, storage, an IO device (such as a network interface card), and an Ethernet switch , in order to ensure that the multiple virtual machines run in an isolated manner from each other.

[0091] Em um ambiente em execução virtualizado, o VMM cria um cartão de interface de rede virtual (Virtual Network Interface Card, vNIC) para cada máquina virtual e um comutador virtual VSwitch fornece uma capacidade de comunicação para máquinas virtuais e uma máquina virtual e uma rede externa. Para a VSwitch executada no VMM, um cartão de interface de rede virtual para cada máquina virtual corresponde a uma porta lógica da VSwitch e um cartão de interface de rede física do hospedeiro corresponde a uma porta que conecta a VSwitch a um comutador físico externo.[0091] In a virtualized running environment, VMM creates a Virtual Network Interface Card (vNIC) for each virtual machine and a VSwitch virtual switch provides a communication capability for virtual machines and a virtual machine and an external network. For VSwitch running on VMM, a virtual network interface card for each virtual machine corresponds to a logical port on the VSwitch, and a physical host network interface card corresponds to a port that connects the VSwitch to an external physical switch.

[0092] Um processo de recebimento de um pacote através de uma máquina virtual é: a VSwitch recebe um pacote de Ethernet do cartão de interface de rede física e encaminha o pacote de acordo com uma tabela de correspondência (isto é, uma tabela de MAC estática) que está entre um endereço de Controle de Acesso de Mídia (Media Access Control, MAC) de uma máquina virtual e uma porta lógica da VSwitch e que é entregue pelo VMM.[0092] One process of receiving a packet through a virtual machine is: the VSwitch receives an Ethernet packet from the physical network interface card and forwards the packet according to a correspondence table (i.e., a MAC table static) that is between a virtual machine's Media Access Control (MAC) address and a VSwitch logical port and that is delivered by VMM.

[0093] Um processo de enviar um pacote através uma máquina virtual é: quando um endereço de MAC do pacote está em uma rede externa, a VSwitch envia diretamente o pacote para a rede externa do cartão de interface de rede física; e quando um endereço de MAC de destino do pacote é conectado a uma máquina virtual de uma mesma VSwitch, a VSwitch encaminha o pacote com o uso de uma tabela de MAC estática.[0093] A process of sending a packet through a virtual machine is: when a MAC address of the packet is on an external network, the VSwitch directly sends the packet to the external network of the physical network interface card; and when a packet destination MAC address is connected to a virtual machine of the same VSwitch, the VSwitch forwards the packet using a static MAC table.

[0094] Conforme mostrado na Figura 3B, a Figura 3B é um diagrama esquemático de uma estrutura de virtualização em um hospedeiro em uma situação direto de cartão de interface de rede de acordo com uma modalidade da presente invenção. Nesse caso, um cartão de interface de rede física não é virtualizado e cada porta de saída do cartão de interface de rede física é alocada a uma máquina virtual. Conforme mostrado na Figura 3C, a Figura 3C é um diagrama esquemático de uma estrutura de virtualização em um hospedeiro em outra situação direta de cartão de interface de rede de acordo com uma modalidade da presente invenção. Uma diferença da Figura 3B está em que um cartão de interface de rede física é virtualizado em múltiplos dispositivos de função virtual (Virtual Function, VF) com o uso de uma máquina virtual, em que as tecnologias de virtualização de cartão de interface de rede mencionadas anteriormente podem ser virtualização de ES de raiz única (Single-Root I/O Virtualization, SR-IOV) e virtualização de ES de múltiplas raízes (Multi-Root I/O Virtualization, MR-IOV). Os dispositivos de função virtual podem compartilhar um recurso físico (tal como uma porta de cartão de interface de rede) do cartão de interface de rede física e os dispositivos de função virtual podem também ser correlacionados com um sistema de máquina virtual no hospedeiro.[0094] As shown in Figure 3B, Figure 3B is a schematic diagram of a virtualization structure in a host in a direct network interface card situation in accordance with an embodiment of the present invention. In this case, a physical network interface card is not virtualized, and each output port on the physical network interface card is allocated to a virtual machine. As shown in Figure 3C, Figure 3C is a schematic diagram of a virtualization structure in a host in another direct network interface card situation in accordance with an embodiment of the present invention. A difference from Figure 3B is that a physical network interface card is virtualized into multiple Virtual Function (VF) devices using a virtual machine, wherein the aforementioned network interface card virtualization technologies previously they can be Single-Root I/O Virtualization (SR-IOV) and Multi-Root I/O Virtualization (MR-IOV). The virtual function devices may share a physical resource (such as a network interface card port) of the physical network interface card, and the virtual function devices may also be mapped to a virtual machine system on the host.

[0095] O método para descobrir uma relação de topologia de aplicativo fornecido pelas modalidades da presente invenção também é aplicável a cenários mostrados na Figura 3B e na Figura 3C. Nesse caso, uma máquina virtual pode chamar diretamente uma interface de saída de um cartão de interface de rede física para transmitir um pacote, de modo a pular um comutador virtual em um VMM. Um módulo de agente pode obter informações de chamada de API de uma máquina virtual ou do VMM. Por exemplo, em uma situação direto de cartão de interface de rede, quando a máquina virtual chama uma função de API de entrada para transmitir um pacote para o cartão de interface de rede física com o uso do VMM, a máquina virtual ou o VMM podem registrar as informações de chamada de API em um arquivo de log ou podem transmitir diretamente as informações de chamada de API para um agente de coleta; ou um agente de coleta monitora a transmissão do pacote dentre a máquina virtual, o VMM e o cartão de interface de rede física e registra as informações de chamada de API em um arquivo de log.[0095] The method for discovering an application topology relationship provided by embodiments of the present invention is also applicable to scenarios shown in Figure 3B and Figure 3C. In this case, a virtual machine can directly call an output interface of a physical network interface card to transmit a packet, so as to skip a virtual switch in a VMM. An agent module can obtain API call information from a virtual machine or VMM. For example, in a direct network interface card situation, when the virtual machine calls an input API function to transmit a packet to the physical network interface card using VMM, the virtual machine or VMM can record the API call information in a log file or may directly transmit the API call information to a collection agent; or a collection agent monitors packet transmission between the virtual machine, VMM, and physical network interface card and records the API call information in a log file.

[0096] O agente de coleta pode coletar as informações de chamada de API através de dois meios: descoberta ativa e descoberta passiva. Conforme mostrado na Figura 4, a Figura 4 é um diagrama esquemático de obtenção de informações de chamada de API através de um agente de coleta por meio de descoberta ativa de acordo com uma modalidade da presente invenção. Conforme mostrado na Figura 5, a Figura 5 é um diagrama esquemático de obtenção de informações de chamada de API através de um agente de coleta por meio de descoberta passiva de acordo com uma modalidade da presente invenção. A descoberta ativa se refere a que quando uma máquina virtual chama uma função de API de entrada (API de Port_Input), a máquina virtual, um comutador virtual ou um VMM grava informações de chamada de API em um arquivo de log ou quando um comutador virtual chama uma função de API de saída (API de Port_Output), uma máquina virtual, o comutador virtual ou um VMM grava informações de chamada de API em um arquivo de log e um agente de coleta pode obter as informações de chamada de API do arquivo de log varrendo-se o arquivo de log; e a descoberta passiva se refere a que uma função de API de relatório de informações de topologia (Topo_Info_API) usada para relatar informações de chamada de API para um agente de coleta é adicionada e quando uma máquina virtual chama uma função de API de entrada (API de Port_Input) para transmitir um pacote com o uso de um VMM, a máquina virtual, um comutador virtual ou o VMM chama a função de API de relatório de informações de topologia para enviar informações de chamada de API chamada atualmente para o agente de coleta, ou quando um comutador virtual chama uma função de API de saída (API de Port_Output), uma máquina virtual, o comutador virtual ou um VMM chama a função de API de relatório de informações de topologia para enviar informações de chamada de API chamada atualmente para o agente de coleta.[0096] The collection agent can collect the API call information through two means: active discovery and passive discovery. As shown in Figure 4, Figure 4 is a schematic diagram of obtaining API call information through a collection agent through active discovery in accordance with an embodiment of the present invention. As shown in Figure 5, Figure 5 is a schematic diagram of obtaining API call information through a collection agent via passive discovery in accordance with an embodiment of the present invention. Active discovery refers to when a virtual machine calls an input API function (Port_Input API), the virtual machine, a virtual switch, or a VMM writes API call information to a log file, or when a virtual switch calls an output API function (Port_Output API), a virtual machine, virtual switch, or a VMM writes API call information to a log file, and a collection agent can obtain the API call information from the log by scanning the log file; and passive discovery refers to a topology information reporting API function (Topo_Info_API) used to report API call information to a collection agent being added, and when a virtual machine calls an input API function (API of Port_Input) to transmit a packet using a VMM, the virtual machine, a virtual switch, or the VMM calls the topology information reporting API function to send currently called API call information to the collection agent, or when a virtual switch calls an output API function (Port_Output API), a virtual machine, the virtual switch, or a VMM calls the topology information reporting API function to send currently called API call information to the collection agent.

[0097] Deve-se observar que, para diferentes sistemas operacionais, a função de API de entrada, a função de API de saída e a função de API de relatório de infomação de topologia mencionadas anteriormente podem estar em formatos diferentes, o que não é limitado por esta modalidade da presente invenção. Pessoas versadas na técnica podem compreender que as funções mencionadas anteriormente podem implantar separadamente funções de entrada, de saída e de relatório. As funções de API podem ser buscadas com o uso de um livro de referência de função de API. Exemplificativamente, o Manual de Referência de Função de API do Windows publicado por Post & Telcom Press é um manual de referência para uma função de API do Microsoft Win32; e para sistemas operacionais de outras versões ou tipos, que funções de API de entrada e funções de API de saída correspondentes podem também ser buscadas com o uso de livros de referência relacionados.[0097] It should be noted that for different operating systems, the input API function, the output API function and the topology information report API function mentioned above may be in different formats, which is not limited by this embodiment of the present invention. Persons skilled in the art can understand that the aforementioned functions can separately implement input, output and reporting functions. API functions can be searched using an API function reference book. By way of example, the Windows API Function Reference Manual published by Post & Telcom Press is a reference manual for a Microsoft Win32 API function; and for operating systems of other versions or types, corresponding input API functions and output API functions can also be looked up using related reference books.

[0098] Deve-se observar, ainda, que armazenar informações de chamada de API em um arquivo de log é meramente um exemplo. As informações de chamada de API podem também ser armazenadas em outros arquivos ou outros locais dos quais o agente de coleta pode obter as informações de chamada de API.[0098] It should also be noted that storing API call information in a log file is merely an example. The API call information may also be stored in other files or other locations from which the collection agent can obtain the API call information.

[0099] Um servidor de descoberta de topologia coleta informações de chamada de API de hospedeiros e cada conjunto de informações de chamada de API corresponde a uma chamada de API. Em modalidades da presente invenção, a chamada de API inclui especificamente uma chamada de função de API de entrada e uma chamada de função de API de saída. Uma máquina virtual de origem em uma extremidade de transmissão de pacote chama uma função de API de entrada para transmitir um pacote para um VMM, o VMM transmite o pacote para um VMM em uma extremidade de recebimento de pacote através de uma rede e o VMM na extremidade de recebimento de pacote chama uma função de API de saída para enviar o pacote para uma máquina virtual de destino. No processo supracitado, tanto um hospedeiro na extremidade de transmissão de pacote quanto um hospedeiro na extremidade de recebimento de pacote registram um conjunto de informações de chamada de API e cada conjunto de informações de chamada de API inclui um identificador de uma máquina virtual que corresponde à chamada de API, um tempo de ocorrência da chamada de API e uma direção de fluxo de pacote da chamada de API; e pode inclui, ainda, um protocolo de comunicações. O servidor de descoberta de topologia analisa as informações de chamada de API coletadas. Quando uma diferença entre tempos de ocorrência das chamadas de API nos dois conjuntos de informações de chamada de API é menor do que um limite predefinido e as direções de fluxo de pacote nos dois conjuntos de informações de chamada de API são mutuamente opostas (uma é de entrada e a outra é de saída), uma relação de interação existe entre duas máquinas virtuais que correspondem a dois identificadores das máquinas virtuais nos dois conjuntos de informações de chamada de API, de modo que a frequência de interação das duas máquinas virtuais seja determinada. Se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atender à segunda condição, é determinado que uma relação de topologia de aplicativo existe entre a primeira máquina virtual e a segunda máquina virtual. Especificamente, a frequência de interação da primeira máquina virtual e da segunda máquina virtual é determinada, a frequência de interação é comparada com a frequência predefinida e quando a frequência de interação é maior do que a frequência predefinida, é determinado que a frequência de interação atende à segunda condição. Aparentemente, as duas máquinas virtuais que correspondem aos dois identificadores das máquinas virtuais nos dois conjuntos de informações de chamada de API mencionados anteriormente são diferentes. A solução supracitada fornece um método para descobrir uma relação de topologia de aplicativo entre máquinas virtuais em um caso de virtualização, em que uma relação de topologia de aplicativo entre máquinas virtuais é determinada analisando-se informações de chamada de API geradas em um processo de transmissão de pacote e, portanto, a complexidade da solução é relativamente baixa.[0099] A topology discovery server collects API call information from hosts and each set of API call information corresponds to an API call. In embodiments of the present invention, the API call specifically includes an input API function call and an output API function call. A source virtual machine at a packet transmitting end calls an inbound API function to transmit a packet to a VMM, the VMM transmits the packet to a VMM at a packet receiving end across a network, and the VMM at the The packet receiving end calls an output API function to send the packet to a destination virtual machine. In the aforementioned process, both a host at the packet transmitting end and a host at the packet receiving end register a set of API call information, and each set of API call information includes an identifier of a virtual machine that corresponds to the API call, an occurrence time of the API call, and a packet flow direction of the API call; and may also include a communications protocol. The topology discovery server analyzes the collected API call information. When a difference between occurrence times of API calls in the two sets of API call information is smaller than a predefined threshold and the packet flow directions in the two sets of API call information are mutually opposite (one is input and the other is output), an interaction relationship exists between two virtual machines that correspond to two identifiers of the virtual machines in the two sets of API call information, such that the interaction frequency of the two virtual machines is determined. If the interaction frequency of the first virtual machine and the second virtual machine meets the second condition, it is determined that an application topology relationship exists between the first virtual machine and the second virtual machine. Specifically, the interaction frequency of the first virtual machine and the second virtual machine is determined, the interaction frequency is compared with the predefined frequency, and when the interaction frequency is greater than the predefined frequency, it is determined that the interaction frequency meets to the second condition. Apparently, the two virtual machines that correspond to the two virtual machine identifiers in the two previously mentioned sets of API call information are different. The aforementioned solution provides a method for discovering an application topology relationship between virtual machines in a virtualization case, wherein an application topology relationship between virtual machines is determined by analyzing API call information generated in a streaming process of package and therefore the complexity of the solution is relatively low.

[0100] Com referência ao diagrama esquemático de uma estrutura de virtualização em um hospedeiro mostrada na Figura 3A, conforme mostrado na Figura 6, a Figura 6 é um fluxograma esquemático de obtenção, quando duas máquinas virtuais em um mesmo hospedeiro se comunicam uma com a outra, de informações de chamada de API através de um agente de coleta de acordo com uma modalidade da presente invenção. O agente de coleta é executado no hospedeiro e serve como um módulo funcional do hospedeiro. Uma VM1 e uma VM2 (duas VMs são usadas como um exemplo para descrição nessa modalidade da presente invenção) são executadas no hospedeiro, um cartão de interface de rede virtual da VM1 é um vNIC1 e um cartão de interface de rede virtual da VM2 é um vNIC2, uma porta, em um comutador virtual, que corresponde ao vNIC1 é uma Porta1 e uma porta no comutador virtual, que corresponde ao vNIC2 é uma Porta2. Deve-se observar que alocar um cartão de interface de rede virtual a uma máquina virtual e estabelecer uma correspondência entre um cartão de interface de rede virtual e uma porta de um comutador virtual são meios técnicos comuns na técnica e um processo específico da mesma não é descrito repetidamente nesta modalidade da presente invenção. Um método mostrado na Figura 6 inclui:[0100] With reference to the schematic diagram of a virtualization structure on a host shown in Figure 3A, as shown in Figure 6, Figure 6 is a schematic flowchart of obtaining when two virtual machines on the same host communicate with each other. another, of API call information through a collection agent in accordance with an embodiment of the present invention. The collection agent runs on the host and serves as a functional module of the host. A VM1 and a VM2 (two VMs are used as an example for description in this embodiment of the present invention) are running on the host, a virtual network interface card of VM1 is a vNIC1 and a virtual network interface card of VM2 is a vNIC2, a port, on a virtual switch, that corresponds to vNIC1 is a Port1, and a port on the virtual switch, that corresponds to vNIC2 is a Port2. It should be noted that allocating a virtual network interface card to a virtual machine and establishing a correspondence between a virtual network interface card and a port of a virtual switch are common technical means in the art and a specific process thereof is not described repeatedly in this embodiment of the present invention. One method shown in Figure 6 includes:

[0101] Etapa 601: Quando a VM1 precisa enviar um pacote para a VM2, a VM1 chama uma função de API de entrada (API de Port_Input) de um VMM e envia o pacote para a Porta1 do comutador virtual com o uso do vNIC1.[0101] Step 601: When VM1 needs to send a packet to VM2, VM1 calls an input API function (Port_Input API) of a VMM and sends the packet to Port1 of the virtual switch using vNIC1.

[0102] Etapa 602: O comutador virtual determina, buscando-se uma tabela de MAC estática, o MAC de destino do pacote, e determina que uma porta do comutador virtual, que corresponde à VM2 é a Porta2.[0102] Step 602: The virtual switch determines, by searching a static MAC table, the destination MAC of the packet, and determines that a port of the virtual switch, which corresponds to VM2, is Port2.

[0103] De uma maneira possível, se a VM1 não souber um endereço da VM2, o pacote enviado pela VM1 para a VM2 não porta o endereço da VM2. Neste caso, o comutador virtual difunde o pacote da VM1 e envia o pacote da VM1 para todas as VMs do comutador virtual de uma maneira de difusão e, então, a VM2 pode receber o pacote da VM1 e retornar uma resposta.[0103] Possibly, if VM1 does not know an address of VM2, the packet sent by VM1 to VM2 does not carry the address of VM2. In this case, the virtual switch broadcasts the packet from VM1 and sends the packet from VM1 to all VMs of the virtual switch in a broadcast manner, and then VM2 can receive the packet from VM1 and return a response.

[0104] Etapa 603: O comutador virtual chama uma função de API de saída (API de Port_Output) e envia o pacote para o cartão de interface de rede virtual vNIC2 da VM2 através da Porta2 e, então, a VM2 recebe o pacote enviado pela VM1.[0104] Step 603: The virtual switch calls an output API function (Port_Output API) and sends the packet to the virtual network interface card vNIC2 of VM2 through Port2, and then VM2 receives the packet sent by VM1.

[0105] Na etapa 601, uma vez que a VM1 precisa chamar a função de API de entrada e uma chamada de API ocorre, informações de chamada de API precisam ser registradas e a VM1 pode registrar as informações de chamada de API das duas maneiras a seguir5:[0105] In step 601, since VM1 needs to call the input API function and an API call occurs, API call information needs to be registered and VM1 can register the API call information in two ways. follow5:

[0106] Maneira 1: A VM1 chama uma interface entre a VM1 e um agente de coleta e relata as informações de chamada de API; e, especificamente, a VM1 chama uma função de API de relatório de informação de topologia (API de Topo_Info) do agente de coleta e envia as informações de chamada de API para o agente de coleta. Deve-se observar que esta modalidade da presente invenção não impõe limitação em um tempo em que a VM1 envia as informações de chamada de API para o agente de coleta. Opcionalmente, a VM1 pode enviar as informações de chamada de API quando a carga de rede é pequena.[0106] Way 1: VM1 calls an interface between VM1 and a collection agent and reports API call information; and specifically, VM1 calls a topology information reporting API function (Topo_Info API) of the collection agent and sends the API call information to the collection agent. It should be noted that this embodiment of the present invention imposes no limitation on a time in which VM1 sends the API call information to the collection agent. Optionally, VM1 can send the API call information when the network load is small.

[0107] Maneira 2: A VM1 grava as informações de chamada de API em um arquivo de log e o agente de coleta lê as informações de chamada de API. Deve-se observar que esta modalidade da presente invenção não impõe limitação em um tempo em que o agente de coleta obtém as informações de chamada de API do arquivo de log. Opcionalmente, o agente de coleta pode ler periodicamente as informações de chamada de API do arquivo de log ou a VM1 instrui o agente de coleta a ler as informações de chamada de API após gravar as informações de chamada de API no arquivo de log.[0107] Way 2: VM1 writes the API call information to a log file and the collection agent reads the API call information. It should be noted that this embodiment of the present invention imposes no limitation on a time in which the collection agent obtains the API call information from the log file. Optionally, the collection agent can periodically read the API call information from the log file, or VM1 instructs the collection agent to read the API call information after writing the API call information to the log file.

[0108] Ainda adicionalmente, além de registrar as informações de chamada de API através de uma VM, um comutador virtual ou o VMM pode também registrar as informações de chamada de API. Especificamente, o comutador virtual ou o VMM grava as informações de chamada de API no arquivo de log ou envia as informações de chamada de API para o agente de coleta quando recebe o pacote enviado pela VM1.[0108] Still further, in addition to recording API call information through a VM, a virtual switch or VMM may also record API call information. Specifically, the virtual switch or VMM writes the API call information to the log file or sends the API call information to the collection agent when it receives the packet sent by VM1.

[0109] As informações de chamada de API incluem um identificador de uma máquina virtual, um tempo de ocorrência de uma chamada de API, um protocolo de comunicações e uma direção de fluxo de pacote. Opcionalmente, os identificadores de máquinas virtuais nas informações de chamada de API podem incluir um identificador de uma máquina virtual de origem e um identificador de uma máquina virtual de destino. Neste caso, pode ser identificado diretamente, de acordo meramente com um pedaço de informações de chamada de API, que um tempo de interação ocorre entre a máquina virtual de origem e a máquina virtual de destino. Deve-se observar que, quando a VM1 sabe um endereço da VM2 de extremidade de par de comunicação, as informações de chamada de API registradas podem incluir o identificador da máquina virtual de origem e o identificador da máquina virtual de destino. O protocolo de comunicações supracitado pode ser o protocolo HTTP, o protocolo TCP/IP, o protocolo UDP ou semelhantes.[0109] The API call information includes an identifier of a virtual machine, an occurrence time of an API call, a communications protocol, and a packet flow direction. Optionally, the virtual machine identifiers in the API call information may include an identifier for a source virtual machine and an identifier for a target virtual machine. In this case, it can be directly identified, according merely to a piece of API call information, that an interaction time occurs between the source virtual machine and the target virtual machine. It should be noted that when VM1 knows an address of the communication pair-end VM2, the registered API call information may include the source virtual machine identifier and the target virtual machine identifier. The aforementioned communications protocol may be the HTTP protocol, the TCP/IP protocol, the UDP protocol or similar.

[0110] Na etapa 603, uma vez que o comutador virtual chama a função de API de saída (API de Port_Output) e uma chamada de API ocorre, informações de chamada de API precisam ser registradas. Similar à VM1, o comutador virtual também pode registrar as informações de chamada de API das duas maneiras a seguir:[0110] In step 603, once the virtual switch calls the output API function (Port_Output API) and an API call occurs, API call information needs to be recorded. Similar to VM1, the virtual switch can also record API call information in the following two ways:

[0111] Maneira 1: O comutador virtual chama uma interface entre o comutador virtual e um agente de coleta e relata as informações de chamada de API; e, especificamente, o comutador virtual chama uma função de API de relatório de informação de topologia (API de Topo_Info) do agente de coleta e envia as informações de chamada de API para o agente de coleta. Deve-se observar que esta modalidade da presente invenção não impõe limitação em um tempo em que o comutador virtual envia as informações de chamada de API para o agente de coleta. A função de API de relatório de informação de topologia pode ser implantada com o uso de uma função de GANCHO ou código de modificação, desde que a transmissão das informações de chamada de API possa ser fornecida.[0111] Way 1: The virtual switch calls an interface between the virtual switch and a collection agent and reports the API call information; and specifically, the virtual switch calls a topology information reporting API function (Topo_Info API) of the collection agent and sends the API call information to the collection agent. It should be noted that this embodiment of the present invention imposes no limitation on a time in which the virtual switch sends the API call information to the collection agent. The topology information reporting API function can be implemented using a HOOK function or modifying code, as long as the transmission of the API call information can be provided.

[0112] Maneira 2: O comutador virtual grava as informações de chamada de API em um arquivo de log e o agente de coleta lê as informações de chamada de API. Deve-se observar que esta modalidade da presente invenção não impõe limitação em um tempo em que o agente de coleta obtém as informações de chamada de API do arquivo de log.[0112] Way 2: The virtual switch writes the API call information to a log file, and the collection agent reads the API call information. It should be noted that this embodiment of the present invention imposes no limitation on a time in which the collection agent obtains the API call information from the log file.

[0113] Ainda adicionalmente, na etapa 603, além do comutador virtual, as informações de chamada de API podem também ser registradas por uma máquina virtual (VM2) ou o VMM, o que não é descrito repetidamente nesta modalidade da presente invenção.[0113] Still further, in step 603, in addition to the virtual switch, the API call information may also be registered by a virtual machine (VM2) or the VMM, which is not repeatedly described in this embodiment of the present invention.

[0114] O método mostrado na Figura 6 fornece um processo de obtenção, quando duas máquinas virtuais em um mesmo hospedeiro se comunicam uma com a outra, informações de chamada de API através de um agente de coleta. Com referência ao diagrama esquemático de uma estrutura de virtualização mostrada na Figura 3A, conforme mostrado na Figura 7, a Figura 7 é um fluxograma esquemático de obtenção, quando duas máquinas virtuais em diferentes hospedeiros se comunicam uma com a outra, de informações de chamada de API através de um agente de coleta de acordo com uma modalidade da presente invenção. Os dois hospedeiros podem usar a estrutura de virtualização mostrada na Figura 3A e os hospedeiros são conectados por um comutador físico. Uma VM1 e um comutador virtual 1 são executadas em um hospedeiro 1, uma VM2 e um comutador virtual 2 (duas VMs são usadas como um exemplo para descrição desta modalidade da presente invenção) são executadas em um hospedeiro 2, um cartão de interface de rede virtual da VM1 é um vNIC1 e um cartão de interface de rede virtual da VM2 é um vNIC2, uma porta no comutador virtual 1, que corresponde ao vNIC1, é uma Porta1 e uma porta no comutador virtual 2, que corresponde ao vNIC2 é uma Porta2. Deve-se observar que alocar um cartão de interface de rede virtual a uma máquina virtual e estabelecer uma correspondência entre um cartão de interface de rede virtual e uma porta de um comutador virtual são meios técnicos comuns na técnica e um processo específico da mesma não é descrito repetidamente nesta modalidade da presente invenção. Um método mostrado na Figura 7 inclui:[0114] The method shown in Figure 6 provides a process for obtaining, when two virtual machines on the same host communicate with each other, API call information through a collection agent. With reference to the schematic diagram of a virtualization framework shown in Figure 3A, as shown in Figure 7, Figure 7 is a schematic flowchart of obtaining, when two virtual machines on different hosts communicate with each other, call information. API through a collection agent according to an embodiment of the present invention. The two hosts can use the virtualization framework shown in Figure 3A, and the hosts are connected by a physical switch. A VM1 and a virtual switch 1 run on a host 1, a VM2 and a virtual switch 2 (two VMs are used as an example for describing this embodiment of the present invention) run on a host 2, a network interface card virtual network interface card of VM1 is a vNIC1 and a virtual network interface card of VM2 is a vNIC2, a port on virtual switch 1, which corresponds to vNIC1, is a Port1, and a port on virtual switch 2, which corresponds to vNIC2 is a Port2 . It should be noted that allocating a virtual network interface card to a virtual machine and establishing a correspondence between a virtual network interface card and a port of a virtual switch are common technical means in the art and a specific process thereof is not described repeatedly in this embodiment of the present invention. One method shown in Figure 7 includes:

[0115] Etapa 701: Quando a VM1 precisa enviar um pacote para a VM2, a VM1 chama uma função de API de entrada (API de Port_Input) de um VMM e envia o pacote para a Porta1 do comutador virtual com o uso do vNIC1.[0115] Step 701: When VM1 needs to send a packet to VM2, VM1 calls an input API function (Port_Input API) of a VMM and sends the packet to Port1 of the virtual switch using vNIC1.

[0116] Etapa 702: O comutador virtual 1 recebe o pacote na porta1 e determina um endereço de MAC de destino e uma rede externa do pacote e, então, o comutador virtual 1 envia o pacote para a rede externa com o uso de um cartão de interface de rede física do hospedeiro 1.[0116] Step 702: Virtual switch 1 receives the packet on port1 and determines a destination MAC address and external network from the packet, and then virtual switch 1 sends the packet to the external network using a card host 1 physical network interface.

[0117] Etapa 703: O pacote é encaminhado, de acordo com uma regra de encaminhamento de pacote existente, a um cartão de interface de rede física do hospedeiro 2 em que a VM2 está localizada.[0117] Step 703: The packet is forwarded, according to an existing packet forwarding rule, to a physical network interface card of host 2 where VM2 is located.

[0118] Etapa 704: O hospedeiro 2 recebe o pacote com o uso do cartão de interface de rede física do hospedeiro 2.[0118] Step 704: Host 2 receives the packet using host 2's physical network interface card.

[0119] Etapa 705: O comutador virtual 2 determina que uma porta que corresponde à VM2 é a Porta2 e o comutador virtual 2 envia o pacote para o cartão de interface de rede virtual vNIC2 da VM2 através da porta Porta2; e, então, a VM2 recebe o pacote enviado pelo VM1.[0119] Step 705: Virtual switch 2 determines that a port corresponding to VM2 is Port2, and virtual switch 2 sends the packet to the virtual network interface card vNIC2 of VM2 via the Port2 port; and then VM2 receives the packet sent by VM1.

[0120] Deve-se observar que, no processo de transmissão de pacote supracitado, o pacote pode ser encapsulado e decapsulado de acordo com uma regra existente, o que não é descrito repetidamente nesta modalidade da presente invenção.[0120] It should be noted that, in the aforementioned packet transmission process, the packet can be encapsulated and decapsulated according to an existing rule, which is not repeatedly described in this embodiment of the present invention.

[0121] Na etapa 701, a VM1 registra as informações de chamada de API de uma maneira similar àquela definida na etapa 601. Um agente de coleta no hospedeiro 1 obtém as informações de chamada de API.[0121] In step 701, VM1 records the API call information in a manner similar to that defined in step 601. A collection agent on host 1 obtains the API call information.

[0122] Na etapa 705, o comutador virtual 2 registra as informações de chamada de API de uma maneira similar àquela definida na etapa 603. Um agente de coleta no hospedeiro 2 obtém as informações de chamada de API.[0122] In step 705, virtual switch 2 records the API call information in a manner similar to that defined in step 603. A collection agent on host 2 obtains the API call information.

[0123] Deve-se observar que, um comutador virtual distribuído pode ser usado nesta modalidade da presente invenção, o comutador virtual distribuído pode abranger múltiplos hospedeiros, de modo que máquinas virtuais nos múltiplos hospedeiros sejam conectadas de modo semelhante a um mesmo comutador virtual e as máquinas virtuais possam ser migradas entre os múltiplos hospedeiros mencionados anteriormente ou múltiplas chaves virtuais distribuídas possam existir em um hospedeiro. Quando um comutador virtual distribuído é usado, uma maneira de obter informações de chamada de API através de um agente de coleta é similar àquela mencionada anteriormente, o que não é descrito repetidamente no presente pedido.[0123] It should be noted that, a distributed virtual switch can be used in this embodiment of the present invention, the distributed virtual switch can span multiple hosts, so that virtual machines on multiple hosts are similarly connected to the same virtual switch and virtual machines can be migrated between the previously mentioned multiple hosts or multiple distributed virtual keys can exist on one host. When a distributed virtual switch is used, a way of obtaining API call information through a collection agent is similar to that mentioned above, which is not repeatedly described in the present application.

[0124] Em termos dos processos de método mostrados na Figura 6 e na Figura 7, quando um hospedeiro não inclui um agente de coleta, uma máquina virtual ou um comutador virtual pode relatar informações de chamada de API diretamente ao servidor de descoberta de topologia de maneiras definidas na Figura 6 e na Figura 7.[0124] In terms of the method processes shown in Figure 6 and Figure 7, when a host does not include a collection agent, a virtual machine or a virtual switch may report API call information directly to the topology discovery server. ways defined in Figure 6 and Figure 7.

[0125] De acordo com o método para descobrir uma relação de topologia de aplicativo fornecida por este pedido, em um processo de transmissão de pacote, informações de chamada de API são registradas, e, se existe interação entre duas máquinas virtuais que correspondem a dois conjuntos de informações de chamada de API é determinado correlacionando- se se os dois conjuntos de informações de chamada de API atendem uma primeira condição. Com o uso da maneira mencionada anteriormente, um servidor de descoberta de topologia pode determinar a frequência de interação, envolvida nas informações de chamada de API coletadas, de máquinas virtuais e uma relação de topologia de aplicativo entre as máquinas virtuais é determinada de acordo com a frequência de interação das máquinas virtuais. A solução mencionada anteriormente fornece um método para descobrir uma relação de topologia de aplicativo entre máquinas virtuais em uma situação de virtualização, em que informações de chamada de API precisam ser registradas por apenas duas extremidades que realizam transmissão de pacote e, portanto, a complexidade da solução é relativamente baixa.[0125] According to the method for discovering an application topology relationship provided by this application, in a packet transmission process, API call information is recorded, and, if there is interaction between two virtual machines corresponding to two API call information sets is determined by correlating whether the two API call information sets meet a first condition. Using the previously mentioned manner, a topology discovery server can determine the frequency of interaction, involved in the collected API call information, of virtual machines and an application topology relationship between the virtual machines is determined according to the frequency of interaction of virtual machines. The previously mentioned solution provides a method for discovering an application topology relationship between virtual machines in a virtualization situation, where API call information needs to be registered by only two ends performing packet transmission, and therefore the complexity of solution is relatively low.

[0126] Conforme mostrado na Figura 8, a Figura 8 mostra um sistema para descobrir uma relação de topologia de aplicativo de acordo com uma modalidade da presente invenção, em que o sistema 80 inclui um servidor de descoberta de topologia 81 e pelo menos um hospedeiro 82 e múltiplas máquinas virtuais executadas no pelo menos um hospedeiro 82.[0126] As shown in Figure 8, Figure 8 shows a system for discovering an application topology relationship in accordance with an embodiment of the present invention, wherein the system 80 includes a topology discovery server 81 and at least one host 82 and multiple virtual machines running on at least one host 82.

[0127] Quando uma máquina virtual 822 das múltiplas máquinas virtuais envia um pacote ou um VMM no pelo menos um hospedeiro 82 encaminha um pacote a uma máquina virtual 822 das múltiplas máquinas virtuais, informações de chamada de interface de programação de aplicativo API são geradas.[0127] When a virtual machine 822 of the multiple virtual machines sends a packet or a VMM at least one host 82 forwards a packet to a virtual machine 822 of the multiple virtual machines, API application programming interface call information is generated.

[0128] O servidor de descoberta de topologia 81 é configurado para coletar pelo menos dois conjuntos de informações de chamada de interface de programação de aplicativo API, em que cada conjunto de informações de chamada de API corresponde a uma chamada de API e cada conjunto de informações de chamada de API inclui um identificador de uma máquina virtual que corresponde à chamada de API, um tempo de ocorrência da chamada de API e uma direção de fluxo de pacote da chamada de API.[0128] Topology discovery server 81 is configured to collect at least two sets of API application programming interface call information, wherein each set of API call information corresponds to an API call and each set of API call information includes an identifier of a virtual machine that corresponds to the API call, an occurrence time of the API call, and a packet flow direction of the API call.

[0129] O servidor de descoberta de topologia 81 é configurado, ainda, para analisar os pelo menos dois conjuntos de informações de chamada de API e determinar primeiras informações de chamada de API e segundas informações de chamada de API que atendem a uma primeira condição, em que o fato de que as primeiras informações de chamada de API e as segundas informações de chamada de API atendem à primeira condição inclui: uma direção de fluxo de pacote nas primeiras informações de chamada de API e uma direção de fluxo de pacote nas segundas informações de chamada de API são mutuamente opostas e uma diferença entre um tempo de ocorrência de uma chamada de API nas primeiras informações de chamada de API e um tempo de ocorrência de uma chamada de API nas segundas informações de chamada de API é menor ou igual a um limite predefinido.[0129] Topology discovery server 81 is further configured to analyze the at least two sets of API call information and determine first API call information and second API call information that meet a first condition, wherein the fact that the first API call information and the second API call information meet the first condition includes: a packet flow direction in the first API call information and a packet flow direction in the second information of API calls are mutually opposite and a difference between an occurrence time of an API call in the first API call information and an occurrence time of an API call in the second API call information is less than or equal to one predefined limit.

[0130] O servidor de descoberta de topologia 81 é configurado, ainda, para determinar se a frequência de interação de uma primeira máquina virtual 822 indicada pelas primeiras informações de chamada de API e uma segunda máquina virtual 822 indicada pelas segundas informações de chamada de API atende a uma segunda condição; e se for determinado que a frequência de interação da primeira máquina virtual 822 e da segunda máquina virtual 822 atende à segunda condição, determinar que existe uma relação de topologia de aplicativo entre a primeira máquina virtual 822 e a segunda máquina virtual 822.[0130] Topology discovery server 81 is further configured to determine whether the interaction frequency of a first virtual machine 822 indicated by the first API call information and a second virtual machine 822 indicated by the second API call information meets a second condition; and if it is determined that the frequency of interaction of the first virtual machine 822 and the second virtual machine 822 meets the second condition, determining that an application topology relationship exists between the first virtual machine 822 and the second virtual machine 822.

[0131] Adicionalmente, cada conjunto de informações de chamada de API inclui, ainda, um protocolo de comunicações; e, de modo correspondente, o fato de que as primeiras informações de chamada de API e as segundas informações de chamada de API atendem à primeira condição inclui, ainda: um protocolo de comunicações nas primeiras informações de chamada de API e um protocolo de comunicações nas segundas informações de chamada de API são iguais.[0131] Additionally, each set of API call information further includes a communications protocol; and correspondingly, the fact that the first API call information and the second API call information meet the first condition further includes: a communications protocol on the first API call information and a communications protocol on the second API call information is the same.

[0132] O servidor de descoberta de topologia 81 é configurado especificamente para analisar pelo menos dois conjuntos de informações de chamada de API na primeira máquina virtual 822 e pelo menos dois conjuntos de informações de chamada de API na segunda máquina virtual 822, determinar a frequência de interação da primeira máquina virtual 822 e da segunda máquina virtual 822, comparar a frequência de interação com frequência predefinida, e, quando a frequência de interação for maior que a frequência predefinida, determinar que a frequência de interação atende à segunda condição.[0132] Topology discovery server 81 is specifically configured to analyze at least two sets of API call information on the first virtual machine 822 and at least two sets of API call information on the second virtual machine 822, determine the frequency of interaction of the first virtual machine 822 and the second virtual machine 822, compare the interaction frequency with predefined frequency, and, when the interaction frequency is greater than the predefined frequency, determine that the interaction frequency meets the second condition.

[0133] O servidor de descoberta de topologia 81 é configurado especificamente para determinar se a primeira máquina virtual 822 e a segunda máquina virtual 822 estão em um mesmo segmento de rede, e quando a primeira máquina virtual 822 e a segunda máquina virtual 822 estão no mesmo segmento de rede, corrigir uma dentre a frequência de interação ou a frequência predefinida de acordo com um coeficiente de ponderação predefinido e comparar a frequência de interação corrigida com a frequência predefinida; ou comparar a frequência de interação com a frequência predefinida corrigida.[0133] Topology discovery server 81 is specifically configured to determine whether the first virtual machine 822 and the second virtual machine 822 are on the same network segment, and when the first virtual machine 822 and the second virtual machine 822 are on the same network segment. same network segment, correct one of the interaction frequency or the predefined frequency according to a predefined weighting coefficient and compare the corrected interaction frequency with the predefined frequency; or compare the interaction frequency with the corrected predefined frequency.

[0134] O servidor de descoberta de topologia 81 é configurado especificamente para ler separadamente os pelo menos dois conjuntos de informações de chamada de API de um arquivo de log no hospedeiro 82 implantado das múltiplas máquinas virtuais; ou o servidor de descoberta de topologia 81 é configurado especificamente para receber os pelo menos dois conjuntos de informações de chamada de API relatados por um módulo de agente no hospedeiro implantado das múltiplas máquinas virtuais.[0134] The topology discovery server 81 is specifically configured to separately read the at least two sets of API call information from a log file on the deployed host 82 of the multiple virtual machines; or the topology discovery server 81 is specifically configured to receive the at least two sets of API call information reported by an agent module on the deployed host of the multiple virtual machines.

[0135] Adicionalmente, a chamada de API inclui uma chamada de função de API de entrada e uma chamada de função de API de saída.[0135] Additionally, the API call includes an input API function call and an output API function call.

[0136] O sistema 80 para descobrir uma topologia de aplicativo inclui, ainda: a máquina virtual 822, configurada, ainda, para: quando uma API é chamado para enviar um pacote para um VMM em que a máquina virtual 822 está localizada ou para receber um pacote encaminhado pelo VMM, gravar informações de chamada de API em um arquivo de log no hospedeiro 82 implantado da máquina virtual 822; ou um módulo de agente no implantado da máquina virtual 822, configurado para gravar informações de chamada de API que correspondem a uma chamada de API em um processo de transmissão de pacote no arquivo de log no hospedeiro 82 implantado da máquina virtual 822.[0136] The system 80 for discovering an application topology further includes: the virtual machine 822, further configured to: when an API is called to send a packet to a VMM in which the virtual machine 822 is located or to receive a packet forwarded by VMM, writing API call information to a log file on the deployed host 82 of virtual machine 822; or an agent module in the deployed virtual machine 822 configured to write API call information corresponding to an API call in a packet transmission process to the log file in the deployed host 82 of the virtual machine 822.

[0137] Em correspondência ao sistema supracitado, conforme mostrado na Figura 9, a Figura 9 mostra um servidor de descoberta de topologia de acordo com uma modalidade da presente invenção, em que o servidor de descoberta de topologia inclui: uma unidade de obtenção 91, configurada para coletar pelo menos dois conjuntos de informações de chamada de interface de programação de aplicativo API, em que cada conjunto de informações de chamada de API corresponde a uma chamada de API e cada conjunto de informações de chamada de API inclui um identificador de uma máquina virtual que corresponde à chamada de API, um tempo de ocorrência da chamada de API e uma direção de fluxo de pacote da chamada de API; e uma unidade de análise 92, configurada para analisar os pelo menos dois conjuntos de informações de chamada de interface de programação de aplicativo API e determinar primeiras informações de chamada de API e segundas informações de chamada de API que atendem a uma primeira condição, em que o fato de que as primeiras informações de chamada de API e as segundas informações de chamada de API atendem à primeira condição inclui: uma direção de fluxo de pacote nas primeiras informações de chamada de API e uma direção de fluxo de pacote nas segundas informações de chamada de API são mutuamente opostas e uma diferença entre um tempo de ocorrência de uma chamada de API nas primeiras informações de chamada de API e um tempo de ocorrência de uma chamada de API nas segundas informações de chamada de API é menor ou igual a um limite predefinido.[0137] Corresponding to the aforementioned system as shown in Figure 9, Figure 9 shows a topology discovery server in accordance with an embodiment of the present invention, wherein the topology discovery server includes: a get unit 91, configured to collect at least two sets of API application programming interface call information, wherein each set of API call information corresponds to an API call and each set of API call information includes an identifier of a machine virtual that corresponds to the API call, an occurrence time of the API call, and a packet flow direction of the API call; and an analysis unit 92, configured to analyze the at least two sets of API application programming interface call information and determine first API call information and second API call information that meet a first condition, wherein the fact that the first API call information and the second API call information meet the first condition includes: a packet flow direction in the first API call information and a packet flow direction in the second call information of APIs are mutually opposite and a difference between an occurrence time of an API call in the first API call information and an occurrence time of an API call in the second API call information is less than or equal to a predefined threshold .

[0138] A unidade de análise 92 é configurada, ainda, para determinar se a frequência de interação de uma primeira máquina virtual indicada pelas primeiras informações de chamada de API e uma segunda máquina virtual indicada pelas segundas informações de chamada de API atende a uma segunda condição; e se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atender à segunda condição, determinar que existe uma relação de topologia de aplicativo entre a primeira máquina virtual e a segunda máquina virtual.[0138] The analysis unit 92 is further configured to determine whether the interaction frequency of a first virtual machine indicated by the first API call information and a second virtual machine indicated by the second API call information meets a second condition; and if the interaction frequency of the first virtual machine and the second virtual machine meets the second condition, determine that an application topology relationship exists between the first virtual machine and the second virtual machine.

[0139] Adicionalmente, cada conjunto de informações de chamada de API inclui, ainda, um protocolo de comunicações; e, de modo correspondente, o fato de que as primeiras informações de chamada de API e as segundas informações de chamada de API atendem à primeira condição inclui, ainda: um protocolo de comunicações nas primeiras informações de chamada de API e um protocolo de comunicações nas segundas informações de chamada de API são iguais.[0139] Additionally, each set of API call information further includes a communications protocol; and correspondingly, the fact that the first API call information and the second API call information meet the first condition further includes: a communications protocol on the first API call information and a communications protocol on the second API call information is the same.

[0140] A unidade de análise 92 é configurada especificamente para analisar pelo menos dois conjuntos de informações de chamada de API na primeira máquina virtual e pelo menos dois conjuntos de informações de chamada de API na segunda máquina virtual, determinar a frequência de interação da primeira máquina virtual e da segunda máquina virtual, comparar a frequência de interação com a frequência predefinida, e, quando a frequência de interação for maior que a frequência predefinida, determinar que a frequência de interação atende à segunda condição.[0140] Analysis unit 92 is specifically configured to analyze at least two sets of API call information on the first virtual machine and at least two sets of API call information on the second virtual machine, determine the interaction frequency of the first virtual machine and the second virtual machine, compare the interaction frequency with the predefined frequency, and, when the interaction frequency is greater than the predefined frequency, determine that the interaction frequency meets the second condition.

[0141] A unidade de análise 92 é configurada especificamente para determinar se a primeira máquina virtual e a segunda máquina virtual estão em um mesmo segmento de rede, e, quando a primeira máquina virtual e a segunda máquina virtual estiverem no mesmo segmento de rede, corrigir uma dentre a frequência de interação ou a frequência predefinida de acordo com um coeficiente de ponderação predefinido.[0141] The analysis unit 92 is specifically configured to determine whether the first virtual machine and the second virtual machine are on the same network segment, and, when the first virtual machine and the second virtual machine are on the same network segment, correct one of the interaction frequency or the predefined frequency according to a predefined weighting coefficient.

[0142] A unidade de análise 92 é configurada especificamente para comparar a frequência de interação corrigida com a frequência predefinida; ou comparar a frequência de interação com a frequência predefinida corrigida.[0142] Analysis unit 92 is specifically configured to compare the corrected interaction frequency with the predefined frequency; or compare the interaction frequency with the corrected predefined frequency.

[0143] A unidade de obtenção 91 é configurada especificamente para ler separadamente os pelo menos dois conjuntos de informações de chamada de API de um arquivo de log em um hospedeiro implantado das múltiplas máquinas virtuais; ou a unidade de obtenção 91 é configurada especificamente para receber os pelo menos dois conjuntos de informações de chamada de API relatados por um módulo de agente em um hospedeiro implantado das múltiplas máquinas virtuais.[0143] The obtaining unit 91 is specifically configured to separately read the at least two sets of API call information from a log file on a deployed host of the multiple virtual machines; or the obtaining unit 91 is specifically configured to receive the at least two sets of API call information reported by an agent module on a deployed host of the multiple virtual machines.

[0144] A chamada de API inclui uma chamada de função de API de entrada e uma chamada de função de API de saída.[0144] The API call includes an input API function call and an output API function call.

[0145] De acordo com o método, o aparelho e o sistema para descobrir uma relação de topologia de aplicativo fornecida por esta modalidade da presente invenção, informações de chamada de API em um processo de transmissão de pacote são coletadas e se existir interação entre duas máquinas virtuais que correspondem a dois conjuntos de informações de chamada de API é determinada correlacionando se os dois conjuntos de informações de chamada de API atendem uma primeira condição. Com o uso da maneira mencionada anteriormente, um servidor de descoberta de topologia pode determinar a frequência de interação, envolvida nas informações de chamada de API coletadas de máquinas virtuais e uma relação de topologia de aplicativo entre as máquinas virtuais é determinada de acordo com a frequência de interação das máquinas virtuais. A solução supracitada fornece um método para descobrir uma relação de topologia de aplicativo entre máquinas virtuais em um caso de virtualização, em que uma relação de topologia de aplicativo entre máquinas virtuais é determinada analisando-se informações de chamada de API geradas em um processo de transmissão de pacote e, portanto, a complexidade da solução é relativamente baixa.[0145] According to the method, apparatus and system for discovering an application topology relationship provided by this embodiment of the present invention, API call information in a packet transmission process is collected and if interaction exists between two virtual machines that match two sets of API call information is determined by correlating whether the two sets of API call information meet a first condition. By using the previously mentioned way, a topology discovery server can determine the frequency of interaction, involved in the API call information collected from virtual machines, and an application topology relationship between the virtual machines is determined according to the frequency interaction of virtual machines. The aforementioned solution provides a method for discovering an application topology relationship between virtual machines in a virtualization case, wherein an application topology relationship between virtual machines is determined by analyzing API call information generated in a streaming process of package and therefore the complexity of the solution is relatively low.

[0146] Nas modalidades que correspondem à Figura 8 e à Figura 9, a máquina virtual, um agente de coleta, um comutador virtual e o servidor de descoberta de topologia são apresentados em uma forma de uma unidade funcional/módulo funcional. A “unidade/módulo” no presente documento pode se referir a um circuito integrado para aplicação específica (application-specific integrated circuit, ASIC), um circuito, um processador configurado para executar um ou mais programas de software ou de firmware e uma memória, um circuito lógico integrado e/ou outro dispositivo que pode fornecer as funções mencionadas anteriormente. Em uma modalidade simples, pessoas versadas na técnica podem pensar que uma máquina virtual, um agente de coleta, um comutador virtual e um servidor de descoberta de topologia podem usar uma forma mostrada na Figura 2. Por exemplo, a unidade de obtenção 901 e uma unidade de processamento 902 podem ser implantadas com o uso do processador e da memória na Figura 2.[0146] In embodiments corresponding to Figure 8 and Figure 9, the virtual machine, a collection agent, a virtual switch, and the topology discovery server are presented in the form of a functional unit/functional module. The “unit/module” in this document may refer to an application-specific integrated circuit (ASIC), a circuit, a processor configured to execute one or more software or firmware programs, and a memory, an integrated logic circuit and/or other device that can provide the aforementioned functions. In a simple embodiment, persons skilled in the art may think that a virtual machine, a collection agent, a virtual switch, and a topology discovery server may use a form shown in Figure 2. For example, the collection unit 901 and a processing unit 902 can be implemented using the processor and memory in Figure 2.

[0147] Uma modalidade da presente invenção fornece, ainda, um meio de armazenamento de computador, em que o meio de armazenamento de computador é configurado para armazenar uma instrução de software de computador usada pelos dispositivos mostrados na Figura 8 e Figura 9 e inclui um programa projetado para executar as modalidades do método supracitado. Um método para descobrir uma relação de topologia de aplicativo pode ser implantado executando-se o programa armazenado.[0147] An embodiment of the present invention further provides a computer storage medium, wherein the computer storage medium is configured to store a computer software instruction used by the devices shown in Figure 8 and Figure 9 and includes a program designed to execute the modalities of the aforementioned method. A method for discovering an application topology relationship can be implemented by executing the stored program.

[0148] Embora a presente invenção seja descrita no presente documento com referência às modalidades, em um processo de implantar a presente invenção que é necessário ser protegido, pessoas versadas na técnica podem compreender e implantar outras mudanças das modalidades reveladas visualizando-se os desenhos em anexo, o conteúdo revelado e as reivindicações em anexo. Nas reivindicações, a palavra “compreende” (que compreende) não exclui outras partes ou etapas constituintes e “um” ou “um pedaço” não exclui um caso de múltiplas. Um único processador ou outra unidade pode implantar diversas funções listadas nas reivindicações. Algumas medidas são registradas em reivindicações dependentes mutuamente diferentes, porém, não significa que essas medidas não podem ser combinadas para gerar um efeito satisfatório.[0148] Although the present invention is described in the present document with reference to the embodiments, in a process of implementing the present invention that is necessary to be protected, persons skilled in the art can understand and implement other changes of the disclosed embodiments by viewing the drawings in attached, the disclosed contents and the attached claims. In the claims, the word “comprises” does not exclude other constituent parts or steps and “one” or “one piece” does not exclude a case of multiples. A single processor or other unit can implement multiple functions listed in the claims. Some measures are recorded in mutually different dependent claims, however, this does not mean that these measures cannot be combined to generate a satisfactory effect.

[0149] Pessoas versadas na técnica devem compreender que as modalidades da presente invenção podem ser fornecidas como um método, um aparelho (dispositivo) ou um produto de programa de computador. Portanto, a presente invenção pode usar uma forma de modalidades apenas de hardware, modalidades apenas de software ou modalidades com uma combinação de software e hardware. Ademais, a presente invenção pode usar uma forma de um produto de programa de computador que é implantado em um ou mais meios de armazenamento usáveis por computador (incluindo, mas sem limitação, uma memória de disco, um CD-ROM, uma memória óptica e semelhantes) que incluem um código de programa usável por computador. Um programa de computador é armazenado/distribuído em um meio apropriado e é dotado de outro hardware ou serve como uma parte de hardware e também pode usar outras maneiras de distribuição, tal como com o uso da Internet ou outro sistema de telecomunicações com fio ou sem fio.[0149] Persons skilled in the art should understand that embodiments of the present invention may be provided as a method, an apparatus (device) or a computer program product. Therefore, the present invention may use a form of hardware-only embodiments, software-only embodiments, or embodiments with a combination of software and hardware. Furthermore, the present invention may use a form of a computer program product that is implanted on one or more computer-usable storage media (including, but not limited to, a disk memory, a CD-ROM, an optical memory, and similar) that include computer-usable program code. A computer program is stored/distributed on an appropriate medium and is provided with other hardware or serves as a part of hardware and may also use other means of distribution, such as using the Internet or other wired or wireless telecommunications system. wire.

[0150] A presente invenção é descrita com referência aos fluxogramas e/ou diagramas de blocos do método, o aparelho (dispositivo) e outro produto de programa de computador de acordo com as modalidades da presente invenção. Deve-se compreender que as instruções de programa de computador podem ser usadas para implantar cada processo e/ou cada bloco nos fluxogramas e/ou nos diagramas de blocos e uma combinação de um processo e/ou um bloco nos fluxogramas e/ou nos diagramas de blocos. Essas instruções de programa de computador podem ser fornecidas para um computador de uso geral, um computador dedicado, um processador integrado ou um processador de qualquer outro dispositivo de processamento de dados programável para gerar uma máquina, de modo que as instruções executadas por um computador ou um processador de qualquer outro dispositivo de processamento de dados programável gere um aparelho para implantar uma função específica em um ou mais processos nos fluxogramas e/ou em um ou mais blocos nos diagramas de blocos.[0150] The present invention is described with reference to the flowcharts and/or block diagrams of the method, the apparatus (device) and other computer program product in accordance with embodiments of the present invention. It should be understood that computer program instructions can be used to implement each process and/or each block in the flowcharts and/or block diagrams and a combination of a process and/or a block in the flowcharts and/or diagrams. of blocks. These computer program instructions may be provided to a general purpose computer, a dedicated computer, an integrated processor, or a processor of any other programmable data processing device to generate a machine, so that the instructions executed by a computer or a processor of any other programmable data processing device generates an apparatus for implementing a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.

[0151] Essas instruções de programa de computador podem também ser armazenadas em uma memória legível por computador que pode instruir o computador ou qualquer outro dispositivo de processamento de dados programável a funcionar de uma maneira específica, de modo que as instruções armazenadas na memória legível por computador gerem um artefato que inclui um aparelho de instrução. O aparelho de instrução implanta uma função específica em um ou mais processos nos fluxogramas e/ou em um ou mais blocos dos diagramas de blocos.[0151] These computer program instructions may also be stored in a computer-readable memory that may instruct the computer or any other programmable data processing device to function in a specific manner, such that the instructions stored in the computer-readable memory computer generate an artifact that includes an instructional device. The instruction apparatus implements a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.

[0152] Essas instruções de programa de computador também podem ser carregadas em um computador ou outro dispositivo de processamento de dados programável, de modo que uma série de operações e etapas sejam realizadas no computador ou outro dispositivo programável, gerando, assim, um processamento implantado por computador. Portanto, as instruções executadas no computador ou no outro dispositivo programável fornecem etapas para implantar uma função específica em um ou mais processos nos fluxogramas e/ou em um ou mais blocos nos diagramas de blocos.[0152] These computer program instructions may also be loaded into a computer or other programmable data processing device such that a series of operations and steps are performed on the computer or other programmable device, thereby generating implanted processing. by computer. Therefore, instructions executed on the computer or other programmable device provide steps to implement a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.

[0153] Embora a presente invenção seja descrita com referência a recursos específicos e suas modalidades, aparentemente, várias modificações e combinações podem ser feitas na presente invenção sem que se afaste do escopo da presente invenção. De modo correspondente, o relatório descritivo e os desenhos em anexo são meramente uma descrição exemplificativa da presente invenção definida pelas reivindicações em anexo e é considerado que cubram quaisquer e todas as modificações, alterações, combinações ou equivalência no escopo da presente invenção. Naturalmente, pessoas versadas na técnica podem fazer várias modificações e variações na presente invenção sem que se afaste do espírito e escopo da presente invenção. A presente invenção tem por objetivo cobrir essas modificações e variações desde que caiam dentro do escopo de proteção definido pelas reivindicações a seguir e suas tecnologias equivalentes.[0153] Although the present invention is described with reference to specific features and embodiments thereof, apparently, various modifications and combinations can be made to the present invention without departing from the scope of the present invention. Correspondingly, the specification and attached drawings are merely an exemplary description of the present invention defined by the attached claims and are considered to cover any and all modifications, alterations, combinations or equivalences within the scope of the present invention. Naturally, persons skilled in the art may make various modifications and variations to the present invention without departing from the spirit and scope of the present invention. The present invention aims to cover these modifications and variations as long as they fall within the scope of protection defined by the following claims and their equivalent technologies.

Claims (16)

1. Método para descobrir uma relação de topologia de aplicativo executado em um servidor de descoberta de topologia, CARACTERIZADO pelo fato de que o método compreende: coletar pelo menos dois conjuntos de informações de chamada de interface de programação de aplicativo, API, em que cada conjunto de informações de chamada de API corresponde a uma chamada de API, em que os pelo menos dois conjuntos de informações de chamada de API compreendem primeiras informações de chamada de API e segundas informações de chamada de API, as primeiras informações de chamada de API compreendem um identificador de uma primeira máquina virtual que recebe ou envia um pacote, um tempo de ocorrência de uma primeira chamada de API, e uma direção de fluxo de pacote da primeira API que indica que um pacote é enviado da primeira máquina virtual para um Monitor de Máquina Virtual, VMM, ou do VMM para a primeira máquina virtual, e as segundas informações de chamada de API compreendem um identificador de uma segunda máquina virtual que envia ou recebe um pacote, um tempo de ocorrência de uma segunda chamada de API, e uma direção de fluxo de pacote da segunda API que indica que um pacote é enviado da segunda máquina virtual para o VMM ou do VMM para a segunda máquina virtual; analisar os pelo menos dois conjuntos de informações de chamada de API; para as primeiras informações de chamada de API e para as segundas informações de chamada de API, determinando se uma primeira condição é atendida, a primeira condição compreende condições (1) e (2): (1) a diferença entre o tempo de ocorrência da primeira chamada de API e o tempo de ocorrência da segunda chamada de API é menor que ou igual a um limite predefinido; (2) a direção de fluxo de pacote da primeira API e a direção de fluxo de pacote da segunda API são mutuamente opostas; quando for determinado que as condições (1) e (2) são ambas atendidas para as primeiras informações de chamada de API e para as segundas informações de API, determinar que as primeiras informações de chamada de API e as segundas informações de chamada de API atendem à primeira condição; em que atender à primeira condição significa presença de uma interação entre a primeira máquina virtual e a segunda máquina virtual; quando for determinado que a primeira condição é atendida para as primeiras informações de chamada de API e para as segundas informações de chamada de API, determinar adicionalmente se frequência de interação da primeira máquina virtual e da segunda máquina virtual atende a uma segunda condição, em que a frequência de interação da primeira máquina virtual e da segunda máquina virtual atender à segunda condição compreende: a frequência de interação da primeira máquina virtual e da segunda máquina virtual ser maior que uma frequência predefinida; e se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atender à segunda condição, determinar que existe uma relação de topologia de aplicativo entre a primeira máquina virtual e a segunda máquina virtual.1. Method for discovering an application topology relationship running on a topology discovery server, CHARACTERIZED by the fact that the method comprises: collecting at least two sets of application programming interface, API, call information, wherein each set of API call information corresponds to an API call, wherein the at least two sets of API call information comprise first API call information and second API call information, the first API call information comprising an identifier of a first virtual machine that receives or sends a packet, an occurrence time of a first API call, and a packet flow direction of the first API that indicates that a packet is sent from the first virtual machine to a Monitor. Virtual Machine, VMM, or from the VMM to the first virtual machine, and the second API call information comprises an identifier of a second virtual machine that sends or receives a packet, an occurrence time of a second API call, and a packet flow direction of the second API indicating that a packet is sent from the second virtual machine to the VMM or from the VMM to the second virtual machine; analyze the at least two sets of API call information; For the first API call information and for the second API call information, determining whether a first condition is met, the first condition comprises conditions (1) and (2): (1) the difference between the occurrence time of the first API call and the occurrence time of the second API call is less than or equal to a predefined threshold; (2) the packet flow direction of the first API and the packet flow direction of the second API are mutually opposite; when it is determined that conditions (1) and (2) are both met for the first API call information and for the second API information, determine that the first API call information and the second API call information meet to the first condition; wherein meeting the first condition means presence of an interaction between the first virtual machine and the second virtual machine; When it is determined that the first condition is met for the first API call information and for the second API call information, further determine whether interaction frequency of the first virtual machine and the second virtual machine meets a second condition, wherein the interaction frequency of the first virtual machine and the second virtual machine meeting the second condition comprises: the interaction frequency of the first virtual machine and the second virtual machine being greater than a predefined frequency; and if the interaction frequency of the first virtual machine and the second virtual machine meets the second condition, determine that an application topology relationship exists between the first virtual machine and the second virtual machine. 2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o primeiro conjunto de informações de chamada de API compreende adicionalmente um primeiro protocolo de comunicações, o segundo conjunto de informações de chamada de API compreende adicionalmente um segundo protocolo de comunicações; e, de modo correspondente, que as primeiras informações de chamada de API e as segundas informações de chamada de API atenderem à primeira condição compreende adicionalmente: o primeiro protocolo de comunicações nas primeiras informações de chamada de API e o segundo protocolo de comunicações nas segundas informações de chamada de API serem iguais.2. Method, according to claim 1, CHARACTERIZED by the fact that the first set of API call information additionally comprises a first communications protocol, the second set of API call information additionally comprises a second communications protocol; and, correspondingly, that the first API call information and the second API call information meet the first condition further comprises: the first communications protocol in the first API call information and the second communications protocol in the second information of API calls are the same. 3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que a determinação de se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atende a uma segunda condição compreende: analisar pelo menos dois conjuntos de informações de chamada de API na primeira máquina virtual e pelo menos dois conjuntos de informações de chamada de API na segunda máquina virtual, em que os pelo menos dois conjuntos de informações de chamada de API na primeira máquina virtual compreendem as primeiras informações de chamada de API e terceiras informações de chamada de API, os pelo menos dois conjuntos de informações de chamada de API na segunda máquina virtual compreendem as segundas informações de chamada de API e quartas informações de chamada de API; determinar a frequência de interação da primeira máquina virtual e da segunda máquina virtual, comparar a frequência de interação com frequência predefinida, e quando a frequência de interação for maior que a frequência predefinida, determinar que a frequência de interação atende à segunda condição.3. Method, according to claim 1 or 2, CHARACTERIZED by the fact that determining whether the frequency of interaction of the first virtual machine and the second virtual machine meets a second condition comprises: analyzing at least two sets of information from API call on the first virtual machine and at least two sets of API call information on the second virtual machine, wherein the at least two sets of API call information on the first virtual machine comprise the first and third API call information API call information, the at least two sets of API call information in the second virtual machine comprise the second API call information and fourth API call information; determine the interaction frequency of the first virtual machine and the second virtual machine, compare the interaction frequency with predefined frequency, and when the interaction frequency is greater than the predefined frequency, determine that the interaction frequency meets the second condition. 4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que antes de comparar a frequência de interação com frequência predefinida, o método compreende adicionalmente: determinar se a primeira máquina virtual e a segunda máquina virtual estão em um mesmo segmento de rede, e quando a primeira máquina virtual e a segunda máquina virtual estiverem no mesmo segmento de rede, corrigir uma dentre a frequência de interação ou a frequência predefinida de acordo com um coeficiente de ponderação predefinido; e a comparação da frequência de interação com a frequência predefinida compreende: comparar frequência de interação corrigida com a frequência predefinida; ou comparar a frequência de interação com frequência predefinida corrigida.4. Method, according to claim 3, CHARACTERIZED by the fact that before comparing the interaction frequency with a predefined frequency, the method additionally comprises: determining whether the first virtual machine and the second virtual machine are on the same network segment , and when the first virtual machine and the second virtual machine are on the same network segment, correct one of the interaction frequency or the predefined frequency according to a predefined weighting coefficient; and comparing the interaction frequency with the predefined frequency comprises: comparing the corrected interaction frequency with the predefined frequency; or compare interaction frequency with corrected predefined frequency. 5. Método, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que a coleta de pelo menos dois conjuntos de informações de chamada de API compreende: ler separadamente os pelo menos dois conjuntos de informações de chamada de API de um arquivo de log em um hospedeiro implantado das múltiplas máquinas virtuais; ou receber os pelo menos dois conjuntos de informações de chamada de API relatados por um módulo de agente em um hospedeiro implantado das múltiplas máquinas virtuais.5. Method according to any one of claims 1 to 4, CHARACTERIZED by the fact that collecting at least two sets of API call information comprises: separately reading the at least two sets of API call information from a log file on a deployed host of multiple virtual machines; or receiving the at least two sets of API call information reported by an agent module on a deployed host of the multiple virtual machines. 6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que, antes de ler separadamente os pelo menos dois conjuntos de informações de chamada de API de um arquivo de log em um hospedeiro implantado das múltiplas máquinas virtuais, o método compreende adicionalmente pelo menos uma das seguintes: maneira 1: quando uma máquina virtual chamar uma API para enviar um pacote para um Monitor de Máquina Virtual, VMM, no qual a máquina virtual está localizada, gravar, através de qualquer um dentre a máquina virtual, um comutador virtual no VMM, ou o VMM, informações de chamada de API no arquivo de log no hospedeiro implantado da máquina virtual; maneira 2: gravar, através de um módulo de agente no hospedeiro implantado de uma máquina virtual no arquivo de log no hospedeiro implantado da máquina virtual, informações de chamada de API que correspondem a uma chamada de API em um processo de transmissão de pacote; ou maneira 3: quando um VMM de uma máquina virtual chamar uma API para enviar um pacote para a máquina virtual, gravar, através de qualquer um dentre a máquina virtual, um comutador virtual no VMM, ou o VMM, informações de chamada de API no arquivo de log no hospedeiro implantado da máquina virtual.6. Method, according to claim 5, CHARACTERIZED by the fact that, before separately reading the at least two sets of API call information from a log file on a deployed host of the multiple virtual machines, the method further comprises at least one of the following: way 1: When a virtual machine calls an API to send a packet to a Virtual Machine Monitor, VMM, in which the virtual machine is located, write, through any of the virtual machine, a switch virtual in VMM, or the VMM, API call information in the log file on the virtual machine's deployed host; way 2: writing, through an agent module on the deployed host of a virtual machine to the log file on the deployed host of the virtual machine, API call information corresponding to an API call in a packet transmission process; or way 3: when a VMM of a virtual machine calls an API to send a packet to the virtual machine, write, through any of the virtual machine, a virtual switch in the VMM, or the VMM, API call information to the log file on the virtual machine's deployed host. 7. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que antes de receber os pelo menos dois conjuntos de informações de chamada de API relatados por um módulo de agente em um hospedeiro implantado das múltiplas máquinas virtuais, o método compreende adicionalmente: monitorar, através de um módulo de agente no hospedeiro implantado de uma máquina virtual, um processo de transmissão de um pacote no hospedeiro, e registrar informações de chamada de API que correspondem a uma chamada de API no processo de transmissão; ou receber, através de um módulo de agente no hospedeiro implantado de uma máquina virtual, informações de chamada de API que correspondem a uma chamada de API em um processo de transmissão de pacote no hospedeiro e que são enviadas pela máquina virtual, um comutador virtual, ou um VMM.7. Method, according to claim 5, CHARACTERIZED by the fact that before receiving the at least two sets of API call information reported by an agent module on a deployed host of the multiple virtual machines, the method further comprises: monitoring, through a deployed host agent module of a virtual machine, a transmission process of a packet in the host, and recording API call information corresponding to an API call in the transmission process; or receiving, through a deployed host agent module of a virtual machine, API call information that corresponds to an API call in an on-host packet transmission process and that is sent by the virtual machine, a virtual switch, or a VMM. 8. Servidor de descoberta de topologia, CARACTERIZADO pelo fato de que compreende: uma unidade de obtenção, configurada para coletar pelo menos dois conjuntos de informações de chamada de interface de programação de aplicativo, API, em que cada conjunto de informações de chamada de API corresponde a uma chamada de API, em que os pelo menos dois conjuntos de informações de chamada de API compreendem primeiras informações de chamada de API e segundas informações de chamada de API, as primeiras informações de chamada de API compreendem um identificador de uma primeira máquina virtual que é configurada para receber ou enviar um pacote, um tempo de ocorrência de uma primeira chamada de API, e uma direção de fluxo de pacote da primeira API que indica que um pacote é enviado da primeira máquina virtual para um Monitor de Máquina Virtual, VMM, ou do VMM para a primeira máquina virtual, e as segundas informações de chamada de API compreendem um identificador de uma segunda máquina virtual que é configurada para enviar ou receber um pacote, um tempo de ocorrência de uma segunda chamada de API, e uma direção de fluxo de pacote da segunda API indica que um pacote é enviado da segunda máquina virtual para o VMM ou do VMM para a segunda máquina virtual; e uma unidade de análise, configurada para analisar os pelo menos dois conjuntos de informações de chamada de API, e determinar se uma primeira condição é atendida para as primeiras informações de chamada de API e para as segundas informações de chamada de API, a primeira condição compreende condições (1) e (2): (1) a diferença entre o tempo de ocorrência da primeira chamada de API e o tempo de ocorrência da segunda chamada de API é menor que ou igual a um limite predefinido; (2) a direção de fluxo de pacote da primeira API e a direção de fluxo de pacote da segunda API são mutuamente opostas; a unidade de análise sendo adaptada nestas condições são implementadas de uma maneira que quando for determinado que as condições (1) e (2) são ambas atendidas para as primeiras informações de chamada de API e para as segundas informações de chamada de API, a unidade de análise é configurada para determinar que as primeiras informações de chamada de API e as segundas informações de chamada de API atendem à primeira condição; em que atender à primeira condição significa presença de uma interação entre a primeira máquina virtual e a segunda máquina virtual; a unidade de análise é configurada adicionalmente para determinar se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atende a uma segunda condição quando for determinado que a primeira condição é atendida para as primeiras informações de chamada de API e para as segundas informações de chamada de API, em que a frequência de interação da primeira máquina virtual e da segunda máquina virtual atender a uma segunda condição compreende: a frequência de interação da primeira máquina virtual e da segunda máquina virtual ser maior que uma frequência predefinida; e se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atender à segunda condição, determinar que existe uma relação de topologia de aplicativo entre a primeira máquina virtual e a segunda máquina virtual.8. Topology Discovery Server, CHARACTERIZED by the fact that it comprises: a getting unit, configured to collect at least two sets of application programming interface, API, call information, wherein each set of API call information corresponds to an API call, wherein the at least two sets of API call information comprise first API call information and second API call information, the first API call information comprises an identifier of a first virtual machine that is configured to receive or send a packet, a time of occurrence of a first API call, and a packet flow direction of the first API that indicates that a packet is sent from the first virtual machine to a Virtual Machine Monitor, VMM , or from the VMM to the first virtual machine, and the second API call information comprises an identifier of a second virtual machine that is configured to send or receive a packet, an occurrence time of a second API call, and a direction packet flow of the second API indicates that a packet is sent from the second virtual machine to the VMM or from the VMM to the second virtual machine; and an analysis unit, configured to analyze the at least two sets of API call information, and determine whether a first condition is met for the first API call information and for the second API call information, the first condition comprises conditions (1) and (2): (1) the difference between the occurrence time of the first API call and the occurrence time of the second API call is less than or equal to a predefined threshold; (2) the packet flow direction of the first API and the packet flow direction of the second API are mutually opposite; the unit of analysis being adapted in these conditions are implemented in a way that when it is determined that conditions (1) and (2) are both met for the first API call information and for the second API call information, the unit analysis is configured to determine that the first API call information and the second API call information meet the first condition; wherein meeting the first condition means presence of an interaction between the first virtual machine and the second virtual machine; the unit of analysis is further configured to determine whether the frequency of interaction of the first virtual machine and the second virtual machine meets a second condition when it is determined that the first condition is met for the first API call information and for the second information of an API call, wherein the interaction frequency of the first virtual machine and the second virtual machine meeting a second condition comprises: the interaction frequency of the first virtual machine and the second virtual machine being greater than a predefined frequency; and if the interaction frequency of the first virtual machine and the second virtual machine meets the second condition, determine that an application topology relationship exists between the first virtual machine and the second virtual machine. 9. Servidor de descoberta de topologia, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o primeiro conjunto de informações de chamada de API compreende adicionalmente um primeiro protocolo de comunicações, o segundo conjunto de informações de chamada de API compreende adicionalmente um segundo protocolo de comunicações; e de modo correspondente, que as primeiras informações de chamada de API e as segundas informações de chamada de API atenderem à primeira condição compreende adicionalmente: um protocolo de comunicações nas primeiras informações de chamada de API e um protocolo de comunicações nas segundas informações de chamada de API serem iguais.9. Topology discovery server according to claim 8, wherein the first set of API call information further comprises a first communications protocol, the second set of API call information further comprises a second communications protocol; and correspondingly, that the first API call information and the second API call information meet the first condition further comprises: a communications protocol on the first API call information and a communications protocol on the second API call information. API are the same. 10. Servidor de descoberta de topologia, de acordo com a reivindicação 8 ou 9, CARACTERIZADO pelo fato de que a unidade de análise é configurada especificamente para analisar pelo menos dois conjuntos de informações de chamada de API na primeira máquina virtual e pelo menos dois conjuntos de informações de chamada de API na segunda máquina virtual, determinar a frequência de interação da primeira máquina virtual e da segunda máquina virtual, comparar a frequência de interação com frequência predefinida, e, quando a frequência de interação for maior que a frequência predefinida, determinar que a frequência de interação atende à segunda condição, em que os pelo menos dois conjuntos de informações de chamada de API na primeira máquina virtual compreendem as primeiras informações de chamada de API e terceiras informações de chamada de API, os pelo menos dois conjuntos de informações de chamada de API na segunda máquina virtual compreendem as segundas informações de chamada de API e quartas informações de chamada de API.10. Topology discovery server according to claim 8 or 9, CHARACTERIZED by the fact that the analysis unit is specifically configured to analyze at least two sets of API call information in the first virtual machine and at least two sets of API call information in the second virtual machine, determine the interaction frequency of the first virtual machine and the second virtual machine, compare the interaction frequency with predefined frequency, and, when the interaction frequency is greater than the predefined frequency, determine that the frequency of interaction meets the second condition, wherein the at least two sets of API call information in the first virtual machine comprise the first API call information and third API call information, the at least two sets of information API call information in the second virtual machine comprises the second API call information and fourth API call information. 11. Servidor de descoberta de topologia, de acordo com qualquer uma das reivindicações 8 a 10, CARACTERIZADO pelo fato de que a unidade de análise é configurada especificamente para determinar se a primeira máquina virtual e a segunda máquina virtual estão em um mesmo segmento de rede, e quando a primeira máquina virtual e a segunda máquina virtual estiverem no mesmo segmento de rede, corrigir uma dentre a frequência de interação ou a frequência predefinida de acordo com um coeficiente de ponderação predefinido; e a unidade de análise é configurada especificamente para comparar frequência de interação corrigida com a frequência predefinida; ou comparar a frequência de interação com frequência predefinida corrigida.11. Topology discovery server according to any one of claims 8 to 10, CHARACTERIZED by the fact that the analysis unit is specifically configured to determine whether the first virtual machine and the second virtual machine are on the same network segment , and when the first virtual machine and the second virtual machine are on the same network segment, correct one of the interaction frequency or the predefined frequency according to a predefined weighting coefficient; and the unit of analysis is specifically configured to compare corrected interaction frequency with the predefined frequency; or compare interaction frequency with corrected predefined frequency. 12. Servidor de descoberta de topologia, de acordo com qualquer uma das reivindicações 8 a 11, CARACTERIZADO pelo fato de que a unidade de obtenção é configurada especificamente para ler separadamente os pelo menos dois conjuntos de informações de chamada de API de um arquivo de log em um hospedeiro implantado das múltiplas máquinas virtuais; ou a unidade de obtenção é configurada especificamente para receber os pelo menos dois conjuntos de informações de chamada de API relatados por um módulo de agente em um hospedeiro implantado das múltiplas máquinas virtuais.12. Topology discovery server according to any one of claims 8 to 11, CHARACTERIZED by the fact that the obtaining unit is specifically configured to separately read the at least two sets of API call information from a log file on a deployed host of multiple virtual machines; or the obtaining unit is specifically configured to receive the at least two sets of API call information reported by an agent module on a deployed host of the multiple virtual machines. 13. Sistema para descobrir uma relação de topologia de aplicativo, CARACTERIZADO pelo fato de que o sistema compreende um servidor de descoberta de topologia e pelo menos um hospedeiro, e múltiplas máquinas virtuais são rodadas no pelo menos um hospedeiro; quando uma máquina virtual dentre as múltiplas máquinas virtuais envia um pacote ou um Monitor de Máquina Virtual, VMM, do pelo menos um hospedeiro encaminha um pacote para uma máquina virtual dentre as múltiplas máquinas virtuais, informações de chamada de interface de programação de aplicativo, API, são geradas; o servidor de descoberta de topologia é configurado para coletar pelo menos dois conjuntos de informações de chamada de API, em que cada conjunto de informações de chamada de API corresponde a uma chamada de API, em que os pelo menos dois conjuntos de informações de chamada de API compreendem primeiras informações de chamada de API e segundas informações de chamada de API, as primeiras informações de chamada de API compreendem um identificador de uma primeira máquina virtual que é configurada para receber ou enviar um pacote, um tempo de ocorrência de uma primeira chamada de API e uma direção de fluxo de pacote da primeira API que indica que um pacote é enviado da primeira máquina virtual para o VMM ou do VMM para a primeira máquina virtual, e as segundas informações de chamada de API compreendem um identificador de uma segunda máquina virtual que é configurada para receber ou enviar um pacote, um tempo de ocorrência de uma segunda chamada de API, e uma direção de fluxo de pacote da segunda API que indica que um pacote é enviado da segunda máquina virtual para o VMM ou do VMM para a segunda máquina virtual; o servidor de descoberta de topologia é configurado adicionalmente para analisar os pelo menos dois conjuntos de informações de chamada de API, e determinar se uma primeira condição é atendida para as primeiras informações de chamada de API e para as segundas informações de chamada de API, a primeira condição compreende condições (1) e (2): (1) a diferença entre o tempo de ocorrência da primeira chamada de API e o tempo de ocorrência da segunda chamada de API é menor que ou igual a um limite predefinido; (2) a direção de fluxo de pacote da primeira API e a direção de fluxo de pacote da segunda API são mutuamente opostas; a unidade de análise sendo adaptada nestas condições são implementadas de uma maneira que quando for determinado que as condições (1) e (2) são ambas atendidas para as primeiras informações de chamada de API e para as segundas informações de chamada de API, a unidade de análise é configurada para determinar que as primeiras informações de chamada de API e as segundas informações de chamada de API atendem à primeira condição; em que atender à primeira condição significa presença de uma interação entre a primeira máquina virtual e a segunda máquina virtual; e o servidor de descoberta de topologia é configurado adicionalmente para determinar se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atende a uma segunda condição quando for determinado que a primeira condição é atendida para as primeiras informações de chamada de API e para as segundas informações de chamada de API, e se a frequência de interação da primeira máquina virtual e da segunda máquina virtual atender à segunda condição, determinar que existe uma relação de topologia de aplicativo entre a primeira máquina virtual e a segunda máquina virtual, em que a frequência de interação da primeira máquina virtual e da segunda máquina virtual atenderem a uma segunda condição compreende: a frequência de interação da primeira máquina virtual e da segunda máquina virtual ser maior que uma frequência predefinida.13. System for discovering an application topology relationship, CHARACTERIZED by the fact that the system comprises a topology discovery server and at least one host, and multiple virtual machines are run on the at least one host; when a virtual machine among the multiple virtual machines sends a packet or a Virtual Machine Monitor, VMM, from the at least one host forwards a packet to a virtual machine among the multiple virtual machines, application programming interface call information, API , are generated; The topology discovery server is configured to collect at least two sets of API call information, wherein each set of API call information corresponds to an API call, wherein the at least two sets of API call information APIs comprise first API call information and second API call information, the first API call information comprises an identifier of a first virtual machine that is configured to receive or send a packet, an occurrence time of a first call API and a packet flow direction of the first API that indicates that a packet is sent from the first virtual machine to the VMM or from the VMM to the first virtual machine, and the second API call information comprises an identifier of a second virtual machine that is configured to receive or send a packet, a time of occurrence of a second API call, and a packet flow direction of the second API that indicates that a packet is sent from the second virtual machine to the VMM or from the VMM to the second virtual machine; the topology discovery server is further configured to analyze the at least two sets of API call information, and determine whether a first condition is met for the first API call information and for the second API call information, the first condition comprises conditions (1) and (2): (1) the difference between the occurrence time of the first API call and the occurrence time of the second API call is less than or equal to a predefined threshold; (2) the packet flow direction of the first API and the packet flow direction of the second API are mutually opposite; the unit of analysis being adapted in these conditions are implemented in a way that when it is determined that conditions (1) and (2) are both met for the first API call information and for the second API call information, the unit analysis is configured to determine that the first API call information and the second API call information meet the first condition; wherein meeting the first condition means presence of an interaction between the first virtual machine and the second virtual machine; and the topology discovery server is further configured to determine whether the interaction frequency of the first virtual machine and the second virtual machine meets a second condition when it is determined that the first condition is met for the first API call information and for the second API call information, and if the interaction frequency of the first virtual machine and the second virtual machine meets the second condition, determine that an application topology relationship exists between the first virtual machine and the second virtual machine, where the interaction frequency of the first virtual machine and the second virtual machine meeting a second condition comprises: the interaction frequency of the first virtual machine and the second virtual machine being greater than a predefined frequency. 14. Sistema, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o primeiro conjunto de informações de chamada de API compreende adicionalmente um primeiro protocolo de comunicações, o segundo conjunto de informações de chamada de API compreende adicionalmente um segundo protocolo de comunicações; e de modo correspondente, que as primeiras informações de chamada de API e as segundas informações de chamada de API atenderem à primeira condição compreende adicionalmente: um protocolo de comunicações nas primeiras informações de chamada de API e um protocolo de comunicações nas segundas informações de chamada de API serem iguais.14. System, according to claim 13, CHARACTERIZED by the fact that the first set of API call information additionally comprises a first communications protocol, the second set of API call information additionally comprises a second communications protocol; and correspondingly, that the first API call information and the second API call information meet the first condition further comprises: a communications protocol on the first API call information and a communications protocol on the second API call information. API are the same. 15. Sistema, de acordo com a reivindicação 13 ou 14, CARACTERIZADO pelo fato de que o servidor de descoberta de topologia é configurado especificamente para analisar pelo menos dois conjuntos de informações de chamada de API na primeira máquina virtual e pelo menos dois conjuntos de informações de chamada de API na segunda máquina virtual, determinar a frequência de interação da primeira máquina virtual e da segunda máquina virtual, comparar a frequência de interação com frequência predefinida, e quando a frequência de interação for maior que a frequência predefinida, determinar que a frequência de interação atende à segunda condição, em que os pelo menos dois conjuntos de informações de chamada de API na primeira máquina virtual compreendem as primeiras informações de chamada de API e terceiras informações de chamada de API, os pelo menos dois conjuntos de informações de chamada de API na segunda máquina virtual compreendem as segundas informações de chamadas de API e quartas informações de chamada de API.15. System, according to claim 13 or 14, CHARACTERIZED by the fact that the topology discovery server is specifically configured to analyze at least two sets of API call information in the first virtual machine and at least two sets of information API call on the second virtual machine, determine the interaction frequency of the first virtual machine and the second virtual machine, compare the interaction frequency with predefined frequency, and when the interaction frequency is greater than the predefined frequency, determine that the frequency of interaction meets the second condition, wherein the at least two sets of API call information in the first virtual machine comprise first API call information and third API call information, the at least two sets of API call information API in the second virtual machine comprises the second API call information and fourth API call information. 16. Sistema, de acordo com qualquer uma das reivindicações 13 a 15, CARACTERIZADO pelo fato de que o servidor de descoberta de topologia é configurado especificamente para determinar se a primeira máquina virtual e a segunda máquina virtual estão em um mesmo segmento de rede, e quando a primeira máquina virtual e a segunda máquina virtual estiverem no mesmo segmento de rede, corrigir uma dentre a frequência de interação ou a frequência predefinida de acordo com um coeficiente de ponderação predefinido, e comparar frequência de interação corrigida com a frequência predefinida; ou comparar a frequência de interação com frequência predefinida corrigida.16. System, according to any one of claims 13 to 15, CHARACTERIZED by the fact that the topology discovery server is specifically configured to determine whether the first virtual machine and the second virtual machine are on the same network segment, and when the first virtual machine and the second virtual machine are on the same network segment, correct one of the interaction frequency or the predefined frequency according to a predefined weighting coefficient, and compare the corrected interaction frequency with the predefined frequency; or compare interaction frequency with corrected predefined frequency.
BR112017000458-5A 2015-12-21 METHOD, APPARATUS AND SYSTEM FOR DISCOVERING AN APPLICATION TOPOLOGY RELATIONSHIP BR112017000458B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/098125 WO2017107018A1 (en) 2015-12-21 2015-12-21 Method, device, and system for discovering the relationship of applied topology

Publications (3)

Publication Number Publication Date
BR112017000458A2 BR112017000458A2 (en) 2017-11-07
BR112017000458A8 BR112017000458A8 (en) 2022-08-23
BR112017000458B1 true BR112017000458B1 (en) 2023-08-22

Family

ID=

Similar Documents

Publication Publication Date Title
JP6571161B2 (en) Method, apparatus, and system for exploring application topology relationships
US20220407818A1 (en) Container-aware application dependency identification
US11870702B1 (en) Dynamic resource allocation of cloud instances and enterprise application migration to cloud architecture
EP3382543B1 (en) Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US10261824B2 (en) Application aware service policy enforcement and autonomous feedback-based remediation
US10248539B2 (en) Managing software performance tests based on a distributed virtual machine system
EP3606008A1 (en) Method and device for realizing resource scheduling
US9628374B1 (en) Ethernet link aggregation with shared physical ports
US20180239725A1 (en) Persistent Remote Direct Memory Access
US8910160B1 (en) Handling of virtual machine migration while performing clustering operations
JP5708937B2 (en) Configuration information management system, configuration information management method, and configuration information management program
BRPI1009594B1 (en) method and apparatus for scalable monitoring of machines from multiple virtual computing devices
US20140032753A1 (en) Computer system and node search method
US20130036322A1 (en) Hardware failure mitigation
US9639379B1 (en) Dynamic configuration of virtual machines
US11005968B2 (en) Fabric support for quality of service
WO2021169129A1 (en) Virtual machine online migration method and apparatus, device, and computer readable storage medium
US10922112B2 (en) Application aware storage resource management
US9575781B1 (en) Automatic determination of a virtual machine&#39;s dependencies on storage virtualization
US9563388B2 (en) Sharing a hosted device in a computer network
BR112017000458B1 (en) METHOD, APPARATUS AND SYSTEM FOR DISCOVERING AN APPLICATION TOPOLOGY RELATIONSHIP
US9912787B2 (en) Zero-copy multiplexing using copy-on-write
US8954549B2 (en) Automatic detection of a network interface on a host for accessing networked storage