Server consolidation system

A computer program product for a network management device, including: a computer readable storage medium to store a computer readable program, wherein the computer readable program, when executed on a computer, causes the computer to perform operations for server management in a computer network. The operations include: receiving resource usage data generated at a network communication device coupled between a server and a network management device, wherein the resource usage data describes resource usage of the server; and classifying the server into a cluster of servers based on the resource usage data from the network communication device and a cluster characterization for the cluster. The cluster includes a plurality of servers with similar resource usage data, and the cluster is one of a plurality of clusters managed by the network management device.

BACKGROUND

In network management systems, sometimes it is beneficial to analyze resource usage for the servers in determining how to improve or maximize usage of the server and network resources. Server consolidation is one approach to improving or maximizing resource usage, particularly when the network has an excessive number of servers such that some servers are being under-utilized. Server consolidation may include implementing multiple virtual machines on servers to make more effective use of each machine.

Server consolidation analyses generally use Computer Processing Unit (CPU), memory, and network usage data as base resource usage data from a present scenario to arrive at a target scenario (a consolidated environment). In some conventional methods, agents or resource measurement applications are deployed at network end-points (virtual or dedicated servers) to capture the resource usage data. Other server consolidation methods may use a master server to collect the usage data at regular intervals by using remote network protocols like Secure Shell (SSH) or Telnet.

These methods of data collection are very intrusive, require change management requests for servers, and result in security exposures for the duration of data collection, and consequently can make network users uncomfortable with either of these approaches. However, due to the lack of alternate methods, network users are forced to use the conventional methods.

SUMMARY

Embodiments of a computer program product are described. In one embodiment, the computer program product is a computer program product for a network management device, including: a computer readable storage medium to store a computer readable program, wherein the computer readable program, when executed on a computer, causes the computer to perform operations for server management in a computer network. The operations include: receiving resource usage data generated at a network communication device coupled between a server and a network management device, wherein the resource usage data describes resource usage of the server; and classifying the server into a cluster of servers based on the resource usage data from the network communication device and a cluster characterization for the cluster. The cluster includes a plurality of servers with similar resource usage data, and the cluster is one of a plurality of clusters managed by the network management device. Other embodiments of the computer program product are also described.

Embodiments of a method are also described. In one embodiment, the method is a method for server consolidation in a computer network, including: receiving resource usage data generated at a network communication device coupled between a server and a network management device, wherein the resource usage data describes resource usage of the server; and classifying the server into a cluster of servers based on the resource usage data from the network communication device and a cluster characterization for the cluster. The cluster includes a plurality of servers with similar resource usage data, and the cluster is one of a plurality of clusters managed by the network management device. Other embodiments of the method are also described.

Embodiments of a device are also described. In one embodiment, the device is a network management device, includes a processing device configured to: receiving resource usage data generated at a network communication device coupled between a server and a network management device, wherein the resource usage data describes resource usage of the server; and classifying the server into a cluster of servers based on the resource usage data from the network communication device and a cluster characterization for the cluster. The cluster includes a plurality of servers with similar resource usage data, and the cluster is one of a plurality of clusters managed by the network management device. Other embodiments of the network management device are also described. Embodiments of a network management system are also described.

DETAILED DESCRIPTION

While many embodiments are described herein, at least some of the described embodiments present a method for server management in a computer network, including server consolidation. Embodiments of the method as described herein cluster servers in the network together based on resource usage data. More specifically, the method uses resource usage data from servers in the network to create clusters of servers having similar resource usage data, and any new servers added to the network are added to a cluster based on a subset of the base resource usage data for the new servers. The subset of resource usage data may be collected from network devices rather than from the new servers, and may be used to predict the rest of the resource usage data for the new servers based on the subset of resource usage data. Conventional server consolidation methods gather any resource usage data from the servers themselves, which may be very intrusive and subject the servers to security openings and possible performance degradation.

