[Openstack] [OpenStack] How to add a RBD volume snapshot rollback operation to Cinder

changqian dummyhacker85 at gmail.com
Thu Jan 2 10:14:23 UTC 2014


在 2014-01-02四的 16:53 +0800,Haomai Wang写道:
> On Thu, Jan 2, 2014 at 4:42 PM, Changqian Zuo <dummyhacker85 at gmail.com> wrote:
> > 在 2014-01-02四的 16:01 +0800,Haomai Wang写道:
> >> On Thu, Jan 2, 2014 at 3:38 PM, Changqian Zuo <dummyhacker85 at gmail.com> wrote:
> >> > Hi,
> >> >
> >> > First time mailing to a list.
> >> >
> >> > I'm trying to add a RBD volume snapshot rollback operation to Cinder.
> >> > I've just got through WSGI part of Cinder API code and have read some
> >> > pieces of Cinder Volume. Now there is not much time for me to complete
> >> > the whole code base (with Ceph driver) very carefully, I need some
> >> > advice.
> >> >
> >> > Is adding a Extension Controller the most suitable way to do this? How
> >> > to deal with snapshot and volume state transformation, would it affect
> >> > other part of Cinder codes? What parts of Cinder codes I should pay
> >> > special attention?
> >> >
> >> > Many thanks.
> >> >
> >> > Some background information:
> >> >
> >> > We're planning to use Cinder bootable volume (Ceph RBD as backend) as
> >> > instance root disk in my company's OpenStack environment. Creating a
> >> > volume snapshot from image, and then use this snapshot to spawn instance
> >> > root volumes.
> >>
> >> From your description, it seemed that you can use rbd as nova backend directly.
> >>
> >> nova.conf:
> >>  libvirt_image_type='rbd'
> >>
> >> more options can be find at nova/virt/libvirt/imagebackend.py
> >>
> >> >
> >> > To backup volume state, I've thought of Cinder-Backup service (still
> >> > need to add a in-use backup for Cinder), but it takes too much space (a
> >> > 80G volume would take at least 248G space for base backup image with x3
> >> > Ceph replication ratio). The other way is volume snapshot, but in this
> >> > case when restoring volume data, I have to create a new volume from
> >> > snapshot, destroy the original instance (there's no API to change a
> >> > instance's bootable volume), and create a new instance from new volume.
> >> >
> >> > The old volume can not be removed, for a snapshot is referencing to it
> >> > (the snapshot must be kept). If I do this again and again, there would
> >> > be many snapshots referencing to many different volumes, and I have to
> >> > keep these volumes (not used elsewhere), which is a mess.
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> >> > Post to     : openstack at lists.openstack.org
> >> > Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> >>
> >>
> >>
> > Thanks,
> >
> > I do know in Havana release, we could use RBD as Nova image storage.
> > There are reasons I choose such a way to launch an instance. Firstly,
> > our company are moving from XCP to OpenStack, we have an old framework
> > and business mode to manage Xen instance and VDIs, so hoping to fit
> > OpenStack into this framework. The decision is made by my boss.
> > Secondly, I myself would prefer this way, for it would be to easy to
> > manage root disk, for example, I could use Cinder Backup service to do
> > some remote backup. Using nova image, the root disk may not be easily
> > seen.
> 
> Do you mean store all the images at Cinder too and clone bootable volume when
> booting instance? Why need rollback?
> 
> I'm afraid that you can't get enough benefits from "booting from volume". There
> exists many limits on this way. Such as injecting data failed, chaotic snapshot
> management and others.
> 
> 
> >
> >
> 
> 
> 

Yes, we don't use ephemeral disk. We don't take instance snapshot,
instead, just take a volume snapshot (instance's root disk or data
volume, Yea, instance memory would be lost).

Thanks for the bug information. 





More information about the Openstack mailing list