What is Virtualization?
Virtualization is actually a very simple concept. When we say “virtualization” in technology we are talking about something that at one time was a physical device but is now able to be replaced by software. The best example to explain this is a virtualized PC. Lets say you prefer using a Mac but you need to use an application that only runs on Windows. You could buy a second computer and run Windows for just that one application. This would be costly since you need to purchase a second computter and maintain both a Mac and a PC. The other option is to run windows on your Mac as a Virtual PC. To do this you need a piece of software which emulates the hardware needed to run Windows. Apple makes a product called Parallels that does just this and it allows you to run Windows inside of a window on your Mac. That copy of windows is sharing all the hardware on your Mac including the CPU, memory, hard drive and network connection.
The concept is not really that complex. From a virtualization perspective the copy of Windows is running on what is known as a virtual machine. This machine is given resources by the software that is also virtualized. For example, it can read and write from a virtual hard disk. This disk does not really exist and is really just a file on your mac that contains all the data on the hard disk for the windows machine. We have the same concept for other resources. Virtual memory is really just a space of memory on your Mac that has been shard with the Windows machine and a virtual CPU is configured to grab it’s share of the Mac’s processor.
The Hypervisor
If you want to understand how virtualization works in the modern business or data center you need to understand what a Hypervisor is. The concept is the same as the software you run on your Mac. A hypervisor is an emulator that runs on a computer and creates virtual resources for virtual machines that run on top of it. The big difference between a Hypervisor and a program like Parallels is the use case. Parallels is designed to allow the Mac (parent machine) to share some of it’s resources with the Windows (Child) machine in order to allow you to work on both machines. A Hypervisor is similar except for the focus. The Hypervisor runs on a server and it’s job is to give all of the hardware resources to many virtual machines. Unlike the Mac, the parent machine (Hypervisor) is not intended to be used. Instead it’s job is to effectively share the hardware resources with the child machines and allows these resources to be used effectively.
Why Virtualize?
From a business perspective there is a simple reason to virtualize… Cost savings. as with the Mac & PC example above you can use one piece of hardware to serve more than one purpose when you virtualize servers. However, the cost saving can be more dramatic in a server environment. Servers are available with multiple Processors (CPU’s) and large amounts of Memory (RAM). This allows a server to run a large number of virtual machines. (or virtual servers since it’s not a PC but a server) It’s not uncommon to see a single server running dozens of virtual machines which adds up to a lot of cost saving compared to buying separate servers.
The Economics of Virtualization
Lets take a look at how sharing hardware can save money for a business. We start by looking at a typical server. Lets set an estimate for server hardware at $5,000 for hardware and assume we re going to have a windows server running on the hardware. Windows server standard is typically around $880. Thus a new server purchase might look like this:
Single Server
Server | Hardware Cost | Software Cost | Total |
---|---|---|---|
Server#1 | $ 5,000 | $ 880 | $ 5,880 |
Total | $ 5,000 | $ 880 | $ 5,880 |
Now lets look at purchasing a second server compared to using virtualization. When we buy a larger server to run multiple machines we need additional resources like more memory and a faster processor. The increase in cost is not as much as buying a second server. We are going to assume a $3,000 additional server cost to run two servers on the same hardware. There is also a cost savings for the Windows server licenses. Microsoft licensing is a complex topic that is beyond the scope of this discussion so we are going to simplify the process and say that we get to run 2 Windows Server’s on a piece of hardware for each license that is purchased. From a high level this is how the licensing of small numbers of servers works. Here is what the cost looks like for the two options:
2 Servers
2 Virtual Machines on 1 Physical Server
Server | Hardware Cost | Software Cost | Total |
---|---|---|---|
Server#1 | $ 5,000 | $ 880 | $ 5,880 |
Server#2 | $ 5,000 | $ 880 | $ 5,880 |
Total | $ 10,000 | $ 1,760 | $ 11, 760 |
Server | Hardware Cost | Software Cost | Total |
---|---|---|---|
Server Harware | $ 8,000 | $ 0 | $ 8,000 |
Virtual Server #1 | $ 0 | $ 880 | $ 880 |
Virtual Server #2 | $ 0 | $ 0 | $ 0 |
Total | $ 8,000 | $ 880 | $ 8,880 |
The cost savings is significant when we put 2 servers on a single piece of hardware. The hardware cost is much lower and the savings from the windows license is a nice addition. This is just the start. When companies move to a virtualized environment they normally put more than 2 servers on each piece of hardware. In smalled businesses it’s common to see a dozen virtual servers on a physical machine. When you get into large companies and data center environments this can increase to 100’s or 100’s of virtual machines per physical server. We will explore a somewhat over simplified example of “scaling up” below. When we talk about scaling up we are discussing the concept of loading more virtual servers on each piece of hardware. This is where the cost savings magic really kicks in.
12 Servers
12 Virtual Machines on 1 Physical Server
Server | Hardware Cost | Software Cost | Total |
---|---|---|---|
Server #1 | $ 5,000 | $ 880 | $ 5,880 |
Server #2 | $ 5,000 | $ 880 | $ 5,880 |
Server #3 | $ 5,000 | $ 880 | $ 5,880 |
Server #4 | $ 5,000 | $ 880 | $ 5,880 |
Server #5 | $ 5,000 | $ 880 | $ 5,880 |
Server #6 | $ 5,000 | $ 880 | $ 5,880 |
Server #7 | $ 5,000 | $ 880 | $ 5,880 |
Server #8 | $ 5,000 | $ 880 | $ 5,880 |
Server #9 | $ 5,000 | $ 880 | $ 5,880 |
Server #10 | $ 5,000 | $ 880 | $ 5,880 |
Server #11 | $ 5,000 | $ 880 | $ 5,880 |
Server #12 | $ 5,000 | $ 880 | $ 5,880 |
Total | $ 60,000 | $ 10,560 | $ 70,560 |
Server | Hardware Cost | Software Cost | Total |
---|---|---|---|
Server Hardware | $ 20,000 | $ 0 | $ 20,000 |
Virtual Server #1 | $ 0 | $ 880 | $ 5,880 |
Virtual Server #2 | $ 0 | $ 0 | $ 0 |
Virtual Server #3 | $ 0 | $ 880 | $ 880 |
Virtual Server #4 | $ 0 | $ 0 | $ 0 |
Virtual Server #5 | $ 0 | $ 880 | $ 880 |
Virtual Server #6 | $ 0 | $ 0 | $ 0 |
Virtual Server #7 | $ 0 | $ 880 | $ 880 |
Virtual Server #8 | $ 0 | $ 0 | $ 0 |
Virtual Server #9 | $ 0 | $ 880 | $ 880 |
Virtual Server #10 | $ 0 | $ 0 | $ 0 |
Virtual Server #11 | $ 0 | $ 880 | $ 880 |
Virtual Server #12 | $ 0 | $ 0 | $ 0 |
Total | $ 20,000 | $ 5,280 | $ 25,280 |