1. Field of the Invention
The present invention relates generally to a server computer system that provides centralized computing resources to a plurality of users. More particularly, the invention relates to a system and method for maintaining a pool of free virtual machines available to be assigned to users on a server computer.
2. Description of the Related Art
Many commercial businesses and enterprises make extensive use of personal computers (PCs) in their daily operations. Typically, each user of a PC in the enterprise has a networked PC at his/her desk or work area. As the number of networked computer systems utilized in an enterprise increases, the management of resources in the network may become increasingly complex and expensive. Some of the manageability issues involved in maintaining a large number of networked computer systems may include ease of installation and deployment, the topology and physical logistics of the network, asset management, scalability (the cost and effort involved in increasing the number of units), troubleshooting network or unit problems, support costs, software tracking and management, as well as the simple issue of physical space, be it floor space or room on the desktop, as well as security issues regarding physical assets, information protection, software control, and computer virus issues.
Many of these issues may be addressed by centralizing the locations of computing resources. For example, each individual user may connect through a network to a server computer system and use computing resources provided by the server computer system.
Some server computer systems are capable of leveraging the physical hardware resources available by providing virtualization capabilities. Virtualization provides the ability for multiple virtual machines to run together on the same physical server computer. For example, each virtual machine may execute its own operating system and may appear to a user of the virtual machine to be the same as an independent physical computer. The software layer that executes on the physical server computer and manages the various virtual machines is called a hypervisor or virtual machine host software. The hypervisor can run on bare hardware (called a Type 1 or native VM) or under control of an operating system (called a Type 2 or hosted VM).