I have been asked many times by non techie folks about what is virtual machine. I know that for the readers who follow my blog, the question might be inappropriate, but for those of you who does not know what is virtual machine and want to know simple answer, read on. Experienced virtualization users won't find much new in this article.
Virtual machine is a full system emulation of physical computer (server). Virtual machine runs in memory and executes programs as it was physical computer. That's the simplest explanation possible.
Imagine you have Windows (linux) computer at home. It's possible with the help off the right tools, like VMware Converter Standalone, and convert this physical computer to virtual machine. This virtual machine, with many others, can be executed on another computer, because by simply copying several files, which compose this VM, you can transfer this virtual machine elsewhere.
Virtual Machine Components
Virtual machine has several files which are necessary for running and emulating the server/desktop Operating system. In VMware environment, one of those files is virtual hard disk file – a file with extension of VMDK. Microsoft's extension is VHD, or VHDX. All settings are setup in configuration file which has VMX extention.
You can install an operating system in virtual machine the same way as you would install an operating system on a physical computer. The virtual machine has a BIOS, and also it's own set of virtual hardware. You can use CD/DVD-ROM or ISO image containing the installation files. You can test new desktop or server operating systems running inside of virtual machine.
The virtual hardware contained in virtual machine can be modified, changed etc. Like for example you can add additional virtual disk, or additional network Ethernet card. This makes the operating of virtual machines very very flexible.
Density and consolidation – the key of virtualization
Another question I'm receiving from family members and other people is why this virtualization stuff? -:). The principal, or one of the principal benefits of virtual machines is the consolidation. Now other question shoots here – what is consolidation? Ok, ok,… Consolidation means that you can basically run several virtual machines at the same time on one physical computer, or I better say server, with redundant hardware (double CPU, double power supply etc….).
By running several virtual machines on the same hardware computer you basically use the hardware more efficiently, because most of the time the Operating system does nothing. On average the real utilization is like 4-5 % and the rest of the time the computer just consumes energy.
This brings me to another topic which is energy efficiency. It's much more efficient to run 100 or 1000 Os on 4-5 physical servers, rather than have 100 or 1000 physical servers stored in the server room and consume energy 24/24. Energy efficiency of virtualization is proven fact, not only you save money on paying less for your electricity bills (air conditioning and power supplies drains a lot), but also space in the server room.
Virtual machine which runs together with many others, on the same physical servers configured in cluster, needs free resources for seamless execution. Virtual machine needs CPU power, memory, disk space and network throughput. If the physical host starts to get exhausted on one or several resources, than the performance of all virtual machines running on that host can be impacted.
That's why the enterprise virtualization platforms like the one from VMware, can automatically move running virtual machines from one physical server to another – the process is called vmotion.
When you experience hardware problems (it happens), the built-in high availability (HA) feature handles the failure of all those virtual machines running on the affected server computer and restarts automatically those VMs on another available server in the cluster.
Virtual Machine Backup and restore
In the physical world, the backup process of the whole server was kind of difficult, because usually one had to deal with different hardware. So to restore full server one had to basically first install the operating system on new server, and restore the configuration. Even more complicated was the deal with third party software usually installed on the server…… It could take days to get back to production.
Virtual machine composed with few files is easy to backup, the only problem is basically the volume of those backups. But today, there is many vendors who provide backup software with good performance, which enables you to make only the first backup as a full backup, and then the rest of the backups are forever incremental. This is advantage and necessity because incremental backups are much shorter than full backups.
Virtual machines has transformed the IT industry during the past 10 years. Many virtualization vendors providing virtualization software, with leaders VMware, Citrix or Microsoft, are gaining the parts of the enterprise and consumer market. It's estimated that only about 50 % of servers running on this planet has been virtualized. The deployment of physical servers running only single instance of OS stopped few years back and new servers deployed are destined to the virtualization market only.
In few years time, there will be only virtual machines running on physical systems.