Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

11.4. 对升级过程中出现的故障进行排除

第 10 章 升级环境 演示了如何升级 Undercloud 和 Overcloud。本节包括了如何处理在升级过程中出现的故障。

11.4.1. 升级 Undercloud

当 Undercloud 升级命令(openstack undercloud upgrade)运行失败时,按照以下建议查找造成问题的原因:
  • openstack undercloud upgrade 命令运行时会输出一个进程日志信息。当升级过程出现故障时,这个命令会在出现故障的地方停止。使用这个信息来帮助定位造成升级故障的原因。
  • openstack undercloud upgrade 命令运行 Puppet 来配置 Undercloud 服务。这会在以下目录中产生有用的 Puppet 报告信息:
    • /var/lib/puppet/state/last_run_report.yaml - 为 Undercloud 产生的最新的 Puppet 报告。这个文件会包括失败的 Puppet 操作。
    • /var/lib/puppet/state/last_run_summary.yaml - last_run_report.yaml 文件的概述。
    • /var/lib/puppet/reports - Undercloud 的所有 Puppet 报告。
    使用这些信息可以帮助找出造成升级故障的原因。
  • 检查失败的服务:
    $ sudo systemctl -t service
    
    如果有失败的服务,检查它们的相关日志。例如,如果 openstack-ironic-api 运行失败,使用以下命令检查这个服务的日志:
    $ sudo journalctl -xe -u openstack-ironic-api
    $ sudo tail -n 50 /var/log/ironic/ironic-api.log
    
在排除了造成 Undercloud 升级失败的问题后,重新运行升级命令:
$ openstack undercloud upgrade
升级命令会重新开始,并配置 Undercloud。

11.4.2. Overcloud 升级

当 Overcloud 升级过程(第 10.4 节 “升级 Overcloud”)出现问题时,按照以下建议查找造成问题的原因:
  • 检查 Heat 栈信息,找出带有 UPDATE_FAILED 状态的栈。运行以下命令:
    $ heat stack-list --show-nested | awk -F "|" '{ print $3,$4 }' | grep "UPDATE_FAILED" | column -t
    
    检查失败的栈和它的模板来找出栈失败的原因:
    $ heat stack-show overcloud-Controller-qyoy54dyhrll-1-gtwy5bgta3np
    $ heat template-show overcloud-Controller-qyoy54dyhrll-1-gtwy5bgta3np
    
  • 使用 第 11.3.3 节 “实施后的配置” 中提供的建议找出 Overcloud 后配置的问题,特别是运行失败的 Puppet。
  • 检查 Pacemaker 是否在所有 Controller 节点上正确运行。如果需要,登录到一个 Controller 节点并重启 Controller 集群:
    $ sudo pcs cluster start
    
    如需了解更多与诊断 Pacemaker 问题相关的信息,请参阅 第 11.7.2 节 “Controller 服务失败”
在排除了造成 Overcloud 升级失败的故障后,重新运行 openstack overcloud deploy 命令。以下是升级过程中的第一个 openstack overcloud deploy 命令,它包括 major-upgrade-pacemaker-init.yaml
$ openstack overcloud deploy --templates \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml  \
  -e network_env.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/major-upgrade-pacemaker-init.yaml
openstack overcloud deploy 会重试 Overcloud 栈的更新。