Virtual machine provisioning, or virtual server provisioning, is a systems management process that creates a new virtual machine (VM) on a physical host server and allocates computing resources to support the VM. These computing resources typically include CPU cycles (or entire cores) and memory space, but can also involve I/O cycles and storage.
Although virtual machine provisioning can be accomplished manually, administrators generally prefer to automate server provisioning by creating a generic VM, called a VM template. This generic VM is loaded from storage (usually the corporate SAN) to the desired host server.
A corporation may maintain an extensive library of various VM templates -- each with a unique suite of computing resources -- that it can deploy in response to varied needs. For example, a Windows Server 2003 VM template may allocate 384 MB of memory and 10 GB of disk space, while a Windows Server 2008 VM template may allocate 512 MB of memory and 30 GB of disk space.
The more recent trend toward rapid virtual machine provisioning shifts the focus to the SAN, where a generic VM can be replicated and presented to a host server without the time and bandwidth needed to copy a blank VM to the host over the network. Administrators can also add or subtract desired elements of the new VM without having to create a larger number of complete VM templates.
Virtual server provisioning should be approached carefully. An application with inadequate computing resources can suffer from poor performance, poor availability or crash entirely, so it's vital for administrators to allocate sufficient resources. Testing prior to rolling out the virtual application can help ensure these resources are adequate.
Server resources are finite, so a given server can only support a limited number of virtual machines. The exact number really depends on the age and sophistication of the physical server itself. Most administrators prefer to load a physical server at 50% to 80% of its total resource capacity. This includes a VM for the server's host operating system. The unused computing resources can be pooled and reallocated dynamically as workload demands change, or left in reserve to support additional VMs that are migrated to the server.
Virtual machines generally do not use all of the resources that are allocated to them, so virtual machine provisioning may also involve some amount of over-provisioning -- allocating more resources than the server has available. For example, "thin provisioning," a common practice in storage, is appearing in virtual platform features like memory overcommit. When implemented properly, over-provisioning makes it possible for a server to host more VMs than might otherwise be feasible.
Finally, administrators face a challenge of process control in virtual server provisioning. VMs are so simple to create that servers can easily be overwhelmed by an uncontrolled proliferation of virtual machines (a phenomenon called VM sprawl). To control VM sprawl, organizations should be able to justify the creation of new VMs, limit the actual creation rights to a few knowledgeable administrators and employ lifecycle management tools.