euca2ools, nova, and swift3 middleware

Asked by Wayne A. Walls on 2011-02-23

Greetings, everyone!

I have a Nova cluster, and a Swift cluster set up. I want to be able to use Swift as my backend for Nova, which is using euca2ools (EC2 API). I read about Swift3, the middleware to translate EC2 API, so swift could understand it. I have added 'swift3' in my pipeline in /etc/swift/proxy-server.conf in the appropriate location, and believe that everything is set up correctly here. Is there any additional steps I need to take to make my Swift cluster 'nova ec2 ready?'

From the Nova side, I changed my nova.conf to point to the proxy server, and also edited novarc with the updated S3_URL. Whenever I try to run a 'euca-describe-images', it just hangs. Might be an authentication issue? I can't find where Swift logs auth requests, so not sure what is happening here.

I can run all the curl commands from the proxy localhost just fine, so I know that Swift is working as expected.

Does anyone have experience setting this up, and would be able to provide some feedback?


Question information

English Edit question
Glance Edit question
No assignee Edit question
Last query:
Last reply:
Chuck Thier (cthier) said : #1

I moved this over to the glance project, as I expect that is what you will need to run to use swift for nova image storage.

Wayne A. Walls (wayne-walls) said : #2

Greetings, Chuck!

I actually don't want to use Swift as a glance imagestore, but Swift as an S3 nova-objectstore. From the Bexar wiki release page,

"An experimental S3 compatibility middleware has been added to OpenStack Object Storage. This middleware intercepts S3 style requests and authorization, and transforms them into swift requests."

The idea is to have a Nova cluster that uses a Swift cluster as the image backend, all being driven with euca2ools. Why not just use Glance? --> & <--

One of the most important features to this audience will be the OpenStack Dashboard (all driven by EC2 API). I'd like to show them Swift is being used by Nova, and also make connections to Swift via Cyberduck. Am I correct in my assumption that Glance will work with eucatools (when Glance gets fixed)? Just use glance over the nova-objectstore/euca-upload/euca-register etc etc commands...

All my experience with Glance has been coupled with python-cloudservers (nova-tools now?).


Jay Pipes (jaypipes) said : #3

Hi Wayne!

OK, so right now, the s3 image service in Nova is the nova-objectstore program. You would have to write an adapter image service that used Swift's S3 compat ability and put that into Nova's nova/image/ directory. Not sure if this is worth the effort or not, though...

Wayne A. Walls (wayne-walls) said : #4

Greetings, Jay!

Are you referring to something like this:


    connection = boto.s3.Connection(


This is straight from '/usr/share/pyshared/test/unit/common/middleware/' on my Swift install. I don't mind using glance for imagestore, especially if nova-objectstore is going to be a huge PITA, but if it's something I can just drop in and use until more bugs get worked out of glance, I'd be down with that.


Jay Pipes (jaypipes) said : #5

No, that's not what I was referring to... I was referring to something a bit more involved that that.

I guess I'm having a bit of trouble understanding why you want to use an S3 service in the first place? If you are using XenServer with Nova, you can set the image_service to nova.image.GlanceImageService and a similar flag for the Xen API plugin (xenapi_image_service I believe) and you won't need to use S3 at all...

Can you help with this problem?

Provide an answer of your own, or ask Wayne A. Walls for more information if necessary.

To post a message you must log in.