yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #27613
[Bug 1405131] Re: Ports cannot be mapped to networks
** Also affects: nova
Importance: Undecided
Status: New
** Changed in: nova
Status: New => Confirmed
** Changed in: nova
Importance: Undecided => Low
** Tags added: network
--
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/1405131
Title:
Ports cannot be mapped to networks
Status in OpenStack Bare Metal Provisioning Service (Ironic):
New
Status in OpenStack Compute (Nova):
Confirmed
Bug description:
I have a cluster of bare metal nodes managed by Icehouse OpenStack on
CentOS 6.5. I'm using nova, ironic and neutron. The nodes each have a
1G management network interface and a 40G high speed data network
interface. These interfaces are registered with their MAC addresses as
ironic ports. There is a single flat neutron network for management
and a single flat neutron network for the high speed network.
When booting a (baremetal) nova instance, if the instance's networks
are specified by their network ID, there is no way (to my knowledge)
to guarantee a mapping between interface and network. In 50% of cases,
I will end up with a neutron port on the management network, with the
MAC address of the node's 40G NIC, and vice versa. The implication of
this is that DHCP address assignment fails, and the instance fails to
provision with the following error message:
2014-12-23 05:03:20.877 227052 ERROR ironic.conductor.manager [-]
Timeout reached when waiting callback for node 49f8b733-525d-
44a2-ae19-596b19aa5d1a
My workaround is to manually create neutron ports for each network
interface, specifying a MAC address and the appropriate neutron
network. These ports are then referenced when booting an instance,
instead of specifying a network ID. This workaround is not ideal, in
particular because it only works when the nodes are pets (as opposed
to cattle).
Based on my browsing of the nova source, I think the point of ill
decision occurs at
https://github.com/openstack/nova/blob/06c537fbe5bb4ac5a3012642c899df815872267c/nova/network/neutronv2/api.py#L270.
Simple minded, misguided half solution - tag the ironic ports with
some metadata, such as the provider:physical_network tag of the
neutron network to which they are attached. This can be used in nova
to select an appropriate HW port for each of the instance's networks.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ironic/+bug/1405131/+subscriptions