What is a virtual machine (VM)?

Copy URL

A virtual machine (VM) is an isolated computing environment with its own CPU, memory, network interface, and storage, created from a pool of hardware resources. 

Virtualization, the concept behind VMs, makes it possible for a single computer to act like many different computers at the same time. VMs can emulate endless arrangements of operating systems (OSs) on the same physical hardware to help companies reduce costs, streamline operations, and gain more value from existing infrastructure. 

Traditional virtualization deals with resources that were normally bound to hardware. It can distribute a machine’s capacity among many users or environments.

Virtualization began in the 1960s as a technology for time-sharing on mainframe computers. Virtualization as we know it today gained popularity in the 2000s as organizations looked for ways to make the most of their computing resources and optimize access to expensive hardware.

Types of virtualization include:

  • Data virtualization, which lets you consolidate data sources into a single dynamic supply.
  • Desktop virtualization, which allows multiple simulated desktop environments to be deployed and controlled through a central administrator.
  • Server virtualization, which lets administrators partition servers into configurations meant to serve specific functions.
  • OS virtualization, which makes it possible to run multiple OSs on a single computer.
  • Network functions virtualization, which separates a network's functions (like directory services, file sharing, and IP configuration) so they can be distributed among environments.

Explore virtualization topics

Migrate and manage virtual infrastructure

The physical machine that runs the VMs is called the “host machine,” “host computer,” “host OS,” or simply “host.” The VMs that use its resources are “guest machines,” “guest computers,” “guest OSs,” or “guests.”

Software called a hypervisor isolates the necessary computing resources and allows the creation and management of VMs. The hypervisor treats compute resources—like CPU, memory, and storage—as a pool of resources that can easily be relocated between existing guests or to new VMs.

Each OS runs in the same way an OS or application normally would on the host hardware. This way, the end-user experience emulated within the VM is nearly identical to a real-time OS experience running on a physical machine. 

You can define a VM with 1 data file, and it will work the same across different computers. A hypervisor partitions resources as needed from the physical environment to the VMs. The physical hardware still does the execution, so the CPU handles CPU instructions as requested by the VMs—for example, while the hypervisor manages the schedule.

When the VM is running and a user or program issues an instruction that requires additional resources from the physical environment, the hypervisor schedules the request to the physical system’s resources. This shared pool of physical resources is available to the VM’s OS and applications.

In Linux® environments, the built-in hypervisor is called the Kernel-based Virtual Machine (KVM). Other options include Xen, which is open source, and Microsoft Hyper-V.

There are 2 different types of virtualization hypervisors:

  • Type 1: A type 1 hypervisor is on bare metal. VM resources are scheduled directly to the hardware by the hypervisor. KVM is an example of a type 1 hypervisor.

  • Type 2: A type 2 hypervisor is hosted. VM resources are scheduled against a host OS, which is then executed against the hardware. VMware Workstation and Oracle VirtualBox are examples of type 2 hypervisors. 

By allowing multiple OSs to run alongside each other and share the same hardware resources, VMs introduce flexibility that unlocks many benefits.

Efficient resource use 

In a bare-metal environment, most OS and application deployments use only a small amount of the physical resources available. With VMs, you can place many virtual servers on each physical server to improve hardware use.

Using VMs to consolidate servers can help an IT organization save money. You can purchase less hardware, reduce power consumption, and save space in the datacenter. 

Security and disaster recovery

VMs provide some security advantages, too. A VM environment is isolated from the rest of a system, so whatever is running inside a VM won’t interfere with anything else running on the host hardware.

VMs can support additional disaster recovery options by enabling failover and redundancy that could previously be achieved only through additional hardware.

Testing environments and isolated processes

Because VMs are isolated, they’re a good option for testing new applications or setting up a production environment. You can also run a single-purpose VM to support a specific process.

Scalability to meet demand

Spinning up new server instances is a quick process with VMs. This simplifies scaling up and down to meet changes in demand. You can also empower developers to create new environments as they need them.

Flexibility

With the ability to run multiple OSs on a single piece of physical hardware, you can support a greater variety of environments and make the most of what they already have.

15 reasons to adopt Red Hat OpenShift Virtualization 

Like VMs, containers are a way to package the various components of a compute environment and isolate them from the rest of the system. The main difference is what components are isolated.

VMs contain their own OS, allowing them to perform multiple resource-intensive functions at once. They can emulate entire servers, OSs, desktops, databases, and networks.

Generally, containers are smaller and don’t contain a full OS. A modern application might rely on many containers that each perform a specific function.

Learn more about containers vs. VMs

Virtualization is a foundational technology that helps make cloud computing possible. Public and private clouds virtualize resources into shared pools, add a layer of administrative control, and deliver those resources with automated self-service functions.

Software that handles the virtualization, management, and automation necessary for cloud computing all sits on top of the OS. This layer of software maintains the connections among physical resources, virtual data pools, management software, automation scripts, and customers.

Learn more about cloud computing

YouTube video: Is OpenShift Virtualization right for your VMs? Video duration: 1:57

Migrate your VMs and maintain your momentum

Red Hat’s trusted products and partner ecosystem deliver comprehensive virtualization solutions. Migrate your VMs to Red Hat® OpenShift® Virtualization, a modern application platform–based on KVM and KubeVirt–that integrates virtual and containerized workloads to provide flexibility without added complexity. Or, for a dedicated virtualization solution, explore Red Hat OpenShift Virtualization Engine, a streamlined, cost-effective offering to deploy, manage, and scale VMs exclusively. The included migration toolkit for virtualization helps you start your migration in a few simple steps.

Explore Red Hat OpenShift Virtualization as a VMware admin

Automate your migration

Use automation to accomplish migrations faster with Red Hat Ansible® Automation Platform–from migration at scale to Day 2 operations and remediation. With this flexible approach, you can automate tasks to improve speed and efficiency of IT operations.

Manage your Red Hat OpenShift VMs

Monitor the security and performance of your VMs from a single console with Red Hat Advanced Cluster Management for Kubernetes. Additionally, Red Hat Advanced Cluster Management for Virtualization is a version of Red Hat Advanced Cluster Management for organizations that want to manage VMs exclusively.

Article

Why choose Red Hat for virtualization?

Red Hat OpenShift Virtualization provides a modern platform to address virtualization challenges, migrate VMs, and deploy VM workloads.

Red Hat OpenShift Virtualization

A feature of Red Hat OpenShift that seamlessly integrates virtual machines into a modern hybrid cloud infrastructure platform.

Keep reading

What is virtualization?

Virtualization is a technology that allows you to create virtual, simulated environments from a single, physical machine.

What is virtualization management?

Virtualization management helps simplify resource administration, analyze data, and streamline operations.

Red Hat OpenShift on VMware

Explore the benefits of running Red Hat OpenShift on VMware, including resource management, multitenancy, automated installation, and security features.

Virtualization resources