Tuesday, September 11, 2007

Virtualization rocks!!

With the VMworld 2007 at San Fransisco just started, I wanted to tell you about how the VmWare ESX Server 3 is working and what's in store for the future. I am a big fan of Virtualization Technology and we all know that VmWare is leading brand in the virtualization business. You can read about the new features in ESX 3.1 here. Interesting to note are the technologies like AMD's Rapid Virtualization Technology (using nested paging tables - NPT) which is part of AMD's Barcelona CPU, Site Recovery Manager (for easier automated disaster recovery) and new security features.

ESX 3i which was announced just today by Diane Greene will be available for download in a few weeks at vmware.com. This comes as a surprise since most people thought that it'll be released only by OEMs. I have heard a lot of people wanting to use virtualization but don't understand the technicalities in such implementations. They get confused between VmWare workstation and ESX. So here's some input from someone whose used virtualization products from Vmware, Microsoft and participated at XenSource for more than 4 years.

There are basically 3 ways in which virtualization can be done on today's hardware.

1.) Running one/many OS simultaneously on another OS. The OS on which the other OS runs is called the Host and the other OS is called the guest. VmWare workstation is one such product, although there are a host of other products. Suppose you have Windows XP installed and you want to check your application on Windows 2000, Windows Vista and Windows 2003, then you can install VmWare Workstation on XP and install Win2000, Vista and Win2003 as the guest OS. This will allow you to run the guest OS in a window inside XP. You can share your internet connection of your host with the guest OS using NAT or bridge. All this can be done without any reboots or partitioning. The guest OS only creates a file on the host OS and inside the guest OS, you see this as a partition. This product works on CPUs that do not support Virtualization (VT/AMD-V)

2.) Running one/many OS on a emulator/hypervisor server. This product does not require a pre-installed operating system. It is a Linux-like kernel called the vmkernel and is a proprietary product. On this, you can installed different OS and play with them simultaneously. The ESX has enhanced performance as the guest OS do not have to go through the host's file system, resources or drivers. The ESX also emulates hardware separately for each guest OS, which means that they can be virtualized to be different platforms on the same hardware. The ESX Server is more robust and secure as the guest OS do not crash together even if the one guest OS fails. This requires CPU to support VT/AMD-V for optimal performance

3.) Virtualization appliances: Just like you have washing machines and microwaves, you can have guest OS on separate standalone devices. Generally rack mounted, these are thin servers that can be added to support different guest OS as and when required. These are specialized hardware and give the best performance. These can also be shared by thin-clients or diskless machines, where the OS is located inside the appliance and the monitor on the client machine is remotely using the OS. VmWare Server (GSX Server earlier) is one example of such a product.

Virtualization will play a very vital role in the future as more and more cores get built into the CPU. Many operating systems need to be used at a time for development and testing purposes and having separate hardware for each, is a cost. Virtualization thus not only saves cost, but also makes optimal use of available hardware.

PS: Funny that my firefox spell checker could find virtualize or virtualization in its dictionary!!

No comments: