[Openstack] Ceph/OpenStack integration on Ubuntu precise: horribly broken, or am I doing something wrong?

Florian Haas florian at hastexo.com
Fri Jun 8 15:24:05 UTC 2012


Hi everyone,

apologies for the cross-post, and not sure if this is new information.
I did do a cursory check of both list archives and didn't find
anything pertinent, so here goes. Feel free to point me to an existing
thread if I'm merely regurgitating something that's already known.

Either I'm doing something terribly wrong, or the current state of
OpenStack/Ceph integration in Ubuntu precise is somewhat suboptimal.
At least as far as sticking to packages available in Ubuntu repos is
concerned.

Steps to reproduce:

1. On an installation using 12.04 with current updates, create a RADOS pool.
2. Configure glance to use "rbd" as its backend storage.
3. Attempt to upload an image.

glance add name="Ubuntu 12.04 cloudimg amd64" is_public=true
container_format=ovf disk_format=qcow2 <
precise-server-cloudimg-amd64-disk1.img
Uploading image 'Ubuntu 12.04 cloudimg amd64'
==============================================================================================[
92%]         222.109521M/s, ETA  0h  0m  0sFailed to add image. Got
error:
Data supplied was not valid.
Details: 400 Bad Request

The server could not comply with the request since it is either
malformed or otherwise incorrect.

 Error uploading image: (NameError): global name 'rados' is not defined

Digging around in glance/store/rbd.py yields this:

try:
    import rados
    import rbd
except ImportError:
    pass

I will go so far as say the error handling here could be improved --
however, the Swift store implementation seems to do the same.

Now, in Ubuntu rados.py and rbd.py ship in the python-ceph package,
which is available in universe, but has an unresolvable dependency on
librgw1. librgw1 apparently had been in Ubuntu for quite a while, but
was dropped just before the Essex release:

https://launchpad.net/ubuntu/precise/amd64/radosgw

... and if I read
http://changelogs.ubuntu.com/changelogs/pool/main/c/ceph/ceph_0.41-1ubuntu2/changelog
correctly, then the rationale for it was to "drop radosgw since
libfcgi is not in main and the code may not be suitable for LTS." (I
wonder why this wasn't factored out into a separate package then, as
was apparently the case for ceph-mds).

Does this really mean that radosgw functionality was dropped from
Ubuntu because it wasn't considered ready for main, and now it
completely breaks a package in universe that's essential for
Ceph/OpenStack integration? AFAICT the only thing that would be
unaffected by this would be nova-volume (now cinder) which rather than
using the Ceph Python bindings just calls out to the rados and rbd
binaries. But both the glance RBD store and the RADOS Swift and S3
frontends (via radosgw) would be affected.

This can of course all be fixed by using "upstream" packages from the
Ceph guys (thanks to Sébastien Han for pointing that out to me).

Anyone able to confirm or refute these findings? Should there be an
Ubuntu bug for this? If so, against what package?

Cheers,
Florian




More information about the Openstack mailing list