Home Home > Server > Virtualization
Sign up | Login

Archive for the ‘Virtualization’ Category

automated openSUSE testing

May 25th, 2010 by

Testing is an important task. But testing daily openSUSE-Factory snapshots would mean testing the same things every day. This would be pretty tiresome to people.
And there is a lot of software to test, including software unknown to most testers or new versions of known software, so how should the tester know if the results were the intended results?
My answer is: leave as much as possible to computers. Computers do not get tired. Computers do not stop testing something after a dozen identical results. Computers do not forget.

The following assumes that you have read my text on making openSUSE install videos.

So far, I am rather satisfied with my automated installations.
At the end of those, I added some basic application testing, which already showed in MS7
openSUSE-KDE-LiveCD-x86_64-Build0625a.ogv dated 2010-05-21 16:08
an issue filed 28 hours later at bnc bug 608087

Only that it currently still needs a human to look at the results.
I was thinking to improve upon that by scanning (rectangular) parts of the screenshot for known good or bad images. If either is found, the test could be automatically marked as passed or failed.
On unknown images, a human would still need to decide which part of the image is relevant and if it is good or bad. This decision can then be used to avoid human interaction (hard work) in further runs of that test.
If we push this further, it could be similar to nagios for network monitoring. Telling when something breaks and telling when something is back working. It could have an overview page about automated test status, giving totals e.g. “50 working, 10 unknown, 3 failing”. With links to more details.

The advantage in adding the application tests after the install test is that the system starts out in a clean, reproducible way. One disadvantage I see is that a newly failing test could prevent following tests to work.

I have also been working to enable others to run my isotovideo script. For that I have cleaned up my code so that it no more contains paths from my system. The other thing is that I documented how to get it working at http://www3.zq1.de/bernhard/git/autoinst/INSTALL

MS7 installation videos:

openSUSE-KDE-LiveCD-x86_64-Build0625c.ogv
openSUSE-KDE-LiveCD-i686-Build0625a.ogv
openSUSE-GNOME-LiveCD-x86_64-Build0625b.ogv
openSUSE-NET-x86_64-Build0623b.ogv
openSUSE-NET-i586-Build0623b.ogv
openSUSE-DVD-Build0625-x86_64b.ogv
openSUSE-DVD-Build0625-i586b.ogv

Into the Cloud

March 29th, 2010 by

Setting up your own Cloud infrastructure on SUSE has just become a lot easier. You can now use Kiwi and a mostly pre-configured set-up to build your own Cloud node images. Once these images are built setting up your Cloud can be accomplished in a few minutes.

Checkout the Cloud Recipe in the Kiwi Cookbook.

Happy Hacking

Xen para-virtualized openSUSE 11.2

February 10th, 2010 by

I had to install Xen para-virtualized openSUSE 11.2 (PVM), lucky for me 11.2 DVD iso has broken xen kernel so it does not install, the live CDs do not have any xen kernel at all so they are not useful either. After reading up all the posts on the bugzilla and forums about the subject, found the way to get it done, here is a howto for anyone else who is looking for the solution.

1. Set up http installation source

Install web-server pattern from yast to install apache2 in Dom0

Edit apache configuration /etc/apache2/default-server.conf to follow symlinks, it should look something like this:

#Options none
Options Indexes FollowSymLinks

Mount the DVD iso and copy all the files to your webserver root.

