| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-09-10 | |||
| 16:08:53 | dansmith | stephenfin: and restart the whole deployment atomically :) | |
| 16:09:03 | stephenfin | no, you don't need to do that | |
| 16:09:09 | dansmith | no? | |
| 16:09:15 | dansmith | you say "immediately" in your comment | |
| 16:09:38 | stephenfin | I said we'd have to do that immediately if I wasn't doing the things I was doing to prevent that | |
| 16:10:00 | sean-k-mooney | dansmith: the alternitve was to do the doble report of resouces as both vcpu and pcpu by the way. and that was not done for a spciric reason i cant rememebr | |
| 16:10:49 | dansmith | sean-k-mooney: yeah, that's a terrible alternative, agreed :) | |
| 16:10:57 | dansmith | "Would you prefer an extra config step or a kick in the nuts?" | |
| 16:11:08 | dansmith | I could get most people to agree to the first | |
| 16:11:19 | sean-k-mooney | it did not require the config and it was self healing but ok | |
| 16:11:58 | dansmith | seems to me that with the current plan, | |
| 16:12:00 | dansmith | after they've upgraded, | |
| 16:12:01 | sean-k-mooney | i think we did not do it because of an issue with reshapes | |
| 16:12:13 | stephenfin | sean-k-mooney: Not reshapes, no | |
| 16:12:17 | stephenfin | http://lists.openstack.org/pipermail/openstack-discuss/2019-August/008501.html | |
| 16:12:20 | dansmith | they have to change all (or some fraction) of their computes to the new config to expose the new resources, | |
| 16:12:21 | dansmith | restart them, | |
| 16:12:36 | dansmith | then tweak the scheduler config to ask for the new thing, then restart those, | |
| 16:12:42 | dansmith | then fix the rest of the computes before running out of capacity, and then restart those | |
| 16:12:43 | dansmith | right? | |
| 16:12:54 | sean-k-mooney | dansmith more or less | |
| 16:12:58 | dansmith | that's the most graceful thing | |
| 16:13:05 | stephenfin | dansmith: exactly, yeah | |
| 16:13:10 | dansmith | which sounds like (a) hard to automate and (b) laborious | |
| 16:13:22 | dansmith | otherwise you're looking for full atomic downtime while you do all that in one go | |
| 16:13:53 | dansmith | I can't imagine OSA is going to decide what the sufficient fraction for conversion is, | |
| 16:13:57 | sean-k-mooney | well for FFU we take down the whole cloud contol plain so that not unprecidented | |
| 16:14:04 | dansmith | convert that set, reconfig/restart control services, etc | |
| 16:14:12 | stephenfin | the scheduler option exists to prevent the need for that atomic upgrade | |
| 16:14:15 | dansmith | sean-k-mooney: this is for rolling one release | |
| 16:14:17 | stephenfin | *exists solely | |
| 16:14:33 | mriedem | sean-k-mooney: vexxhost doesn't need to FFU because they actually don't suck at CD | |
| 16:14:34 | dansmith | stephenfin: which likely only works for the case where the humans decide when to throw that switch | |
| 16:15:10 | sean-k-mooney | mriedem: :) yes but telco dont upgrade untill the last second. | |
| 16:15:21 | stephenfin | dansmith: Yeah, I've told mschuppert et al internally to not even try automating this in TripleO | |
| 16:15:27 | dansmith | stephenfin: exactly | |
| 16:15:34 | stephenfin | dansmith: But manual human intervention is going to be necessary anyway | |
| 16:15:38 | mriedem | oh right, openstack's only consumer, telco's | |
| 16:15:55 | dansmith | stephenfin: I don't think that's a given | |
| 16:15:59 | stephenfin | yeah, it is | |
| 16:16:07 | dansmith | alright, well, end of discussion then huh? | |
| 16:16:09 | sean-k-mooney | stephenfin: well they will be automatining it as a seperate step that you run but the full detail are tbd | |
| 16:16:28 | stephenfin | wait, I'm preparing my longer answer :) | |
| 16:16:50 | stephenfin | we can't tell if a host is intended for pinned workloads, unpinned workloads or (bad!) both | |
| 16:17:00 | dansmith | if converting from the current cpuset config to the new one is not something a computer can automate, then this is all unreasonable, IMHO | |
| 16:17:21 | stephenfin | so we can't therefore tell whether we should be mapping 'vcpu_pin_set' to '[compute] cpu_dedicated_set' or '[compute] cpu_shared_set' | |
| 16:17:30 | stephenfin | assuming 'vcpu_pin_set' is even set, which it doesn't have to be | |
| 16:17:35 | mriedem | stephenfin: couldn't we detect that if the compute was reporting a trait saying what it's configured for? | |
| 16:17:52 | dansmith | mriedem: he's saying the config doesn't currently include the intended behavior | |
| 16:18:10 | dansmith | which is fine, the operator may have to tell the tool what they're using their pinning for, | |
| 16:18:15 | stephenfin | mriedem: To paraphrase a kid with a spoon, there is no trait | |
| 16:18:21 | dansmith | but the actual conversion of the formats does not need to be hand-edited everywhere | |
| 16:18:37 | mriedem | stephenfin: i don't know what that means (the spoon kid thing) but sure there is never a trait unless we add one | |
| 16:18:50 | dansmith | matrix | |
| 16:18:52 | dansmith | can't believe you didn't get a 90s movie reference dude | |
| 16:18:55 | mriedem | my point was, if the control plane needs to know things about how the compute is configured/supported, then we use traits for that now | |
| 16:19:01 | mriedem | i'm not a matrix fanboy | |
| 16:19:27 | stephenfin | mriedem: We don't need a trait though - we have resources | |
| 16:19:34 | dansmith | right, that's not really the problem | |
| 16:20:32 | stephenfin | the problem is that we're going from a world where two different types of resource have been munged together, and we're trying to unmunge them as cleanly as possible | |
| 16:20:32 | dansmith | the controller side of this seems easy to make flexible enough to handle the rolling config of computes to me | |
| 16:21:06 | stephenfin | using service versions? | |
| 16:21:13 | dansmith | I would say that the scheduler should ask for the new format by default. If placement returns some options, then we filter and schedule to those if possible. Basically, prefer the upgraded machines | |
| 16:21:21 | dansmith | if we get back no candidates or filter them all out, | |
| 16:21:25 | sean-k-mooney | we are going form a world where teh VCPU reouse was the number of virtual cpus avialabel to it meaning the number of shared cpus | |
| 16:21:44 | dansmith | we check the service version to determine if there are old computes in the deployment. If so, we query again for the older format to see if there's any room that way | |
| 16:21:49 | artom | So... maybe we need entirely new resource names then? | |
| 16:22:00 | dansmith | potentially cache that determination for ten minutes or something, but... | |
| 16:22:15 | mriedem | artom: moving away from VCPU is a non starter to me | |
| 16:22:20 | dansmith | then you can upgrade and convert computes in one step, which is what OSA and other tools are going to want to do.. | |
| 16:22:22 | mriedem | it's baked into *everything* | |
| 16:22:29 | dansmith | they want to upgrade and fix the config as one step generally | |
| 16:23:11 | artom | mriedem, I'm not saying remove it, I'm saying leave it "legacy CPU resource thing", and come up with new resources to mean shared CPU and dedicated CPU | |
| 16:23:19 | dansmith | artom: -3 | |
| 16:23:58 | artom | Anyways, I have 0 context and func tests to fix | |
| 16:24:29 | sean-k-mooney | artom: we talked about SCPU and PCPU in the past but we said no we want to keep VCPU resouces | |
| 16:24:37 | artom | dansmith, hey man, dinner first | |
| 16:24:42 | sean-k-mooney | so way to late to go back that route | |
| 16:24:42 | stephenfin | dansmith: so tl;dr: kill the static scheduler-only config option and instead do "give me PCPU, but if you can't give me PCPU then search for VCPU" instead | |
| 16:25:14 | dansmith | stephenfin: yes, but only the last part of there are old computes around. once you do that one time and find everything is upgraded, stop even doing that check | |
| 16:25:27 | dansmith | stephenfin: remove that compat step in U, no deprecation cycle needed for that | |
| 16:25:46 | stephenfin | What do you mean by old computes? | |
| 16:25:51 | sean-k-mooney | dansmith: if we did that we would need a trait to make the scond query safe | |
| 16:26:21 | mriedem | stephenfin: older than train computes | |
| 16:26:25 | mriedem | based on the nova-compute service rpc api version | |
| 16:26:26 | dansmith | stephenfin: service version will tell you if all computes have been upgraded.. so actually, maybe just always do that in T if no candidates, because they could do the upgrade and the config tweak separately | |
| 16:26:26 | sean-k-mooney | we would need a support_PCPU capablity trait and need to add it as a forbiden trait for the second query | |
| 16:26:43 | stephenfin | that won't work though | |
| 16:26:49 | dansmith | stephenfin: so yeah, what you said | |
| 16:26:51 | stephenfin | because by default we don't report PCPU on Train | |
| 16:27:08 | stephenfin | doing so would force people to set new config options as soon as they upgrade | |
| 16:27:14 | stephenfin | which we can't do | |
| 16:27:29 | sean-k-mooney | stephenfin: if you look at artom migratio ncode we ignore the "can live migrate with numa" config if everythin is upgraded | |
| 16:27:40 | dansmith | stephenfin: that's why I backed away from the version check there | |
| 16:28:30 | sean-k-mooney | that would still require everything to be restated however. | |
| 16:28:33 | stephenfin | sean-k-mooney: right, but that's because the "can live migrate with numa" check only needs to know that code is new enough. it doesn't need the operator to tweak some config first | |
| 16:28:38 | stephenfin | which this does | |
| 16:28:58 | stephenfin | dansmith: Ah, yeah, I missed the "so actually" | |
| 16:29:35 | dansmith | stephenfin: the reason I was heading in that direction, is because: | |
| 16:29:36 | sean-k-mooney | i think if we were to do the double query as i said we need the compute capableity trait to protect against lading on a new host when old hsot are available and we ask for vcpus | |