[openstack-dev] [Cinder] A possible solution for HA Active-Active
Joshua Harlow
harlowja at outlook.com
Mon Aug 3 16:06:02 UTC 2015
Devananda van der Veen wrote:
>
>
> On Mon, Aug 3, 2015 at 8:41 AM Joshua Harlow <harlowja at outlook.com
> <mailto:harlowja at outlook.com>> wrote:
>
> Clint Byrum wrote:
> > Excerpts from Gorka Eguileor's message of 2015-08-02 15:49:46 -0700:
> >> On Fri, Jul 31, 2015 at 01:47:22AM -0700, Mike Perez wrote:
> >>> On Mon, Jul 27, 2015 at 12:35 PM, Gorka
> Eguileor<geguileo at redhat.com <mailto:geguileo at redhat.com>> wrote:
> >>>> I know we've all been looking at the HA Active-Active problem
> in Cinder
> >>>> and trying our best to figure out possible solutions to the
> different
> >>>> issues, and since current plan is going to take a while
> (because it
> >>>> requires that we finish first fixing Cinder-Nova
> interactions), I've been
> >>>> looking at alternatives that allow Active-Active
> configurations without
> >>>> needing to wait for those changes to take effect.
> >>>>
> >>>> And I think I have found a possible solution, but since the HA A-A
> >>>> problem has a lot of moving parts I ended up upgrading my initial
> >>>> Etherpad notes to a post [1].
> >>>>
> >>>> Even if we decide that this is not the way to go, which we'll
> probably
> >>>> do, I still think that the post brings a little clarity on all the
> >>>> moving parts of the problem, even some that are not reflected
> on our
> >>>> Etherpad [2], and it can help us not miss anything when
> deciding on a
> >>>> different solution.
> >>> Based on IRC conversations in the Cinder room and hearing people's
> >>> opinions in the spec reviews, I'm not convinced the complexity
> that a
> >>> distributed lock manager adds to Cinder for both developers and the
> >>> operators who ultimately are going to have to learn to maintain
> things
> >>> like Zoo Keeper as a result is worth it.
> >>>
> >>> **Key point**: We're not scaling Cinder itself, it's about
> scaling to
> >>> avoid build up of operations from the storage backend solutions
> >>> themselves.
> >>>
> >>> Whatever people think ZooKeeper "scaling level" is going to
> accomplish
> >>> is not even a question. We don't need it, because Cinder isn't as
> >>> complex as people are making it.
> >>>
> >>> I'd like to think the Cinder team is a great in recognizing
> potential
> >>> cross project initiatives. Look at what Thang Pham has done with
> >>> Nova's version object solution. He made a generic solution into an
> >>> Oslo solution for all, and Cinder is using it. That was
> awesome, and
> >>> people really appreciated that there was a focus for other
> projects to
> >>> get better, not just Cinder.
> >>>
> >>> Have people consider Ironic's hash ring solution? The project
> Akanda
> >>> is now adopting it [1], and I think it might have potential. I'd
> >>> appreciate it if interested parties could have this evaluated
> before
> >>> the Cinder midcycle sprint next week, to be ready for discussion.
> >>>
> >>> [1] - https://review.openstack.org/#/c/195366/
> >>>
> >>> -- Mike Perez
> >> Hi all,
> >>
> >> Since my original proposal was more complex that it needed be I
> have a
> >> new proposal of a simpler solution, and I describe how we can do
> it with
> >> or without a DLM since we don't seem to reach an agreement on that.
> >>
> >> The solution description was more rushed than previous one so I
> may have
> >> missed some things.
> >>
> >> http://gorka.eguileor.com/simpler-road-to-cinder-active-active/
> >>
> >
> > I like the idea of keeping it simpler Gorka. :)
> >
> > Note that this is punting back to "use the database for
> coordination",
> > which is what most projects have done thus far, and has a number of
> > advantages and disadvantages.
> >
> > Note that the stale-lock problem was solved in an interesting way
> in Heat:
> > each engine process gets an "instance-of-engine" uuid that adds
> to the
> > topic queues it listens to. If it holds a lock, it records this
> UUID in
> > the owner field. When somebody wants to steal the lock (due to
> timeout)
> > they send to this queue, and if there's no response, the lock is
> stolen.
> >
> > Anyway, I think what might make more sense than copying that
> directly,
> > is implementing "Use the database and oslo.messaging to build a DLM"
> > as a tooz backend. This way as the negative aspects of that approach
> > impact an operator, they can pick a tooz driver that satisfies their
> > needs, or even write one to their specific backend needs.
>
> Oh jeez, using 'the database and oslo.messaging to build a DLM' scares
> me :-/
>
> There are already N + 1 DLM like-systems out there (and more every day
> if u consider the list at
> https://raftconsensus.github.io/#implementations) so I'd really rather
> use one that is proven to work by academia vs make a frankenstein one.
>
>
> Joshua,
>
> As has been said on this thread, some projects (eg, Ironic) are already
> using a consistent hash ring backed by a database to meet the
> requirements they have. Could those requirements also be met with some
> other tech? Yes. Would that provide additional functionality or some
> other benefits? Maybe. But that's not what this thread was about.
>
> Distributed hash rings are a well understood technique, as are
> databases. There's no need to be insulting by calling
> not-your-favorite-technology-of-the-day a frankenstein one.
Fair enough, I'll probably still be scared by it though :)
I from now on redact any usage of frankenstein, from this point on ;)
Sorry franky,
>
> The topic here, which I've been eagerly following, is whether or not
> Cinder needs to use a DLM *at all*. Until that is addressed, discussing
> specific DLM or distributed KVS is not necessary.
>
Agreed.
> Thanks,
> -D
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
More information about the OpenStack-dev
mailing list