Virtual machines do not require specialized, hypervisor-specific hardware. Virtualization does, however, require more bandwidth, storage and processing capacity than a traditional server or desktop if the physical hardware is going to host multiple running virtual machines. VMs can easily move, be copied and reassigned between host servers to optimize hardware resource utilization. Because VMs on a physical host can consume unequal resource quantities — one may hog the available physical storage, while another stores little — IT professionals must balance VMs with available resources.
The use of virtual machines also comes with several important management considerations, many of which can be addressed through general systems administration best practices and tools that are designed to manage VMs. There are some risks to consolidation, including overtaxing resources or potentially experiencing outages on multiple VMs due to one physical hardware outage. While these cost savings increase as more virtual machines share the same hardware platform, it does add risk. It is possible to place hundreds of virtual machines on the same hardware, but if the hardware platform fails, it could take out dozens or hundreds of virtual machines.
Several vendors offer virtual machine software, but two main vendors dominate in the marketplace: VMware and Microsoft. VMware has a mature product portfolio, with many years of use in the IT industry. While a bit of a late player to virtualization, Microsoft is showing considerable progress. Many IT shops host noncritical applications on Microsoft VMs because the virtualization environment costs less than VMware’s offerings. Several open source alternatives are evolving rapidly, with new features and increased stability, but do not have the same maturity or support options as these vendor offerings.
Cloud computing layers additional technologies, such as self-service provisioning and chargeback, onto virtualization. For example, in a virtualized data center, the IT staff will spin up new virtual machines based on user demand or a new project. In a cloud environment, a user can provision virtual machines from a self-service catalog and specify resources without interacting with the underlying physical equipment.
Note: This entry refers to the term virtual machine (VM) as it applies to virtualization technology, which creates independent environments for use by operating systems and applications designed to run directly on server or client hardware. Numerous other technologies, such as programming languages and environments, also use the same concepts and also use the term “virtual machine.”