As used herein and in the appended claims, the term “network communication device” is broadly defined to include any device that enables servers on a computer network to communicate with other devices on the network, including other servers, a central network management device, or others. Network communication devices may include wired or wireless routers, hubs, switches, and others. A network communication device may be housed in a network management device that allows the network management device to communicate directly with servers and/or collect resource usage data from the servers.

FIG. 1depicts a schematic diagram of one embodiment of a computer network100. A computer network100typically includes one or more servers105that may be connected to a network management device110through network communication devices115. Computer networks100are classified depending on the network's distribution scale, scope, and purpose. Network classifications include Local Area Network (LAN), Wide Area Network (WAN), Virtual Private Network (VPN), and others. Access rights and other configurations may differ between networks. Additionally, the different networks may require different hardware/software to operate.

In one embodiment, the network includes multiple network communication devices115connected directly to the network management device110, each network communication device115connected to multiple servers105. In some embodiments, the computer network100includes several layers of devices between the network management device110and the servers105. Other network embodiments may include a network management device110that has internal network communication devices115such that the network management device110is directly connected to each of the servers105.

Networks having multiple servers105may distribute a workload over some or all of the servers, such that each server105is assigned specific tasks contributing to the operation of the network. Each request or task sent to a server105causes the utilization of processor, network, and memory resources. Ideally, the network is configured to maximize the available resources for each server. In practice, however, not all of the resources for every server105in a network is fully utilized at all times, nor is the workload distribution among servers105exactly even. Additionally, servers105may have different capacities of resources, which may affect the workload distribution.

Server consolidation on a network may help maximize resource usage for each of the servers105in a network by moving the workload to different servers, to fewer servers, and/or to virtual servers on fewer physical servers105. Virtual servers are able to execute instructions and process a portion of the network workload separately from other virtual servers on a single machine while sharing the server/network resources with the other virtual servers. Virtual servers may be useful on servers105that would otherwise be under-utilized. In some embodiments, servers105are only given a portion of the workload that must be run separately from other processes so as to avoid interference between the processes. By installing virtual servers on a single machine that each run on separate operating systems, the physical server105is able to run processes on each of the virtual servers without causing interference between the processes, which improves the physical server's resource usage. Server consolidation may also be useful when transferring workload from old servers105to new servers, for example when the old servers105are no longer capable of performing the workload.

FIG. 2depicts a schematic diagram of one embodiment of the network management device110ofFIG. 1. The depicted network management device110includes various components, described in more detail below, that are capable of performing the functions and operations described herein. In one embodiment, at least some of the components of the network management device110are implemented on a computer system. For example, the functionality of one or more components of the network management device110may be implemented by computer program instructions stored on a computer memory device202and executed by a processing device204such as a central processing unit (CPU). The network management device110may include other components, such as a disk storage drive206or other computer readable storage medium, input/output devices208, and a network manager210. The network manager210may include or communicate with one or more network communication devices115that allow the network manager210to manage the network resources, workload distribution, and also to predict server105resource usage and perform the server management method described herein. The network manager210may perform functions for the server management method described herein, and may maintain and store data used by the method.

While managing the network, the network manager210may use data collected about servers105connected to the network. In one embodiment, as part of a server consolidation process, the network manager210collects resource usage data212for each of the servers105. The resource usage data212may include CPU usage, memory usage, and network usage for all of the servers105. The CPU and memory usage data for each of the servers105is produced by the servers105. Such data may be obtained by conventional means, such as through resource measurement applications on each of the servers105or through network protocols such as Secure Shell (SSH). Network usage data for each of the servers105may be produced either by the servers105themselves or by network devices configured to measure the network usage for each individual server105. The resource usage data212may include data points from several time periods for the use each resource for each server105.

After the resource usage data212is received by the network manager210, the network manager210obtains a statistical characterization214for the resource usage data212. In one embodiment, the statistical characterization214includes statistical measures such as mean, variance, standard deviation, and percentile measurements for each type of data. Other embodiments may include additional statistical measures for determining central tendencies and dispersion of the data, such as mean, median, mode, variance and standard deviation, percentiles, and/or measures that help characterize the usage.

