On Fri, Jun 29, 2012 at 11:59 AM, Wido den Hollander <w...@widodh.nl> wrote: > Hi, > > After a couple of months worth of work I'm happy to announce that the RBD > support for primary storage in CloudStack seems to be reaching a point where > it's good enough to be reviewed. > > If you are planning to test RBD, please do read this e-mail carefully since > there are still some catches. > > Although the code inside CloudStack doesn't seem like a lot of code, I had > to modify code outside CloudStack to get RBD support working: > > 1. RBD storage pool support in libvirt. [0] [1] > 2. Fix a couple of bugs in the libvirt-java bindings. [2] > > With those issues addressed I could implement RBD inside CloudStack. > > While doing so I ran into multiple issues inside CloudStack which delayed > everything a bit. > > Now, the RBD support for primary storage knows limitations: > > - It only works with KVM > > - You are NOT able to snapshot RBD volumes. This is due to CloudStack > wanting to backup snapshots to the secondary storage and uses 'qemu-img > convert' for this. That doesn't work with RBD, but it's also very > inefficient. > > RBD supports native snapshots inside the Ceph cluster. RBD disks also have > the potential to reach very large sizes. Disks of 1TB won't be the > exception. It would stress your network heavily. I'm thinking about > implementing "internal snapshots", but that is step #2. For now no > snapshots. > > - You are able create a template from a RBD volume, but creating a new > instance with RBD storage from a template is still a hit-and-miss. Working > on that one. > > Other than these limitations, everything works. You can create instances and > attach RBD disks. It also supports cephx authorization, so no problem there! > > What do you need to run this patch? > - A Ceph cluster > - libvirt with RBD storage pool support (>0.9.12) > - Modified libvirt-java bindings (jar is in the patch) > - Qemu with RBD support (>0.14) > - A extra field "user_info" in the storage pool table, see the SQL change in > the patch > > You can fetch the code on my Github account [3]. > > Warning: I'll be rebasing against the master branch regularly, so be aware > of git pull not always working nicely. > > I'd like to see this code reviewed while I'm working on the latest stuff and > getting all the patches upstream in other projects (mainly the libvirt Java > bindings). > > Any suggestions or comments? > > Thank you! > > Wido > > > [0]: > http://libvirt.org/git/?p=libvirt.git;a=commit;h=74951eadef85e2d100c7dc7bd9ae1093fbda722f > [1]: > http://libvirt.org/git/?p=libvirt.git;a=commit;h=122fa379de44a2fd0a6d5fbcb634535d647ada17 > [2]: https://github.com/wido/libvirt-java/commits/cloudstack > [3]: https://github.com/wido/CloudStack/commits/rbd
Wido, I am thrilled to see Ceph support at this stage. Hopefully I'll get to try this out next week. Any chance you'd consider putting this in a topic branch in the ASF repo? --David