A virtual machine (VM) is an operating system OS or application environment that is installed on software which imitates dedicated hardware. The end user has the same experience on a virtual machine as they would have on dedicated hardware.
Specialized software called a hypervisor emulates the PC client or server's CPU, memory, hard disk, network and other hardware resources completely, enabling virtual machines to share the resources. The hypervisor can emulate multiple virtual hardware platforms that are isolated from each other, allowing virtual machines to run Linux and Windows server operating systems on the same underlying physical host. Virtualization saves costs by reducing the need for physical hardware systems. Virtual machines more efficiently use hardware, which lowers the quantities of hardware and associated maintenance costs, and reduces power and cooling demand. They also ease management because virtual hardware does not fail. Administrators can take advantage of virtual environments to simplify backups, disaster recovery, new deployments and basic system administration tasks.
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.
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.
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.
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."