virtual machine (VM)

Contributor(s): Brian Kirsch

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 limits 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 backupsdisaster 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.

VM Management

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.

VM Uses

VMs have multiple uses, but in general they are deployed when the need for different operating systems and processing power are needed for different applications running simultaneously. For example, if an enterprise wants to test multiple web servers and small databases at the same time. Similarly, if an enterprise wants to use the same server to run graphics-intensive gaming software and customer service database.

VM vs. Dual Boot

Before the arrival of virtualization, an operator wanting to run two operating systems, say, Windows and Linux, had to run two full operating systems and toggle between them. While only one could be used at a time, it used the full power of the hardware. In some instances, particularly when the computer is not that powerful and the tasks are very demanding, some operators still prefer to use dual boot. Similarly, if the operator is working within one operating system for long periods of time, the power available during a dual boot can be preferable. However, when the operator needs to switch between applications on different operating systems often, VM is far more practical.

VM vs. emulators

An emulator is software that allows one application to take on the characteristics of another. For example, emulation software can be used to make a PC operate as a game console.

VM vs. containers

Containers are similar to VMs, except that they only virtualize the operating system, rather than the rest of the underlying hardware. Containers contain the code, system tools, runtime, system libraries and settings needed for multiple applications. That's why containers are often used when multiple applications using the same operating system are needed.Containers are used to create cloud-native, distributed applications, and to package legacy applications for increased portability and deployment simplicity. One of the leading container developers as of mid-2019 was Docker, which first arrived in the market in 2013 as a Linux-based container platform.

VM Vendors

Several vendors offer virtual machine software, but two main vendors dominate in the marketplace: VMware (acquired by EMC in 2004, which was acquired by Dell in 2015), Oracle and Microsoft. Numerous open-source VM vendors have also staked their claims, such as ProxMox. VMware has a mature product portfolio, with many years of use in the IT industry. Microsoft has come on very strong in recent years, introducing its Azure line of VM solutions. They include 11 different series that range from its A Series -- designed for development and test servers, low traffic web servers, small to medium databases, servers for proof-of-concepts, and code repositories -- to its N Series -- designed with graphics processing unit (GPU) capabilities for compute and graphics-intensive workloads, such as high-end remote visualization, deep learning and predictive analytics.

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.

This was last updated in July 2016

Next Steps

Expert Brian Posey outlines the benefits as well as the risks of moving virtual machines to the public cloud and explains what to consider when comparing vendors.

Continue Reading About virtual machine (VM)

Dig Deeper on Introduction to virtualization and how-tos