Virtualization Technology
What is Virtualization technology? Everybody is talking about it and implementing it and going crazy about it. But what is this technology.
In this section we will discuss the wonderful world of virtualization technology, how it works, the different types and how to install and use it.
The basics
You normally have different servers that do different things. For instance, you may have a server that runs a database, a mail server, web server, application server and what not.
If you walk into a data center you would see these racks full of servers that's humming away happily. This is the traditional way that servers are implemented.
A server for each job. Below is a diagram to illustrate this.
Traditional serversAll these servers have their own CPU, Memory, hard disks and other interfaces such as network adapters and power inputs. These servers also run their own operating systems such as Windows, Unix or Linux.
With virtualization technology, a single system consolidates different physical servers into one server. You basically take a number of servers and run them on a single system.
Below is a diagram to illustrate this.
Server consolidation using virtualization technologyBut why do you want to do this? Good question. Some time ago, servers were not as powerful as today. The CPU, memory and hard disks were not as fast as today. Back then, you could easily run out of CPU power by running a database on a server.
Today's systems are very powerful. You get CPU's with 8 cores, memory DIMMS are 8 Gbyte and disks are 2 Terra byte. A single application will not even use a quarter of the resources on today's hardware. It all depends, off course, on the application.
Most of today's run of the mill applications do not require this much processing power. There is also the issue of space and power consumption. Traditional servers could take up racks of space and use a lot of power. Running virtual servers inside a physical server is the answer.
The traditional model of, one server for one job was the norm. IBM actually started with the virtual world way back on their S/360 and S/370 mainframes. They used a clever way to share resources between applications. So they could run multiple applications on the same machine and do it securely as well.
Ah, so why virtualize today? Can I not run more applications on a single server instead of installing the whole OS on the virtual platform?
Sure you can, but remember it's not secure, or rather, not as secure as it should be. If you run multiple applications on the same system, there is a good chance that someone might accidentally corrupt an application that he or she was not supposed to work on.
You would need very good user security on a system like this. You might also be doing hosting and I would not like it if someone has potential access to my application. Nope, I want to run my application on a separate system or OS so I can have control over it.
With virtualization technology, you run a separate copy of the OS on the hosting server. The difference is that the guest OS does not have direct control over the hardware like a normal OS on a separate server would have. The guest OS will work through a piece of software called the hypervisor or virtual machine manager (VMM).
There are different ways that these hypervisors work. This brings me to the types of virtualization technologies.
Hardware Virtualization
This is the most common type and is widely used. It's a system or server that runs a operating system and then you install your VM software on the OS. The VM software includes the VMM (Virtual Machine Manager) or Hypervisor. You can now continue to create virtual machines and install the guest OS on this virtual machine you created.
The advantage of this is that you can install different types of operating systems on a single machine. Below is a diagram.
Different operating systems on single server The cool thing about this virtual technology is that you can run different types of operating systems together on a single machine. Some years ago you would have to buy separate servers to run these different OS's.
You can also run these virtual machines on different platforms and operating systems. For instance, Oracle Virtual Box software can run on Oracle Solaris, Windows and different version of Linux such as, Red Hat, Ubuntu and SuSe. Then you can create different virtual machines and run different operating systems in these virtual machines.
Just think about it. On you laptop or desktop, you can have Linux (different versions), Windows (different versions) and Solaris 10 running at the same time. For developers this is really cool. They can do all their development on a single box.
You get different types of hardware virtualizations
Full Virtualization - The guest operating system does not know that it's actually running in a virtual machine. The guest os thinks that it's got full control of the hardware. The hypervisor actually does binary translation (BT) of instructions sent to the CPU from the guest os. This is the most common form of virtualization technology.
Para virtualization - Similar to full virtualization technology but some binary instructions are not translated. The source code on the guest operating system has been modified so the guest can do hypercalls to the hypervisor.
So, not all instructions are binary translated like full virtualization. This could improve performance but not always. The downside to para virtualization technology is that a special version of the guest operating system must be used in this environment. You cannot use a stock standard of the shelf os like Windows 7.
Other types include, Partial and Hardware assisted virtualization - I will not discuss these as they are not often used.
Software virtualization
With this type, the operating system is virtualized on the server. So, you can run multiple versions of the same operating system on one server.
A good example of this is Oracle Solaris 10 containers or zones. You create the zone or container on the native operating system and then run the install command to populate the zones with the current version of the operating system installed.
These zones then operate is if they are physical separate machines.
Oracle has also made custom containers if you want to run older versions of the Solaris os in the zone.
Storage virtualization technology
This has been done for years. It's not a new thing at all. You basically take a storage device and share the storage with multiple servers.
This can either be done on lun (logical unit number) level or file centric level such as NFS or CIFS.
Network virtualization technology
There is also not much new about network virtualization technology. You basically take a network and create sub nets or vlans (virtual lans) on it. This could be done on the switch or the server.
Vendor specific types of virtualization
If you look at the definition of virtualization technology, then some vendors have been doing this for years.
IBM actually started this all with their mainframes way back in the and 80's, and they are still doing it.
Sun Microsystems, now Oracle Sun, has virtualized their platforms way before software products were around.
I just want to have a quick look at Oracle Sun's offerings.
Dynamic System Domains
Oracle uses the M series platforms to achieve their dynamic system domain technology. The servers include M4000, M5000, M8000, M900-32 and M900-64 systems.
These servers could be divided into multiple physical systems on a single footprint. What does this mean? Let's take a M8000 for instance.
In this system you have 4 cpu and memory units (CMU) and 4 Input Output Units (IOU). Each CMU can contain up to four quad core, dual threaded SPARC CPU's and 32 DIMMS. The IOU's can contain up to 8 PCI express slots running 8 lanes.
You can now run the whole system as one domain with all the resources working together, or you can split these components up into 16 dynamic system domains. So one box can give you up to 16 virtual machines.
M8000 with all resources in Domain 0The difference is that the domains actually consists of physical components.
Below is a diagram that show the M8000 being split into 4 dynamic system domains.
M8000 with 4 domainsThe above is only an example what you can do with these systems. I could have split the CMU's and IOU's up into 4 parts and create up to 16 of the domains. I can go even further and create multiple smaller zones or containers on each of the physical domains using software virtualization.
The component that controls all this is called the extended system control facility unit or XSCFU. It's like a hardware hypervisor. It's a physical computer that runs it's own OS and software to control all of these dynamic system domains. You also use it to setup the domains. This is very cool!
Oracle VM for SPARC or Ldoms(Logical domains)
With Ldom's, the physical resources like CPU, memory, disk and network are assigned to guest domains. You install these guest domains like would any normal Solaris server. It also contains it's own open boot prom and looks like a physical separate system.
It's very similar to containers, but acts more like a separate system. With zones, you don't have a separate OBP and the OS is actually a copy of the global domain.
With Ldoms, you have to install Solaris like you would a normal server. The hypervisor actually sits on the firmware in a little device called the ilom or integrated lights out manager.
In the next page we will have a closer look at virtualization software and how it works.
More on Virtualization
Virtualization Software
Learn more about the different types of software that makes virtualization possible.
Solaris 10 zones
On this page I will show you how to create and install a Solaris 10 zone. It's easier than you think.
Oracle VM VirtualBox
See how easy it is to install Oracle VM VirtualBox and how to create your first virtual machine and install the operating system.
Return from Virtualization Technology to What is my computer