| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-04-26 | |||
| 16:36:59 | johnthetubaguy | feels like we need the use cases writing up and agreeing to move forward | |
| 16:37:00 | mriedem | johnthetubaguy: what is the middle layer about the nova api? the enamel idea? | |
| 16:37:09 | mriedem | *above | |
| 16:37:17 | johnthetubaguy | mriedem: I think we thought heat might be that, but that turned out differently | |
| 16:37:45 | mriedem | nova today, as-is, provides the APIs you need for something sitting on top to do this stuff | |
| 16:37:58 | mriedem | which is why we've always pushed back on adding volume type to the compute api | |
| 16:38:08 | cburgess | mriedem johnthetubaguy I think we need to separate the flavor-root-disk-none and cinder backend idea entirely. The flavor-root-disk-none is a feature that regadless of backend disables a nova managed disk and requires BFV. It should be configured/enabled entirely independent of the cinder backend. | |
| 16:38:39 | cburgess | I think we should just return the 400, as painful as that is and don't do any other magic under the hood. | |
| 16:38:59 | johnthetubaguy | its basically saying, for this flavor, that optional argument is required | |
| 16:39:11 | johnthetubaguy | i mean thats messy, but all the other fixes seem miles out | |
| 16:39:25 | mriedem | cburgess: specifically so you can tie those types of flavors to certain host aggregates? | |
| 16:39:30 | cburgess | What do you mean by this optional argument is required? | |
| 16:39:40 | mriedem | bdms are optional when creating a server | |
| 16:39:47 | cburgess | Oh right yes. | |
| 16:39:50 | mriedem | a flavor saying they are required makes them non-optional | |
| 16:40:48 | cburgess | What if instead of local_disk=True/False we call it bdm_only=True/False. If false use existing logic if True, require BMD and ignore root/ephemeral/etc on flavor. | |
| 16:40:57 | cburgess | That seems like it might be a bit cleaner and less confusing? | |
| 16:41:04 | cburgess | or is it just symantics? | |
| 16:41:25 | johnthetubaguy | but the bdm can have source=local | |
| 16:41:32 | johnthetubaguy | I think | |
| 16:41:46 | cburgess | What? | |
| 16:41:47 | cburgess | Really? | |
| 16:41:50 | mriedem | yes | |
| 16:41:58 | mriedem | https://docs.openstack.org/developer/nova/block_device_mapping.html | |
| 16:41:58 | cburgess | That makes it use the hypervisor local instance path? | |
| 16:42:08 | johnthetubaguy | its maybe more volume_backed_disks_only=True | |
| 16:42:20 | johnthetubaguy | cburgess: yup | |
| 16:42:20 | cburgess | Dear lord... we made a mess. | |
| 16:42:23 | mgagne | what's the use case? Have a flavor with source=volume only? no local whatsoever? | |
| 16:42:28 | johnthetubaguy | cburgess: +1 | |
| 16:42:30 | cburgess | mgagne Correct | |
| 16:42:46 | cburgess | mgagne Make it impossible to ever have nova create disks of any type local to the hypervisors. | |
| 16:43:04 | mgagne | like johnthetubaguy suggested, maybe we need to define the use cases that need to be supported because I see a lot of them | |
| 16:43:30 | johnthetubaguy | so some of them have API workarounds, some don't | |
| 16:43:44 | johnthetubaguy | I think the no_local_disk thing is the big one with no workarounds today | |
| 16:43:46 | cburgess | johnthetubaguy mriedem The other way to do this is make it a confug option on the compute side. Not a flavor extra spec. | |
| 16:43:52 | mriedem | nope | |
| 16:43:56 | mgagne | you can already restrict with max_local_block_devices but I think it's system-wide, not per aggregate or flavor | |
| 16:43:59 | johnthetubaguy | don't like configs changing the API behaviour | |
| 16:44:11 | johnthetubaguy | cburgess: so you get it wrong, and you just get an instance in the error state, I guess? | |
| 16:44:23 | cburgess | johnthetubaguy scheduler does it | |
| 16:44:31 | cburgess | The compute node reports it can't host local disk | |
| 16:44:46 | johnthetubaguy | you still get an instance in the error sate | |
| 16:44:49 | johnthetubaguy | I think | |
| 16:44:59 | mgagne | this means the request still manage to get to the scheduler, past the API | |
| 16:45:00 | mriedem | not if the scheduler can find a host that supports local disk | |
| 16:45:08 | cburgess | johnthetubaguy Thats not different then the 1000s of other things that the scheduler can barf on. | |
| 16:45:22 | johnthetubaguy | mgagne: I totally didn't know that existed, you are right, its API level I think | |
| 16:45:28 | mriedem | which eventually becomes a trait on the compute resource provider | |
| 16:45:39 | cburgess | mriedem Right which would be fine. If I want to support some local and some not that really a characteristic of the compute node directly. | |
| 16:45:44 | johnthetubaguy | mgagne: oh, I see your point, its system wide not per flaovr | |
| 16:45:56 | cburgess | mriedem Right.. I was thinking a trait. | |
| 16:46:03 | mgagne | yea so we would need something flavor scoped | |
| 16:46:04 | cburgess | This compute node can support local, this can't. | |
| 16:46:08 | cburgess | But thats a long way out again. | |
| 16:46:22 | johnthetubaguy | cburgess: yeah, I mean that all makes sense | |
| 16:46:26 | mriedem | johnthetubaguy: i knew about max_local_block_devices because people thought if you set it to 0 it meant nova would automagically always do bfv for you | |
| 16:46:35 | johnthetubaguy | mriedem: ah... right | |
| 16:46:44 | johnthetubaguy | mriedem: I remember that coming up now you mention it | |
| 16:46:46 | cburgess | I actually don't know what that setting does. | |
| 16:46:54 | mgagne | https://wiki.openstack.org/wiki/BlockDeviceConfig#max_local_block_devices | |
| 16:46:59 | mriedem | cburgess: traits are closer than everything else at this point | |
| 16:47:00 | mgagne | it's only to prevent DoS | |
| 16:47:04 | johnthetubaguy | gives you 400 errors, I presume | |
| 16:47:22 | mgagne | so people don't create an infinite amount of local disks | |
| 16:47:32 | cburgess | Ahh... | |
| 16:47:34 | cburgess | OK.. | |
| 16:47:35 | mriedem | cburgess: so that's an alternative we haven't talked about before, | |
| 16:47:40 | cburgess | mriedem Traits? | |
| 16:47:48 | mriedem | traits on the resource provider to say it's local_disk=False | |
| 16:47:58 | mriedem | then tag your flavor with local_disk=False | |
| 16:48:08 | mriedem | scheduler / placement has to find a compute that matches those | |
| 16:48:12 | cburgess | mriedem Why do we need to tag the flavr? | |
| 16:48:22 | melwitt | I thought BFV was supposed to get solved with placement. are you just talking about how to do it in placement? | |
| 16:48:35 | cburgess | mriedem I'm not wild about having to set something in the flavor. | |
| 16:48:54 | cburgess | The fact that a compute node can or can not host local disks is something the compute node is aware of. | |
| 16:48:55 | mriedem | cburgess: how are you going to know where to put instances? | |
| 16:49:02 | cburgess | You shouldn't have to also set the right thing on a flavor. | |
| 16:49:14 | cburgess | I flavor you should I need local disk and the compute node should be able to say "nope not me". | |
| 16:49:27 | mriedem | so all of your bfv goes to the local_disk=False computes, and all non-bfv goes to the local_disk=True computes? | |
| 16:49:49 | cburgess | mriedem Thinking through all the use cases... | |
| 16:50:01 | mriedem | dansmith: super fun cells v2 meeting in 10 minutes i hope | |
| 16:50:04 | cburgess | mriedem This is why I was suggesting a working sessions focused on this... | |
| 16:50:12 | dansmith | oh yep | |
| 16:50:14 | mriedem | cburgess: well, we have the forum session | |
| 16:50:17 | dansmith | mriedem: didn't realize it was that late | |
| 16:50:21 | cburgess | mriedem So many different use case | |
| 16:50:26 | mriedem | cburgess: that's about as working as it's going to get at the summit | |
| 16:50:32 | cburgess | mriedem I know... | |
| 16:50:55 | cburgess | mriedem How badly bike shedded would we get trying to do this on the ML? | |
| 16:51:06 | cburgess | mriedem Where this = discuss different options. | |
| 16:51:17 | openstackgerrit | melanie witt proposed openstack/nova master: Add get_count_by_vm_state() to Instance object https://review.openstack.org/446244 | |
| 16:51:18 | openstackgerrit | melanie witt proposed openstack/nova master: Remove 'reserved' count from used limits https://review.openstack.org/446242 | |
| 16:51:18 | openstackgerrit | melanie witt proposed openstack/nova master: Remove useless quota_usage_refresh from nova-manage https://review.openstack.org/446243 | |
| 16:51:19 | openstackgerrit | melanie witt proposed openstack/nova master: Count instances to check quota https://review.openstack.org/416521 | |
| 16:51:21 | openstackgerrit | melanie witt proposed openstack/nova master: Make Quotas object favor the API database https://review.openstack.org/410945 | |
| 16:51:21 | openstackgerrit | melanie witt proposed openstack/nova master: Add online migration to move quotas to API database https://review.openstack.org/410946 | |
| 16:51:27 | mriedem | cburgess: idk, it's probably worth starting to prime the pump for that session at the forum, | |
| 16:51:42 | mriedem | so we don't start a 40 minute session discussing all of the history and previously discussed options | |
| 16:51:56 | mriedem | and then find out we have 5 minutes left with nothing new to say | |