The network manager210then groups the servers105into clusters216based on the calculated statistical characterizations214. A cluster216contains servers105that have similar resource usage characterizations as determined by the number of servers105in the network and the clusters216set up by the network manager210. In one embodiment, the number of clusters216is determined by the network manager210according to the number of servers105connected to the network, the amount of resources available, and the current total resource usage. In other embodiments, the number of clusters216may be determined arbitrarily or according to a network user or network specialist. The number of clusters216may have an upper bound or no upper limit, according to the implementation of the server management method.

When a new server400, shown inFIG. 5, is added to the network, the network manager210is able to classify the new server400in one of the previously created clusters216based on a subset220of resource usage data for the new server400. A neural network model218may be trained to identify the clusters216and use the data for the new server400to correctly classify the new server400into a cluster216. In one embodiment, the resource usage data subset220includes network usage data produced by a network communication device115. Because the network usage data is produced by a device external to the new server400, there is no need for end-point applications or intrusive networking protocol commands executed on the new server400by the network management device110. The CPU and memory usage data for the new server400is predicted based on the network usage data, and the new server400is classified into a cluster216with other servers105that share similar resource usage characteristics. A cluster characterization300is determined by the characterizations of each server105within the cluster216, and the cluster characterization300may be used to determine whether a new server400should be added to that cluster216or to another. In other embodiments, the resource usage data212and subset220of resource usage data may include other resource usage data or other combinations of those listed herein. In some embodiments, the network manager210may be able to predict the storage usage data for a particular server105based on other resource usage data.

In one embodiment, after the new server400has been added to the network and classified into a cluster216, the network manager210updates the cluster characterization300for that cluster with the server characterization214of the new server400. A subsequent new server400will be grouped into a cluster216based on the updated cluster characteristics300. Consequently, the updated cluster characteristics300may affect where a new server400is grouped.

FIG. 3Adepicts a schematic diagram of one embodiment of a network management device110grouping servers105into clusters216.FIG. 3Bdepicts a flow diagram of one embodiment of a method of grouping servers105into clusters based on server105resource usage data forFIG. 3A. The network management device110is in communication with several servers105in a network. The network management device110may be in direct communication with the servers105or may be in communication with the servers105through one or more network communication devices115. The network management device110begins the consolidation process by collecting resource usage data212. The resource usage data212includes CPU usage, memory usage, and network usage for each of the servers105.

The resource usage data212shown inFIG. 3Bdepicts data for a first server. The data is collected for a server105connected to the network management device110. The data includes CPU usage, memory usage, and network usage for the server105at several different points in time. The network management device110may identify each server105by its internet protocol (IP) address. The data is produced by the server105and may be collected by the network management device110using conventional methods.

Once the servers105have sent the resource usage data212to the network management device110, the data is processed by the network management device110and a statistical server characterization214is made for each data type for each server. The server characterization214includes several statistical measures, as shown inFIG. 3B. In the embodiment ofFIG. 3B, the statistical measures for the resource usage data include mean, variance, 50thpercentile, 60thpercentile, 70thpercentile, 80thpercentile, and 90thpercentile. The server characterization216is shown for the first server.

After characterizing the resource usage data212for all servers105presently connected to the network, the network management device110groups the servers105into clusters based on the server characterizations214. In one embodiment, the network management device110uses a k-means algorithm for grouping the servers105into clusters216.FIG. 3Adepicts a group of clusters216from Cluster 1 to Cluster j. The network management device110may create as few or as many clusters216as needed for a particular network. Other embodiments may group the servers105into clusters216using other clustering techniques. Servers105in each cluster have similar resource usage data to the other servers105in the same cluster. The server characteristics214in each cluster216define the cluster characteristics300for the cluster216. The cluster characteristics300are what the neural network model218uses to determine in which cluster216a new server400will be classified.

FIG. 4depicts a schematic diagram of one embodiment of the network management device110ofFIG. 3classifying a new server400to a cluster216. In one embodiment, the clusters216communicate with the network management device110through a router. The servers105connected to the router during the initial stages of the server consolidation process have already been classified into clusters according to the statistical characterizations of their resource usage data. The network may include other routers and/or servers105.

