| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-11-17 | |||
| 16:47:26 | sean-k-mooney | stephenfin: updated https://review.opendev.org/#/c/755109/4 to a +1 if someone wants to +w | |
| 16:53:30 | gmann | stephenfin: sean-k-mooney replied on this what we disucssed - https://review.opendev.org/#/c/763043/1 | |
| 16:53:55 | stephenfin | Ack, will respin shortly. Thanks :) | |
| 17:02:54 | lyarwood | kashyap / stephenfin ; thinking about the machine type enumeration problem a little more, do we care if an instance is using a versioned machine type? | |
| 17:03:14 | sean-k-mooney | lyarwood: kashyap and i disagree | |
| 17:03:17 | kashyap | lyarwood: Do you mean, should we record that or not? | |
| 17:03:24 | sean-k-mooney | lyarwood: i prefer to use the unversioned ones | |
| 17:03:31 | lyarwood | kashyap / stephenfin ; if we record the verioned machine type and always use it wouldn't that stop users getting security updates for free? | |
| 17:03:38 | sean-k-mooney | there are reason to use the versioned ones | |
| 17:03:46 | sean-k-mooney | livemigration/upgrades mainly | |
| 17:03:47 | lyarwood | sean-k-mooney: right I think I'm with you if the ABI remains the same | |
| 17:04:02 | sean-k-mooney | the machine type partly defines the abi | |
| 17:04:15 | sean-k-mooney | so it wont nessisarly remian the same but its largly the same | |
| 17:04:32 | sean-k-mooney | thing that can change are the max number of cores supported for example | |
| 17:04:44 | sean-k-mooney | but it should be backward compatible | |
| 17:04:56 | kashyap | lyarwood: Just so I get you: we're referring to CentOS/RHEL-based versioned machine types, yeah? (And not the upstream QEMU's per-release machine types) | |
| 17:04:56 | lyarwood | yeah | |
| 17:05:08 | sean-k-mooney | e.g. a q35-1 guest shoudl be upgradable to a q35-2 machine type | |
| 17:05:28 | kashyap | sean-k-mooney: Well, wait. That sentence doesn't make sense | |
| 17:05:55 | kashyap | To remind: when you migrate an instance with machine type q35-1, it *remains* q35-1 on the destination | |
| 17:06:01 | sean-k-mooney | the abi between verions should change additivly | |
| 17:06:08 | kashyap | ... until one explicitly changes it via nova.conf. | |
| 17:06:12 | sean-k-mooney | kashyap: yes i never said migrate | |
| 17:06:28 | sean-k-mooney | i said upgrade i actully ment via a hard reboot | |
| 17:06:34 | kashyap | sean-k-mooney: Err, my mind read the "upgradable" as "migratable". Silly me! | |
| 17:07:00 | kashyap | sean-k-mooney: Even in the case of "upgrade", libvirt won't gratuitously update it, you have to explicitly request it. | |
| 17:07:15 | kashyap | lyarwood: Not sure if we're on track with your original question | |
| 17:07:15 | sean-k-mooney | you can expect that a guest booed on an older vers should be able to boot in the newer verion of the same overall type | |
| 17:07:28 | lyarwood | kashyap: yeah this is still on the original question | |
| 17:07:37 | openstackgerrit | Merged openstack/nova-specs master: Add modernize-os-hypervisors-api spec https://review.opendev.org/755109 | |
| 17:07:37 | sean-k-mooney | kashyap: well if you just use q35 in your nova.conf | |
| 17:07:48 | lyarwood | kashyap: so my spec as written will track the versioned machine type | |
| 17:07:57 | sean-k-mooney | then since we destroy and recreate teh domain it will use the new one that the q35 alis now points too | |
| 17:08:03 | kashyap | lyarwood: So ... on the security updates: they're not tied to machine types often; most fixes in machine types are typically garden-variety "bug fixes" | |
| 17:08:06 | lyarwood | kashyap: but the issue with that is that you can never move from that specific version without rebuilding the ntire instance | |
| 17:08:18 | lyarwood | entire* | |
| 17:08:33 | sean-k-mooney | lyarwood: well really it should track the unversioned one | |
| 17:08:39 | sean-k-mooney | unless its set in the nova.conf | |
| 17:08:42 | lyarwood | sean-k-mooney: that's what I'm getting at | |
| 17:08:44 | sean-k-mooney | in which case it should use that | |
| 17:08:58 | lyarwood | sean-k-mooney: even then I think we should track the unversioned machine type | |
| 17:08:59 | kashyap | sean-k-mooney: Lee's question is, what *if* the guest is explicitly using the versioned machine type | |
| 17:09:11 | sean-k-mooney | if you had not set it the expecation is that it will change when you hard-reboot if you did a yum update and updated libvirt/qemu | |
| 17:09:35 | sean-k-mooney | kashyap: if the guest is useing a verioned machinve type in the image you dont need to do anything | |
| 17:09:48 | sean-k-mooney | if the guest is useing a version machine tyep from the config then use the config value | |
| 17:10:05 | sean-k-mooney | the upgrade to a newer one was ment to be handeled by the new recreate api | |
| 17:10:14 | sean-k-mooney | which we rejected so there is no upgrade path now | |
| 17:10:31 | lyarwood | well just using the alias | |
| 17:10:43 | lyarwood | that's the only way to provide an upgrade path to users | |
| 17:10:59 | sean-k-mooney | right but on waht operation would it upgrade | |
| 17:11:18 | kashyap | lyarwood: I think the clearest way to get understanding here is to lay out some example scenarios | |
| 17:11:19 | lyarwood | move or hard reboot | |
| 17:11:25 | lyarwood | assuming the underlying QEMU had been updated | |
| 17:11:32 | kashyap | lyarwood: I've writte up some for RHOS QE for cold migration, live and evacuate scenarios | |
| 17:11:43 | sean-k-mooney | i guess i could by that | |
| 17:12:01 | kashyap | I can clean that up and provide a link, as lay out the impliciations. And that allows one to better reason about it, IMHO | |
| 17:12:06 | sean-k-mooney | resize,hardreboot, unshelve, rebuild and cold migrate | |
| 17:12:38 | sean-k-mooney | lyarwood: do you have my hw:stable_abi extra spec in your spec | |
| 17:12:38 | lyarwood | does anyone actually care about running on a specific version of a machine type? | |
| 17:12:46 | lyarwood | sean-k-mooney: no | |
| 17:12:58 | sean-k-mooney | lyarwood: we do for ffu | |
| 17:13:06 | sean-k-mooney | but beyond that im not sure | |
| 17:13:20 | lyarwood | sean-k-mooney: why? Wouldn't that be covered by LM | |
| 17:13:34 | sean-k-mooney | yes kind of | |
| 17:13:59 | sean-k-mooney | it more we want to pin the new host to the old verion untill the rolling upgrade is complete | |
| 17:14:00 | sean-k-mooney | i think | |
| 17:14:19 | sean-k-mooney | so that we can technically migrate form new to old if we need too eventhough we say dont do that | |
| 17:14:39 | sean-k-mooney | changing the machine_type is ment to be a post upgrade step | |
| 17:14:49 | lyarwood | well you could still technically do that with FFU | |
| 17:15:12 | lyarwood | actually no you couldn't ignore me | |
| 17:15:28 | lyarwood | and agreed with post upgrade for changing default machine types | |
| 17:16:11 | kashyap | A factor to consider: if you track the unversioned 'pc' or 'q35', it always aliases to the latest available versioned machine type on the box. | |
| 17:16:29 | sean-k-mooney | from a donwstream point of view what we said was new installs should use the new default, existing installs should be upgrade with the old default then the default shoudl be changed as a post upgrade action | |
| 17:17:26 | sean-k-mooney | kashyap: yes but if you have not express an opipion in the image and the config is either unset or set to the aliase i think that is the right thing to track anyway | |
| 17:17:45 | kashyap | sean-k-mooney: Yep, that I agree with. | |
| 17:17:55 | sean-k-mooney | the edge case is if you have a versioned machine type in the config | |
| 17:18:06 | sean-k-mooney | i was suggesting recodign that | |
| 17:18:18 | sean-k-mooney | but then we cant really allow it to change on hard reboot | |
| 17:18:30 | lyarwood | it wouldn't | |
| 17:18:33 | sean-k-mooney | it would have to be resize or rebuld only | |
| 17:18:54 | sean-k-mooney | maintain the machine type on cold or live migate | |
| 17:18:55 | lyarwood | if a versioned machine type is recorded the only way to change it would be with a rebuild | |
| 17:19:14 | sean-k-mooney | lyarwood: only rebuild or rebuild/resize | |
| 17:19:26 | lyarwood | sean-k-mooney: rebuild/resize sorry | |
| 17:19:37 | sean-k-mooney | so the elephant in the room | |
| 17:19:41 | lyarwood | sean-k-mooney: actually can you proivide the machine type via a flavor | |
| 17:19:41 | sean-k-mooney | what about evacuate | |
| 17:19:49 | sean-k-mooney | lyarwood: no | |
| 17:19:54 | sean-k-mooney | but we could | |
| 17:19:57 | lyarwood | sean-k-mooney: then just rebuild | |
| 17:20:05 | sean-k-mooney | that does not work then | |
| 17:20:09 | lyarwood | sean-k-mooney: and evacuate uses rebuild | |
| 17:20:09 | sean-k-mooney | rebuild is distructive | |
| 17:20:21 | sean-k-mooney | and for secuity reason we do need a way to change this | |
| 17:20:34 | sean-k-mooney | which is one of the reason i had recreate | |
| 17:20:40 | lyarwood | well that's no different to the situation we are in today | |
| 17:21:01 | sean-k-mooney | no today you jsut change the config option and hardreboot | |
| 17:21:13 | lyarwood | that a user has no access to | |
| 17:21:21 | sean-k-mooney | or if its using the aliase just package update and reboot | |
| 17:21:25 | lyarwood | that's basically the same as a db update | |