Tuesday, January 13, 2009
Virtualization in a Nutshell
Well what do you know. It's been more than a year since my last post. Ok, this is my first attempt for this year. hehe....
Ok, Virtualization for most of us is just having another instance of an operating system running inside a host computer. For businesses, this means reduced server costs & thinking green. These server or desktop virtualization (depending on where you install the host) is just one part of the whole virtualization infrastructure.
Before going further, I'll just try to briefly explain the underlying virtualization technologies.
#1. Full Virtualization is pure emulation of hardware to software, hence performance is an obvious consideration simple because its not native.
#2. ParaVirtualization is hardware-assisted virtualization via a slightly modified version (custom kernels) of a guest OS.
There's actually other types of virtualization like SKI (one version of OS only), KVM (Linux host that requires Intel-VT or AMD-V), Microsoft's Hyper-V (Windows host), VirtualBox, openVZ, etc. But the above two are the most widely used enterprise virtualization technology from (On this corner for full virtualization) VMWare & Citrix XenServer (for paravirtualization).
And to clearly distinguish the two technologies apart, full virtulization relies on the hypervisor to communicate on the host OS hardware and para virtualization has native device drivers to directly get to the Os hardware.
So what happens is that full Virtualization performs binary translations unlike the direct way of paravirtualization but at cost of a modified guest OS.
PROS & CONS:
Full VirtualizationPROS - unmodified guest
Full Virtualization CONS - not near-native
ParaVirtualization PROs - hardware-assist (near native)
ParaVirtualization CONS - modified guest
SOFTWARE VS. HARDWARE-ASSISTED, seems like software will loose but according to VMWare, they have a LOT of years in optimizing this translation so theirs is actually faster. You decide.
Did I already mention that Xen (not Xenserver), the Virtualization engine is OpenSource (free)?
Fast-forward. Now Xen can support unmodified guests and full virtualization via Intel-VT and AMD-V hardware-assist.
Now leaving the virtualization engine part of things, let's take a look on what problems you will definitely encounter in a relatively new deployment...
So now you will have desktop, server, storage, application, Network virtualization to contend with. Like in desktop virtualization there are two types, one is the the multiple OS in one machine type, another is where a user machine becomes a thin-client and applications and doftwares are hosted on a central host.
Other critical issues that you will encounter are server sprawls & VM security complexities. Now you gotta experience that on your own....or buy it and you can also get other features like resource provisioning, agile software migrations, backups & disaster recovery.
So all in all for me, it's a toss between who's got the better management tools & security versus cost. which in turn kinda brings us back to the point between choosing VMWare or Xen.
Virtualization technologies are still growing and I'm not sure if I can catch up...well, see yah until the next Internet hype goes mainstream, "cloud computing".
Tidbits: If you just want to run Linux on windows, check out Cooperative Linux (coLinux) Essentially, it's an Opensource Linux VM for windows. I'd like to think of it as another cross between para-virtualization & full virtualization. It does not use a hypervisor wherein the guest OS only talks with it. CoLinux is run under a whole single process under windows.
Ok, Virtualization for most of us is just having another instance of an operating system running inside a host computer. For businesses, this means reduced server costs & thinking green. These server or desktop virtualization (depending on where you install the host) is just one part of the whole virtualization infrastructure.
Before going further, I'll just try to briefly explain the underlying virtualization technologies.
#1. Full Virtualization is pure emulation of hardware to software, hence performance is an obvious consideration simple because its not native.
#2. ParaVirtualization is hardware-assisted virtualization via a slightly modified version (custom kernels) of a guest OS.
There's actually other types of virtualization like SKI (one version of OS only), KVM (Linux host that requires Intel-VT or AMD-V), Microsoft's Hyper-V (Windows host), VirtualBox, openVZ, etc. But the above two are the most widely used enterprise virtualization technology from (On this corner for full virtualization) VMWare & Citrix XenServer (for paravirtualization).
And to clearly distinguish the two technologies apart, full virtulization relies on the hypervisor to communicate on the host OS hardware and para virtualization has native device drivers to directly get to the Os hardware.
So what happens is that full Virtualization performs binary translations unlike the direct way of paravirtualization but at cost of a modified guest OS.
PROS & CONS:
Full VirtualizationPROS - unmodified guest
Full Virtualization CONS - not near-native
ParaVirtualization PROs - hardware-assist (near native)
ParaVirtualization CONS - modified guest
SOFTWARE VS. HARDWARE-ASSISTED, seems like software will loose but according to VMWare, they have a LOT of years in optimizing this translation so theirs is actually faster. You decide.
Did I already mention that Xen (not Xenserver), the Virtualization engine is OpenSource (free)?
Fast-forward. Now Xen can support unmodified guests and full virtualization via Intel-VT and AMD-V hardware-assist.
Now leaving the virtualization engine part of things, let's take a look on what problems you will definitely encounter in a relatively new deployment...
So now you will have desktop, server, storage, application, Network virtualization to contend with. Like in desktop virtualization there are two types, one is the the multiple OS in one machine type, another is where a user machine becomes a thin-client and applications and doftwares are hosted on a central host.
Other critical issues that you will encounter are server sprawls & VM security complexities. Now you gotta experience that on your own....or buy it and you can also get other features like resource provisioning, agile software migrations, backups & disaster recovery.
So all in all for me, it's a toss between who's got the better management tools & security versus cost. which in turn kinda brings us back to the point between choosing VMWare or Xen.
Virtualization technologies are still growing and I'm not sure if I can catch up...well, see yah until the next Internet hype goes mainstream, "cloud computing".
Tidbits: If you just want to run Linux on windows, check out Cooperative Linux (coLinux) Essentially, it's an Opensource Linux VM for windows. I'd like to think of it as another cross between para-virtualization & full virtualization. It does not use a hypervisor wherein the guest OS only talks with it. CoLinux is run under a whole single process under windows.