In one embodiment, when a new server400is connected to the router and begins communicating with the network management device110, the network management device110attempts to group the new server400into one of the existing clusters216. In one embodiment, the network management device110trains a neural network model218to classify new servers400to the clusters216. The neural network model218may receive as an input the subset220of data for the servers105in a single cluster216to train the model to identify the correct cluster based on the subset. The model218may be trained in such a way for each cluster216.

After obtaining the resource usage data subset220for the new server400, the network management device110is able to predict or estimate the other resource usage data212for the new server400using the trained model218. In one embodiment, the network management device110obtains the network usage data for the new server400from the network communication device115. The neural network model218is trained to correctly identify a particular cluster216(in this embodiment, Cluster 4) using the network usage data for the servers105already assigned to the cluster216as input. Once the neural network model218is trained, it may be used to classify new servers400to a cluster216based on the subset220for the new servers400. New servers400may be placed in a cluster216that has network usage data most similar to the network usage data of the new server400. The network management device110may then update the cluster characterization300for the cluster to which the new server400was added and retrain the neural network model218using the data from the new server400.

FIG. 5depicts a flow diagram of one embodiment of a method500for server management in a computer network100. Although the method500is described in conjunction with the network management device110ofFIG. 1, embodiments of the method500may be implemented with other types of network management devices.

In one embodiment, the network management device110receives505resource usage data212for a plurality of servers105. The servers105are in communication with the network management device110and may be connected to a network communication device115. The resource usage data212may include processor usage, memory usage, and network usage of each server105presently connected to the computer network100. Other embodiments may include other resource usage data, such as server storage usage. The network management device110characterizes510the resource usage data for each server.

In one embodiment, the server characterization214includes statistical measures of the resource usage data212over several data points from different time periods. For example, the resource usage data212may include data points for each day in a span of 5 days. Multiple data points allow the statistical measures to give trends and averages for the usage types. In one embodiment, the server characterization214includes values representing mean, variance, 50thpercentile, 60thpercentile, 70thpercentile, 80thpercentile, and 90thpercentile of the data. In one embodiment, the network management device110may calculate fence values upper and lower fence values from the resource usage data. Values that fall above the upper fence value or below the lower fence value may be considered outlier values and discarded. This may help the network management device110to create a more accurate characterization214of the data for each server105.

After receiving the resource usage data212, the network management device110groups515the servers105into clusters216based on the server characterization214of the resource usage data212for each server105. Servers105with similar resource usage data212will be grouped together according to a clustering algorithm. The method500may use any clustering algorithm, such as a k-means algorithm. The network management device110may then calculate220a cluster characterization for each cluster216using the resource usage data212of all the servers105within a single cluster216.

The network management device110then classifies530the new server400into one of the clusters216based on a subset220of resource usage data212for the new server400and the cluster characterization300for the servers105in the cluster. In one embodiment, the subset220is network usage data for the new server400. The network usage data may be obtained by the network management device110from a source other than the new server400, such as the network communication device115, so as to avoid opening security holes or installing intrusive applications at the new server400.

In one embodiment, the network management device110trains525a neural network model218to classify new servers400into clusters based on similarities between the subset of data for the new server400and the same subset of data for the servers105already grouped into clusters. Because the subset220for the new server400is similar to the servers105in the cluster into which the new server400is classified, the network management device110may predict or estimate the other resource usage data for the new server400. The cluster characterization300may include factors other than the subset of data.

When the new server400is added to the cluster216, the network management device110may update535the cluster characterization300for the cluster216. This may include re-training525the neural network model218to correctly classify530any new servers400into clusters216with the new server's characterization214factored into the cluster characterization300. This may affect where subsequent new servers400are classified.

In one embodiment, the network management system100may include all new servers400. The network management system100may use a pre-trained neural network model218to classify530all of the new servers400into newly created clusters216. The subset220of resource usage data for the new servers400allow the neural network model218to adequately group the new servers400into clusters216with similar server characteristics214. Consequently, once a neural network model218has been trained525, there may no longer be a need to install intrusive applications at end-points in the network100or to apply other conventional server management methods.

