Virtualization and cloud computing are the big buzz words in the the technology industry these days. If you are employed in the tech field, no doubt you have had experience with virtualization and cloud computing either directly or indirectly in some way. Most companies and organizations are looking to implement virtualization technologies in some form or fashion. It leaves us with the considerations of what are the advantages and disadvantages of virtualization?
In the traditional datacenter or server environment, you mostly see one server per one application. This is for the most part a standard way of thinking. This provides the isolation that some applications need in order to function smoothly and it spreads out the risk and DR concerns that administrators might have when they think about a server failure. However, this type of setup is very inefficient, especially with today’s hardware where some applications simply do not even begin to tax the hardware.
Also, not surprisingly with rising energy costs, datacenters burn more energy in cooling servers than they do on actually running them with many datacenters more than doubling the power draw every 3 years. In steps Virtualization. Virtualization allows a datacenter to get much more efficiency from a piece of hardware. Where you might have had a dual quad core box before running one server instance and one application and that server being baselined. Now you have that same server running 32 virtual servers running individual applications and really seeing the full potential of the hardware. Makes sense.
One of the many advantages of virtualization is the ability to consolidate servers. It remedies the situation of not being able to isolate applications on a physical box. Each virtual server acts and thinks that it is its own physical server, even though that is not the case and you may have many servers running on the same piece of hardware. VMware, arguably the biggest virtualization company in the business, does this by virtualizing the hardware. VMware loads their hypervisor (a lightweight OS which virtualizes the hardware components) on the physical server and then this hypervisor acts like a mediator between the actual physical hardware and what the virtualized operating system thinks is the hardware that it is loaded on, making for a very slick way of separating or isolating operating systems between virtual hosts.
Typically servers are over-spec’ed for the application it is hosting. Administrators do this to make sure the hardware will last for at least the 3-5 year life cycle without performance issues. In theory this works, but is very inefficient. With virtualization, beefy hardware is put in place to run many servers and the administrators can virtually assign as much or as little hardware to each “server” as needed, without the danger of extreme overkill.
Since the hardware itself is virtualized, administrators don’t have to worry about drivers and other hardware related issues because of new devices in new servers. The hypervisor deals with the new hardware and then makes the guest OS think that it is running on standard issue CPU, motherboard, memory, disk, and network hardware.
Hardware maintenance and server downtime is also drastically reduced for routine or non routine maintenance. If a virtualized host has to be taken down, the virtual machines can simply be hot migrated over to another running host. Also, things such as RAM upgrades are a simple set of mouse clicks instead of unracking a server, popping the top, unplugging cables, unseating the memory card, and “well you get the picture.” It makes things much more easy.
With virtualization comes some “gotchas” also. As one can easily see, you could get in the “all the eggs in one basket” position and be setup for disaster if you have a host fail that has no redundancy. Multiple hosts and various backup methods have to be put in place to have a good measure of DR. Also, there is a lot of up front costs involved with getting into virtualization. SANs, while they have come down considerably than what you would have paid 5 years ago, are still very expensive. VM licensing is also very expensive up front. VMware charges by the socket now for their licenses and these can be pricey at the top enterprise levels of features.
All in all, virtualization is a great technology that has revolutionized the way businesses think when it comes to configuring environments and purchasing hardware. It is definitely in its infancy in what it is capable of doing and most organizations are really seeing the benefits of virtualizing their hardware and saving a lot of money in the long run on maintenance, downtime, cooling costs, and other hidden costs that come from time spent administering environments.