Ten reasons why Virtual Machines still matters

Virtual Machines are tools that are widely used in many IT systems. Despite many other solutions, virtual machines are still the foundation of most environments.
How it is possible if you have containers or even SaaS solutions? We will show why you should always have VMs in your mind.
But what is a Virtual Machine?
We all know that VMs are software-based simulations of machines. We could run operating systems as a process inside another operating system. This is an important feature, which we could categorize in two ways.
By type of Virtualization:
- Full Virtualization – this type of Virtualization allows you to create any machine. You can simulate any CPU, any architecture. This kind of Virtualization is also the slowest – all resources must be virtualized;
- Hardware-assisted Virtualization – additional instruction (like Intel VT-x or AMD-V) allows for the acceleration of VMs. It permits the use of a lower layer of resources by VMs, but the consequence is that the kind of VMs is limited to Instruction Set Architecture compatible with the CPUs of the host machine.
- Para-virtualization – this kind of Virtualization allows direct access to hardware. It is realized by additional API. This type of Virtualization needs a specially prepared operating system.
By type of hypervisor:
- Type 1 – it is a dedicated OS, which provides only essential services necessary for Virtualization. It is optimized for that purpose.
- Type 2 – it is OS, where Virtualization is additional software. You can use another function of the OS.
How do you use those features?
Of course, there are many solutions that provide similar capabilities. However, virtual machines do have some advantages, which is why they constitute a huge part of the market.
Full control of flexibility
One of the most important features is the possibility of running multiple instances at the same time using only one host. Thanks to this, you can better use your resources by running multiple virtual machines and, if necessary, adding additional hosts or managers to multiply the system’s capabilities. Managers enable load balancing of virtual machines on hosts and provide convenient tools to handle all of them. The environment prepared in this way allows us to control resources, add and remove them depending on the needs and capabilities of the organization.
Adding resources means creating new nodes and expanding or changing your VM if you want. You can add resources like CPUs, memory, or storage or balance it with other VMs. You could also modify many aspects of your VM, allowing you to shape your environment and change it dynamically.
If you are running multiple VMs at once, you can use another feature: isolation. You can create an environment where every service has its own VM. Isolation improves the security of the environment. Any failure of the VM does not affect other VMs. You also could set different privileges for users for each machine.
Isolation and the possibility to run any OS also mean that your VMs, compared to containers, are more isolated from the hypervisor. You can take care of the hypervisor as an additional layer of security for the entire environment. This also means you could manage many aspects of your VMs, like network or storage.
Could you keep it in good shape?
Managed VMs allow you to create rules for snapshots or backups. Hypervisors often will enable the use of API for operations on VMs; this can be used to manage backups (like our Storware Backup & Recovery). You could also take snapshots, which help test some solutions or roll back after failure.
If you have created a snapshot, you can restore it and make a clone of the machine. Multiplication is easy and allows you to create new instances when needed; this instance is independent of origin. One option is creating a golden image from one source, meaning that one VM is used as the root of proof, and another only writes differences.
You also could clone existing VMs or easily export and import. Much of the software is delivered as a preinstalled VM image. This is a de facto standard and provides an efficient way for software delivery (you have software and configuration that meets requirements).
Creating, cloning, and managing VMs could combine into high-availability features. It allows you to failover your VMs when one of the hosts is down (maintenance or disaster event). You could use many tools for many cases. You can run clones or use Live Migration; you could also use specialized setups where the application knows her backup.
Non-standard appliance
Another example of using virtual machines is the possibility of using them for unusual applications (such as older software or software written for a different architecture such as ARM, RISC and others). You can run machines independently of your setup using the same environment.
If in the earlier cases we could cover that scenario, better or worse, by other solutions that are very hard to use, for example, ARM app on x86 or 16bit DOS program without a dedicated VM.
Sometimes, you need to run not only one app but a whole environment with legacy apps – many industrial applications use legacy solutions because firmware could be unchanged by years (for example, if you use a CNC device and it is compatible only with older standards). In that case, you could create a whole isolated environment, not only from the host but, for example, from the network or the internet.
Summary
Virtual Machines could handle multiple tasks, with performace depending on the application in compare to other setups like cloud or containers. Some of the features, like Non-standard appliances, are unique for VMs. Virtual machines are one solution that allows you to cover every aspect of the modern IT system and does it in a homogeneous way. Please remember that all cloud solutions, containers and others that allow sharing resources have virtual machines inside. When planning the environment, it considers if an on-premise hypervisor is the best option.
02:08 PM, Feb 02
Author:

IT Systems Specialist
Krzysztof Szawara