What is Server Virtualization?
There are a couple terms that you need to know the definition of. If you don’t fully understand them right away, that’s fine; keep reading and the definitions should become clearer. The first term is virtual machine host. A virtual machine host houses or hosts virtual machines (VM). A virtual machine is installed on top of a virtual machine host, has its own operating system, and acts just like a regular machine except it shares hardware resources with the virtual machine host and other virtual machines.
I can explain in detail what virtualization is but, all that I will accomplish is a nice glaze over your eyes. So to explain it, I will use an illustration.
You commute by yourself to work every day. This works fine and has been working for many years. But, your car is not being used to its fullest. Why? Because there are 3 empty seats left. So, instead of one car with 4 people, there are 4 cars with 1 person each. Each car takes energy to run. So you are wasting energy and your cars resources by not carpooling.
Think of your car as the physical hardware platform (boxes you see in your server room), and people as the operating system (Windows XP, Server 2003, Server 2008, etc…). Most of the time, you have one person per car, or one operating system per physical server hardware platform. Just like in the carpool example, this solution results in the hardware being under-utilized and costs in wasted energy. So by having the ability to add more virtual machines (also known as virtual servers) to the physical hardware or called server virtualization, you can reduce wasted resources and energy costs. Once you have virtual machines on a physical hardware platform, the physical hardware platform is called a virtual machine host. So you have the benefit of having multiple servers for various functions, but having minimal hardware to maintain.
But why do we need so many servers? Why can’t everything run on one server? Well, imagine if you had to cook a four course dinner for a large group of friends and you only had one stove burner. Do you think you can finish in enough time? Probably not. Each dish needs its own pot, or even multiple pots. This is true for servers as well, many services (for instance, email) needs to have its own environment or server to run properly. Also, another reason for multiple servers is for reduced or minimized downtime. Say for instance you only had one stove burner and that burner goes out, then you cannot cook anything anymore. Same with multiple servers, if you have your file shares and email on the same server and that server goes down, and then you lose both services. But if you had them on separate servers, the chance of both servers going down at the same time is remote, so you would only lose one service and still be somewhat functional.
I know what you are thinking, that if there are multiple virtualized machines on a single virtual machine host then if that hardware goes down you will lose more than just one server, you will lose all of them and you are correct. So how do we solve this? We solve this by not just having one virtual machine host but multiple virtual machine hosts. Now you are thinking that’s great for the virtual machines on the other virtual machine host that doesn’t fail but you still lose multiple servers when one goes down. To solve this problem, many of today’s virtualization software allows for virtual machines to be moved from one virtual machine host to another, this can happen automatically or manually and is dependent on the virtualization software you choose.
So now you have virtual machine hosts and virtual machines (or virtual servers). So what? What are the benefits besides having awesome technology to brag about? Have you been listening?
- Not wasting your investment - Your servers resources will be fully utilized instead of sitting there idle and wasting your investment.
- Reduce energy requirements - Since you are reducing the number of physical hardware platforms, you are thereby reducing your energy requirements which in turn save you money.
- Minimize downed services - You’ve minimized the effects of downed servers since you’ve separated your servers based on services thereby keeping you somewhat productive if you do have an individual server failure or you need to take a server down for maintenance.
- Fault tolerance - You’ve minimized the effects of downed physical hardware by taking advantage of failover features. So a virtual machine can fail-over from one virtual machine host to another.
- Dynamic growth - You’ve also enable the ability to add multiple servers to your environment by just adding another virtual machine host. Then you can add the multiple servers you need on top of the virtual machine host.
These are just some of the benefits of server virtualization. Now keep in mind, virtualization does not fit every situation and in many cases a mix of physical and virtual machines are necessary. A visit from your favorite Consultant can help you determine how best to implement this technology.
I hope this has been an enlightening moment of server virtualization. Now, when someone starts talking about virtualization, you can smile with ease (as long as it’s not a bunch of technical jargon).
An equally effective and less cumbersome approach to preventing unplanned downtime of VMs is to host them on a Intel-based fault-tolerant server. Not a cluster, not failover, but a true fault-tolerant system. Another point: sofware-based ft is limited to running applications on only one core per server, seriously limiting workload. Not really an effective solution for critical applications.
ReplyDeleteHey Chris, I know this article is old but I'm still going to take elements of this explanation and put them into a power point along with some pictures. I have to pitch this idea to non technical people who hold all the money next week and this seems like something they can grasp.
ReplyDelete