Earlier  
Posted Nick Remark
#openstack-nova - 2017-08-31
19:41:01 bauzas mriedem: that's correct, before 2.29, when providing a target, we were directly calling the compute service without asking the scheduler to verify it
19:41:01 artom We've only covered Ghostbusters, the Matrix, Star Wars, and GoT
19:41:11 edleafe if you have a drawer with 2 types of spoons, you have to created nested resource providers with the different traits, and assign the spoons as inventory to each
19:41:31 efried edleafe Okay, so that's yet a third way of doing it.
19:41:38 edleafe the drawer would be the root provider
19:41:54 efried and the slots in the silverware holder thingy would be the child providers
19:41:54 edleafe efried: that's the only way with just one drawer
19:42:04 edleafe efried: yup
19:42:10 mriedem bauzas: yes this always trips me up https://github.com/openstack/nova/blob/2a4ca8bd6aa40ccd26300feaef4267aa71f69abf/nova/compute/api.py#L4017
19:42:16 mriedem because force is None if microversion < 2.29
19:42:17 efried edleafe I thought I could create a separate resource class?
19:42:51 artom It's a purely arbitrary construct though - the spoons can be inventory of RPs with different traits, or there can be one RP with two inventories, one for each kind of spoon
19:43:05 bauzas mriedem: yeah, because we still need to support microversion < 2.29 :)
19:43:06 artom (Right?)
19:43:21 bauzas mriedem: so, like you said, Force=None if so
19:43:25 edleafe efried: sure, but then you wouldn't have "spoons", you'd have dessert_spoon and soup_spoon
19:43:35 efried Right, okay.
19:44:14 efried If we don't have nested resource providers yet
19:44:45 mriedem bauzas: right, it's just confusing
19:44:54 edleafe efried: we still have some work to do with traits and nested providers before any of this will actually work
19:45:19 mriedem looks like our api ref docs also say a host is required in the request when live migrating, which is wrong
19:45:37 dansmith mriedem: so would you kill me if I wasn't around for the nova meeting today?
19:45:48 mriedem i'd like to not be around for the nova meeting today
19:46:28 dansmith is that a joke or are you hoping someone else would run it?
19:46:32 mriedem in 15 minutes i'm going to be knee deep in in-laws
19:46:36 mriedem i'll run it
19:46:39 mriedem i'm just not happy about it
19:46:39 dansmith okay
19:46:58 dansmith having to run a meeting is like the best possible in-law scenario I can think of personally
19:47:49 mriedem holy crap we actually do require that you specify the 'host' parameter in the os-migrateLive action
19:47:55 mriedem but you can pass 'host': None
19:47:56 mriedem dumb
19:50:44 efried dansmith edleafe artom Thanks a bunch for the talk, guys. I have a much better understanding now.
19:52:02 openstackgerrit Matt Riedemann proposed openstack/nova master: api-ref: add warnings about forcing the host for live migrate/evacuate https://review.openstack.org/499769
19:52:03 mriedem bauzas: dansmith: cfriesen_: ^
19:54:10 bauzas mriedem: I'm not sure the comment is really understanding
19:54:33 bauzas mriedem: why did you commented about the over-subscription ?
19:55:34 bauzas mriedem: anyway, commenting the change
19:59:25 mriedem well i was thinking more about failing a resource claim, but that could be removed
19:59:27 mriedem and just generalized
20:02:54 bauzas anyway, I'm bad at wording, so your call
20:03:30 bauzas just providing my thoughts that we should just be commenting at the top-level
20:07:37 openstackgerrit Matt Riedemann proposed openstack/nova master: api-ref: add warnings about forcing the host for live migrate/evacuate https://review.openstack.org/499769
20:10:54 cfriesen_ taking a look
20:12:12 openstackgerrit Ildiko Vancsa proposed openstack/nova-specs master: Add multiattach support to Nova https://review.openstack.org/499777
20:21:19 cfriesen_ mriedem: v2 looks reasonable to me.
20:34:26 efried dansmith edleafe artom Okay, here's a much better example. I can create SR-IOV VFs on the fly. On a given PF (which is a (nested) RP) I can create a maximum of 48 VFs. But each can be assigned a minimum egress bandwidth, let's say as a percentage of the PF's total bandwidth.
20:35:26 efried 1) It would suck for my PF to have to say traits=egress-pct-capable-1,egress-pct-capable-2,...,egress-pct-capable-100
20:36:59 efried 2) Assuming I did the above, I ask for e.g. egress-pct-capable-75, you peel off one of the 48... but I can no longer create 47 more VFs. At a maximum, I can now create 25, assuming they each get 1% of the egress bandwidth.
20:37:03 dansmith efried: that's the same as your gpu >= 10GHz example
20:37:28 efried Yeah. It's just a more convincing case because I've got 100 values instead of like three or four.
20:37:35 efried and it's also a real thing
20:37:47 dansmith efried: you could model bandwidth as a resource amount though
20:38:07 efried Now, I can probably do #2 just by, next time you ask me for get_inventory, I bust my number down to 25 (or blow up my reserved number)
20:38:08 cfriesen_ this is for kind of a weird use-case...is it possible to set up a nova-api with a configuration read from nova.conf such that only a specific user (presumably with admin privileges) can issue requests, and no other users can (even if they're in keystone)?
20:38:16 dansmith efried: no you can't
20:38:29 dansmith efried: inventory doesn't change due to allocation, otherwise you're breaking the other parts of the model
20:38:45 edleafe efried: when you add the inventory, you can set a minimum for a request
20:38:47 efried dansmith Then why is get_inventory called more than once?
20:38:49 artom dansmith, actually your last sentence is problematic for vGPUs
20:39:12 dansmith efried: because you could get more inventory periodically
20:39:18 edleafe artom: why?
20:39:20 efried what, hot-plugging stuff?
20:39:37 dansmith efried: sure
20:40:10 artom edleafe, there's this thing where a GPU can give you different numbers of vGPUs based on how many, err, I think shaders, or cores, each gets
20:40:11 dansmith efried: can we continue this conversation in denver? I think it'll be more productive
20:40:39 dansmith artom: right, but a lot of the existing models for this end up with you carving those resources out into multiple virtual devices,
20:40:41 artom So a GPU with, for example, 12 shaders/cores, can give you 2 vGPUS with 6 each, or 4 with 3 each
20:40:47 dansmith and then those devices can be assigned and de-assigned
20:40:58 dansmith you _could_ do the assignment of shaders completely dynamically,
20:41:00 efried dansmith Well, yeah, what I'm trying to do is compose notes in enough detail - and with enough of the "easy" questions answered - that we can have a productive conversation in Denver (and not devolve into spoon metaphors).
20:41:09 edleafe artom: one of the things that came up in discussions in Austin about CAPI and such was that management of dynamic resources would never be handled by nova
20:41:15 dansmith but in reality, I think most cases will be satisfied by carving up your GPUs into chunks
20:41:34 edleafe so if your resources change, the virt driver has to report that change
20:41:49 artom edleafe, they would, I'm pretty sure
20:41:51 dansmith efried: sure, I know, but it'll go a lot quicker in person I think
20:42:06 artom edleafe, nova would still have to update its inventories though
20:42:37 edleafe artom: it does that periodically, based on what the virt driver tells it
20:42:40 efried Yeah, I'd like to understand more about how it breaks the model for me to change the inventory of something - for whatever reason I see fit.
20:42:45 artom edleafe, ah, we're fine then
20:42:51 efried ^ me == virt driver in this case
20:43:12 cristicalin hy, anyone have an idea why instances libvirt.xml may be missing metadata for user_id / project_id ?
20:43:13 dansmith efried: I said in response to allocation
20:43:14 edleafe efried: I always thought you looked like a virt driver
20:43:33 efried dansmith Well, yeah, it's sort of in response to allocation.
20:43:49 efried I guess I would call it in response to actually doing the virt driver work of satisfying the allocation.
20:43:51 dansmith efried: you should be exposing how much of a thing you have and the allocations come out of that
20:43:57 dansmith efried: you don't expose "available" you expose "total"
20:44:56 efried Hm, so I guess in this scenario I don't expose SRIOV_VF=48; instead I expose SRIOV_VF_EGRESS_PERCENTAGE_POINT=100
20:45:44 efried but that doesn't allow me to model the max #VFs as 48 at the same time. Or two separate VFs in the same claim.
20:46:13 efried ick
20:47:23 dansmith efried: regardless,
20:47:39 dansmith if your NIC has 10G of bandwidth, you can have your provider expose CUSTOM_GIGS=10,
20:47:55 dansmith and have your flavor consume some number of those to avoid over-subscribing
20:50:35 cfriesen_ efried: wouldn't you still say that you have 48 VFs total, and allocate from that?
20:50:56 openstackgerrit Matt Riedemann proposed openstack/nova master: Modernize set_vm_state_and_notify https://review.openstack.org/499799
20:51:07 dansmith presumably if you have 3 VFs left, but no GIGs left, you don't want to allocate any more
20:51:11 cfriesen_ efried: presumably you could also model total bandwidth, and divide it up nonuniformly between the VFs
20:52:16 efried dansmith So the VFs and the GIGs would be separate resource classes sitting next to each other, and you have to claim VF=1,GIG=2 or whatever in your request
20:52:28 efried cfriesen_ Could, but that kills the flexibility

Earlier   Later