[openstack-dev] [nova][cinder] how to handle AZ bug 1496235?
Matt Riedemann
mriedem at linux.vnet.ibm.com
Wed Sep 23 19:55:35 UTC 2015
On 9/23/2015 2:45 PM, John Griffith wrote:
>
>
> On Wed, Sep 23, 2015 at 1:34 PM, Matt Riedemann
> <mriedem at linux.vnet.ibm.com <mailto:mriedem at linux.vnet.ibm.com>> wrote:
>
>
>
> On 9/23/2015 2:15 PM, Matt Riedemann wrote:
>
>
>
> On 9/23/2015 1:46 PM, Ivan Kolodyazhny wrote:
>
> Hi Matt,
>
> In Liberty, we introduced allow_availability_zone_fallback
> [1] option in
> Cinder config as fix for bug [2]. If you set this option,
> Cinder will
> create volume in a default AZ instead of set volume into the
> error state
>
> [1]
> https://github.com/openstack/cinder/commit/b85d2812a8256ff82934d150dbc4909e041d8b31
>
> [2] https://bugs.launchpad.net/cinder/+bug/1489575
>
> Regards,
> Ivan Kolodyazhny
>
> On Wed, Sep 23, 2015 at 9:00 PM, Matt Riedemann
> <mriedem at linux.vnet.ibm.com
> <mailto:mriedem at linux.vnet.ibm.com>
> <mailto:mriedem at linux.vnet.ibm.com
> <mailto:mriedem at linux.vnet.ibm.com>>> wrote:
>
> I came across bug 1496235 [1] today. In this case the
> user is
> booting an instance from a volume using source=image,
> so nova
> actually does the volume create call to the volume
> API. They are
> booting the instance into a valid nova availability
> zone, but that
> same AZ isn't defined in Cinder, so the volume create
> request fails
> (since nova passes the instance AZ to cinder [2]).
>
> I marked this as invalid given how the code works.
>
> I'm posting here since I'm wondering if there are
> alternatives worth
> pursuing. For example, nova could get the list of AZs
> from the
> volume API and if the nova AZ isn't in that list, don't
> provide it
> on the volume create request. That's essentially the
> same as first
> creating the volume outside of nova and not specifying
> an AZ, then
> when doing the boot from volume, provide the volume_id
> as the source.
>
> The question is, is it worth doing that? I'm not
> familiar enough
> with how availability zones are meant to work between
> nova and
> cinder so it's hard for me to have much of an opinion here.
>
> [1] https://bugs.launchpad.net/nova/+bug/1496235
> [2]
>
> https://github.com/openstack/nova/blob/master/nova/virt/block_device.py#L381-L383
>
>
> --
>
> Thanks,
>
> Matt Riedemann
>
>
>
> __________________________________________________________________________
>
> OpenStack Development Mailing List (not for usage
> questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> __________________________________________________________________________
>
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
> Sorry but that seems like a hack.
>
> I'm trying to figure out the relationship between AZs in nova
> and cinder
> and so far no one seems to really know. In the cinder IRC
> channel I was
> told there isn't one, which would mean we shouldn't even try
> creating
> the volume using the server instance AZ.
>
> Also, if there is no relationship, I was trying to figure out
> why there
> is the cinder.cross_az_attach config option. That was added in
> grizzly
> [1]. I was thinking maybe it was a legacy artifact from
> nova-volume,
> but that was dropped in grizzly.
>
> So is cinder.cross_az_attach even useful?
>
> [1] https://review.openstack.org/#/c/21672/
>
>
> The plot thickens.
>
> I was checking to see what change was made to start passing the
> server instance az on the volume create call during boot from
> volume, and that was [1] which was added in kilo to fix a bug where
> boot from volume into a nova az will fail if
> cinder.cross_az_attach=False and storage_availability_zone is set in
> cinder.conf.
>
> So I guess we can't just stop passing the instance az to the volume
> create call.
>
> But what I'd really like to know is how this is all used between
> cinder and nova, or was this all some work done as part of a larger
> effort that was never completed? Basically, can we deprecate the
> cinder.cross_az_attach config option in nova and start decoupling
> this code?
>
> [1] https://review.openstack.org/#/c/157041/
>
>
> --
>
> Thanks,
>
> Matt Riedemann
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> To be honest this is probably my fault, AZ's were pulled in as part of
> the nova-volume migration to Cinder and just sort of died. Quite
> frankly I wasn't sure "what" to do with them but brought over the
> concept and the zones that existing in Nova-Volume. It's been an issue
> since day 1 of Cinder, and as you note there are little hacks here and
> there over the years to do different things.
>
> I think your question about whether they should be there at all or not
> is a good one. We have had some interest from folks lately that want to
> couple Nova and Cinder AZ's (I'm really not sure of any details or
> use-cases here).
>
> My opinion would be until somebody proposes a clear use case and need
> that actually works that we consider deprecating it.
>
> While we're on the subject (kinda) I've never been a very fond of having
> Nova create the volume during boot process either; there's a number of
> things that go wrong here (timeouts almost guaranteed for a "real"
> image) and some things that are missing last I looked like type
> selection etc.
>
> We do have a proposal to talk about this at the Summit, so maybe we'll
> have a descent primer before we get there :)
>
> Thanks,
>
> John
>
>
> __________________________________________________________________________
> 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
>
Heh, so when I just asked in the cinder channel if we can just deprecate
nova boot from volume with source=(image|snapshot|blank) (which
automatically creates the volume and polls for it to be available) and
then add a microversion that doesn't allow it, I was half joking, but I
see we're on the same page. This scenario seems to introduce a lot of
orchestration work that nova shouldn't necessarily be in the business of
handling.
--
Thanks,
Matt Riedemann
More information about the OpenStack-dev
mailing list