What is a virtual machine?
A virtual machine (VM) is a digital environment that operates as a virtual compute resource on a physical server. It uses software to run and deploy applications instead of a physical computer system. One server, or host, can have many VMs, or guests, running at the same time. Each VM has its own operating system, as well as memory, storage, CPU and network interfaces that run independently of any other VMs on the hardware host—so a physical PC could run a MacOS or Linux VM without issues, for example.
VMs make it possible to have a variety of operating systems running at the same time on a single computer. Each VM runs independently of the others and offers an end-user experience that matches the experience of using a non-virtual machine, or a single operating system that’s tied to a single physical machine. End users can use applications on a VM just as they would on their dedicated hardware computer system. In fact, most end-users who access computing systems remotely wouldn’t even know whether they were working with a VM or a dedicated computer system.
How do virtual machines work?
VMs rely on virtualization, which is a technology that allows a single physical server or computer workstation to host numerous virtual environments. The host machine uses a piece of software called a hypervisor to manage and separate out the host’s compute, networking, and storage resources into a single pool to distribute to each VM as needed.
For example, if a VM is running and the user (or application) instructs the VM to do something that would require more resources than it currently has, the hypervisor would quickly identify the need and reassign part of the host’s pool or shared resources to meet demand.
Because they essentially act as a “computer within a computer,” VMs allow organizations to have dozens of separate computer systems on a single machine. Each VM can run in an application window on top of the existing OS of the host machine. Users can change configurations and make updates to a VM OS just as they would on a dedicated computer. They can also install or delete applications onto the VM. Virtual machines include a number of common files, such as logs, configurations, NVRAM settings, and a virtual disk file.
What are virtual machines used for?
Virtualization technology has been around for a long time, but VMs have become increasingly common as remote work and end-user computing grew in popularity. Today, VMs are used for many reasons in both on-premises and cloud environments. Use cases include:
- Server consolidation and hardware optimization - This is one of the most common reasons organizations use VMs. It allows them to reduce their physical hardware footprint without sacrificing computing power and access. With VMs, there’s no need to buy additional physical servers and workstations. This can help organizations save on data center OpEx costs as well as CapEx equipment costs. It also optimizes hardware utilization, because dedicated hardware typically uses only a fraction of its total resources at any one time.
- Extra disaster recovery options - VMs can provide failover and redundancy capabilities that once were possible only through the purchase of additional hardware.
- Temporary or ad hoc test/development/production environments - Because VMs are separated from each other, they can be a good option for DevOps to test a new application or set up a quick production environment in a secure sandbox when needed. If something goes wrong, it won’t affect the host system at all.
- Acceleration of workload migration - VMs are highly flexible and portable, making them good candidates for making migration faster and more efficient.
- Creation of hybrid computing environments - VMs make it easier for organizations to place workloads both in the cloud and on-premises, which offers a degree of flexibility while still leveraging legacy systems.
What are the types of virtual machines?
There are two basic types of virtual machines:
These virtual machines emulate an entire computer system, much as we’ve described in previous sections. They are located in isolated partitions of a physical server or computing workstation and have their own operating systems, configurations, applications and services that run independently of each other. This type of VM requires a hypervisor that allocates resources to each VM from a single shared pool. Some examples of system VMs include Nutanix AHV, VMware Fusion and the open source Xen.
Sometimes referred to as application VMs or managed runtime environments (MREs), process VMs are set up to temporarily run a single process as an application — to run Java programs, for example, or the Microsoft .NET Framework. These virtual machines are essentially runtime environments for that specified process and they are not dependent on any platform. They work by providing a high degree of abstraction that serves to “hide” the host’s operating system and other hardware. Process VMs are temporary; they are created when a user starts the specific process and they are destroyed once that process is complete.
Virtual machines and cloud computing
Public cloud providers are increasing their use of virtualization and VMs as they seek more flexibility and scalability across workloads and strive to better support a variety of applications on multiple operating systems.
A VM in the cloud works the same as a VM on a server in an organization’s data center—the only difference is that the cloud VM is hosted in a cloud service provider’s data center instead of yours.
Cloud VMs typically come in two different varieties:
A single-tenant VM is designed to be used by a single customer (typically an organization). These VMs can be either a dedicated host or dedicated instance.
- A dedicated host means the customer rents the entire physical machine and is the only entity allowed to use the hardware, VMs, applications, software and everything else that resides on the host. This VM model is preferred by customers who want ultimate flexibility and visibility into the hardware as well as absolute control over where workloads are placed.
- Dedicated instances still offer isolation from other customers and control over the placement of workloads but aren’t tied to a specific physical machine. The cloud service provider gives the customer dedicated space on a host machine, but if the instance is rebooted, for instance, it might come up on a different machine in a completely different geographical location. The customer would likely not be able to tell, however, because the experience and performance of the VM would be identical.
Also called public VMs, multi-tenant VMs are shared by multiple customers across a multi-user physical infrastructure. Each customer’s data is isolated from everyone else’s but the customers share a single set of applications, databases, and server resources. While it doesn’t offer the same high degree of separation and customization that some customers prefer, it is highly scalable and cost-effective because it is typically available at a lower price than single-tenant VMs.
Advantages of virtual machines
- Simpler management, administration and maintenance by reducing the number of physical machines that need to be updated, secured, and so on.
- Improved hardware utilization and efficiency, as multiple VMs make better use of a host’s resources than a single instance would.
- Reduced costs of migration because VMs can be used to run legacy applications so you don’t have to migrate them to newer environments and operating systems. J
- Reduced hardware costs, thanks to decreased need for physical machines and peripheral hardware. This also leads to lower data center operating expenses.
- More powerful security due to VMs’ isolation from each other—which means if one VM is attacked, it doesn’t compromise the other VMs on the same machine.
- Increased flexibility and scalability as VMs are highly portable and can be moved, copied, or reassigned to different hosts as needed.
Challenges of virtual machines
VMs offer a wealth of advantages over physical host machines, but they also come with a few challenges:
- Possible poorer performance than physical machines, depending on configurations and number of VMs used on a single host.
- Many VMs could be negatively affected if the physical host malfunctions—a crash can have major implications when dozens of VMs are reliant on the operation of a single server.
- Securing VMs can be challenging and require a high degree of skill to manage
- Virtual disk consolidation, or merging VM disk files that were created after the system took VM snapshots, can be complex and difficult to manage.
Why should enterprises use virtual machines?
Organizations use VMs for a lot of smart reasons, many of which we’ve covered in previous sections. While VMs were initially used as early as the 1960s to isolate data for each user that shared a large mainframe computer, today they’re used more by enterprises to increase hardware utilization, reduce their physical hardware footprint, and save on costs for equipment and physical operations.
Virtual desktop infrastructure (VDI) is also a major driver for VM use in enterprises. VDI platforms allow employees to access their desktops from remote locations and devices—a definite plus as remote and hybrid work models become ever more popular.
As organizations increasingly move workloads to the cloud, they are using cloud-based VMs to create hybrid environments and build infrastructure alongside their existing on-premises legacy environments.
The security benefits of using VMs is another plus, as the separated VMs provide an extra layer of protection when systems are infiltrated.
Add to all the other benefits a great potential for cost savings and extreme scalability, and it’s clear to see why VMs have become critical components in modern enterprise IT infrastructure.
How can I create a virtual machine?
Organizations have a lot of options when it comes to choosing a virtualization platform. Most platforms have simplified processes for creating and deploying new virtual machines. In fact, many solutions come with convenient setup wizards or templates that make it fast and easy to get started.
While many virtualization platforms are designed for enterprises and offer a lot of advanced features and customization options, you can also find simple virtualization platforms that don’t cost a thing. One example is the open-source VirtualBox from Oracle.
Why choose Nutanix?
Trusted by more than 20,000 users, Nutanix knows virtualization. Our virtualization and VM solutions provide the advanced, enterprise-grade features and capabilities you need to make virtualization easy across your entire IT ecosystem—whether it’s on-premises, on the edge, in multiple clouds, or all of the above.
With Nutanix AHV, you get a secure platform built for today’s hybrid multicloud that offers high workload availability, fully optimized performance and utilization, and lifecycle management across your entire stack.
Nutanix VDI leverages the power of Nutanix Cloud Platform to make end-user computing simple by integrating compute, virtualization, storage, networking, and security.