Tuesday, August 26, 2008

Virtualization - Virtual Box and VMWare

Today I'm going to write a little bit about virtualization. This technology has been growing in popularity for some time now. I have been using it since a few years ago, back when VMWare was a commercial tool only, VirtualPC did not belong to Microsoft (even supported Linux guest really well) and free virtualization tools such as Virtual Box and VMWare Server were just a dream.

Virtualization is the capability of running multiples virtual computers inside the same "real" computer. I used to consider this as a BIOS emulation. However, the technology has evolved so much that they now emulate, BIOS, Video drivers, Sound Card, NIC, etc. It makes my life a lot easier and my lab a lot smaller :-).

These days, I have done some quick testing on Virtual box. This seems a very interesting option for the future. It works in Windows Vista and several other platforms. Unfortunately, it still misses some of the functionalities that can be found on commercial softwares such as VMWare.

I was very impressed with Virtual box performance. Even that the virtual PC supports only a single processor, the response time is really fast. I particularly enjoy the fact that it can load the exact same HD file images from VMware (Makes the transition very smooth). What I did not like was the fact that each virtual network card from the guest operating system gets mapped to a virtual network card inside the host PC. In my case, it is not unusual to see me running 4~6 machines on the same physical box, with 10~15 machines created; each server would required two network cards; with simple math we would realize that Virtual box would require at least 30 virtual network cards installed on my host server (a little too much for me since VMWare requires only three, does not matter how many virtual machines you have created). Of course that one might say that I could reuse some of the virtual NICs for other machines that are not running, but I really do not want to keep changing my Virtual machine setting every time that I need to start it. I also require working with multiple processors; this is another feature that I cannot afford to loose.

With VMware Free server, I do have pretty much everything I need. Multiple processors (only 2 in fact), fairly good processing power, etc.

There is one thing that I really need to mention regarding Virtualization. This is the one thing that bothers me the most. And this seems to be true for all (or at least all the free ones) virtualization platforms. I have noticed that does not matter how many processors you have in you system, the virtual computers always use only a single processor at a time. I mean, if you have two quad-core processors, your Host Operating System will identify eight processors total. The virtual machine will run as a single Operating System process, what means that this process will keep switching from processor to processor at your Host PC. Sometimes it will occupy 100% of its processor while the other 7 processors will be doing nearly nothing. It is true that if you have several machines running at the same time, you see a better overall CPU utilization because with 2 or three machines, you will see two or three processors running close to 100%. Of course, the other 5 or 6 processors will keep doing nothing. I do not think that this is an easy issue to be addressed because all virtual platforms seem to have the same limitation. However, I think that the one which find a way to really distribute the full host potential to the guest PCs will become the main choice for all business on the market (at least, would become the favorite on my lab).

At this time, I will keep working with VMWare Free Server. However, I really encourage the Virtual Box developers to keep up with their great work because I really think that they are on the right path.


No comments: