Many of us might have heard about virtualization and some might even have an idea what it means. But as it is still a fairly unknown subject for most, I decided to create a simple introduction to virtualization.
In this post, I will cover basic things about what is virtualization and the advantages and disadvantages of virtualization.
To answer the question of what virtualization is, we can describe it shortly by saying: virtualization is the process of converting a physical IT resource into a virtual IT resource. If you don’t understand the description yet, don’t worry. This post will explain virtualization in a bit more detail to help you understand the whole concept and the description above.
Converting physical IT resources to virtual IT resources means that the physical hardware we have is converted into virtual hardware by a virtualization software. This is useful because the different software has different requirements for the underlying hardware. Simply put, not every program can be run at the same hardware.
To make the underlying hardware we already own capable of running all kinds of software, we can use a virtualization software usually referred as the hypervisor (virtual machine monitor) which uses the hardware we have and generalizes it, creating a virtual version of it. Now we can install any operating system on top of the virtualization hardware and run any program we want to.
We can install many operating systems on top of the hypervisor as all the virtual machines installed are sharing the underlying resources. For example, if we have a computer with 16GB of RAM. It means that the two or more virtual machines we have installed can’t use more than 16GB of RAM together. In a real-life scenario, it is always less than the actual amount of RAM we have installed as the hypervisor is using a small portion of the RAM as well. This applies to all physical resources we have, meaning that the amount of virtual resources is limited by the amount of physical resources we have.
Virtualization allows us to use any software that we normally couldn’t run and to run multiple virtual machines on one physical machine. We can also virtualize a lot of different resources, including:
- Servers - one physical server into many virtual servers
- Processing power
Advantages of virtualization
Virtualization offers us many advantages compared to the normal usage of our servers.
By installing one operating system on one server, which is the traditional way of hosting, ties us to the physical hardware we are using. This can prevent us from installing and using some software as it won’t work with our hardware.
As mentioned before, virtualization converts unique hardware into standardized and emulated resources. The emulated resources have benefits compared to traditional hosting. The resources are now:
If you are running only one operating system on one physical server, it in most cases means that the server resources are underutilized. Virtualization makes it possible to run multiple operating systems on one physical server, this is called server consolidation.
Server consolidation allows the resources to be optimized, meaning that the resources are in effective use. It increases the hardware utilization and load balancing. Server consolidation supports:
- On-demand usage
- Resource pooling
Ease of migrations and backups
Virtual servers use virtual disk images. These are the virtual machines hard disk content copied to a file. Because the disk images are files, the owner can copy, delete or move them very easily. If you need to back up your server, just simply copy the virtual disk image file and move it to the backup location. It allows users to make pre-created virtual machine templates that are ready for use.
Taking a snapshot in a virtual machine means that the current state of the machine is stored, and the user can roll back to the snapshot if something goes wrong afterward. This function is very useful when installing new software which compatibility isn’t guaranteed or when making other big changes to the system that can break configurations. Take a snapshot before the changes and if something goes horribly wrong, you are able to revert to the working setup you had before.
When using virtual machines, you are also able to save the live contents of memory and CPU states to a disk. It’s a function designed to help server backups or migration processes.
If your virtual machine suddenly needs more storage, RAM or other resources, you can easily make the modifications to the virtual machine so that it has access to all the resources it needs. This makes the virtual machines easy to scale if they workload is growing.
For data centers offering servers for companies and individuals for their various purposes, virtualization is very useful. It allows them to run more servers since one physical server can run many virtual servers. Virtualization also reduces the power costs and the amount of heat generated by the servers. On a large scale, these can be massive savings in money. Data centers can also have more servers in less space because of virtualization.
Virtualization eases high availability and disaster recovery planning and increases the overall utilization of the underlying hardware.
Disadvantages of virtualization
Virtualization offers us many benefits, it also has its disadvantages. The disadvantages don’t affect all users, but depending on the use, it is important to acknowledge the problems in virtualization.
If you have many servers running the same process on high workload, virtualization is probably not beneficial. The hypervisor (virtualization software) does require some resources for its own use. Nowadays, it is a very small portion, but on a large scale, it can be very costly to run “unnecessary” virtualization. The resources used by the hypervisor could be used by the actual servers to increase the performance. This usually applies to big companies running many servers, or even own datacenters with some specific workloads.
Special hardware compatibility
Not all hardware is compatible with virtualization drivers. The software might lack drivers for the specific hardware type. Most new hardware does support virtualization, but make sure that the product you are buying supports it if you need virtualization.
Portability and vendor lock
There are different ways to implement virtualization. As the vendors of different implementations are usually interested in keeping their customers, the migration from one vendor’s virtualization software to another can be hard or impossible. For example, migration from VMware ESXi to Microsoft Hyper-V. (More on different virtualization software vendors in the second post of virtualization).
Some open source projects aim to standardize the virtual disk images and even other resource types. The Open Virtualization Format (OVF) is a good example of this.
The network load of a server that is running multiple virtual servers is usually higher. If one physical server has, let’s say, 50 virtual servers on it and every one of the servers is hosting a website, the bandwidth requirements are high. If there isn’t enough bandwidth the servers are not able to carry the task they were assigned to properly.
Virtualization Explained – Part 2: Advanced
This was a basic overview of virtualization and what it offers. If you would like to learn more about the subject, you can read the second part, slightly more advanced and deeper information about virtualization. It explains different types of virtualization, virtual machine storage, migrations, security and more. Make sure to read it, you can find it here.