Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a task to store QEMU images in a database and thinking towards developing of the custom block device. Is this a good idea? Where is it better to start from?

share|improve this question
Perhaps do you mean a database that contains the paths of the QEMU images on the file system? – Rilindo Oct 15 '11 at 19:52
No, I want to store QEMU image itself in database. – Stan Oct 16 '11 at 5:55
o.O If what you're after is a distributed store for QEMU images, I think you'd be better off looking at a clustered filesystem like Gluster. – Tom O'Connor Oct 16 '11 at 12:37
Already looked at gluster, ceph, sheepdog, openstack swift. I'm not seeking for distributed filesystem, I'm curious to test storing QEMU images in database. – Stan Oct 16 '11 at 13:25

Storing QEMU-images in a database is on many levels very impractical. Using an ordinary filesystem for the storage itself, and referencing the files from the database is a lot simpler - and will probably grant you what you're trying to achieve.

If this doesn't work for you, I'd like to know more about what you're trying to achieve.

share|improve this answer
With proper image storing strategy (not a large blob) and replicating/sharding database server facilities I can get the performance comparable to distributed filesystems like glusterfs, ceph, openstack swift, etc. Because each project in my case contains not only a QEMU image, but also a lot of different objects, I want to manage all these stuff in the same manner. As a sample, you can take a look at GridFS, based on MongoDB. – Stan Oct 15 '11 at 19:51
Where is the value in this, compared to using an ordinary file system, though? What's your motivation? – Kvisle Oct 15 '11 at 19:55
Distributed file/object storage. – Stan Oct 15 '11 at 21:11
I'd store the QEMU image and it's object collection in these special storage units on a filesystem called "directories", and make them hierarchical so that you can easily find them. – Tom O'Connor Oct 16 '11 at 14:03
How are you finding in these "directories" the "person" object f.e. with name "Stan" and age 33yo? How do you apply map-reduce to objects stored in directories? How do you ditribute all this stuff? How do you shard it? Especially across datacenters? – Stan Oct 16 '11 at 15:01

If you want distributed image storage, QEMU supports using images on Rados Block Devices (implemented using Ceph):

share|improve this answer
I have looked at ceph, but it is not ready for production yet. Also, because additionally to images I have to store other objects, I'll require dbms over ceph or two simultaneously working distribution systems. That's why I'm thinking towards simplification of this system and storing all data in database. – Stan Oct 16 '11 at 6:04

There's Sheepdog integrated in Qemu, providing distributed image storage as well. Don't use it myself, but it seems to cover your goals.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.