Jump to section

What is a virtual machine (VM)?

Copy URL

A virtual machine (VM) is a computing environment that functions as an isolated system with its own CPU, memory, network interface, and storage, created from a pool of hardware resources. Software called a hypervisor isolates the necessary computing resources and enables the creation and management of VMs.

The physical machine that runs the VMs is called the host machine, host computer, host operating system, or simply host. The many VMs that use its resources are guest machines, guest computers, guest operating systems, or simply guests. 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 virtual machines.

VMs allow multiple different operating systems to run simultaneously on a single computer—like running a  Linux® distribution on a MacOS or Windows system. Each operating system runs in the same way an operating system or application normally would on the host hardware, so the end user experience emulated within the VM is nearly identical to a real-time operating system experience running on a physical machine. 

Virtualization describes technology that makes use of resources that are traditionally bound to hardware. It allows you to use a physical machine’s full capacity by distributing its capabilities among many users or environments.

Types of virtualization include:

  • Data virtualization, which allows organizations to 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 allows administrators to partition servers into configurations meant to to serve specific functions.

  • Operating system virtualization, which makes it possible to run multiple operating systems 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.

A VM can be defined in a single data file, which can be moved from one computer to another, opened in either one, and be expected to work the same. A hypervisor manages the hardware and separates the physical resources from the virtual environments. Resources are partitioned as needed from the physical environment to the VMs. The physical hardware still does the execution, so the CPU is still executing 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 so that the virtual machine’s operating system and applications can access the shared pool of physical resources.

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 hypervisors that can be used for virtualization.

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 operating system, which is then executed against the hardware. VMware Workstation and Oracle VirtualBox are examples of type 2 hypervisors. 

With virtualization, multiple operating systems can run alongside each other and share the same virtualized hardware resources. Without virtualization, you can only run 1 operating system on the hardware.

Server consolidation is a top reason to use VMs. Most operating system and application deployments only use a small amount of the physical resources available when deployed to bare metal. By virtualizing your servers, you can place many virtual servers onto each physical server to improve hardware utilization.

This keeps you from needing to purchase additional physical resources, like hard drives or hard disks, as well as reducing the need for power, space, and cooling in the datacenter. VMs provide additional disaster recovery options by enabling failover and redundancy that could previously only be achieved through additional hardware.

A VM provides an environment that 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.

Because VMs are isolated, they are 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.

Virtualization is one of the technologies that makes 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.

The virtualization, management, and automation software that creates clouds all sit on top of the operating system, which maintains the connections among physical resources, virtual data pools, management software, automation scripts, and customers.

Red Hat has long been a leading contributor to open source virtualization software development, and Red Hat’s trusted products and partner ecosystem come together in 1 comprehensive virtualization solution

Migrate your virtual machines now to Red Hat® OpenShift® Virtualization, a modern application platform–based on the open source projects KVM and KubeVirt–that can run virtual machines and containers side by side. The included migration toolkit for virtualization provides the tools you need to start your migration in a few simple steps.  Use automation to accelerate delivery with Red Hat Ansible® Automation Platform–from migration at scale to Day 2 operations and remediation. Monitor the security and performance of your VMs from a single console with Red Hat Advanced Cluster Management for Kubernetes. With additional support options and partner integrations for storage, backup and disaster recovery, and networking, you can rely on Red Hat to keep your virtual infrastructure running smoothly throughout the hybrid cloud–and help you modernize when you’re ready.

Keep reading

Article

Containers vs VMs

Linux containers and virtual machines (VMs) are packaged computing environments that combine various IT components and isolate them from the rest of the system.

Article

What is a virtual machine (VM)?

A virtual machine (VM) is an isolated computing environment created by abstracting resources from a physical machine.

Article

What is KVM?

Kernel-based virtual machines (KVM) are an open source virtualization technology that turns Linux into a hypervisor.

More about virtualization

Products

Red Hat OpenShift Virtualization

Migrate and manage virtual machines on a comprehensive hybrid cloud application platform with Red Hat OpenShift Virtualization.

Red Hat Ansible Automation Platform

Manage the full end-to-end lifecycle of VMs—from provisioning, to patching, to enforcing configuration standards.

Red Hat Advanced Cluster Management for Kubernetes

Monitor and manage the security and performance of your VMs from a single console. 

Resources

Datasheet

Work with Red Hat consulting to develop a clear roadmap and timeline for migrating your VMs.

Learning hub

Explore learning materials and tools designed to help you use Red Hat OpenShift Virtualization.

E-book

Learn 15 key benefits of deploying Red Hat OpenShift as a unified app platform for both VMs and containers.

Brief

Explore how you can automate and scale migration of VMs off of traditional technology.

Training

70% discount

Managing Virtual Machines with Red Hat OpenShift Virtualization.