yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #56179
[Bug 1606496] Re: Instance affinity filters do not work in a heterogeneous cloud with Ironic computes
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 <rpodolyaka@xxxxxxxxxxxx>
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 <tdurakov@xxxxxxxxxxxx>
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
References