12.2. Troubleshooting Hardware Introspection

The discovery and introspection process must run to completion. However, Ironic's Discovery Daemon (ironic-discoverd) times out after a default 1 hour period if the discovery ramdisk provides no response. Sometimes this might indicate a bug in the discovery ramdisk but usually it happens due to environment misconfiguration, particularly BIOS boot settings.
Here are some common scenarios where environment misconfiguration occurs and advice on how to diagnose and resolve them.

Errors with Starting Node Introspection

Normally the introspection process uses the baremetal introspection, which acts an an umbrella command for Ironic's services. However, if running the introspection directly with ironic-discoverd, it might fail to discover nodes in the AVAILABLE state, which is meant for deployment and not for discovery. Change the node status to the MANAGEABLE state before discovery:
$ ironic node-set-provision-state [NODE UUID] manage
Then when discovery completes, change back to AVAILABLE before provisioning:
$ ironic node-set-provision-state [NODE UUID] provide

Stopping the Discovery Process

Currently ironic-discoverd does not provide a direct means for stopping discovery. The recommended path is to wait until the process times out. If necessary, change the timeout setting in /etc/ironic-discoverd/discoverd.conf to change the timeout period to another period in minutes.
In worst case scenarios, you can stop discovery for all nodes using the following process:

Procedure 12.3. Stopping the Discovery Process

  1. Change the power state of each node to off:
    $ ironic node-set-power-state [NODE UUID] off
    
  2. Remove ironic-discoverd cache and restart it:
    $ rm /var/lib/ironic-discoverd/discoverd.sqlite
    $ sudo systemctl restart openstack-ironic-discoverd