Earlier  
Posted Nick Remark
#openstack-nova - 2021-03-22
21:01:08 sean-k-mooney although i dont think that will fix it
21:01:21 rouk every day this sits, new vms come up depending on new features, and old vms are stranded.
21:01:33 rouk got hosts with broken NICs i cant evict, heh
21:01:37 rouk thanks supermicro
21:02:45 sean-k-mooney ya so this will only affect exsiting instance now that you have updated all the contianers
21:02:46 rouk if i didnt have like 1/3rd of my capacity having nics all blow up at once.
21:03:07 sean-k-mooney so option 1 is cold migration or hardreboot + libve migration
21:03:08 rouk i would hardly mind this cpu change, cause id just uh... wait till everyone reboots.
21:03:14 sean-k-mooney not grate but it would work
21:03:25 rouk yeah, its about 1500 VMs to reboot.
21:03:35 rouk and ill get quite the tomatoes thrown at me
21:03:37 sean-k-mooney option 2 patch the cpu model xml and to use the old values
21:03:45 rouk its not in the xml.
21:04:01 rouk its added higher up, in qemu cpu.c
21:04:02 sean-k-mooney no one sec
21:04:18 sean-k-mooney i mean /usr/share/libvirt/cpu_map/x86_EPYC-IBPB.xml
21:04:24 rouk yeah, it doesnt mention these features.
21:04:37 sean-k-mooney yep you could add them and set them disabled
21:04:43 rouk ah
21:04:54 rouk didnt see an arg for disabled on any of the existing lines.
21:04:59 sean-k-mooney then make a copy of the file as normal with a new name
21:05:05 sean-k-mooney and update the nova.conf to use that for new vms
21:05:21 rouk will nova know to use the old name on migrate?
21:05:36 sean-k-mooney yes because that is in the xml which we dont update
21:05:47 rouk ah yeah
21:06:13 rouk its quite the hack, but... i can do it pretty trivially.
21:06:28 rouk just make it part of my nova build.
21:06:47 sean-k-mooney ya so basically mv <file>.xml <file>_v2.xml
21:06:57 sean-k-mooney well cp
21:07:04 sean-k-mooney and then edit <file.xml>
21:07:16 sean-k-mooney you could do that as a layer in the nova-libvirt container
21:08:02 sean-k-mooney if you want new vms to use the new defintion just set cpu_model=eypc-ibpb-v2
21:08:17 sean-k-mooney new vms will get that but migrated ones wont until you hard reboot
21:08:55 sean-k-mooney basically with a kolla build overried file you would be patching in the versioning that libvirt should have done
21:10:28 sean-k-mooney rouk: 3 is we figure out how to do this in code which could take a little while to do
21:10:44 sean-k-mooney rouk: have you filed a bug?
21:11:14 sean-k-mooney rouk: its not really a nova bug but we could workaround it i think
21:13:09 sean-k-mooney we would need to create a functional repoducer first as while i undersatd why this happended its really not due to an external change that we cant contol
21:14:07 rouk i havnt filed a bug, no.
21:14:33 rouk but yeah, ill build a nova-libvirt with another model.
21:15:55 sean-k-mooney actully i think there is something else you could try
21:16:42 sean-k-mooney so they added teh "fix" for this to https://github.com/qemu/qemu/blob/1b507e55f8199eaad99744613823f6929e4d57c6/hw/i386/pc.c#L125-L147
21:16:59 rouk yeah whats this compat, i googled it on friday
21:17:01 sean-k-mooney you might be able to use a versioned machinve type for this
21:17:17 rouk i couldnt find any docs for how these compat versions work.
21:17:23 sean-k-mooney so i have nver looked at this before but i think it might eb related to machine tyeps
21:18:38 rouk i just have no idea what arg or config i need to do to activate this 3.1 compat
21:20:36 rouk i cant find a single note of documentation on it
21:21:49 sean-k-mooney so these are the machine type i have on centos they are disto specific
21:21:51 sean-k-mooney http://paste.openstack.org/show/803804/
21:22:04 sean-k-mooney im going to check a ubuntu vm
21:22:25 rouk oh... that notation, i saw some stuff for that in virt-manager before.
21:22:33 rouk wonder if it has it listed
21:23:44 sean-k-mooney http://paste.openstack.org/show/803805/
21:23:53 sean-k-mooney that is ubuntu 20.04
21:24:34 sean-k-mooney i wonder if you can use pc-i440fx-3.1
21:24:38 rouk pc-i440fx-3.1 Standard PC (i440FX + PIIX, 1996)
21:24:40 rouk yeah
21:24:54 rouk can nova set machine type... sec
21:25:01 sean-k-mooney yep
21:25:19 sean-k-mooney 1 of two ways. in the image which wont help and in the nova.conf which should
21:25:31 rouk yeah, libvirt.hw_machine_type
21:25:37 rouk can do that, that sounds a lot cleaner.
21:25:39 sean-k-mooney https://docs.openstack.org/nova/latest/configuration/config.html#libvirt.hw_machine_type
21:25:59 sean-k-mooney yep so add x86_64=pc-i440fx-3.1
21:26:03 rouk ill get that tested after some food, been at this issue most of the day, heh.
21:26:55 rouk thanks for all the help, even though its not nova's fault, at least the knowledge that this dumb editing can happen from qemu means nova can defend against it.
21:27:31 sean-k-mooney ya. if using the version machine type fixes it then great
21:27:52 rouk maybe that needs to be a default thing thats recommended to set, idk
21:27:53 sean-k-mooney that would at least give use time to think about what to do in nova if anything in the futrue
21:28:06 sean-k-mooney well there are two camps
21:28:17 sean-k-mooney one camp is alwasy uses the versioned machine type
21:28:29 sean-k-mooney and ooo/ redhat openstack does this by default
21:28:42 sean-k-mooney the other camp is alwasy use the latest one
21:28:55 sean-k-mooney so that you get the latest fixes/abi
21:29:02 rouk sure, that works great till qemu screws you
21:29:19 rouk with machine type though, we cant really move to the new instructions well
21:29:46 rouk the xml change would at least persist in the vm config and be fixed on reboot.
21:30:07 rouk version, we just delay till nova can handle it, i guess.
21:30:17 rouk not sure which is better.
21:30:29 sean-k-mooney https://github.com/qemu/qemu/blob/c40ae5a3ee387b13116948cbfe7824f03311db7e/hw/i386/pc_piix.c#L510-L525
21:30:32 sean-k-mooney there we go
21:31:07 sean-k-mooney so yes those are the version machine type defintions
21:31:15 rouk is there any way to make nova migrate between versions on reboot?
21:31:31 rouk or will i need to use a custom model to do that
21:31:47 sean-k-mooney am nova used too but we now wont
21:32:06 rouk so i guess the custom model is better
21:32:20 rouk at least then i can get everyone to move organically next time they reboot without breaking migrations
21:32:37 sean-k-mooney rouk: https://specs.openstack.org/openstack/nova-specs/specs/wallaby/approved/libvirt-stash-instance-machine-type.html
21:32:37 rouk even if its a dirtier fix
21:33:09 sean-k-mooney well no so on ussuri you could set the machine type explcitly
21:33:13 sean-k-mooney migrate all teh vms
21:33:30 sean-k-mooney then set it back to pc which is the default or leave it unset
21:33:36 sean-k-mooney then they would update on hard reboot
21:33:46 rouk but their migrations will break.
21:33:59 rouk or once its migrated once, it will stick in the config.
21:34:01 sean-k-mooney not unless this happens again
21:34:19 rouk hmm, i guess thats an okay upgrade plan
21:34:27 rouk as long as im not stranded on a setting forever.
21:34:37 sean-k-mooney so what the new spec say

Earlier   Later