In one embodiment, the method uses a k-means algorithm to produce the server characterization214. In other embodiments, the method500may use other clustering algorithms to measure the similarities between workload patterns in the servers105. The difference between characteristics of two servers A and B may be mathematically represented by:

dAB=∑j∈J⁢⁢(xAj-xBj)2
where j refers to the jthcharacteristic for the server, J represents the total number of characteristics, and x refers to the value of that characteristic.

In one embodiment using the k-means algorithm, the overall difference between server workloads to their respective clusters216may be minimized. The function for the algorithm is based on an I2norm, and the equation is:

Min⁢∑j=1k⁢⁢∑xi∈Cj⁢⁢xi-cj2
where xirefers to the measurement of the ithserver and Cjrefers to the jthcluster with center cj. In one embodiment, the center of a cluster refers to the group level workload pattern based on the same statistical measures.

The k-means algorithm in one embodiment follows the following steps:1. Create k centers to initialize the algorithm.2. Randomly assign each of the n servers to a cluster which has the smallest I2norm.3. Update the centers of each cluster based on its current servers.4. For each server I that belongs to the jthcluster, check the distance of the workload characteristics of a server with respect to each cluster center and classify to the cluster that has the closest distance.5. If a server has not moved on the last n calls in step 4 then stop, else go tog step 3.

Sample resource usage data212, server characterizations214, cluster characterizations300, and clustering vector are now detailed below for a given computer network100having multiple servers105.

Resource Usage Data Sourced at Intervals of One Hour

Server Characterizations

CPU resource characterization over 6 days of data:
t(as.data.frame(apply(cpu-6d[,2:73],1,function(x){c(mean=mean(x),variance=var(x),quantile(x,probs=seq(0.5,0.9,0.1)))})))

Memory resource characterization over 6 days of data:
t(as.data.frame(apply(mem-6d[,2:73],1,function(x){c(mn=mean(x),var=var(x),quantile(x,probs=seq(0.5,0.9,0.1)))})))

Network resource characterization over 6 days of data:
t(as.data.frame(apply(nw456[,2:73],1,function(x){c(mn=mean(x),var=var(x),quantile(x,probs=seq(0.5,0.9,0.1)))})))

Clustering Vector

While only partial data is shown in the tables above, data for all servers105in the network were used, and each server105was assigned to a cluster accordingly.

The sample data was also used to train a neural network model218. The network characteristics of each server105are input into the neural network model218, as well as the cluster216the server105belongs to (based on the output of the k-means cluster analysis).

Training the Neural Networkprint(net→neuralnet(data$cluster, nw-6d))For example, Server 1 in cluster 4 has the following network characteristics, which are input into the training model:
>(apply(nw456[,2:73],1,function(x){c(mn=mean(x),sd=sd(x),quantile(x,probs=seq(0.5,0.9,0.1)))}))Mean: 0.02001460278Standard Deviation: 0.0038364285850%: 0.0190196000060%: 0.0194864200070%: 0.0202704700080%: 0.0219680800090%: 0.02615052000

When a new server (Server 117 below) is added to the network100, the network usage characteristics are used with a “predict” function of the neural network model218to identify the cluster216to which the new server belongs.Server 117 network characteristics:Mean: 0.019538861111Standard Deviation: 0.00400378131550%: 0.01888255000060%: 0.01962354000070%: 0.01991195000080%: 0.02088804000090%: 0.021997080000

From the “predict” function in the neural network model, the new server (Server 117) is predicted to be part of cluster 4, so the CPU and memory statistics of cluster 4 are assigned to the new server.

An embodiment of server management in a network100includes at least one processor coupled directly or indirectly to memory elements through a system bus such as a data, address, and/or control bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.

The computer-useable or computer-readable medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device), or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include a compact disk with read only memory (CD-ROM), a compact disk with read/write (CD-R/W), and a digital video disk (DVD).

Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Additionally, network adapters also may be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters.