Conventionally, management of networked computer systems in organizations is divided among a number of groups such as networking, storage, systems, and possibly groups in charge of maintaining regulatory compliance. Enterprise applications require resources from each such functional area; a failure in any of these areas can have a significant impact on the business. The strategy of splitting the management responsibilities by functional areas has worked so far because the functional areas have traditionally been loosely coupled and the data center environments have been relatively static.
The trend towards convergence of computing, storage and networking in order to create a more dynamic and efficient infrastructure makes these functions dependent on each other. For example, server virilization means that a small change made by the systems group may have a major effect on the network bandwidth. The increasing demand for bandwidth by networked storage accounts for a significant proportion of the overall network bandwidth, thereby making the network vulnerable to changes made by the storage group. In order to maintain the services in a converged environment, the complex relationships between various network elements (components) need to be managed properly.
In accordance with one embodiment of the present invention, a method of monitoring networked application transactions includes, in part, sampling application transactions, collecting data related to said sampled application transactions, and associating said collected data with a global network identifier. In one embodiment, the method further includes, in part, transmitting reporting packets that include one or more subsets of the collected data. In one embodiment, the layer 4 socket information is used as a global network identifier. In another embodiment, at least one MAC address associated with one or more physical or virtual interface devices or computational resources is used as a global network identifier. In another embodiment, at least one SNMP index associated with one or more physical or virtual interface devices is used as a global network identifier.
In one embodiment, the method further includes, in part, collecting data related to network components, and combining the data related to network components that share the global network identifier associated with the application transaction. In one embodiment, the method further includes analyzing the combined data to determine at least one statistical characteristic of the networked application. In one embodiment, the method further includes analyzing the combined data to determine one or more network resources associated with the application.
In one embodiment, the statistical characteristic of the network application represents a memory usage of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a disk usage of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents an I/O usage of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a power consumption of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a temperature of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a CPU usage of the physical or virtual component.
In accordance with one embodiment of the present invention, a computer readable medium includes instructions that when executed by a processor cause the processor to sample application transactions, collect data related to said sampled application transactions, and associate said collected data with a global network identifier. In one embodiment, the instructions further cause the processor to transmit reporting packets that include one or more subsets of the collected data. In one embodiment, the layer 4 socket information is used as a global network identifier. In another embodiment, at least one MAC address associated with one or more physical or virtual interface devices or computational resources is used as a global network identifier. In another embodiment, at least one SNMP index associated with one or more physical or virtual interface devices is used as a global network identifier.
In one embodiment, the instructions further cause the processor to collect data related to network components, and to combine the data related to network components that share the global network identifier associated with the application transaction. In one embodiment, the instructions further cause the processor to analyze the combined data to determine at least one statistical characteristic of the networked application. In one embodiment, the instructions further cause the processor to analyze the combined data to determine one or more network resources associated with the application.
In one embodiment of the computer readable medium of the present invention, the statistical characteristic of the network application represents a memory usage of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a disk usage of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents an I/O usage of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a power consumption of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a temperature of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a CPU usage of the physical or virtual component.
In accordance with one embodiment of the present invention, a system for monitoring networked application transactions includes, in part, a module operative to sample application transactions, a module operative to collect data related to said sampled application transactions, and a module adapted to associate said collected data with a global network identifier. In one embodiment, the system further includes a module adapted to transmit reporting packets that include one or more subsets of the collected data. In one embodiment, the layer 4 socket information is used as a global network identifier. In another embodiment, at least one MAC address associated with one or more physical or virtual interface devices or computational resources is used as a global network identifier. In another embodiment, at least one SNMP index associated with one or more physical or virtual interface devices is used as a global network identifier.
In one embodiment, the system further includes, in part, a module adapted to collect data related to network components, and a module adapted to combine the data related to network components that share the global network identifier associated with the application transaction. In one embodiment, the system further includes, in part, a module operative to analyze the combined data to determine at least one statistical characteristic of the networked application. In one embodiment, the system further includes, in part, a module operative to analyze the combined data to determine one or more network resources associated with the application.
In one embodiment of the system of the present invention, the statistical characteristic of the network application represents a memory usage of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a disk usage of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents an I/O usage of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a power consumption of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a temperature of the physical or virtual component. In one embodiment, the statistical characteristic of the network application represents a CPU usage of the physical or virtual component.
Convergence and interdependence between the resources in a data center require a cross functional approach to management in order to ensure successful operation. To achieve greater scalability, shared visibility into all elements (alternatively referred to herein as components) of a data center, and an integrated management strategy, in accordance with one aspect of the present invention, all components in a data center are monitored by a single traffic monitoring system. Data center wide visibility is critical to ensuring that each group is aware of the impact of its actions on shared resources and to providing the information needed to enhance the control of the data center.
Current trends toward Virtualization, Converged Enhanced Ethernet (CEE), Fibre Channel over Ethernet (FCoE), Service Oriented Architectures (SOA) and Cloud Computing are part of a broader re-architecture of the data centers in which enterprise applications are decomposed into simpler elements that can be deployed, moved, replicated and connected using high-speed switched Ethernet.
An integrated approach to management is needed if the full benefits of a converged data center are to be realized. Ensuring network-wide visibility into the storage, network and services running in the data center, their traffic volumes, and their dependencies are critical components of an integrated management strategy. In order to achieve data center wide visibility, every layer of the data center network, including the core, distribution, top of rack and blade server switches are taken into account, as described further below in accordance with various embodiments of the present invention.
In accordance with one embodiment of the present invention, traditional hardware performance statistics collected by monitoring, for example, CPU, memory, I/O, and the like, are labeled using network interface information—as a global identifier—to enable combining and integrating this statistics with the data collected from the network traffic (LAN and SAN). In one embodiment, the MAC addresses (layer 2 network address) of the network interface devices are used as the network interface information. In another embodiment, the SNMP indices associated with the network interface devices are used as the network interface information. It is understood that other global network interface information may also be used.
The trend toward virtualization, cloud computing and service oriented architectures means that enterprise software is being increasingly decomposed into simpler elements that communicate over the network. Each of these elements has one or more MAC addresses that are used in accordance with embodiments of the present invention to identify the network and their associated computational resources.
In accordance with embodiment of the present invention, performance statistics related to PM and VM entities are exported using a unified data model that permits correlation between the host statistics and the network statistics. The unified data model enables labeling of the performance statistics with the network interface information associated with and linked to the components residing in the physical and virtual machines. The following description of the embodiments of the present invention are described with respect to the sFlow® standard, a leading, multi-vendor standard for monitoring high-speed switched and routed networks. It is understood that embodiments of the present invention are equally applicable to any other network monitoring technology. Detailed description of the sFlow® technology is provided, for example, on http://www.inmon.com/technology/index.php; and http://sflow.org/.
The sFlow® measurement technology, built into computers and network equipment from a number of leading vendors, such as HP®, IBM®, Dell®, Brocade®, BLADE®, Juniper®, Force10® and 3Com®, ensures data center wide visibility of all resources, including switches, storage servers, blade servers and virtual servers. As networks, systems and storage converge, the visibility provided by the sFlow® in the network provides an increasingly fuller picture of all aspects of the data center operations, thus enabling effective management and control of the network resources and delivering the converged visibility needed to manage the converged data center.
Unlike other monitoring technologies, the sFlow® provides an integrated, end-to-end, view of the network performance. This integration substantially increases the value of information by making it actionable. For example, identifying that an application is running slowly isn't enough to solve a performance problem. However, if it is also known that the server hosting the application is seeing poor disk performance, can link the disk performance to a slow NFS server, can identify the other clients of the NFS server, and can finally determine that all the requests are competing for access to a single file, then the decision to take action can be much more informed. It is this ability to link data together, combined with the scalability to monitor every resource in the data center that the sFlow® advantageously provides.
The sFlow® standard includes physical and virtual server performance metrics. The sFlow® specification describes a coherent framework that builds on the sFlow® metrics exported by most switch vendors, thus linking network, server and application performance monitoring to provide an integrated picture of the network performance. The following description of the embodiments of the present invention are provided with reference to the MAC address of a network interface card as the global identifier and network interface information. It is understood, however, that embodiments of the present invention are equally applicable to any other global network interface information such as the SNMP ifIndex, and the like. The SNMP protocol provides remote access to a hierarchical database of information associated with each device on the network. The ifIndex is the index that allows information associated with a network interface to be retrieved. Accordingly, in some embodiments, the ifIndex is used to retrieve the MAC address(es) associated with an interface.
Server 520 is shown as including one or more physical machines 528, and one or more virtual machines 526. Operating system 524 and applications 522 are run on server 520. Application module 520 is adapted to sample transactions and extract the corresponding TCP/UDP socket information that identify individual application instances. Application module 540 (which may be, e.g., a web server or file server application) also maintains a count of the number of such transactions using its transaction counters. Host module 535 is adapted to monitor the performance of the various components of the server, such as its CPU, memory, the I/O and its associated physical and virtual network interface adapter cards which contain one or corresponding MAC addresses. Network module 540 is adapted to sample packet headers. Network module 540 also includes a number of I/F counters which maintain a count of the number of sampled packet headers. Each sampled packet header contains one or more MAC addresses corresponding to the physical and virtual network adapter cards as well as the TCP/UDP socket information identifying individual application instances.
Accordingly, the network traffic monitoring application links the performance of the network traffic—flowing through networking device 510—with the performance metrics collected from server 520—which is the source or destination of the network traffic. In other words, the collected performance metrics includes a host structure containing the MAC addresses associated with the network adapter cards of the host. The inclusion of the MAC addresses advantageously provides a common key linking the server performance metrics (CPU, Memory, I/O etc.) to the network performance measurements (network flows, link utilizations, etc.), thereby providing a fuller picture of the server's performance. A real-time map of the physical and logical relationships between entities on the network may thus be provided to a network traffic analyzer to further analyze the performance data. A scalable counter push mechanism, partly defining the host structure and as described further below, is used by the network devices to export counter values that track the performance of CPU, memory, I/O, and the like
For physical machine performance metrics, the sFlow® Host Structures is further described by the Ganglia project (http://ganglia.info/), incorporated herein by reference in its entirety, defining a common set of metrics across different operating systems, including Windows, Linux (Fedora/RedHat/CentOS, Debian, Gentoo, SuSE/OpenSuSE), Solaris, FreeBSD, NetBSD, OpenBSD, DragonflyBSD and AIX. The MAC addresses associated with each physical machine are exported together with its performance metrics so as to provide a link between the physical machine's performance and the network activity.
For virtual machine performance metrics, the sFlow® Host Structures is further specified by the libvirt project (http://libvirt.org/), incorporated herein by reference in its entirety, which defines a standard set of metrics that can be collected from a wide variety of virtualization platforms, including: Xen, QEMU, KVM, LXC, OpenVZ, User Mode Linux, VirtualBox, VMWare ESX and GSX. The MAC addresses associated with each virtual machine are exported together with its performance metrics so as to provide a link between the virtual machine's performance and the network activity.
The sFlow® Host Structures (http://www.sflow.org/sflow_host.txt), incorporated herein by reference in its entirety, document also describes the extension of sFlow®'s sampling mechanism to include application transaction sampling. Examples of application level transactions include HTTP requests to a web server, NFS/CIFS requests to a file server, memcached requests and operations performed by a Hadoop cluster. An application sFlow® agent samples completed transactions, capturing information about each completed request, including size, duration, type, URL, file name etc. Each application transaction sample is linked to the network through the inclusion of TCP/UDP socket information which can be matched to packet header information from network devices.
An efficient and improved data structure is developed to export host related data. This structures enables an sFlow® agent to export additional information about host resources and without impacting existing collectors. The new protocol supporting the traffic flow management of sFlow® enables the addition of new data structures without impacting existing collectors. A host device uses the new data structure to report on host resources.
The SNMP Entity-MIB [2] may be used to describe the physical and logical containment hierarchy of host resources. Physical machines may be modeled as physical entities, an already supported sFlow data source type. Virtual machines may be modeled as logical entities. Extending sFlow support for logical entities provides a vehicle for exporting data relating to virtual machines.
The sFlow MIB identifies data sources by SNMP OID, so the only change needed would be a comment indicating that a resource is a valid data source type:
The following data source types are currently defined:
Ideally the sampling entity will perform sampling on all flows originating from or destined to the specified interface. However, if the switch architecture only allows input or output sampling then the sampling agent is permitted to only sample input flows input or output flows. Each packet must only be considered once for sampling, irrespective of the number of ports it will be forwarded to. Note: Port 0 is used to indicate that all ports on the device are represented by a single data source. “sFlowFsPacketSamplingRate” applies to all ports on the device capable of packet sampling.
smonVlanDataSource.<V>
An SFlowDataSource of this form refers to a ‘Packet-based VLAN’ and is called a ‘VLAN-based’ dataSource. <V> is the VLAN ID as defined by the IEEE 802.1Q standard. The value is between 1 and 4094 inclusive, and it represents an 802.1Q VLAN-ID with global scope within a given bridged domain. Sampling is performed on all packets received that are part of the specified VLAN (no matter which port they arrived on). Each packet will only be considered once for sampling, irrespective of the number of ports it will be forwarded to.
entPhysicalEntry.<N>
An SFlowDataSource of this form refers to a physical entity within the agent (e.g. entPhysicalClass=backplane(4)) and is called an ‘entity-based’ dataSource. Sampling is performed on all packets entering the resource (e.g. If the backplane is being sampled, all packets transmitted onto the backplane will be considered as single candidates for sampling irrespective of the number of ports they ultimately reach).
entLogicalEntry.<L>
An SFlowDataSource of this form refers to a logical entity within the agent and is called a ‘logical-entity-based’ dataSource. Sampling is performed on all packets entering the resource (e.g. If the backplane is being sampled, all packets transmitted onto the backplane will be considered as single candidates for sampling irrespective of the number of ports they ultimately reach). Note: Since each SFlowDataSource operates independently a packet that crosses multiple DataSources may generate multiple flow records.”
In addition, a mapping for logical entity data sources in the sFlow datagram needs to be specified:
These changes are backward compatible with existing sFlow agents and existing sFlow collectors should be able to ignore and skip over the MIB entries and data structures relating to the logical data source type. Since there is very little functional overlap between Host sFlow and existing switch based sFlow, sending Host sFlow to a collector that does not support the standard should be avoided. As Host sFlow becomes more common, it is likely that many sFlow analyzers will be extended to support the new standard in order to provide integrated network and system monitoring functionality.
SNMP is a standard management protocol for network equipment and SFlow monitoring of switches is often facilitated by additional information obtained by SNMP (e.g. ifName, ifStack etc.). However, SNMP is much less frequently used in host monitoring. It is important that the Host sFlow structures define an internally consistent model of the host without depending on SNMP for important information. The new host_adapter structure provides the critical link between host performance statistics and sFlow implemented in network equipment. Identifying the MAC addresses associated with a physical or virtual network adapter allows traffic generated by that adapter to be identified on the network. The new host_parent structure is used to describe the containment hierarchy between virtual and physical machines.
The following counter_sample structures are defined to export performance and dependency information relating to physical and virtual machines:
The following pseudo-code describes one exemplary implementation of embodiments of the present invention:
In accordance with some embodiments of the present invention, the network traffic monitoring application links the performance of the network traffic to the performance statistics that include power consumption and temperature of the devices used in the network. Such measurements may be exported for each switch, server, switch port (power over Ethernet) or virtual machine. Accordingly, the power/temperature measurements are applicable to all devices disposed in the network including the servers. Since in such embodiments, the MAC address may not provide the common link among all the networked devices, the “data source identifier” variable, as defined by the sFlow® standard, may be used as a common key, linking the different types of statistics that are exported from a data source.
To achieve this, in accordance with one embodiment, the sFlow® standard is modified to include counters configure to enable the network devices to report power and temperature measurements. The following pseudo-code describes one exemplary implementation for use of such counters:
Each measurement is scoped by the data source reporting it. For example, a switch may report the total power consumption for an entire device (as measured by its power supply), or may report power usage for each of its PoE ports. The counters, as described above, provide an efficient, multi-vendor technique for tracking power usage and temperature across all the devices and links in the network. The sFlow® counter polling is very efficient, thus providing a scalable technique for monitoring a large numbers of devices in a data center.
Incorporating power measurement enables linking of the power and temperature utilization to other statistics exported by the embodiments of the present invention. For example, as is known, one technique for reducing power consumption is virtual machine migration. By monitoring the switches in accordance with embodiments of the present invention, the location of the VM as well as the network bandwidth, protocols and traffic paths that it depends on are readily determined. In order to safely migrate the VM, a controller tracks these factors. Virtual machine migration changes network traffic utilizations and switch power consumption. Power and temperature monitoring, in accordance with the embodiments of the present invention, therefore enables power and temperature management to be carried out across both the network and the servers.
In accordance with another embodiment of the present invention, statistical sampling of network traffic, such as the sampling provided by the sFlow standard, is used to sample application transactions. An application transaction may be, for example, a read or a write operation to a file involving a networked storage, an HTTP request in a web server, a domain name request involving a DNS server, and the like. Consequently, packet sampling at layer 2 are linked and associated with sampling of layer 7 network transactions. The network transactions are labeled using a global identifier, corresponding to connection information of the network, to enable combining and integrating this statistics with the data collected from the network traffic (LAN and SAN). In one embodiment, the layer 4 socket information is used as a global network identifier. A layer 4 socket includes client address, client port, server address and server port. In another embodiment, at least one MAC address (layer 2 network address) associated with one or more physical or virtual interface devices or computational resources is used as a global network identifier. In another embodiment, at least one SNMP index associated with one or more physical or virtual interface devices is used as a global network identifier. Other network connection information may also be used. Data collected related to network elements together with the global network identifier associated with the application transactions are analyzed to determine statistical characteristics of the networked application. Such statistical characteristic may include, for example, the amount of network bandwidth consumed by the application, the amount of CPU, the number of switch ports, the energy consumed by the application, and the like.
The following pseudocode describe a structure that allow a software agent, such as sFlow agent, to export additional information about host resources and application transactions. The sFlow standard, as described further below, is an extensible protocol that allows the addition of new, optional data structures that a host device can use to report on host resources without impacting existing collectors.
In the case where a single application runs on dedicated hardware (a hardware appliance), there is a one-to-one correspondence between physical machine and application from the perspective of modeling data sources. In the case where multiple application level services run on a single hardware, the server may be treated in a similar manner as a virtual appliance. A data source is required per application service to define a monitoring point for that service.
Performing application transaction measurement enables linking of application performance to other statistics exported, in accordance with the embodiments of the present invention. For example, in accordance with one exemplary embodiment, an increase in the number of application transactions may be linked with an increase in CPU utilization. Furthermore, linking the application transactions to network traffic enables identification of the network devices involved in transmitting the request from the application client to the application server as well as the amount of network activity associated with the application transactions. Consequently, by linking application transaction measurements with network measurements, in accordance with one aspect of the present invention, the network devices reporting traffic and sharing the global identifier, as reported in the application transaction samples, are identified, thereby enabling the identification of resources on which the application depends.
The following pseudocode embodies the application level sampling function:
The above embodiments of the present invention are illustrative and not limitative. Various alternatives and equivalents are possible. Other additions, subtractions or modifications are obvious in view of the present invention and are intended to fall within the scope of the appended claims.
The present application claims benefit under 35 USC 119(e) of U.S. provisional application number 61/313,078, filed Mar. 11, 2010, the contents of which is incorporated herein by reference in their entirety. The present application is related to U.S. application Ser. No. 12/917,403, filed Nov. 1, 2010, the contents of which is incorporated herein by reference in their entirety. The present application incorporates herein by reference the entire contents of the following publication: “sFlow Version 5”, http://www.sflow.org/sflow_version_5.txt, by Peter Phaal and M. Levine; IETF, “RFC 2737: Entity MIB (Version 2)”, December 1999.
Number | Date | Country | |
---|---|---|---|
61313078 | Mar 2010 | US |