Re: RBD, OpenStack Nova, libvirt, qemu-guest-agent, and FIFREEZE: is this working as intended?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 21, 2019 at 11:53 AM Jason Dillaman <jdillama@xxxxxxxxxx> wrote:
>
>
> > On Aug 21, 2019, at 11:41 AM, Florian Haas <florian@xxxxxxxxxxxxxx> wrote:
> >
> > Hi Jason! Thanks for the quick reply.
> >
> > On 21/08/2019 16:51, Jason Dillaman wrote:>
> >> It just looks like this was an oversight from the OpenStack developers
> >> when Nova RBD "direct" ephemeral image snapshot support was added [1].
> >> I would open a bug ticket against Nova for the issue.>
> >> [1]
> > https://opendev.org/openstack/nova/commit/824c3706a3ea691781f4fcc4453881517a9e1c55
> >
> > OK, wow... that was 4 years ago, does that mean that quiesce/freeze/thaw
> > for RBD-backed Nova instances has probably been non-functional
> > throughout that time?

Just to clarify, in the initial implementation, only cold snapshots
were supported for RBD [1] so there was no need to quiesce the disk.
The issue was introduced by [2] when that restriction for RBD images
was removed about a year later.

> > Looking at the reno for that commit I had an idea for a workaround:
> >
> >> features:
> >> - When RBD is used for ephemeral disks and image storage, make
> >>   snapshot use Ceph directly, and update Glance with the new location.
> >>   In case of failure, it will gracefully fallback to the "generic"
> >>   snapshot method.  This requires changing the typical permissions
> >>   for the Nova Ceph user (if using authx) to allow writing to
> >>   the pool where vm images are stored, and it also requires
> >>   configuring Glance to provide a v2 endpoint with direct_url
> >>   support enabled (there are security implications to doing this).
> >>   See http://docs.ceph.com/docs/master/rbd/rbd-openstack/ for more
> >>   information on configuring OpenStack with RBD.
> >
> > So, suppose that deployers running Nova with ephemeral disks on RBD
> > prefer snapshot consistency over this shortcut. Until Nova fixes the
> > direct_snapshot() call, I figured that such deployers could tweak the
> > caps for the Nova CephX identity such that that user were no longer
> > allowed to write to the Glance pool.
>
> Yes, that would be my recommendation.
>
> >
> > Under those circumstances, the snapshot creation (in the ephemeral pool)
> > would work, but then the clone() call in this line should throw
> > nova.exception.Forbidden from an rbd.PermissionError:
> >
> > https://opendev.org/openstack/nova/src/commit/7bf75976016aae5d458eca9f6ddac92bfe75dc59/nova/virt/libvirt/imagebackend.py#L1075
> >
> > Which should then trigger this except block:
> >
> > https://opendev.org/openstack/nova/src/commit/7bf75976016aae5d458eca9f6ddac92bfe75dc59/nova/virt/libvirt/driver.py#L2065
> >
> > ... and Nova/libvirt should go back to the (arguably more correct) fallback.
> >
> > Would you agree with that assessment, or am I missing something? (Just
> > trying to make sure that I don't give the Nova folks the wrong facts.)
> >
> > Thanks again!
> >
> > Cheers,
> > Florian

[1] https://opendev.org/openstack/nova/src/commit/824c3706a3ea691781f4fcc4453881517a9e1c55/nova/virt/libvirt/driver.py#L1468
[2] https://opendev.org/openstack/nova/src/commit/231832354932e26f0d76af1cf1711e701375672b/nova/virt/libvirt/driver.py#L1641

-- 
Jason
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx



[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux