9.3. 对创建 Overcloud 进行故障排除
实施的过程可能会在 3 个层面出现问题:
- 编配(Heat 和 Nova 服务)
- 裸机部署(Ironic 服务)
- 实施后的配置(Puppet)
如果 Overcloud 的实施在以上 3 个层面中出现问题,使用 OpenStack 客户端和服务日志文件来诊断相关的错误。
9.3.1. 编配 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
在多数情况下,Heat 会在 Overcloud 创建失败后显示出现问题的 overcloud 堆栈:
如果堆栈列表为空,这意味着出现的问题与初始的编配设置相关。检查您的 Heat 模板和配置选项,并在运行
openstack overcloud deploy 后的错误信息。
9.3.2. 裸机部署 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
使用
ironic 查看所有注册的节点和它们当前的状态:
以下是一些在部署过程中造成的常见问题。
- 在结果列表中检查 Provision State 和 Maintenance 栏中的数据。检查以下情况:
- 表为空,或比期望的节点数要少
- Maintenance 被设置为 True
- Provision State 被设置为
manageable
这通常意味着问题是由注册或发现过程造成的。例如,如果 Maintenance 被自动设置为 True,这通常是因为节点使用了错误的电源管理凭证。 - 如果 Provision State 的值是
available,这意味着问题发生在裸机部署开始前。 - 如果 Provision State 的值是
active,Power State 的值是power on,这意味着裸机部署已成功完成,所出现的问题发生在实施后的配置阶段。 - 如果一个节点的 Provision State 值是
wait call-back,这意味着对这个节点的裸机部署还没有完成。等待这个状态改变;或连接到出现问题的节点的虚拟控制台上检查相关的输出。 - 如果 Provision State 的值是
error或deploy failed,则意味着对这个节点的裸机部署失败。检查裸机节点的详情:ironic node-show [NODE UUID]
$ ironic node-show [NODE UUID]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看包括错误描述信息的last_error项。如果错误信息不明确,您可以查看相应的日志:sudo journalctl -u openstack-ironic-conductor -u openstack-ironic-api
$ sudo journalctl -u openstack-ironic-conductor -u openstack-ironic-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果您看到
wait timeout error信息,节点的 Power State 值是power on,连接到出现问题的节点的虚拟控制台上检查相关的输出。
9.3.3. 实施后的配置 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
在配置阶段会发生许多事情。例如,特定的 Puppet 模块可能会因为设置的问题出错。本小节提供了诊断相关问题的方法。
过程 9.4. 诊断实施后的配置问题
- 列出 Overcloud 堆栈中的所有资源来找出哪个出现了问题:
heat resource-list overcloud
$ heat resource-list overcloudCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会显示一个包括所有资源以及它们的状态的列表。查看带有CREATE_FAILED的资源。 - 显示出问题的资源:
heat resource-show overcloud [FAILED RESOURCE]
$ heat resource-show overcloud [FAILED RESOURCE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看resource_status_reason项中的内容来帮助您进行诊断。 - 使用
nova命令查看 Overcloud 节点的 IP 地址。nova list
$ nova listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以heat-admin用户身份登录到一个实施的节点上。例如,堆栈资源列表显示一个 Controller 节点出现问题,您可以登录到那个 Controller 节点。heat-admin用户有 sudo 访问权限。ssh heat-admin@192.0.2.14
$ ssh heat-admin@192.0.2.14Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 检查
os-collect-config日志找出可能造成故障的原因。sudo journalctl -u os-collect-config
$ sudo journalctl -u os-collect-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在某些情况下,Nova 的整个节点实施过程都失败。在这种情况下,一个 Overcloud 角色类型的
OS::Heat::ResourceGroup会出错。使用nova来查看问题。nova list nova show [SERVER ID]
$ nova list $ nova show [SERVER ID]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 多数常见错误会显示No valid host was found错误信息,请参阅 第 9.4 节 “对 "No Valid Host Found" 错误进行故障排除” 来获得更多与排除这类错误相关的信息。在其它情况下,查看以下日志文件来进行进一步的故障排除:/var/log/nova/*/var/log/heat/*/var/log/ironic/*
- 使用 SOS 工具包来收集系统硬件和配置的信息。这些信息可被用于进行故障诊断和故障排除。技术支持和开发人员也可以通过 SOS 获得有用的信息。SOS 在 Undercloud 和 Overcloud 中都有用。运行以下命令安装
sos软件包:sudo yum install sos
$ sudo yum install sosCopy to Clipboard Copied! Toggle word wrap Toggle overflow 产生一个报告sudo sosreport --all-logs
$ sudo sosreport --all-logsCopy to Clipboard Copied! Toggle word wrap Toggle overflow