Earlier  
Posted Nick Remark
#openstack-nova - 2018-02-01
09:09:43 bauzas ie. where we are accessing ratios
09:09:59 bauzas AFAIR, we only get or set ratios either in compute service or within the scheduler
09:10:17 bauzas so, the big problem is only for the scheduler
09:10:19 maciejjozefczyk bauzas: I think too thats its only in compute-node or scheduler
09:10:22 maciejjozefczyk bauzas: right
09:10:44 bauzas of course, let's find a solution that would work for any service
09:11:09 bauzas because if we just fix that only for the scheduler, if after some time, someone lookups ratios in the nova-api worker for example, it couldn't owrk
09:11:28 maciejjozefczyk bauzas: yes, it should be complex
09:11:50 bauzas okay, so it's confirmed
09:12:01 jianghuaw Spaz-Work, thanks for updating the patch with well defined commit messages. It looks very reasonable. I totally agreed with you:-)
09:12:13 bauzas we load ComputeNode objects in the scheduler HostManager to correctly set the HostStates
09:12:45 Spaz-Work jianghuaw: Thanks sir. Definately nerve-wracking commit since it's nasty, wanted to make sure I was clear ;)
09:14:46 jianghuaw The commit message did help me to understand why the fix goes with that way:-)
09:15:19 bauzas maciejjozefczyk: so, after looking at the object code, I think checking the object version won't work
09:16:50 bauzas because if we call the object from the scheduler side, it will get the latest version, then calling the remotable method for getting the primitives, then transforming the primitives if necessary and then hydrating the object from the primitive
09:17:15 bauzas but when we hydrate the primitive, we're already having a computenode object version that is the latest
09:18:23 maciejjozefczyk bauzas: the stupid solution is duplicating the fields, right?:)
09:18:54 bauzas what do you mean ?
09:20:25 maciejjozefczyk like adding ram_allocation_ratio_v2 for Rocky and do magic in filtering primitives? If I understand it correctly
09:21:08 bauzas oh please no
09:21:10 maciejjozefczyk but yes, its not a solution, its workaround
09:21:12 maciejjozefczyk :D
09:21:22 maciejjozefczyk bauzas: yes, just kidding
09:25:21 openstackgerrit Marcin Juszkiewicz proposed openstack/nova master: Make sure that we have USB Host controller for USB tablet https://review.openstack.org/538003
09:27:31 kashyap mriedem: About the question you asked me in the scroll, I asked the libvirt upstream folks, and this was the response:
09:28:06 maciejjozefczyk bauzas: So maybe some if logic from scheduler side? If the object is in version X, and we know that its from Rocky, then we'll not do thing from https://review.openstack.org/#/c/532924/6/nova/objects/compute_node.py L185,
09:28:11 kashyap mriedem: That "note" you pointed out from the OpenStack docs was never the case, so that statement wasn't ever true
09:28:30 maciejjozefczyk bauzas: I'm looking for better solution but I havent found any
09:28:48 kashyap mriedem: One can use `virsh nodedev-dumpxml` on the parent device and it will return a dump of the 'sysfs' attributes.
09:29:39 bauzas maciejjozefczyk: one possible outcome could be to transform in obj_make_compatible the primitive we got from the compute
09:30:26 bauzas maciejjozefczyk: ie. say that if the primitive is having a target version older than me, and if ratio is 0.0, set the value to what we want
09:32:20 maciejjozefczyk bauzas: Yes, obj_make_compatible is right place for that
09:34:53 bauzas maciejjozefczyk: so, when calling _from_db_object, we would get normalized values whatever the compute service version is
09:35:57 maciejjozefczyk bauzas: So the commit messag needs to be changed, to show that we introduce default values
09:36:11 maciejjozefczyk bauzas: and what about min config values?
09:36:35 maciejjozefczyk bauzas: do you agree that in rocky the min should be 0.1 at least?
09:37:16 bauzas 0.0 can be a trick for operatoes
09:37:36 bauzas like, say in my inventory, I don't want to count that resource for that specific compute
09:37:47 bauzas oh wait
09:37:51 bauzas it's the contrary
09:38:07 bauzas if I don't care about that resource class, then just have a ratio equal to 99999.99
09:38:29 bauzas but if I want to stop allocating that compute, I could use a ratio of 0.0
09:38:41 bauzas so I dunno
09:38:53 bauzas from a logical perspective, 0.1 makes sense
09:39:13 lyarwood Roamer`: re https://review.openstack.org/#/c/539742/ - looks like we are failing to cherry pick the nova patch in the StorPool job - http://logs.ci-openstack.storpool.com/42/539742/1/check/dsvm-tempest-storpool/f0a700e/console.html#_2018-02-01_06_49_47_306
09:39:31 bauzas but from an operator perspective, I could say 'if I have a flavor that requires some disk but I want to not allocate that host if disk, then put it to 0.0'
09:39:46 lyarwood Roamer`: I'll try again using the change id but would you be able to manually test the fix from https://review.openstack.org/#/c/539739/
09:39:47 bauzas I understand that can be sneaky
09:40:02 maciejjozefczyk bauzas: from placement side it makes now calculations ratio*resources=limit_on_host (something like that)
09:40:15 maciejjozefczyk so if we gonna place there 0 - you know what happend :)
09:41:19 maciejjozefczyk so maybe the logic should be also changed from placement side to not raise capacity check exception
09:42:11 bauzas yeah I know, but maybe some people would *want* to get capacity exceptions
09:42:15 bauzas I'm not kidding
09:42:30 hrw http://marcin.juszkiewicz.com.pl/2018/02/01/everyone-loves-90s-pc-hardware/
09:43:53 openstackgerrit Elod Illes proposed openstack/nova master: Functional test: evacuate with no compute https://review.openstack.org/498482
09:44:19 openstackgerrit Ameed Ashour proposed openstack/nova master: change instance_system_metadata column type https://review.openstack.org/526900
09:45:00 maciejjozefczyk bauzas: For that 'I dont what to allocate on that compute' as operator I would just use host-disable
09:45:09 maciejjozefczyk rather than some trics around allocation_ratios
09:45:27 bauzas I agree
09:45:49 bauzas but host disabling is a whole thing for any kind of resource
09:46:06 bauzas in the past, we had CoreFilter, RAMFilter and DiskFilter
09:46:25 bauzas where you could disallow a host based on some sneaky crazy calculation
09:46:33 maciejjozefczyk bauzas: right
09:46:36 bauzas now, this is placement for the god sake
09:47:13 bauzas so, some people could argue that they would want to just exclude a specific host if and only if some flavor is asking for some resource
09:47:33 bauzas tricking the ratio for that resource class is one way of achieving that
09:48:11 bauzas I know that asking 0 vCPUs is crazy
09:48:18 bauzas like asking for 0 GB of RAM
09:48:30 bauzas but asking for a diskless instance can be understandable
09:48:56 maciejjozefczyk bauzas: you're right, I agree
09:49:10 bauzas tbh, if I was you, I'd decouple the normalization thing from the minimum ratio modification
09:49:13 Roamer` lyarwood, I actually restarted the job as soon as it managed to fail, it has been running some Tempest tests, it should be done in less than an hour now, then we'll know; the failing test is almost the last one to run :/
09:49:28 maciejjozefczyk bauzas: eg. this host is for only 'volume' vms
09:50:03 Roamer` lyarwood, and yeah, I did some internal clean-up of the Jenkins job to make it fail much earlier if it fails to cherry-pick the changes (and review.o.o has been a bit flaky yesterday and today, at least from that Hetzner-based host)
09:50:05 bauzas maciejjozefczyk: well, I was thinking more about the long-standing issue we have with calculating disk spaces, in particular for BFV instances
09:50:40 bauzas sometimes, you hack like how you can
09:51:06 bauzas once we have the full monty with shared resource providers, that problem will be solved
09:51:13 bauzas but that's like 4 cycles we're working on that
09:54:10 maciejjozefczyk ok, to summarize about that change: do backport compatibility in obj_make_compatible() like we discussed, remove minimum from config files, then we gonna think twice about it, agree?
09:54:18 openstackgerrit Claudiu Belu proposed openstack/nova master: tests: refactors and cleans up test_rbd.py https://review.openstack.org/538022
09:54:18 openstackgerrit Claudiu Belu proposed openstack/nova master: tests: fixes mock autospec usage https://review.openstack.org/447505
09:54:19 openstackgerrit Claudiu Belu proposed openstack/nova master: tests: autospecs all the mock.patch usages https://review.openstack.org/470775
09:54:19 openstackgerrit Claudiu Belu proposed openstack/nova master: hyper-v: autospec classes before they are instantiated https://review.openstack.org/342211
09:54:58 kashyap mriedem: We should just rewrite it: saying that "libvirt supports enumerating the information about the supported types for a given device via `virsh nodedev-dumpxml` (or the equivalent API)"
09:56:35 bauzas maciejjozefczyk: I'd say just touch the default value in the conf opt, that's it
09:56:40 bauzas leave as it what is is now
09:56:46 bauzas (speaking of the min)
09:57:08 bauzas maciejjozefczyk: for the obj_make_compatible() hack, I think you need to check the object versions
09:57:15 bauzas and see if you need a new one
09:57:28 bauzas which could be tricky if that's only for signaling
09:57:39 openstackgerrit Ameed Ashour proposed openstack/nova stable/ocata: add "--until-complete" option for nova-manage db archive_deleted_rows. https://review.openstack.org/539878
09:58:40 bauzas maciejjozefczyk: hah, you're doomed
09:59:00 maciejjozefczyk bauzas: :)
09:59:00 bauzas ComputeNode version 1.17 (adding the mapped field) was merged in Pike
09:59:11 bauzas https://github.com/openstack/nova/commit/0ce4dff4
09:59:27 bauzas so you can't rely on it for checking the release version
10:01:06 maciejjozefczyk bauzas: damn..., anyway going to meeting
10:02:42 bauzas maciejjozefczyk: let's punt that discussion until this afternoon
10:02:55 bauzas I need to do other things and other people could double-check my idea
10:02:57 openstackgerrit Merged openstack/nova master: trivial: Fix typos in release notes https://review.openstack.org/539490

Earlier   Later