如何排除OpenStack ironic introspection
"找不到有效主机。没有足够的可用主机",这是在overcloud部署期间最常见的问题之一。
发现和自省过程必须运行到完成。
但是,如果发现虚拟磁盘未提供任何响应,则Ironic的发现守护程序(被ironic发现)将在默认的1小时后超时。
在执行内省时,可能会遇到各种可能的问题,具体取决于环境和设置,因此我们必须知道要查找的文件,以解决与OpenStack具有讽刺意味的内省有关的问题。
理想情况下,根据节点关闭电源和重新启动所花费的时间,内省完成的时间不应超过10-15分钟,因此,如果看到"等待内省完成"的时间超过10-15分钟,则应该进行内省使用iLO IP登录到目标节点的控制台,并检查是否在屏幕上看到任何错误消息。
常见错误:对OpenStack具有讽刺意味的内省进行故障排除
错误:自省的无效供应状态
分析:
触发或者启动内省后,我们可能会收到此错误"内省的无效供应状态"。
Started Mistral Workflow. Execution ID: 7b9d7b9e-e1e5-4a80-92ce-d0b65471fcb9 Waiting for introspection to finish... Introspection completed with errors: Failed to run action [action_ex_id=bc6b453b-efb7-478c-afe9-67ff75bfb049, action_cls='<class 'mistral.actions.action_factory.BaremetalIntrospectionAction'>', attributes='{u'client_method_name': u'introspect'}', params='{u'uuid': u'83513ac9-f7bb-48d8-a360-25142e8b89e5', u'new_ipmi_username': None, u'new_ipmi_password': None}'] BaremetalIntrospectionAction.introspect failed: <class 'ironic_inspector_client.common.http.ClientError'>: Invalid provision state for introspection: "available", valid states are "['manageable', 'inspectfail', 'enroll', 'inspecting']"
解决方案:
仅当具有讽刺意味的节点处于"可管理"置备状态时,才可以进行自省。
因此,我们需要使用以下命令将相应讽刺节点的"配置状态"手动更改为"可管理"
# openstack baremetal node manage <node UUID>
每个自省节点必须具有:
电源状态应关闭电源
规定状态应可用
维护应该是错误的
实例UUID可能设置为"无"。
错误:查找错误:找不到属性的节点
分析:
如果我们输入的json文件与原始目标主机不匹配,或者我们必须为同一节点多次运行导入,则很可能会发生这种情况。
对于任何情况,如果导入部分失败,则应删除现有的讽刺节点,然后重新尝试导入。
例如,我错过了删除现有的讽刺节点并执行重新导入的操作,因此最终出现以下错误
2016-09-30 07:08:43.647 23412 ERROR ironic_inspector.utils [-] [node: MAC 52:54:00:f7:14:10] The following failures happened during running pre-processing hooks: Look up error: Could not find a node for attributes {'bmc_address': u'', 'mac': [u'52:54:00:f7:14:10']}
解决方案:
要解决此类问题,请先从注册表中删除相应的讽刺节点
$openstack baremetal node delete <node UUID>
例如:
$openstack baremetal node delete 83513ac9-f7bb-48d8-a360-25142e8b89e5
然后通过更正json文件来重新执行导入
$ openstack baremetal import --json instackenv-controller.json
如何查看自检的当前进度状态?
我们可以从其他终端使用以下命令检查自省的进度
$sudo journalctl -l -u openstack-ironic-inspector -u openstack-ironic-inspector-dnsmasq -u openstack-ironic-conductor -f
要检查内省日志的日志文件?
内省日志(来自Ironic-inspector)位于/var/log/ironic-inspector
中。
如果自省ramdisk运行期间出现故障,则讽刺检查器会将ramdisk日志作为gz压缩的tar文件存储在`/var/log/ironic-inspector/ramdisk /
# ls -l /var/log/ironic-inspector/ total 1012 -rw-r--r--. 1 ironic-inspector ironic-inspector 1027065 Sep 30 10:33 ironic-inspector.log drwxr-x---. 2 ironic-inspector ironic-inspector 4096 Sep 30 07:08 ramdisk
这里的" ironic-inspector.log"将包含自省的当前进度状态,而ramdisk将包含从自省阶段收集的信息。
其中我提取了自省阶段创建的档案之一
# ls -l total 216 -rw-r--r--. 1 root root 1814 Sep 30 06:48 df -rw-r--r--. 1 root root 840 Sep 30 06:48 ip_addr -rw-r--r--. 1 root root 275 Sep 30 06:48 iptables -rw-r--r--. 1 root root 122681 Sep 30 06:48 journal -rw-r--r--. 1 root root 172 Sep 30 06:48 ps -rw-r--r--. 1 ironic-inspector ironic-inspector 19572 Sep 30 06:17 unknown_20160930-101719.297007.tar.gz
为了同样成功收集内省日志,请在/etc/ironic-inspector/inspector.conf中设置always_store_ramdisk_logs = true
,重启openstack-ironic-inspector
服务并重试introspection。