Hi:

Recently, we has study a strange issue about the i/o performance in virtual machines created with OpenNebula over xen....

The symptoms of these i/o related issues was:

1) A massive "scp" command to the VM report various "stalled" status and are very slow. 2) dd command of the type "dd if=/dev/urandom bs=1M count=500 of=probe.raw" fail sometimes (usually after a heavy "scp" stress), by writing less data that it would do.

After a lot of tests, we found this:

The problem appears in the disks (usually scratch) created with the '' type = "fs" '' way in opennebula. When the xen "deployment.0" file is created, the blktap module is used (with the xen "tap:aio" mechanism).

OpenNebula creates the scratch disk by using dd for make files "with holes". This is very fast, but these archives seems to fail when are used by xen with the blktap module...

If in the "tm_mkimage.sh" file we change the line:

exec_and_log "ssh $DST_HOST dd if=/dev/zero of=$DST_PATH bs=1 count=1 seek=${SIZE}M"

by this one:

exec_and_log "ssh $DST_HOST dd if=/dev/zero of=$DST_PATH bs=1M count=${SIZE}"

the problems disappears....

But then the VM deployment is slow, if the scratch disk is large....

The system is a Centos 5.5. The xen hypervisor version is the standard one with centos 5.5: the "3.0.3", and the kernel is a "2.6.18-194.8.1.el5xen"

We suppose that this issue is a bug in the blktap module distributed with xen. One possibility is to upgrade the xen version. There are a centos xen repository at http://www.gitco.de/repo/, but it is only the hypervisor. The blktap module seems to be distributed with the xen patched kernel.... Any of you know about a centos xen-kernel recent version repository?? Are the compilation the only way to upgrade the xen kernel to a recent version???

Regards.








_______________________________________________
Users mailing list
Users@lists.opennebula.org
http://lists.opennebula.org/listinfo.cgi/users-opennebula.org

Reply via email to