← Back to team overview

maria-developers team mailing list archive

Re: Problem with KVM version in Buildbot?

 

Otto Kekäläinen writes:

> There is no need for this image to be so big. The OS is maybe that 3.1
> GB and the MariaDB build output is about 3 GB, so something like 9 GB
> disk size should be well enough by a fair margin.

Right.
On the other hand, there is a lot of work involved in re-doing the VM images
in case of too-small image, so I can understand Daniel's reasons for making
the images "large enough". This is just the maximum size, the actual size will
be no bigger than what is actually used.

However, with a large max size, we still need to disable the ramdisk
usage. Because in case a lot of space is used, this can cause failures in
other, unrelated builds due to disk full.

I don't know that the ramdisk optimisation is that important anyway, so it
seems reasonable to just disable it here.

> + qemu-img create -b /kvm/vms/vm-centos7_0-x86_64-build.qcow2 -f qcow2 /dev/shm/vm-tmp-2302.qcow2
> qemu-img: '' uses a qcow2 feature which is not supported by this qemu version: QCOW version 3
> qemu-img: Could not open '/kvm/vms/vm-centos7_0-x86_64-build.qcow2'
> Failed to clone base image, aborting

For now, I updated the Buildbot config to not use the terrier buildslave for
this builder. If any more images are made with the newer file version, the
associated builders need to be similarly disabled, using this option:

   slaves=kvm11_slaves

> Also, another issue related to VM images. Our old images were created with
> rather small disk size. I noticed that some new images are created much
> larger, for example:

> I will try to fix the config to not use ramdisk for existing images that have
> too large virtual size. But it is something to keep in mind for the future.

So now I added an option ramdisk=True|False to getDebBuilder() and similar
functions. And I checked all images, and added ramdisk=False for all those
builders that I found used some of the images with large maximum size.

Any further image made with large max size should then also use the
ramdisk=False option.

An alternative method to having big VM max size is to do like getFullTest()
does. It adds an extra blank disk image that is not put in ramdisk:

  args = args + ["--kvm=-hdb", "--kvm=vm-blank-20G.qcow2"]

and then mounts and uses it inside the VM.

But again, if the ramdisk optimisation is not needed on the newer/better
buildbot machines, there might be little need for this extra complexity.

 - Kristian.


Follow ups

References