Reviewed:  https://review.openstack.org/347948
Committed: 
https://git.openstack.org/cgit/openstack/nova/commit/?id=cc64a45d98d7576a78a853cc3da8109c31f4b75d
Submitter: Jenkins
Branch:    master

commit cc64a45d98d7576a78a853cc3da8109c31f4b75d
Author: Roman Podoliaka <rpodoly...@mirantis.com>
Date:   Wed Jul 27 19:46:16 2016 +0300

    ironic_host_manager: fix population of instances info on start
    
    IronicHostManager currently overrides the _init_instance_info()
    method of the base class and unconditionally skips population of
    instances information for all compute nodes, even if they are not
    Ironic ones.
    
    If there are compute nodes with the hypervisor_type different from
    Ironic in the same cloud. the instances info will be missing in
    nova-scheduler (if IronicHostManager is configured as a host manager
    impl in nova.conf), which will effectively break instance affinity
    filters like DifferentHostFilter or SameHostFilter, that check set
    intersections of instances running on a particular host and the ones
    passed as a hint for nova-scheduler in a boot request.
    
    IronicHostManager should use the method implementation of the base
    class for non-ironic compute nodes.
    
    Ib1ddb44d71f7b085512c1f3fc0544f7b00c754fe fixed the problem with
    scheduling, this change is needed to make sure we also populate the
    instances info on start of nova-scheduler.
    
    Closes-Bug: #1606496
    
    Co-Authored-By: Timofei Durakov <tdura...@mirantis.com>
    
    Change-Id: I9d8d2dc99773df4097c178d924d182a0d1971bcc


** Changed in: nova
       Status: In Progress => Fix Released

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

Title:
  Instance affinity filters do not work in a heterogeneous cloud with
  Ironic computes

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  Description
  ===========

  In a heterogeneous cloud with both libvirt and ironic compute nodes
  instance affinity filters like DifferentHostFilter or SameHostFilter
  do not filter hosts out when scheduling a subsequent instance.

  Steps to reproduce
  ==================

  Make sure you have at least two libvirt compute nodes and one ironic
  node.

  Make sure DifferentHostFilter and SameHostFilter are configured as
  nova-scheduler filters in nova.conf, filters scheduler is used.

  1. Boot a libvirt instance A.
  2. Check the host name of the compute node instance A is running on (nova 
show from an admin user).
  3. Boot a libvirt instance B passing a different_host=$A.uuid hint for 
nova-scheduler.
  4. Check the host name of the compute node instance B is running on (nova 
show from an admin user).

  Expected result
  ===============

  Instances A and B are running on two different compute nodes.

  Actual result
  =============

  Instances A and B are running on the same compute node.

  nova-scheduler logs shows that DifferentHost filter was run, but did
  not filter out one of the hosts:  Filter DifferentHostFilter returned
  2 host(s) get_filtered_objects

  Environment
  ===========

  OpenStack Mitaka

  2 libvirt compute nodes
  1 ironic compute node
  FiltersScheduler is used
  DifferentHostFilter and SameHostFilter filters are enabled in nova.conf

  Root cause analysis
  ===================

  Debugging shown that IronicHostManager is configured to be used by
  nova-scheduler instead of the default host manager, when Ironic
  compute are deployed in the same cloud together with libvirt compute
  nodes.

  IronicHostManager overrides the _get_instance_info() method and
  unconditionally returns an empty instance dict, even if this method is
  called for non-ironic computes of the same cloud. DifferentHostFilter
  and similar filters later use this info to find an intersection of a
  set of instances running on a libvirt compute node (currently, always
  {}) and a set of instances uuids passed as a hint for nova-scheduler,
  thus compute nodes are never filtered out and the hint is effectively
  ignored.

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to