Earlier  
Posted Nick Remark
#openstack-nova - 2017-05-24
15:31:56 mriedem you mean if you set cross_az_attach=False?
15:31:58 savvas your cross_az_attach fixed that when I define an AZ, it will grab the right volume zone
15:32:09 savvas but if I don't define/select an AZ to create the instance in
15:32:11 savvas it still fails
15:32:13 mriedem savvas: the default instance az in nova matches the default volume az in cinder
15:32:20 mriedem which is 'nova'
15:32:33 smcginnis mriedem: Well, there's the non-Nova case to account for too. So I think it's still needed. You just can't misconfigure your nova and cinder settings like that.
15:32:37 cdent melwitt, edleafe: in case it wasn't clear from my posting, I totally prefer a new porcelain api over transitioning the existing cruft. Was merely trying to pose an alternative/observation/etc. But as sdague eloquently pointed out in #openstack-dev last night, unless we put some muscle behind it, it is for naught. Got spare muscle?
15:32:43 mriedem smcginnis: psh non-nova case
15:33:10 mriedem smcginnis: allow_availability_zone_fallback is also not interoperable
15:33:30 smcginnis mriedem: Not sure I follow what you mean.
15:33:36 savvas mriedem: right, however leaving that blank is what would leave nova to determine the best node to spawn the instance on right? This would be a desirable feature when automating provisioning tasks
15:33:40 mriedem smcginnis: on one cloud i can create a volume with az=foo even though it doesn't exist, on another cloud i can't create a volume in az=foo because it doesn't exist and it's enforced
15:33:43 edleafe cdent: I know that you were just being hypothetical
15:33:57 mriedem smcginnis: it's per-cloud configurable API behavior
15:33:59 edleafe cdent: And no, no spare muscles at the moment :)
15:34:02 mriedem which is by definition not interoperable
15:34:10 cdent not so much hypothetical as omnithetical
15:34:24 sdague cdent: I also think it's far more work than people imagine. Even the code itself is a lot of work, but in lessons learn from nova v3 and the current api-ref effort, the code is only a small amount of the total work
15:34:49 cdent sdague: no dispute
15:35:04 smcginnis mriedem: If that's the concern, we have much bigger fish to fry than AZ enforcement.
15:35:08 mriedem smcginnis: maybe i should propose a deprecation patch in cinder and people can discuss i there
15:35:17 mriedem smcginnis: it's also complexity
15:35:23 mriedem which the foundation is apparently caring about now
15:35:30 mriedem hell, even thingee might get behind this
15:35:34 mriedem being foundation + cinder guy
15:35:34 smcginnis mriedem: And deprecate the nova option too?
15:35:38 mriedem smcginnis: which one?
15:35:47 mriedem cross_az_attach?
15:35:56 smcginnis mriedem: Yep.
15:36:12 mriedem i'd like to
15:36:12 smcginnis mriedem: Same argument, if that is set on one cloud and not another, you get different behavior.
15:36:18 mriedem true
15:36:29 mriedem you know what,
15:36:30 jmlowe I think I've botched adding cellsv2, I'm on newton
15:36:35 sdague cdent: and, the reference point that everyone keeps referencing is git, which isn't doing those calls over a network, with a token validation in the middle. I'm not actually sure how applicable a porcelain approach is to REST services. It's at least a research project to even figure it out
15:36:40 mriedem we should just allow passing all of the things you need to create a volume in to nova,
15:36:42 mriedem volume type,
15:36:43 mriedem volume az,
15:36:46 mriedem volume qos
15:36:47 mriedem everything
15:36:53 cdent jmlowe: did you show it some bourbon?
15:36:53 jmlowe nova list shows an instance, nova delete sayas it's not there
15:37:06 mriedem jmlowe: sec
15:37:17 smcginnis mriedem: There are some who would be in favor of that.
15:37:23 edleafe sdague: writing an SDK is sort of like writing a porcelain wrapper (but much simpler), and that was a LOT of work
15:37:28 mriedem jmlowe: see #3 https://docs.openstack.org/developer/nova/cells.html#faqs
15:37:40 jmlowe cdent: I'm going to need some bourbon to steady my nerves here in a minute if I don't figure this out
15:37:48 mriedem jmlowe: if that fixes your problem, i can die happy
15:37:56 edleafe creating a full orchestrator would be an order of magnitude more
15:39:05 sdague mriedem: that might be a good nova-status check
15:39:33 jmlowe wait, so --cell_uuid is the source not the destination?
15:39:48 mriedem jmlowe: do you have a single nova database?
15:39:49 jmlowe that may have been my gross conceptual error
15:39:53 mriedem i.e. you're not using cells v1?
15:40:10 mriedem sdague: yeah maybe, would have to think about it
15:40:23 sdague mriedem: anyway, faq is great
15:40:44 mriedem jmlowe: i'm assuming you have a basic deployment with 2 cells, cell0 and cell1
15:40:46 sdague ffaq items probably moving into "am I ok" checks is better
15:41:03 mriedem sdague: sure, but faq is cheap and easy today
15:41:08 sdague yep
15:41:15 mriedem jmlowe: nova-manage cell_v2 list_cells
15:41:23 jmlowe ran the simple setup, figured out I forgot to create a new db for cell0, created db, did map_cell0/map_cell_and_hosts/map_instances
15:41:24 mriedem will tell you what you have setup, i'm guessing there are 2 entries
15:41:47 mriedem ok, when you run map_instances, it should be pointing at the non-cell0 cell
15:41:53 mriedem which is your existing main 'nova' database
15:41:55 mriedem with the instances
15:42:55 jmlowe yep, ok, that was not what I was doing
15:45:28 jmlowe so that I can stop panicking, is there a way to go back to no cells in newton?
15:47:09 mriedem i don't think nova-manage cell_v2 delete_cell existed in newton,
15:47:14 mriedem i mean you could hack the db,
15:47:26 mriedem but honestly i can't really advise how to rollback
15:47:48 mriedem jmlowe: i think the reason you're getting the 404 on instance delete is because the instance isn't mapped to the cell probably
15:48:12 mriedem we might not have had the list_cells command either - you'd have to see what's in the nova_api db cell_mappings table
15:48:15 mriedem are there 2 entries in there?
15:48:25 jmlowe there are two in there
15:48:36 mriedem ok, one is pointing at your nova_cell0 db?
15:48:39 mriedem and the other is pointing at your nova db?
15:48:53 jmlowe ok, did map_instances, this time with the correct uuid, no luck with nova show
15:49:19 mriedem do you see the uuid for the instance in the nova_api.instance_mappings table?
15:50:01 mriedem savvas: i'm not sure how that is going to affect this - yes nova will pick a host which may be in an AZ, but i didn't think we set instance.availability_zone in that case if the user didn't explicitly request an az
15:50:36 jmlowe http://paste.openstack.org/show/610573/
15:50:55 openstack Launchpad bug 1497253 in OpenStack Compute (nova) "different availability zone for nova and cinder when AZ is not explicitly given" [Low,In progress] - Assigned to Roman Podoliaka (rpodolyaka)
15:50:55 mriedem savvas: is this at all related to what you're seeing? https://bugs.launchpad.net/nova/+bug/1497253
15:52:05 mriedem jmlowe: right so 0bbfb73d-f761-4c43-ad72-ab47a559615e is your main cell
15:52:06 mriedem with the nova db
15:52:30 jmlowe correct, I did 'nova-manage cell_v2 map_instances --cell_uuid 0bbfb73d-f761-4c43-ad72-ab47a559615e'
15:52:43 mriedem jmlowe: is there an entry in the nova_api.instance_mappings table with the instance uuid you're looking for and cell 0bbfb73d-f761-4c43-ad72-ab47a559615e ?
15:53:36 savvas explicitly define the AZ, it will trigger nova to determine the best candidate, however that action fails as it will try to create the volume in the default "nova" AZ again
15:53:36 savvas mriedem: yes, let me explain why I would like to have nova determine the best node. Basically these would be nodes with local ssd storage, not clustered. So I want instances to have volumes on their own hypervisors but all hypervisors serve the same purpose. Therefore when an instance is to be created, all AZs would qualify and based on available resources nova should determine which AZ to pick. Now I figured if you don't
15:55:02 savvas so your cross_az_attach fix works like a charm when explicitly defining an AZ, but not when trying to let nova determine the best AZ/node
15:55:02 mriedem savvas: does this patch fix your issue? https://review.openstack.org/#/c/225119/
15:55:27 jmlowe http://paste.openstack.org/show/610574/
15:55:59 savvas mriedem: YES! That looks exactly like it
15:56:33 savvas mriedem: thanks for the help!
15:56:38 mriedem savvas: so where does the failure actually happen? on the cinder side?
15:57:10 jmlowe yes, the particular instance I'm after is present in the instance mappings mapped to cell0
15:57:34 jmlowe is it a problem that there is no transport url for cell0 in cell_mappings?
15:57:58 savvas mriedem: well cinder works just fine, it does what it is beign told. Nova's just not telling cinder which AZ to use if you don't explicitly define the AZ for instance creating
15:58:38 mriedem jmlowe: the problem is the instance is mapped to cell0

Earlier   Later