← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2003991] [NEW] Quota not properly enforced during unshelve when [quota]count_usage_from_placement = True

 

Public bug reported:

When nova is configured to count quota usage from placement [1], there
are some behaviors that are different from the legacy quota resource
counting.

With legacy quotas, all of an instance's resources remained consumed
from a quota perspective while the instance was SHELVED_OFFLOADED.
Because of this, there was no need to check quota when doing an unshelve
and an unshelve request could not be blocked for quota related reasons.
The quota usage remained the same whether the instance was
SHELVED_OFFLOADED or not.

With counting quota usage from placement, cores and ram resource usage
is counted from placement while instances are counted from the API
database. And when an instance is SHELVED_OFFLOADED, it does not have
any resource allocations in placement for cores and ram during that
time. Because of this, it is possible to go over cores and ram quota
after unshelving an instance as new resources will be allocated in
placement for the unshelved instance.

The unshelve quota scenario is currently not being properly enforced
because there are no quota checks in the scheduling code path, so when
the unshelving instance goes through the scheduling process, it is not
validated against quota. There needs to be a dedicated quota check for
unshelve.

[1] https://docs.openstack.org/nova/latest/admin/quotas.html#quota-
usage-from-placement

** Affects: nova
     Importance: Undecided
     Assignee: melanie witt (melwitt)
         Status: New


** Tags: quotas

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/2003991

Title:
  Quota not properly enforced during unshelve when
  [quota]count_usage_from_placement = True

Status in OpenStack Compute (nova):
  New

Bug description:
  When nova is configured to count quota usage from placement [1], there
  are some behaviors that are different from the legacy quota resource
  counting.

  With legacy quotas, all of an instance's resources remained consumed
  from a quota perspective while the instance was SHELVED_OFFLOADED.
  Because of this, there was no need to check quota when doing an
  unshelve and an unshelve request could not be blocked for quota
  related reasons. The quota usage remained the same whether the
  instance was SHELVED_OFFLOADED or not.

  With counting quota usage from placement, cores and ram resource usage
  is counted from placement while instances are counted from the API
  database. And when an instance is SHELVED_OFFLOADED, it does not have
  any resource allocations in placement for cores and ram during that
  time. Because of this, it is possible to go over cores and ram quota
  after unshelving an instance as new resources will be allocated in
  placement for the unshelved instance.

  The unshelve quota scenario is currently not being properly enforced
  because there are no quota checks in the scheduling code path, so when
  the unshelving instance goes through the scheduling process, it is not
  validated against quota. There needs to be a dedicated quota check for
  unshelve.

  [1] https://docs.openstack.org/nova/latest/admin/quotas.html#quota-
  usage-from-placement

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/2003991/+subscriptions



Follow ups