9.2. 对硬件內省的故障排除

发现(discovery)和內省(introspection)过程需要被正确完成。但是,如果发现 ramdisk 没有响应,Ironic 的发现守护进程(ironic-discoverd)会默认在一个小时后出现超时。在一些时候,这意味着发现 ramdisk 有问题,但通常情况下是因为不正确的环境配置,特别是 BIOS 引导设置。
以下是一些常见的不正确的环境配置情况,以及如果诊断和解决它们的建议。

开始节点內省的错误

通常,內省操作会使用 baremetal introspection 命令,它是一个安全调用 Ironic 服务的命令。但是,如果直接使用 ironic-discoverd,它可能在发现状态是 AVAILABLE 的节点过程中出现问题。在进行发现操作前,把节点的状态改为 MANAGEABLE
$ ironic node-set-provision-state [NODE UUID] manage
当发现操作完成后,在进行部署前把状态改回到 AVAILABLE
$ ironic node-set-provision-state [NODE UUID] provide

停止发现过程

当前,ironic-discoverd 没有提供一个直接停止发现过程的方法。我们推荐的方法是等待发现过程的超时发生。如果需要,可以修改 /etc/ironic-discoverd/discoverd.conf 中的 timeout 设置来设定一个新的超时时间(以分钟为单位)。
在最坏的情况下,您可以使用以下步骤停止所有节点的发现操作:

过程 9.3. 停止发现过程

  1. 把每个节点的电源状态改为 off:
    $ ironic node-set-power-state [NODE UUID] off
    
  2. 删除 ironic-discoverd 的缓存数据并重启它:
    $ rm /var/lib/ironic-discoverd/discoverd.sqlite
    $ sudo systemctl restart openstack-ironic-discoverd