Earlier  
Posted Nick Remark
#openstack-nova - 2018-04-12
14:40:51 mriedem runways have changed...
14:40:52 dansmith oh, nm
14:40:57 efried bauzas: Again putting sharing aside, one allocation request is going to be a list of resources from (nested) providers on a single host. So there may be e.g. 10 allocation requests returned, but only three hosts represented (so more than one allocation request per host).
14:40:58 dansmith I had to refresh, it didn't notice
14:41:45 dansmith hmm, why did the certificate stuff get kicked out?
14:41:50 dansmith that had a few more days
14:41:57 dansmith and the top one is overdue
14:42:00 efried bauzas: In the use case we're talking about, the filter is going to have to look at each of those allocation requests to figure out how many NUMA node providers are in it.
14:42:37 dansmith mriedem: ^
14:42:39 efried bauzas: ...and compare that number against N in hw:numa_nodes=N. If they don't match, the filter removes that allocation request from the list.
14:43:08 dansmith certs were supposed to go until monday
14:43:13 mriedem i didn't move these
14:43:36 mriedem Certificate Validation - https://blueprints.launchpad.net/nova/+spec/nova-validate-certificates [END DATE: 2018-04-16]
14:43:39 mriedem yeah i don't know why that moved
14:43:40 dansmith right
14:43:43 dansmith and the top one
14:43:49 dansmith is supposed to be kicked out
14:43:57 dansmith maybe we remove the top one and put certs back in its place?
14:44:02 mriedem sounds like we need a CA on this one 10-4
14:44:06 efried bauzas: Having done that, let's say we've filtered our 10 allocation requests down to 4. Of those, one is on host1, three are on host2, and host3 is no longer in the picture (we filtered out all of his allocation requests).
14:44:07 mriedem yeah probably
14:44:19 dansmith mriedem: you gonna do that?
14:44:24 mriedem dansmith: you do it
14:44:29 bauzas efried: wait
14:44:41 efried bauzas: So now we can land on host1 or host2 (but not host3). If we land on host1, we have to use that one allocation request for that guy. If we land on host2, we have a choice of three allocation requests.
14:44:44 efried bauzas: waiting...
14:45:18 bauzas efried: the fact that we have multiple allocation requests related to one host shouldn't impact filters
14:45:41 dansmith mriedem: actually melwitt should be around in 15 mins, so let's just wait
14:45:46 bauzas efried: because filters interface is against *host*, not allocation request
14:45:50 dansmith she clearly logged that she removed it yesterday
14:45:57 openstackgerrit Jay Pipes proposed openstack/nova master: placement: resource requests for nested providers https://review.openstack.org/554529
14:46:48 efried bauzas: That's going to need to be rethought, then.
14:47:08 bauzas efried: what needs to rethought ?
14:47:10 efried bauzas: If we can't have NUMATopologyFilter winnow down the list of *allocation requests* then we're back to the drawing board.
14:47:32 jaypipes mriedem, dansmith: your review needed on https://review.openstack.org/#/c/556873/ pls (nested allocation candidates spec)
14:47:53 bauzas efried: I considered Placement as the way to winnow down the list of hosts we were checking
14:48:04 bauzas efried: so that's still a net win
14:48:07 gameon Hello all - I am trying to configure live migration between hosts, I have a Broadwell 56 core host and a 32 core Haswell server. Both single sockets. I have set cpu_mode=custom and cpu_model to various things, kvm64, haswell, SandyBridge - but still I get an error about CPU incompatibility when attempting to live migration from 32 to 56 core hosts. Is there any way of fixing this? I thought the configuration of custom mode woul
14:48:29 mriedem gameon: please see channel topic
14:48:32 efried bauzas: Because in our scenario above, we've filtered down to host1 and host2, great, let's say we pick host1 -we can't just pick *any* allocation request that relates to host1. Because some of those still have allocation requests where <#numa node RPs> != hw:numa_nodes from extra specs.
14:48:46 gameon mriedem: Sorry I missed that.
14:48:58 bauzas efried: where is the spec describing the query side of nested RPs ?
14:49:47 bauzas efried: probably worth hangouting you know
14:49:48 efried bauzas: https://review.openstack.org/#/c/556873/
14:50:00 efried bauzas: But I'm not sure that's going to help you much.
14:50:20 bauzas efried: well, I'm not in need of anything
14:50:44 bauzas efried: here, I'm just saying "let's use Placement to winnow the list of hosts"
14:50:50 bauzas ah snap
14:50:56 bauzas it will work for NUMA
14:51:01 bauzas but not for VGPU
14:51:09 bauzas oh wait
14:51:11 bauzas it will
14:51:11 efried separate use case, let's focus on one at a time.
14:51:16 bauzas no no
14:51:17 bauzas sec
14:51:20 efried no, it won't. But separate use case.
14:51:25 bauzas trying to wrap around my heard
14:51:27 bauzas head
14:51:34 bauzas so
14:51:46 bauzas we said we're going to get a list of allocation requests
14:52:14 bauzas then, each filter will go thru the list of corresponding hosts and do the checks they want - which are unrelated to what Placement checked
14:52:40 bauzas at the end, we'll figure out that, say host345, host346 are valid
14:52:51 bauzas then, we'll look back at the allocation candidates
14:53:14 bauzas and claim against one of the allocation requests corresponding to those hosts
14:53:54 bauzas what filtering will do is just reducing that list of allocation requests to the ones that are related to hosts that match filtering
14:54:03 efried Right, but since the filter only filtered *hosts*, there can still be allocation requests we can't use.
14:54:13 efried Placement will winnow the list of hosts so far. The filter can winnow the list of hosts further. But - assuming the filter *only* returns a list of hosts - what's going to be left after that is still going to include allocation requests we can't use. And now there's nobody left to filter those out.
14:54:38 efried bauzas: So what I was saying we could reimagine was the role of filters in this flow.
14:54:41 bauzas efried: why should we filter more ?
14:54:49 sahid gameon: you should try with cpu_mode=none
14:55:03 efried bauzas: Instead of being just focused on hosts, a filter is allowed to filter allocation requests too.
14:55:08 bauzas efried: filters give you a subset of allocation requests that are supported
14:55:15 bauzas efried: please no.
14:55:23 efried bauzas: That's not what I understood from what you said above.
14:55:32 sahid so no check are done by in libvirt layer but it's possible that qemu failed to start the -incoming process on destination
14:55:37 efried bauzas: What I understood you to say was that filters give you a subset of *hosts*.
14:56:04 bauzas they give you a subset of hosts, which turns nova into knowing which allocation requests are valid accordingly
14:56:04 sahid at least you should see the log o QEMU which will indicated which cpu feature is not supported by destination
14:56:11 efried bauzas: Exactly
14:56:18 bauzas so, we're cool
14:56:29 bauzas in the example of NUMA
14:56:31 efried bauzas: No. The problem is that there are still invalid allocation requests for the remaining hosts
14:56:54 bauzas oh right, because the NUMA filter did crazy things
14:57:14 bauzas so it said "that NUMA node, I'll take it"
14:57:26 bauzas but it doesn't really do that you know
14:57:34 bauzas it just consider the host valid
14:57:50 gameon sahid: setting it to none makes no difference, I get the same error. I can't see which feature set isn't supported. I am beginning to think it's to do with the number of cores on the hosts. Even kvm64 doesn't work for live migration from 56 to 32 cores (it's a 1 core VM..)
14:57:52 bauzas efried: the NUMA attachment is a late bind on compute
14:58:07 bauzas efried: IIUC the construct
14:58:36 sahid gameon: what qemu is saying? /var/log/libvirt/qemu/instance-xxx.log
14:58:52 efried bauzas: Example: flavor says hw:numa_nodes=2. So we ask for resources1=VCPU:1&resources2=VCPU:1. We get back the following from GET /allocation_candidates:
14:58:53 efried ]
14:58:53 efried [ host2_NUMA1: { VCPU: 2 } ]
14:58:53 efried [ host1_NUMA0: { VCPU: 2 } ],
14:58:53 efried [ [ host1_NUMA0: { VCPU: 1 }, host1_NUMA1: { VCPU: 1 } ],
14:59:23 openstackgerrit Matt Riedemann proposed openstack/nova master: Use Queens UCA for nova-multiattach job https://review.openstack.org/554317
14:59:24 openstackgerrit Matt Riedemann proposed openstack/nova master: Remove the branch specifier from the nova-multiattach job https://review.openstack.org/560930
14:59:25 sahid gameon: an other point, after updating nova.conf you should restart the service and also create a new guest
14:59:40 efried bauzas: NUMATopologyFilter looks through that, sees that host1 has a valid allocation request - the first one - because it represents two NUMA nodes and we want to adhere to hw:numa_nodes=2.
14:59:59 efried bauzas: So it chucks out host2, and returns "here is your valid list of hosts: [host1]"

Earlier   Later