mount openSUSE-11.2-DVD-i586.iso /mnt -o loop
mkdir -p /srv/www/htdocs/suse-11.2
cp -ar /mnt/* /srv/www/htdocs/suse-11.2/
cd /srv/www/htdocs/suse-11.2/boot/i386/
rm *-xen*
wget http://download.opensuse.org/distribution/11.2/repo/oss/boot/i386/initrd-xen
wget http://download.opensuse.org/distribution/11.2/repo/oss/boot/i386/vmlinuz-xen
ln -s initrd-xen initrd-xenpae
ln -s vmlinuz-xen vmlinuz-xenpae
cd /srv/www/htdocs/
wget http://download.opensuse.org/update/11.2/rpm/i586/kernel-xen-2.6.31.12-0.1.1.i586.rpm (or the latest)
mv kernel-xen-2.6.31.12-0.1.1.i586.rpm kx.rpm
rcapache2 start

2. Start installation via “yast2 vm-install”, select para-virtualization and as installation source use http://dom0IP/suse-11.2/
3. The hack part:
When the install is about 80%  or “Stop” the reboot after the completion of first stage install, switch to tty2 by using “Sendkey > ctrl+alt+F2”.

chroot /mnt
rpm -Uvh http://dom0IP/kx.rpm –force

Reboot and let the install run its course, at the end of it there should be working domU

Edit: If you have fast internet connection available during install, add the update repository as “Addon product”, with that in place the above hack will not be necessary.

Edit2: If the image still don’t boot, mount the disk image to edit grub’s menu.lst:

mount -o loop,offset=32256 /full/path/to/image/disk0 /mnt
cd /mnt
ln -s vmlinuz-….-xen vmlinuz-xen
ln -s initrd-…..-xen.img initrd-xen
vi /mnt/grub/menu.lst #to look like below:

title XEN
root (hd0,0)
kernel /vmlinuz-xen root=…..
initrd /initrd-xen

First post / First whishes

December 20th, 2009 by

Dear Santa-Claus, can you provide us a real full kvm solutions for next year.
So I didn’t have to fight with Esx .

Hybrid Live Systems

August 5th, 2009 by

When talking about live systems on USB sticks people reported many problems with bootloaders like grub to boot the stick. Even though this is most often a problem with the stick hardware or the PC BIOS it’s an annoying situation which should have a better solution. There are also many people who wants to use the stick as a data container in combination with a live system to work with

With the ISO hybrid technology and the integration into kiwi there is a way to create such a stick very easily. A hybrid ISO is an iso filesystem which contains a MBR and thus it’s seen as a disk to the PC BIOS. As it’s an ISO the isolinux bootloader is used instead of grub which works better on many systems. Additionally the hybrid ISO can be used as a live system on CD/DVD as well as on a USB stick

What’s required to use this

  • kiwi v3.68 or later
  • syslinux-3.82-2.1 or later

How do I setup a hybrid ISO in kiwi

In order to activate the creation of a hybrid iso in kiwi you only have to add the hybrid=”true” attribute as part of your iso image type in config.xml:


<type boot="isoboot/suse-11.2" flags="clic" hybrid="true">iso

You can use the suse-11.2-JeOS from the kiwi-templates package as example image description for your hybrid testing. The generated .iso file can be dumped via a simple dd call onto the USB stick. The same file also can be used to be burned on a CD/DVD


dd if=LimeJeOS-openSUSE-11.2.i686-1.11.2.iso of=/dev/... bs=32k

After that the stick can be tested. By default all attempts to write data will go into the RAM of the system. As a stick allows storing data persistently you can create a write partition on the stick using fdisk:


fdisk /dev/...

kiwi will prevent using a vfat partition for the operating system. So make sure you create a 0x83 (linux) type partition and not a vfat partition for the write support. If you additionally create a vfat partition you can use it as a container for any kind of data independently from the live system. We choose vfat here to stay compatible with Windows systems.

Known bugs

  • when using the clicfs filesystem (flags=”clic”) the persistently write feature into a single partition will fail because clicfs currently can’t deal with raw block specials as cow device. Will be fixed as soon as possible

Have fun 🙂

Fresh & Fruity

July 28th, 2009 by

Available today as part of the SUSE Appliance Program is SUSE Studio 1.0 based on the  image creator technology called kiwi. When creating an appliance with SUSE Studio you also have the possibility to export the appliance description to your local computer and use the kiwi backend directly to understand more about image creation and deployment

A professional linux distribution should be able to work as an appliance which is an ll-in-one solution including the application and the operating system. A basic appliance to start with is the JeOS – Just Enough Operating System. kiwi provides these as examples in the kiwi-templates package. To create your first SUSE 11.1 appliance just type:

kiwi --build suse-11.1-JeOS -d /destination/path

The primary image type of a JeOS template is a virtual disk which you can run in a virtual machine like QEmu, KVM, Vmware, VirtualBox, etc… To do this with qemu just call:

qemu /destination/path/LimeJeOS-openSUSE-11.1.i686-1.11.1.vmdk

and here you go with your first appliance. You want to know more about kiwi, just take a look at the wiki here:

KIWI Cookbook

or read the full system documentation as PDF here:

KIWI System Documentation

Remember to have fun 🙂

ARM support in openSUSE Buildservice – fixed

April 27th, 2009 by

The issue caused by the OBS worker update on arm builds is fixed by a new qemu.

This new qemu version also has fixed the Fedora 10 @ ARM build problem.

So we have the following working ARM target distros available for ARM: Fedora 10, Debian 5.0 and Ubuntu 9.04.

Have fun.

ARM support for openSUSE Buildservice and openSUSE – Status update

April 26th, 2009 by

Its a while since I posted the status about the ongoing work for ARM support in the OBS and for an openSUSE port. It all started with my participation in the OBS development as an external contributor. Then, on Hackweek 2008, we had the idea to enforce a new solution other than the traditional methods of compiling code either natively or via a cross compiler on a host system. The idea was to give build scripts as much of the target enviroment as they need to just work without changes in the packaging definition – in order not to change thousands of package descriptions which define a linux distribution.

A lot happened in the meantime. And I can now report some significant progess in bringing the joys of OBS and openSUSE also to all the ARM users:

  • I held a talk about cross build in OBS on FOSDEM 2009 – documenting the solution
  • ARM support is in the source tree for OBS and the publicly available packages
  • ARM support is activated in the public OBS
  • OBS 1.6 release is currently in beta – this release is the dedicated version for ARM
  • The Linux foundation will bring the joy of OBS to an even wider audience
  • Some preparations have been done for porting Base:build to ARM – we can mix cross compilers an native emulated code now
  • A Summer of Code project will be done to accelerate the development of an openSUSE @ ARM port
  • To accelerate the openSUSE @ ARM development itself, we want to involve more people of the community. We have an IRC Channel #opensuse-arm for OBS and openSUSE @ ARM – i invite you to visit us there. We will also find a solution to bring the needed changes into the openSUSE Factory codebase so regular build for openSUSE can take place once the base system is working. I will inform you once we have a working base system that can be used to port many other packages. The soon starting Summer of Code Project “Porting openSUSE to ARM platform” is intended as the starting point here.

    The next steps are to bring in all the useful applications into OBS, so you have the wide range of applications that is already available for x86 or powerpc then also on ARM. You will see interesting things happening during the next time here. To support this, more and more of the tested ARM targets will be made available also on the public OBS. I will follow up with status updates.

    ARM support in openSUSE Buildservice – currently broken

    April 26th, 2009 by

    With this message I want to make you aware that the ARM builds inside OBS are currently broken. This is due to an update of the buildservice worker code on Friday. This update removes the limit of 2 GB for the build results from the buildservice. Also, the performance of the buildservice backend code has been improved for high loads with lots of new events.

    We are now faced with an incompatibility of the underlying QEMU emulator with this new code to extract the build results in the combination of XEN and QEMU user mode. You can in fact see in your build logs for ARM error messages like:

    … saving built packages
    /usr/src/packages/DEBS/dsme-tools_0.6mer3_armel.deb
    Unsupported ioctl: cmd=0x0002 (0)
    FIGETBSZ: Function not implemented
    Unsupported ioctl: cmd=0x80041272 (4)

    We are working on a solution already. A new QEMU with this and another issues fixed is already under test and has been dropped to openSUSE:Tools:Devel/qemu-svn. I will inform you when we have this fixed in the public build service.

    Build maemo-apps with openSUSE BuildService ? – It works !

    January 27th, 2009 by

    build serviceThe openSUSE Build Service is an open and complete distribution development platform. It’s the infrastructure for a development of the openSUSE distributions. But this powerful tool can do much more! The upcoming version 1.5 will also have cross-build support and thus be able to build e.g. ARM packages on x86 hardware .

    maemo.org loko Maemo is the platform for mobile devices like the N810 and has been developed by Nokia in collaboration with many open source projects such as the Linux kernel, GNOME and many more. (more…)