首页 > 代码库 > Troubleshooting OpenStack Bug- 每天5分钟玩转 OpenStack(162)

Troubleshooting OpenStack Bug- 每天5分钟玩转 OpenStack(162)

这是 OpenStack 实施经验分享系列的第 12 篇。


问题描述


客户报告了一个问题:对 instance 执行 migrate 操作,几个小时了一直无法完成,不太正常。


技术分享


问题分析


遇到这种情况,第一个要检查的就是 instance 所在计算节点的 nova-compute.log 日志,但不幸的是没有发现相关的错误。


如果 nova-compute 没有错误,那更底层的 hypervisor 有相关报错吗? 打开 /var/log/libvirt/libvirtd.log,这里我们发现了一些线索:


技术分享


上面的 log 告诉我们:没有找到 instance swap 对应 image backing file /var/lib/nova/instances/_base/swap_8192。


当前这个 instance 确实使用了一个 8192M 的 swap disk,但奇怪的是:正在使用的 image backing file 为什么会不见了呢?


在排除了人为误删后,怀疑是一个 bug。搜索一下:


技术分享


运气不错,第三个结果是 OpenStack 的 bug,好像就是我们要找的。 浏览 bug 信息发现描述的现象跟我们的情况一样,而且在客户使用的 kilo 版本上已经有 fix。


技术分享


点击 commit 链接,可以看到 fix 都修改了哪些文件。


技术分享


对照客户系统中的代码,确实没有包含该 fix,也印证了确实是这个 bug。


解决问题


因为 fix 的文件位于 nova 目录,可见这是 nova 模块的 bug。 接下来的工作就很直接了:

  1. 下载 nova 的代码。

  2. 安装 kilo 的最新版本。

  3. 重启所有 nova-* 服务。

关于如何更新 OpenStack 组件,请参考上一节的方法。


下节教大家如何快速安全地给 instance 做快照。


技术分享

Troubleshooting OpenStack Bug- 每天5分钟玩转 OpenStack(162)