osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Deprecate Aggregate[Core|Ram|Disk]Filters


Hi all,
back in january 2018 we annouced that the behavior of the Aggregate[Core|Ram|Disk]Filters
http://lists.openstack.org/pipermail/openstack-dev/2018-January/126283.html

form ocata on due to the use of placement you can no longer manage overcomit ratios using
aggregate metadata as placement has no access to this data. as a result these filters
if you use with placement then they only work if the aggregates enforce lower limits then placement default.

if you also limit the responces from placemnet this also does not work  as we may not recive
any host that satisfy the lower limit in the aggregate metadata  even if such host exist in the aggreate.

we have a prominent warning 
https://docs.openstack.org/nova/latest/admin/configuration/schedulers.html#scheduling-considerations advising operator
of the impact of this change as well as this wont fix bug from last November
https://bugs.launchpad.net/nova/+bug/1804125

11 months ago we deprecated the non aggreate [Core|Ram|Disk] Filters https://review.opendev.org/#/c/596502/
for several reasons noted in the commit and we furthermore removed the caching scheduler in stien.

a few days ago we finally deleted the non aggreagate filters with 
https://github.com/openstack/nova/commit/78645e61c63bf042453d1f822ae8b3f1ee6a311b
but the  Aggregate[Core|Ram|Disk]Filters are still present.

we had intended to deprecate the Aggregate[Core|Ram|Disk]Filters in ocata when
we sent the initial email about the behavior change however we never actully followed up
and formally deprecated it in code. similarly when we formally deprecated the
[Core|Ram|Disk] Filters we could have deprecated the Aggregate[Core|Ram|Disk]Filters
too but we did not. As a result we cannot remove the Aggregate[Core|Ram|Disk]Filters
in Train but i have proposed :  https://review.opendev.org/673496
To formally deprecate them with the intent of removing them in the U cycle.

In the 19.0.0 Stein release initial allocation ratios support was completed
which allow managing of the allocation ratios via the placement api in addition
to the existing capability to manage allocation ratios via the nova config.
https://github.com/openstack/nova-specs/blob/master/specs/stein/implemented/initial-allocation-ratios.rst
As of the 18.0.0 rocky release nova automatically mirrors ``host-aggregates``
to placement aggregates.
https://github.com/openstack/nova-specs/blob/master/specs/rocky/implemented/placement-mirror-host-aggregates.rst
There is ongoing work in Train to enhance osc-placement to add a
'resource provider inventory update' command to make setting overcommit allocation
ratios on a per-aggregate basis easier https://review.opendev.org/#/c/640898/ .
These 3 features combined will allow operators to manage Aggreate Resource class allocation
ratios in a placement native way.

finally in the case the above was not sufficent motivation the AggregateCoreFilter it does not
support handeling vCPU and pCPU resouce classes seperatly and will not work with the new cpu
resouce tracking spec correctly.
https://github.com/openstack/nova-specs/blob/master/specs/train/approved/cpu-resources.rst
the AggregateRamFilter also does not understand the difference bewteen hugepage memory and
standard memroy which means that even if we were to keep the filters they do not work correctly
in all cases and will continue to becomre more broken over time, so i think the time has come to finally do this.

regards
sean