| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-08-08 | |||
| 05:46:45 | suzhengwei_ | Live-migration one instance, if not give destination host, disable nova-compute node will not be scheduled. | |
| 05:52:56 | openstackgerrit | Ghanshyam Mann proposed openstack/nova master: Improve stable-api doc with current API state https://review.openstack.org/489926 | |
| 06:22:54 | openstackgerrit | Ghanshyam Mann proposed openstack/nova master: Improve stable-api doc with current API state https://review.openstack.org/489926 | |
| 06:35:36 | openstackgerrit | Merged openstack/nova master: [placement] Add api-ref for RP allocations https://review.openstack.org/450550 | |
| 06:53:05 | alex_xu | ratailor: hi, I'm here | |
| 06:58:12 | openstackgerrit | Bhagyashri Shewale proposed openstack/nova master: Deny volume swapping with non-bootable volume https://review.openstack.org/407346 | |
| 07:01:43 | openstackgerrit | Tetsuro Nakamura proposed openstack/nova master: fix nova accepting invalid availability zone name with ':' https://review.openstack.org/490722 | |
| 07:01:46 | ratailor | alex_xu, shouldn't this provide case-sensitive result. https://github.com/openstack/nova/blob/master/nova/objects/host_mapping.py#L93 | |
| 07:05:54 | alex_xu | ratailor: mysql doesn't support case-sensitive | |
| 07:06:11 | alex_xu | ratailor: what is your problem? the host name is case-insensitive also? | |
| 07:06:19 | ratailor | alex_xu, so what could be done in that case. | |
| 07:06:22 | ratailor | alex_xu, yes. | |
| 07:07:11 | ratailor | If I try to add a compute node "COMPUTE1.example.com" to host-aggregate, but in fact the actual hostname of node is "compute1.example.com". It should throw HostNotFound error. | |
| 07:07:16 | ratailor | alex_xu, ^^ | |
| 07:08:02 | ratailor | alex_xu, but in this case the host is added to host-aggregate. and while spawning instance scheduler don't filter that host, as it is not actually present. | |
| 07:22:57 | alex_xu | ratailor: emm... | |
| 07:26:59 | alex_xu | ratailor: I guess due to the scheduler keep host<->aggregate mapping in the memory, then the thing becomes case-sensitive | |
| 07:28:17 | alex_xu | ratailor: https://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L359 | |
| 07:28:33 | alex_xu | ratailor: have you file a bug for it? | |
| 07:28:38 | ratailor | alex_xu, might be. but even if scheduler fetches it from db, there won't be any host with hostname "COMPUTE1.example.com", so we won't be able to create instance on that. | |
| 07:28:42 | ratailor | alex_xu, not yet. | |
| 07:28:59 | ratailor | alex_xu, I will do that in some time. | |
| 07:29:36 | alex_xu | ratailor: yes, so there is no host_state for 'COMPUTE1.exmaple.com', but there will be a mapping for it in the host_aggregates_map | |
| 07:30:08 | ratailor | alex_xu, yes, | |
| 07:40:22 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: replace chance with filter scheduler in func tests https://review.openstack.org/491529 | |
| 07:44:19 | ratailor | alex_xu, I have reported in launchpad, FYI https://bugs.launchpad.net/nova/+bug/1709260 | |
| 07:44:20 | openstack | Launchpad bug 1709260 in OpenStack Compute (nova) "Addition of host to host-aggregate should be case -sensitive" [Undecided,New] | |
| 07:44:29 | alex_xu | ratailor: thanks | |
| 07:45:17 | ratailor | alex_xu, welcome :) | |
| 08:17:36 | bauzas | gibi: FWIW, reviewing your change today | |
| 08:34:17 | gibi | bauzas: thanks a lot | |
| 08:34:29 | bauzas | tbc, the chance one | |
| 08:34:48 | bauzas | did Gerrit was upgraded ? | |
| 08:35:00 | bauzas | I just provided an URL in a comment and it broke weirdly | |
| 08:36:10 | gibi | bauzas: that change still fail on the gate with the server_group tests but I cannot repoduce it locally and I even removed every server_group related change for them patch | |
| 08:36:22 | bauzas | gibi: ok | |
| 08:37:04 | gibi | bauzas: so any comment is really appreciated | |
| 08:40:37 | gibi | bauzas: also I'm curious about your oppinion about https://review.openstack.org/#/c/491491/4/nova/tests/unit/scheduler/test_scheduler.py@152 | |
| 08:41:40 | bauzas | gibi: you mean about legacy filters being still in use ? | |
| 08:42:14 | gibi | bauzas: about raising NoValidHost if Placement API is not available or not upgraded | |
| 08:43:23 | gibi | bauzas: raising NoValidHost if Placemnet returns {} is clearly a good thing but I'm a bit uneasy about the two other cases | |
| 08:49:04 | bauzas | gibi: sorry, was just refueling my stomach | |
| 08:49:23 | bauzas | by coffee (10:40am here, what people are thinking ?) | |
| 08:50:09 | bauzas | gibi: about the NoValidHost exception ? Well, correct me if I'm wrong but we already do that :) | |
| 08:50:22 | bauzas | gibi: we just return an empty list that will eventually raise that error :) | |
| 08:53:07 | gibi | bauzas: if Placement is not available then Scheduler falls back to normal filtering and if CoreFilter is not enabled it can select a host with not enough vcpu | |
| 08:54:24 | gibi | bauzas: now this can happen in three cases, Placement cannot be accessed, Placement is not upgraded, or Placement returned {}. | |
| 08:54:44 | gibi | bauzas: in the third one I'm happy to raise NoValidHost | |
| 08:54:48 | bauzas | gibi: wait, are you sure ? | |
| 08:55:30 | bauzas | gibi: when I wrote the BP about scheduler calling placement in Ocata, I made it clear that if Placement wasn't there, we should return an empty list | |
| 08:55:31 | gibi | bauzas: based on this https://github.com/openstack/nova/blob/master/nova/scheduler/manager.py#L133 | |
| 08:55:44 | bauzas | then it's a regression | |
| 08:55:56 | bauzas | in Pike | |
| 08:56:25 | gibi | so it is OK for you to raise NoValidHost in all the 3 cases. I can accept this. :) | |
| 08:56:27 | bauzas | Placement isn't optional | |
| 08:56:34 | bauzas | if the driver supports it | |
| 08:56:50 | bauzas | at least that's what we had in Ocata | |
| 08:56:57 | bauzas | gibi: lemme show you the ocata code | |
| 08:57:12 | gibi | bauzas: but then this whole bunch of code is unnecessary https://github.com/openstack/nova/blob/master/nova/scheduler/manager.py#L124-L144 | |
| 08:58:27 | bauzas | gibi: https://github.com/openstack/nova/blob/stable/ocata/nova/scheduler/filter_scheduler.py#L184-L189 | |
| 08:59:31 | gibi | bauzas: OK, that sounds convincing | |
| 09:00:00 | bauzas | that's at least what we had in Ocata | |
| 09:00:17 | bauzas | given it was in the filter scheduler code, it was only for that driver | |
| 09:00:26 | gibi | bauzas: then I' don't know why we have so much code in the scheduler manager to distinguish between the different cases | |
| 09:00:40 | bauzas | probably a consequence of reviews and whack-a-mole gaming | |
| 09:00:42 | gibi | either we got a non empty result from placement or it is a NoValidHost | |
| 09:00:56 | bauzas | or we could want to be more gentle | |
| 09:01:04 | bauzas | and in that case, it's a feature | |
| 09:01:28 | gibi | then my patch breaking that feature | |
| 09:01:29 | bauzas | but the fact is, we came from a fact in Ocata where any problem communicating to Placement was leading to a NoValidHost | |
| 09:03:40 | gibi | and as in Ocata placement was not mandatory we needed to easy that up | |
| 09:04:14 | gibi | but can we be strict in Pike? | |
| 09:09:19 | bauzas | gibi: no, Placement was optional in Newton but mandatory in Pike | |
| 09:09:26 | bauzas | graaah | |
| 09:09:35 | bauzas | lemme rephrase it | |
| 09:10:06 | bauzas | gibi: Placement = {"Newton": "optional", "Ocata": "mandatory"} | |
| 09:10:34 | gibi | so we can be strict in Pike | |
| 09:10:53 | gibi | then I'm happy to raise NoValidHost in all three cases | |
| 09:11:23 | bauzas | gibi: https://docs.openstack.org/releasenotes/nova/ocata.html#id7 | |
| 09:11:35 | bauzas | "he Nova FilterScheduler driver is now able to make scheduling decisions based on the new Placement RESTful API endpoint that becomes mandatory in Ocata. " | |
| 09:12:14 | bauzas | and | |
| 09:12:16 | bauzas | " nova-scheduler process is now calling the placement API in order to get a list of valid destinations before calling the filters. That works only if all your compute nodes are fully upgraded to Ocata. If some nodes are not upgraded, the scheduler will still lookup from the DB instead which is less performant. " | |
| 09:12:49 | bauzas | Since the Placement service is now mandatory in Ocata, you need to deploy it and amend your compute node configuration with correct placement instructions before restarting nova-"compute or the compute node will refuse to start. " | |
| 09:12:54 | bauzas | anyway | |
| 09:13:21 | bauzas | gibi: last point for your knowledge | |
| 09:13:24 | bauzas | If by Newton (14.0.0), you don’t use any of the CoreFilter, RamFilter or DiskFilter, then please modify all your compute node’s configuration by amending either cpu_allocation_ratio (if you don’t use CoreFilter) or ram_allocation_ratio (if you don’t use RamFilter) or disk_allocation_ratio (if you don’t use DiskFilter) by putting a 9999.0 value for the ratio before upgrading the nova-scheduler to Ocata. | |
| 09:13:49 | gibi | bauzas: thanks. I'm convinced | |
| 09:13:59 | bauzas | the last one is error-prone | |
| 09:14:37 | bauzas | it was because some operators were *not* placing based on those legacy resources | |
| 09:15:22 | bauzas | so, in that case, in order to keep them untied with those resources, they have to fake an "infinite" allocation ratio | |
| 09:15:59 | bauzas | mostly FYI | |
| 09:17:51 | gibi | I see | |
| 09:19:01 | gibi | meanwhile I think I found why the server_group func tests fails in the chance scheduler removal patch | |
| 09:19:37 | gibi | scheduler.utils caches information about loaded filters | |
| 09:19:38 | gibi | https://github.com/openstack/nova/blob/master/nova/scheduler/utils.py#L397 | |
| 09:19:45 | bauzas | gibi: that was one of my thoughts I didn't yet commented : why do you need to update test_server_group since it doesn't use chance ? | |
| 09:20:16 | gibi | the problem is that now we load only the ComputeFilter in other tests and that cache makes the tests interdependent | |
| 09:20:33 | gibi | so I have to invalidate the cache in the server_group tests | |
| 09:21:01 | gibi | I will push that soon | |
| 09:24:36 | bauzas | gibi: sounds like a fixture to me | |