yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #71670
[Bug 1599836] Re: Booting Ironic instance, neutron port remains in DOWN state
I don't know if there is anything to be done in nova to address this. As
long as the networking-baremetal plugin is used in neutron, this isn't a
problem. (Is that a temporary solution or *the* solution, that is the
question!) I'm going to close this for now.
We have it documented in ironic:
https://docs.openstack.org/ironic/latest/admin/multitenancy.html#flat-
network-interface.
** Changed in: nova
Status: Confirmed => Invalid
--
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/1599836
Title:
Booting Ironic instance, neutron port remains in DOWN state
Status in OpenStack Compute (nova):
Invalid
Bug description:
When booting ironic instance in flat network, neutron port always
remain in down state since it is not bound.
stack@vsaienko-ironic-neutron-poller:~$ neutron port-show 6cabc468-8828-4ca3-89e3-4d99a9018f03
+-----------------------+----------------------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+----------------------------------------------------------------------------------------------------------+
| admin_state_up | True |
| allowed_address_pairs | |
| binding:host_id | vsaienko-ironic-neutron-poller |
| binding:profile | {} |
| binding:vif_details | {"port_filter": true, "ovs_hybrid_plug": true} |
| binding:vif_type | ovs |
| binding:vnic_type | normal |
| created_at | 2016-07-07T07:32:05 |
| description | |
| device_id | 0a03a565-f3dd-4ad1-94e1-e1754b718ea0 |
| device_owner | compute:None |
| extra_dhcp_opts | {"opt_value": "undionly.kpxe", "ip_version": 4, "opt_name": "tag:!ipxe,bootfile-name"} |
| | {"opt_value": "10.11.0.51", "ip_version": 4, "opt_name": "tftp-server"} |
| | {"opt_value": "10.11.0.51", "ip_version": 4, "opt_name": "server-ip-address"} |
| | {"opt_value": "http://10.11.0.51:3928/boot.ipxe", "ip_version": 4, "opt_name": "tag:ipxe,bootfile-name"} |
| fixed_ips | {"subnet_id": "17ab9d45-2b7e-4d71-8bb8-f76d5edbdce0", "ip_address": "10.20.30.12"} |
| id | 6cabc468-8828-4ca3-89e3-4d99a9018f03 |
| mac_address | 52:54:00:d9:9e:d8 |
| name | |
| network_id | b5587303-c13c-4245-9cb0-04de3443b84b |
| port_security_enabled | True |
| security_groups | edd667ef-3806-47d9-b33b-1ee8af5d100d |
| status | DOWN |
| tenant_id | fd9f6a00f3a849b9bbd80ced82749c16 |
| updated_at | 2016-07-07T07:32:07 |
+-----------------------+----------------------------------------------------------------------------------------------------------+
stack@vsaienko-ironic-neutron-poller:~$ grep 6cabc468-8828-4ca3-89e3-4d99a9018f03 new/q-agt.log
2016-07-07 03:32:08.086 7799 DEBUG neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [req-79c54446-c81a-4f11-ba96-1ec2697b102c neutron -] port_update message processed for port 6cabc468-8828-4ca3-89e3-4d99a9018f03 port_update /opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py:418
2016-07-07 03:32:15.215 7799 DEBUG neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [req-f1621527-14a9-4adf-830a-196e0ceb33fc admin -] port_update message processed for port 6cabc468-8828-4ca3-89e3-4d99a9018f03 port_update /opt/stack/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py:418
q-svc.log http://paste.openstack.org/show/526918/:
2016-07-07 03:32:06.931 7807 DEBUG neutron.db.provisioning_blocks [req-80057833-83bd-4295-8102-b9a0eb1307c3 - -] Provisioning complete for port 6cabc468-8828-4ca3-89e3-4d99a9018f03 provisioning_complete /opt/stack/neutron/neutron/db/provisioning_blocks.py:149
2016-07-07 03:32:06.959 7807 DEBUG neutron.plugins.ml2.plugin [req-80057833-83bd-4295-8102-b9a0eb1307c3 - -] Port 6cabc468-8828-4ca3-89e3-4d99a9018f03 cannot update to ACTIVE because it is not bound. _port_provisioned
The reason why it is happening is next.
1. Nova allocates networks for instance. Neutron port is created with vnic_type: normal
2. Neutron ovs agent that responds for binding this vnic type can't bind port, since de facto instance lives on dedicated hardware server.
As result port remains unbound.
3. Neutron don't move port to ACTIVE, since it is unbound.
How to fix it:
1. Create neutron port for Ironic instance with vnic_type: baremetal
2. Implement neutron driver, that will perform fake binding of baremetal port. (If network if flat just set that port is bound, no need to perform any operations, since hardware server is already plugged to this network)
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1599836/+subscriptions
References