| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-06-17 | |||
| 18:35:00 | melwitt | ok. I was thinking maybe the default should be qxl | |
| 18:35:12 | sean-k-mooney | but while its the best of the non virto option im not sure we should default to it | |
| 18:35:24 | sean-k-mooney | qxl was developed to have a better gpu for spice | |
| 18:35:25 | melwitt | but defaulting to a deprecated thing? | |
| 18:35:33 | sean-k-mooney | it work with novnc too | |
| 18:35:53 | sean-k-mooney | melwitt: without recored the current gpu we could break people on upgrade | |
| 18:36:06 | sean-k-mooney | so if we want to chang eit we need to record the current value | |
| 18:36:29 | sean-k-mooney | were recordign the current value is just popluating that value in the system metadata table | |
| 18:37:16 | melwitt | guh, I don't know enough about this stuff to understand what needs to be done here. all I know is the cirrus default messes up novnc | |
| 18:37:28 | melwitt | on rhel 8.2 | |
| 18:37:32 | sean-k-mooney | melwitt: as of when because it used to work | |
| 18:37:52 | melwitt | it works, it's just greyscale and low res | |
| 18:37:53 | sean-k-mooney | ah so its a rhel 8.2 issue with what the qemu version we use or no vnc | |
| 18:38:09 | melwitt | yeah | |
| 18:38:16 | sean-k-mooney | that sound like a qemu bug | |
| 18:38:43 | sean-k-mooney | basically if we change the default and you upgrade then hard reboot | |
| 18:38:51 | sean-k-mooney | the gpu pci device would change | |
| 18:39:11 | sean-k-mooney | if you dont have the qxl driver then the console would not work right | |
| 18:39:39 | sean-k-mooney | qxl has a vga comapatible interface to the generic window vga driver will work with it an dit should work on linux out of the box | |
| 18:39:47 | melwitt | I see | |
| 18:44:36 | sean-k-mooney | melwitt: are we setting a default graphic model if you dont request one? | |
| 18:44:54 | sean-k-mooney | or are we currently leaving it to libvirt/qemu | |
| 18:45:18 | melwitt | yeah, the link I posted earlier https://github.com/openstack/nova/blob/6ed556f4adfd8a98fae2e91204f1ce0484f5dd9d/nova/virt/libvirt/config.py#L1949 we set cirrus | |
| 18:50:59 | sean-k-mooney | melwitt: ya we proably should just remove that line | |
| 18:51:25 | melwitt | ok. I'll do some local tests to see what happens when I remove it | |
| 18:52:17 | sean-k-mooney | well we need to set it to none i guess and only populate the xml atribute if its set | |
| 18:52:51 | sean-k-mooney | we also have another place we defualt it i think | |
| 18:53:14 | sean-k-mooney | we should not be defaulting it in that file in anycase | |
| 18:53:26 | melwitt | in driver.py we set it special based on things like virt_type or guest arch or spice | |
| 18:53:42 | sean-k-mooney | yep that is what im thinking of | |
| 18:53:52 | melwitt | but in the customer's case it's cirrus because of what's in the default config.py | |
| 18:54:09 | sean-k-mooney | we should only be adding this if you have a vnc/spice console too | |
| 18:54:32 | melwitt | "this" meaning what, qxl? | |
| 18:55:27 | sean-k-mooney | the graphics device | |
| 18:55:43 | melwitt | oh that config section altogether you mean | |
| 18:55:59 | sean-k-mooney | ya if you use the serial console you should not have a graphics device | |
| 18:56:25 | melwitt | ah yeah, we are actually only doing it for certain consoles in driver.py | |
| 18:56:31 | sean-k-mooney | if you use novnc or spice then we auto add a graphic element to provide the frame buffer | |
| 18:56:33 | melwitt | I just didn't see that earlier | |
| 18:56:52 | melwitt | yeah we're only doing for novnc and spice | |
| 18:57:03 | sean-k-mooney | yep which is correct | |
| 18:57:05 | melwitt | that we add that xml section for the video device | |
| 18:57:11 | sean-k-mooney | well i guess we would do it for RDP | |
| 18:57:13 | sean-k-mooney | maybe? | |
| 18:57:23 | sean-k-mooney | oh RDP is only supported with hyperv | |
| 18:57:23 | melwitt | I don't see rdp in here | |
| 18:57:31 | melwitt | yeah it's hyperv | |
| 18:57:50 | melwitt | ok, so sounds like everything is good except we shouldn't be setting a default and just let qemu/kvm handle it | |
| 18:58:07 | sean-k-mooney | https://github.com/openstack/nova/blob/6ed556f4adfd8a98fae2e91204f1ce0484f5dd9d/nova/virt/libvirt/driver.py#L5989-L5998 | |
| 18:58:26 | sean-k-mooney | melwitt: that would alow them to contol the default and or deprecation | |
| 18:58:35 | melwitt | make sense | |
| 18:58:36 | sean-k-mooney | but the downside is we loose contol over that | |
| 18:58:45 | sean-k-mooney | so our guest abi will alter with theres | |
| 18:59:03 | sean-k-mooney | that is ok i guess since you can use the image property if you care | |
| 18:59:16 | melwitt | and yeah that's the code I was looking and the helper function being called there | |
| 19:00:21 | sean-k-mooney | ya so this https://github.com/openstack/nova/blob/6ed556f4adfd8a98fae2e91204f1ce0484f5dd9d/nova/virt/libvirt/driver.py#L5351-L5367 is basically working around libvit/qemu not doing the right thing by default | |
| 19:01:43 | sean-k-mooney | well and the fact we set a default in the xml generation class | |
| 19:01:51 | sean-k-mooney | so if we remove that default | |
| 19:02:02 | sean-k-mooney | then we might not need all those specal cases | |
| 19:02:37 | melwitt | ok, well one step at a time I guess :P | |
| 19:02:52 | melwitt | I do some local tests to see what happens when I remove the default | |
| 19:02:57 | melwitt | *I'll | |
| 19:03:45 | sean-k-mooney | ok let me know an i can review. https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/ is a review of some to the option and recomendations | |
| 19:04:21 | sean-k-mooney | i need to remove the gop device i added by mistake last cycle and add https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/#bochs-display | |
| 19:04:21 | melwitt | thanks | |
| 19:04:45 | sean-k-mooney | apparently gop is only for the bhve hypervior but the libvirt doc did not mention that | |
| 19:06:40 | sean-k-mooney | bochs implements a uefi graphic output protocol (gop) device for kvm | |
| 19:07:03 | sean-k-mooney | so that is the one i should have added | |
| 19:10:06 | sean-k-mooney | melwitt: during the ptg we disucssed breifly the idea of a resize for something other then a flavor change | |
| 19:10:58 | sean-k-mooney | maybe this could be another usecause for that | |
| 19:12:19 | sean-k-mooney | i think this was in the context of changing machine_types where i was suggeign a new retype server action but perhaps something more generic that would update the embed flavor and image with the latest would make more sense | |
| 19:12:40 | sean-k-mooney | e.g. a recreate action but that preserved all ports, volume and disks | |
| 19:14:13 | melwitt | how was that suggestion received, I'm curious heh | |
| 19:14:57 | melwitt | like, I know lots of people would like to do that. in my case, I'm trying to recover from what I consider a bug, the default being set to a deprecated thing and glitching out the vnc console | |
| 19:15:20 | sean-k-mooney | reusing resize was dansmith idea i was thinking it shoudl be its onw server action. not sure if dansmith actully was in favor or just saying if it was to be done i would start there | |
| 19:15:45 | melwitt | ah, cool | |
| 19:16:08 | sean-k-mooney | melwitt: the main think would be that recreate would have to be a move operation like resize so we can validate the new requirement | |
| 19:16:19 | sean-k-mooney | since we cant assume the current host is valid anymore | |
| 19:16:36 | melwitt | yeah. well, we validate the new stuff on a rebuild too since a few releases ago | |
| 19:16:51 | sean-k-mooney | but i think it would fix a lot of the thing that hard reboot fix but which require the flaovr or image properties to be modified | |
| 19:17:06 | sean-k-mooney | melwitt: only if the image changes | |
| 19:17:13 | melwitt | yeah, it would make life a lot easier for a lot of people | |
| 19:17:46 | sean-k-mooney | yeah so i think it has merit but not sure where it sits in the priortiy queue | |
| 19:17:49 | melwitt | yeah, I'm just saying that we validate even during rebuild so I think it makes sense to validate on a recreate/resize if we're consuming new image props etc | |
| 19:18:03 | melwitt | we're already doing it | |
| 19:18:10 | melwitt | *doing similar | |
| 19:18:21 | sean-k-mooney | for me i think it would be a good way to opt into changing the machine type for example | |
| 19:19:59 | sean-k-mooney | anyway im going to go buy icecream and i guess other food before the stores start to close | |
| 19:22:53 | sean-k-mooney | hum not sure if good pr or pr blunder https://www.benjerry.ie/flavours/netflix-and-chillld-ice-cream | |
| 19:28:03 | melwitt | thanks for the video model chat o/ | |
| 19:36:30 | mnaser | is there reasoning behind what has ended up being validated in the api layer and what doesn't get validated in the api layer? | |
| 19:37:03 | mnaser | i haven't replicated this yet (but in theory i can imagine it's possible): end user tried to create a vm where image size > disk size when doing bfv | |
| 19:37:16 | mnaser | and they don't really get much more of a helpful error (and their request gets refused too obviously) | |
| 19:37:35 | mnaser | but only after it fails, in what i assume nova-compute trying to ask cinder to create a disk that's impossible to create | |
| 19:53:43 | melwitt | mnaser: generally we validate whatever we can in the api layer to fail fast and avoid the behavior you're describing (fail later on nova-compute). within reason though, as some checks would involve rpc call to the compute host and we avoid that to some degree | |
| 19:54:24 | melwitt | mnaser: I found this part where we validate the image_min_disk against the volume disk size, but that might be different than just the image size as in your example? https://github.com/openstack/nova/blob/master/nova/compute/api.py#L681 | |
| 19:56:15 | mnaser | melwitt: oh interesting, you're right, i wonder if this is a case where the user did not have min_disk specified.. | |
| 19:56:58 | mnaser | melwitt: oh but we don't do image_size > dest_size | |
| 19:57:15 | mnaser | unlike https://github.com/openstack/nova/blob/master/nova/compute/api.py#L693-L695 | |
| 19:58:01 | mnaser | so i _think_ the scenario is no min_disk but no checks on image_size / dst_size | |