[Openstack] [Cinder] Questions on implementing the Replication V2 spec

John Griffith john.griffith at solidfire.com
Fri Sep 25 14:11:56 UTC 2015


On Thu, Sep 24, 2015 at 3:21 PM, Price, Loren <Michael.Price at netapp.com>
wrote:

> Hi John,
>
>
>
> Okay, it sounds like we’ll be okay to implement the replication V2 spec. I
> believe the failover aspect was the only API that we were seeing a problem
> with. It also sounds like there might be some areas for improvement around
> documentation, etc. Let me know if there’s anything I/we can do to help on
> that.
>
>
>
> Thanks,
>
>
>
> Michael
>
>
>
> *From:* John Griffith [mailto:john.griffith at solidfire.com]
> *Sent:* Thursday, September 24, 2015 2:26 PM
> *To:* Price, Loren
> *Cc:* openstack at lists.openstack.org
> *Subject:* Re: [Openstack] [Cinder] Questions on implementing the
> Replication V2 spec
>
>
>
>
>
>
>
> On Thu, Sep 24, 2015 at 11:48 AM, Price, Loren <Michael.Price at netapp.com>
> wrote:
>
> Hey,
>
>
>
> We’re looking into implementing the VolumeReplication_V2
> <https://github.com/openstack/cinder-specs/blob/master/specs/liberty/replication_v2.rst>
> spec for our NetApp E-Series volume driver. Looking at the specification, I
> can foresee a problem with implementing the new API call “failover_replicated_volume(volume) “
> with an unmanaged replication target. I believe with a managed target we
> can provide it, if I’m understanding correctly that it merely requires
> updating the host id for the volume. Based on that, I have two questions:
>
>
>
> 1.      Is it acceptable, in implementing this spec, to only provide this
> API for managed targets (and either throw an exception or essentially make
> a no-op) for an unmanaged replication target?
>
> 2.      In general, if a storage backend is incapable of performing a
> certain operation, what is the correct way to handle it? Can the driver
> implement the spec at all? Should it throw a NotImplementedError? No-op?
>
>
>
> Thanks,
>
>
>
> Michael Price
>
>
> _______________________________________________
> 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
>
> ​Ooops, did I not respond to the list on that last response?  Just incase
> here it is again:
>
>>
>
>
> 1.      Is it acceptable, in implementing this spec, to only provide this
> API for managed targets (and either throw an exception or essentially make
> a no-op) for an unmanaged replication target?
>
> ​Yes by ​
>
>
>
> ​design it's set up such that ​it's left up to configuration.  In other
> words the idea is that we have fairly loose definitions around the API
> calls themselves to allow for differing implementations.
>
> 2.      In general, if a storage backend is incapable of performing a
> certain operation, what is the correct way to handle it? Can the driver
> implement the spec at all? Should it throw a NotImplementedError? No-op?
>
> ​Depends on who you ask :)  IMO we need to do a better job of this, this
> could be documenting in the deployment guides how to enable/disable API
> calls in certain deployments so that unsupported calls are just flat out
> not available.  My true belief is that we shouldn't be implementing
> features that you can't run with every/any backend device in the first
> place, but that's my usual rant and somewhat off topic here :)
>
>
>
> Note that a lot of the logic for replication in V2 was moved into the
> volume-type and the conf file precisely to address some of the issues you
> mention above.  The idea being that if the capabilities of the backend
> don't match replication specs in the type then the command fails for
> no-valid host.  The one thing I don't like about this is how we relay that
> info to the end user (or more accurately the fact that we don't).  We just
> put the volume in error state and the only info regarding why is in the
> logs which the end user doesn't have.  This is where something like a
> better more clear policy file would help as well as providing a
> capabilities call in the API.
>
>
>
> By the way, I'm glad you asked these questions here.  This is part of the
> reason why I was so strongly opposed to merging an implementation of the V2
> replication in Liberty.  I think it's important to have more than one or
> two vendors looking at this and working out details so we release something
> that is stable and usable.  My philosophy is that now for M we have a
> foundation in the core code that will likely evolve as drivers begin
> implementing the feature.
>
>
>
​By the way, have you looked at this at all (or is that what you're
referencing)[1]?  Might be more useful than the spec at this point.

[1]:
https://github.com/openstack/cinder/blob/master/doc/source/devref/replication.rst
​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20150925/ffa0db9b/attachment.html>


More information about the Openstack mailing list