The concept of hardware virtualization had proposed in 1960 when IBM invested a lot of time and efforts to develop cost-effective solutions and with the efforts of different technology companies like VMware and Citrix, in the late 1990s, the virtualization wasn’t a concept anymore. With the technology advancements in recent years, the virtualization has been turned as a core product and service for example cloud computing. Companies of all sizes have launched their own cloud computing products; Google, Amazon, IBM, Microsoft are few of them providing virtualization technology as part of their services. Thus, virtualization is omnipotent, weather the website we are surfing or any web app or service using by the enterprises or normal consumer, all of them are running on some server and most probably would be on virtualization.
Yes, being a prevalent technology the Virtualization has quite beneficial but with some disadvantages as well… Today, let ’s talk about these pros and cons little appear when we deal with server and desktop virtualization.
Virtualization Advantages or Pros
1. Ease in server management:
With the advent of virtualization, one thing which was the big headache for Administrators has been mitigated, i.e handling hundreds of servers on multiple locations. Now, with the help of powerful hardware, instead of creating multiple servers applications on multiple server hardware, virtualization has comprised them into few. This reduces the pain of admins to run up and down to deal with the host on each station. Also, with the help of remote tools, different functions such as replication and snapshots can be done without accessing the server physically.
2. Balanced hardware utilization:
Each application installed on the server doesn’t consume an equal amount of resources at some given point of time. When there was no virtualization, to make sure the reliability and availability of applications and to avoid conflicts and mutual influence between them, IT administrators avoid to run multiple important applications on a single physical machine, thus wastage of power and hardware resource. However, the isolation feature of virtualization solves this problem very well, which also improves hardware utilization.
Furthermore, the physical resource utilization rate of an enterprise is not always the same, initially, their consumption could be less but with the time as the business grows, they need more power and resources. After the emergence of virtualization, the suddenly “peak” demand problem can be solved through dynamic expansion/adjustment, allowing multiple virtual machines to run on a physical machine to take advantage of this additional “idle time” capacity without adding a large number of physical resources.
3. Dynamically configure
Virtualization separates the operating system and application programs from the server hardware and provides greatly enhanced flexibility. You can increase or decrease resources for virtual machines without shutting down and removing physical servers. Thus, less downtime.
4. High reliability
It offers a highly reliable server application environment with the help of additions solutions and tools to offer transparent load balancing, dynamic migration, and rapid replication. All this together reduces server or application system downtime and improves reliability.
Virtualize environment means less consumption of physical space, low usage of energy, reduce invest in IT hardware, cost-effective maintenance; in addition to all this centralized management is also a great advantage of this technology…
Key Virtualization Disadvantages or Cons:
1. Reduced performance
You might be wondering at one hand the Virtualization technology helps us to use the resources in a poised way and on the other hand, it also has a disadvantage. Yes, virtualization is a software layer running on hardware layer of our systems. In comparison to the operating system running directly on a single physical machine, it will inevitably lose some performance. It is because a single system has plenty of resources but when multiple virtual machines are running in parallel on a physical machine, the higher the utilization rate of the physical machine resources, the more drastically the performance of the virtual machine decreases.
There are two main reasons for this one is the high consumption of CPU and the process of reading data from a disk drive:
CPU- Well, we can create multiple virtual machines to utilize multiple cores of the limited number of CPUs present on servers or desktops. Therefore, if there are many virtual machines running on the physical machine, it makes CPU always busy; no doubt it let’s use the CPU’s full potential yet if we stretch its capabilities, this operation will cause an event similar to deadlock, resulting in a sharp drop in performance.
Furthermore, if we have installed some application as VM that configured to use multiple cores of CPU to process a certain task but at the same time, if the physical machine has less than the required number of cores or available at that particular time, the VM will lock and the available cores go to wait for other cores to be released.
However, with the advancements in recent years in virtualization tech, many manufacturers have made a lot of optimizations in this regard, and the problem has been improved very well.
I/O (Input-Output) operations- The process of writing data on the physical disk by some OS installed on it is different from some VM. The VM IO operating of writing data is first happens on the virtual machine image file of the host system, and then the host writes that to the physical hard disk with a certain strategy.
This reading and writing of data in two stages cause delays, this is one factor, other is the IOPS of the hard disk and the random writing method of the multiple virtual machines. For example, the theoretical IOPS of a 7200 rpm SATA disk is 76, and the general IOPS when working in Windows is 10 ~ 30, so in theory, a SATA disk can only support 2 ~ 3 VMs. Thus, when we install and run multiple virtual machines and all these are busy in reading and writing data, it puts our VMs in an IO_Wait state.
Before virtualization, the machines running different crucial applications were separated at the physical layer later but now with only a virtual layer, thus the communications between Virtual machines if don’t manage and monitored properly in a protected environment, could lead to an attack. Thus, rigorous standards should apply to virtual internal and external applications. Also, Keep your VM current with critical patches and updates. Not doing so in a virtual environment can be catastrophic.
3. Host crashed, so does VMs
In a conventional configuration, the virtual machine is stored on the hard disk of the local physical machine. If the real physical machine is down, all the above virtual machines will be unavailable. There is also a real story that the hard disk of the physical machine is damaged, and most of the files can usually be recovered, but the image file of the virtual machine happens to be broken, and the files in the virtual machine are completely overwritten.
4. Complex implementation and complex management
Hosting multiple Virtual machines and establishing a virtual network, and other services will form a complex structure. To manage it, the companies need special IT Admins with extensive knowledge of managing virtualization; ordinary administrators may not troubleshoot and solve problems, for example, VMs that are often encountered cannot be started or are stuck, which is not as easy to solve as real physical machines.
5. Implementation cost is not low.
Indeed, implementing a virtualized environment will reduce the cost of power and management as compared to multiple physical machines running infrastructure, however, initial expenditure on settings up Virtualized infrastructure from zero requires more money because of the high resources hardware, nevertheless, it will definitely a cost-effective in long run.
6. VM Sprawl
Another problem that one could face is the Virtualization sprawl or VM sprawl. In any physical infrastructure, we have a limited number of systems or servers but when it comes virtualized one could define a large number of virtual machines. For example, if you have 10 physical machines or servers, you will install 10 operating system on that, however, if all 10 have a virtual platform then you may run 10×10=100 machines. But without the proper management or control, it becomes sprawl, a spreading of VMs without proper outcome from each machine.
So, blindly creating and running up virtual machines start erupting issues such as server crashing, unpatched machines, clashing of applications, deadlock and other bottlenecks.
Therefore, proper management is needed.
The shortcomings mentioned above are not really that severe if we understand the customer needs and usage habits in-depth, implementation scenarios, and make corresponding deployment plans and operation and maintenance strategies to avoid most problems. This would turn problems into advantages.