# Patent

## Title
System and method for assignment of virtual machines based on physical information

## Abstract

A system balances computational loads, for example in a virtual machine environment, taking into account the physical characteristics of the physical machines that the virtual machines are running on. A framework is provided for developing and implementing policies whereby computational loads are distributed in a beneficial manner. Examples of policies include policies that improve loads based on environmental and security concerns.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority to U.S. Provisional Application No. 61/428,315, filed Dec. 30, 2010, the subject matter of which is hereby incorporated by reference in its entirety.


BACKGROUND
Virtualization in the data center decouples the application being run on a server from the actual server. Typically, virtualization management tools provide visibility of the application being run on a particular logical server via an IP address. This is demonstrated by a screenshot 10 from the industry leading virtualization software vendor VMWare seen in FIG. 1.
The left hand side of the screen shown in FIG. 1 lists hosts by IP address and the applications running on those hosts. This view is a logical view. It is an incomplete view because it does not show the physical view of the hosts and applications.
A view that supplements the logical view is shown in FIG. 2.
The view in FIG. 2 shows two virtual hosts 12 within a rack 14. The numbers within the boxes 16 shown on the virtual hosts 12 represent the number of virtual machines that are residing on that host. By clicking on the box or referring to the location tree, the details of the virtual hosts can be determined. This physical virtualization view enables better informed decisions about virtual machine placement to be made.
Typically, there is a load balancing function within virtualization management tools. Functional clusters of hosts are formed as a framework for load balancing decisions. This allows workload to be evenly distributed among functional hosts. This function does not extend to physical balancing.
An example of a logically unbalanced cluster is shown in FIG. 3. In this figure, each rectangle 18 within a cluster 20 represents a physical server (or host) in that cluster. Each virtual machine 22 within a physical server 20 runs one or more apps 24 on an operating system (OS) 26.
The same clusters as in FIG. 3 are shown in FIG. 4 as logically balanced. All virtual machines 22 (assumed to be of equal workload) are now, in FIG. 4, evenly spread across all virtual hosts 18 of the same function (for example, finance, marketing, and engineering).
FIG. 5 shows a hypothetical physical view 30 of a logically balanced workload. The hosts 18 are shown within cabinets 32. Since the virtual hosts of common cluster functions are interspersed within physical cabinets 32, the result is considered to be, according to one policy, a physically unbalanced load. For example, the physically unbalanced load shown in FIG. 5 may result in a less efficient use of physical infrastructure resources than a physically balanced load would. It requires more cold air to cool a physically unbalanced load, as shown in FIG. 5, than to cool a physically balanced load in which all virtual machines 22 are assigned to hosts 18 that are as close as possible to the bottom of the rack. Also, if three-phase power is being used, power distribution is inefficient when not balanced across three phases.
Without a view of the system that indicates the physical locations of the devices upon which virtual machines are running, there is no way to know if this logical balancing, as shown in FIGS. 4 and 5, has had a negative effect on physical balancing. There is a need for a virtualization visualization and distribution system that takes into account physical aspects of the hosts upon which virtual machines are running.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a screenshot of a virtualization management tool showing an application being run on a particular logical server via an IP address.
FIG. 2 shows a screenshot of a virtualization management tool showing two virtual hosts.
FIG. 3 shows an example of a logically unbalanced cluster of hosts.
FIG. 4 shows an example of a logically balanced cluster of hosts.
FIG. 5 shows a hypothetical physical view of a logically balanced workload.
FIG. 6 shows a hypothetical physical view of the workload of FIG. 5 rebalanced in accordance with one embodiment of the present invention.



DESCRIPTION
With the physical view enabled by an asset tracking function, physical clusters can be defined as cabinets 32. If the loads are balanced by physical cabinet clusters, a balanced physical load enables efficient use of physical infrastructure support.
FIG. 6 shows the same logical load as shown previously, but rebalanced for physical cabinet clusters defined by an exemplary physical infrastructure management system such as Panduit Corp.'s Physical Infrastructure Management system.
The virtual machine workload shown in FIG. 6 is balanced for optimal physical infrastructure usage according to one policy for optimization. In this policy, the loads are evenly distributed between cabinets 32 and concentrated at the bottom of the cabinet which is where cold air is supplied. This workload distribution was accomplished without violating the functional cluster definition.
In other embodiments of the present invention, other policies may be applied to the distribution of loads within physical cabinets. Further, policies may be stacked, such that a first (or primary) policy is satisfied first, and second (or secondary) and subsequent policies are satisfied only after, and in accordance with, the satisfaction of the first policy. For example, a first policy could be to distribute loads so that racks are populated with computational loads from the bottom up, and a second policy could be to distribute loads such that racks that are closer to a cooling unit are populated with virtual machines before racks that are farther from the cooling unit.
The example above demonstrates how a physical view of virtual machines and virtual hosts can supplement the typical logical view provided by virtualization management tools. Also, defining physical clusters based on virtual host locations within cabinets and data center enables increased efficiency regarding physical infrastructure usage.
The structure described above, which is based on an asset tracking system that knows where hosts are physically located and what hosts virtual machines are running on, provides a framework in which policies can be written. The policies can be related to security or energy management. For example, without taking into account the physical aspects of hosts' deployment, virtual machines could all be placed within a certain cabinet or row within a data center resulting in a small physical area that requires a large amount of cooling. By setting a policy to redistribute workloads based on balancing within a physical cluster, the cooling supply can be more efficiently delivered in a distributed manner. Security-based policies may also be executed and enabled by this system. Since the visibility provided by logical clusters does not include physical views, highly secure or sensitive virtual machines could be running on hardware that is in insecure physical areas. A policy could be written to force workloads of a certain sensitivity to be run only in a physically secure environment made up of identified cabinets or data centers.

## Claims

1. A method for distributing computational loads of virtual machines across a plurality of physical hosts housed within a plurality of cabinets, the method comprising the steps of:
providing an asset tracker, said asset tracker tracking a physical location of each of said plurality of physical hosts, said asset tracker further tracking a physical security status of each of said plurality of cabinets;
determining a physical security requirement of each of said computational loads of said virtual machines; and
distributing said computational loads of said virtual machines across said physical hosts according to a first policy that relies on said respective physical location of said physical hosts, according to a second policy that relies on said respective physical security status of said respective cabinets that house said physical hosts, and according to a third policy that relies on said respective physical security requirement of said computational loads of said virtual machines.

2. The method of claim 1, wherein said first policy comprises instructions for populating said respective physical hosts in an ascending manner starting at a bottom of said respective cabinets.

3. The method of claim 2, wherein said first policy further comprises instructions for populating said respective physical hosts based on an ascending proximity to a cooling unit.