Spice up your desktop

It has been a few days since Red Hat announced its new vision of desktop virtualization by the means of the SPICE protocol. Using this protocol it is possible to channel virtualized desktop applications including movies (aka youtube flicks) and audio to a client system using ordinary networking components. Red Hat opened up a community site www.spice-space.org to develop the client and server involved.

Since I am very interested in these technologies I tried to access the site the whole weekend long, but every attempt received a timeout. Maybe the traffic was too overwhelming for the whole et.redhat.com site. After the weekend I finally got a web page, but the information presented there was not quite what I expected. Only some RPMs for Fedora 12 and a “first public release”. Where was the stuff needed to get it working on Red Hats current flagship RHEL or some of its derivates like CentOS?

So I did what everybody in this case normally does, try to find information with your favorite search engine. After some time I found the commits of the spice and qxl components to qemu-kvm subsystem supplied with RHEL 5.4. I looked directly for the RPMs on one of my virtualization systems and voila there was a qspice-libs package installed which was used by qemu-kvm. The main package of qspice was not installed per default, so this had to include the needed client package. After installing it I was quite impressed that it only consisted of documentation, and no client at all. This made me wonder, where is the client package?

After searching Red Hats Bugzilla I found a ticket referenced by other tickets, but it was inaccessible even with a valid account. Well, after asking my search engine I found the first few lines of the ticket (which still makes me wonder how Google can index a ticket not available for public viewing) revealing that the package was split. Split? Well, I had to see for myself.

I downloaded the packages sources an installed them in my buildroot. And there it was, after the build process there were the following lines:

rm $RPM_BUILD_ROOT/usr/bin/spicec

Quite intriguing. After commenting out this line, adding the resulting binary to the %files section and rebuilding using rpmbuild -bb --define "dist .el5_4" qspice.spec" I finally got the client package. So now it was time to test the beast.

You have to test this beast by hand, since the virt-manager delivered with RHEL 5.4 does not support SPICE at all (since this all is a technology preview it is quite understandable). After figuring out the correct parameters I started a VM with CentOS 5.4 using qxl and the spice protocol. I you want to try for yourself, append the following parameters to the command line:

/usr/libexec/qemu-kvm ... -soundhw ac97 -qxl 1 -spice port=5930,disable-ticketing

This allows the client to connect without using a password on port 5930. After installing the xorg-x11-drv-qxl package in the guest VM and configuring it in xorg.conf I started up the client to see for myself what was possible and was quite surprised.

I started firefox, opened youtube and wanted to see if the system is really in lip-sync, so I chose a flick where this was quite easy to see: Sinnead O Connor singing “Nothing compares to you”.

I have to say I am quite impressed that with this unofficial version of SPICE the video was in sync. Finally a note on the hardware used. The server was a quad-core Xeon X3360 system and the client ran on a Core2Duo both connected using Gigabit Ethernet. One thing I was not able to test was the migration of the VM to another system, but since this normally works without problems I can’t wait to get my hands on some official releases of the software to see it that works just as seamless as well.