Over the years, the heavy reliance on computers and servers has increased exponentially. With that reliance comes an increase in the overall number of machines in service. The server side of the business has ballooned recently to the point where businesses are faced with concerns such as electricity consumption, cooling and space constraints. Although the overall power (or capacity) of servers has grown rapidly over time, the efficient usage of these servers had not.
In most organizations, server utilization was in the low double digits. Very few businesses were able to utilize 80% or more of a server's capacity, yet that server still consumed a lot of electricity and produced a lot of heat. Unfortunately, most applications are not designed to play nice with other applications and co-exist on the same server. This leaves quite an open door with regards to a solution. How can you cram more applications onto a single server thus raising the utilization? Furthermore, how can you do this and consume less electricity and produce less heat?
The answer is virtualization. The beauty of this solution is that you combat all of the above mentioned problems while adding some resiliency. Virtualization is the conversion of a physical machine to a virtual machine which is then placed on a host machine. Each host machine can contain several virtual machines. These virtual machines run isolated from each other, but share the physical resources of the host machine (such as RAM, CPU, Disk Space, Network Cards, etc.) This allows you to condense the number of servers (now virtual) that can run on a single physical machine. This will also have the side effect of raising the utilization of that host machine as more workloads are put on it.
An easy way to conceptualize virtualization is an office suite application. Years ago, it was not uncommon to have a typewriter for word processing, a ledger for tracking finances and an easel with a drawing pad for presentations. All of these took up a lot of space and they were not utilized all of the time. This is inefficient. Imagine if you could get all three to take up the same small space (footprint) and allow them to be used as needed without taking up more space. Along comes the office suite on a computer. Now you can do word processing, spreadsheets and presentations all within the same application on the same device. No additional space or resources are needed. This is an example of how virtualization works.
Take that approach to a web server, file server, DNS server, authentication server, mail server, etc. Those five applications typically required four or five servers depending on what operating system they ran and what applications were on them. With virtualization, we create separate virtual machines for each application, then host them all on one physical machine. If our mail server virtual machine crashes for any reason, it won't affect the other virtual machines on the host. Each virtual machine is an isolated instance with it's own operating system and application stack. Although all virtual machines on a host share the host's resources, they cannot tresspass on the resources of another virtual machine.
So now we have five virtual machines running our critical applications on a single physical host machine. Wha happens if the mother board on the physical machine dies? Logically all of the machines on the host would die as well. This is where we extend the benefits of virtualization into a cluster of virtual hosts. Instead of one physical machine, we have two physical machines tied together in a cluster with shared storage connected to each. The virtual machines reside on the shared storage. If one physical machine dies, the control of the virtual machines on that host are passed to the second physical host. The second host can now power on the virtual machines that failed (since it also has control of the shared storage) and we're back up and running. There is a lot more magic that goes on in the back end to make this happen, but I am just illustrating the functionality of the solution.
So in the end, we were able to reduce five servers down to two servers. In reality, we could place a lot more virtual machines on a physical host. Let's say that we have three of each of the five original servers I talked about in order to service our entire business. That is fifteen servers in total. We would still use the above logic and place about half on one physical server, and the rest on the second. With this configuration, when one physical server fails, only half of the virtual machines go down and have to be spun up again on the remaining host. This ensures that our business continues as normal with minimal impact on the end user experience.
With fifteen servers condensed on to two physical servers, our electricity consumption has dropped to less than twenty percent of what it was. The heat produced by the servers has also dropped about as much, so the cooling requirement is eased as well. Lastly, we are using much less space to house two servers and a shared storage pool than fifteen servers. We also now need less servers, so less raw materials are used to make those servers. What do you get when you reduce electricity consumption, heat production, raw material usage and physical space (land)? You get a very green solution that is often referred to as Green IT or Green Computing. Within that space, there are vendors that further the 'green level' of the individual parts to bring you Green Storage, Green Servers, RoHS compliant machines, power management products and much more. The ability to green part of your business is increasing every day and one of the fastest and most stable ways to accomplish this is through virtualization.