← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1402658] Re: resource tracking is incorrect for ironic

 

This is an automated cleanup. This bug report has been closed because it
is older than 18 months and there is no open code change to fix this.
After this time it is unlikely that the circumstances which lead to
the observed issue can be reproduced.

If you can reproduce the bug, please:
* reopen the bug report (set to status "New")
* AND add the detailed steps to reproduce the issue (if applicable)
* AND leave a comment "CONFIRMED FOR: <RELEASE_NAME>"
  Only still supported release names are valid (LIBERTY, MITAKA, OCATA, NEWTON).
  Valid example: CONFIRMED FOR: LIBERTY


** Changed in: nova
   Importance: Low => Undecided

** Changed in: nova
       Status: Confirmed => Expired

-- 
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/1402658

Title:
  resource tracking is incorrect for ironic

Status in OpenStack Compute (nova):
  Expired

Bug description:
  Ironic nodes can only be assigned to a single instances. So resource
  allocation is "all or nothing" - i.e. if an instance is spawned on a
  node all the resources become unavailable no mater how much was stated
  in the flavor used. The view of the resource tracker does not match
  this behavior, leading to attempts to spawn instances that can not be
  accommodated.

  More specifically, when an instance is sent to a host manager to build
  (in ComputeManager.build_and_run_instance()) the resource tracker for
  a target node will test to see if the node has sufficient resources to
  accept the instance (in ResourceTracker.instance_claim()). This test
  checks to see if the amount of resource available on the host (ram,
  disk, cpu, etc.) is more than the amount requested. If the instance
  passes this test, the resource tracker will deduct the amount of
  resource requested from the amount that is available. This may leave a
  lesser amount still available.

  If there is a subsequent instance sent for that node, the resource
  tracker will accept it if the amount of resource it requests is less
  than the remaining amount available.

  In ironic, spawning an instance will result in no resources left
  available on that host. So the resource tracker has the wrong view of
  how much resource is available at the node.

  Note that the ironic driver is complemented by an ironic version of
  the host manager at the scheduler that does do the right thing for
  ironic in its consume method. However, its values are overridden by
  those retrieved from the resource tracker, so it is overridden by the
  values provided by the resource tracker.

  Also note that the get_available_resource() method on the ironic virt
  driver returns the correct resource availability to the resource
  tracker, but the resource tracker only uses the resource totals and
  recalculates the availability, thus overriding the values from the
  driver as well.

  Resource tracking can only work with ironic if the exact match filters
  are used. In which case it works by coincidence. The resource tracker
  resource consumption should be specialised to deal with ironic nodes
  correctly.

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


References