Monday, July 20, 2009

Converting VMWare image to SLES Xen

UPDATE (22 Jul '09): Ron Terry has uploaded his virt-tools RPM package online at http://download.opensuse.org/repositories/home:/roncterry/ . Hence, with regards to point 4 below in this entry, you could simply download and install the virt-tools-0.1.0-4.1.noarch.rpm and use the sparsify-disk script. Thanks Ron! sembah

I had to conduct a demo of a product that only works on Windows. I could spend time to setup a Windows 2003 environment in Xen and then install the product/s and perform the necessary demo configurations etc... but my colleague have it all setup and ready to rock in a VMWare image... heheheh... let the fun begin! kenyit

PS: Yes, I could simple reboot SLES 11 and use VMWare Server but I had all my other demos in Xen... besides, I really dig the fact that I can have virtualization capabilities using open source software.

1) Using the qemu-img-xen tool in SLES 11, I was able to convert the VMWare VMDK file (single file) into a raw sparse file. If your VMDK is split into multiple files (2GB each - gotta love FAT), you can use vdiskmanager (a VMWare tool) to combined all these little files into a file before using qemu-img-xen.

qemu-img-xen convert demo.vmdk -O raw disk0

That's all there is to it... EASY!... oh... unless of course, you have my luck and the original Windows VM is virtualized on VMWare using SCSI disk drivers. You can take a look at the VMX file to verify. Or you could attempt to boot up the Windows VM in Xen and have it hang with the all so familiar BSOD (Blue Screen of Death). sengihnampakgigi

2) With many Thanks to Mr Ian Blenke and his blog entry, I managed to overcome the "Windows VM using SCSI disk drivers and will not boot up in Xen because the disk is now IDE" challenge. The trick is to simply copy the appropriate IDE drivers and merge additional registry entries into the Windows VM. Next, perform step 1 and that's it! senyum

For Windows 2003, the IDE drivers can be found in C:\WINDOWS\Driver Cache\i386\driver.cab. I extracted pciide.sys and copied it to C:\WINDOWS\system32\drivers\ directory. Additionally, check and ensure that Atapi.sys, Intelide.sys and Pciidex.sys are also in C:\WINDOWS\system32\drivers\

The additional registry entries and instructions on merging with existing registry can be found at the latter half of the very long page at http://support.microsoft.com/kb/314082/

3) Optionally, probably a good idea, I downloaded the latest Virtual Machine Driver Pack for Windows from http://download.novell.com (search term "virtual machine driver pack"). Direct link for this at time of this writing is http://download.novell.com/Download?buildid=vscGA_iLH5k~

Download Windows driver directly into the Windows Xen VM and double-click to install. Done! senyum

I did notice an improvement in overall speed during boot (I/O bound) and when copying files over the network (Network I/O).

4) Finally, I did some spring cleaning within the Windows Xen VM... managed to reclaim 6Gb of hard disk space. Now comes the next labourious bit, I need to re-sparsify the disk so as to translate this disk usage savings onto the physical hard disk drive. With much Thanks to Ron Terry, I managed to do just that by a wonderful script he provided.

Since I did not get his kind permission to put that script up in the public domain, I will describe the process (and commands) in sparsifying the disk.

a) Mount the Xen disk on dom0:

xm block-attach 0 file:/directory/disk0 xvde w
mount /dev/xvde1 /tmp/disk1

b) Use the dd command to fill up the rest of the empty spaces with zeros.

dd if=/dev/zero of=/tmp/disk1/zerofile bs=1M
rm /tmp/disk1/zerofile

c) Unmount and detach the Xen disk from dom0:

umount /tmp/disk1
xm block-detach 0 51776 -f

d) Make a copy of the Xen disk with the cp command and --sparse=always flag:

mv disk disk.tmp
cp -a --sparse=always disk.tmp disk

PS: Please ensure you have 1.5 to 2.0 times the disk image file (disk0) of free hard disk space on your system.

Life is good again. peace

Thursday, July 2, 2009

SUSE Meetup: SLES 11 on IBM System p

I attended the monthly SUSE meetup group here in Singapore last night. The highlight of the evening is a walkthrough and demo of installing SUSE Linux Enterprise Server 11 on IBM System p (POWER) by Mike Veltman, our SUSE meetup lead and our talent from Holland. senyum

Antarius is an authorised IBM Training partner and has a number of IBM System p5 in their training centre. Mike is a SUSE and AIX consultant with Antarius.




Pictures of the very familiar IBM Hardware Management Console (aka HMC) managing a number of LPARs running AIX and SLES 11... and even openSUSE 11.1!! .... which requires a hack and not officially supported... but Mike does it because he can... as usual... kenyit

It was a good turn out despite the change in the usual venue... we had a good mix of geeks/experts from various fields and we had a good time exchanging views and information till 10pm.

Mike educates us with his usual enthusiasm about the design merits of the System p in how it handles virtualization, management and pooling of hardware resources. For those who were early (ahem, me included), he showed how we can dynamically assign virtual CPUs and RAM to a running SLES 11 and it works!

Looking forward to the next meetup.