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 栈的更新。