这是 OpenStack 实施经验分享系列的第 12 篇。安全
客户报告了一个问题:对 instance 执行 migrate 操做,几个小时了一直没法完成,不太正常。spa
遇到这种状况,第一个要检查的就是 instance 所在计算节点的 nova-compute.log 日志,但不幸的是没有发现相关的错误。日志
若是 nova-compute 没有错误,那更底层的 hypervisor 有相关报错吗? 打开 /var/log/libvirt/libvirtd.log,这里咱们发现了一些线索:it
上面的 log 告诉咱们:没有找到 instance swap 对应 image backing file /var/lib/nova/instances/_base/swap_8192。file
当前这个 instance 确实使用了一个 8192M 的 swap disk,但奇怪的是:正在使用的 image backing file 为何会不见了呢?搜索
在排除了人为误删后,怀疑是一个 bug。搜索一下:下载
运气不错,第三个结果是 OpenStack 的 bug,好像就是咱们要找的。 浏览 bug 信息发现描述的现象跟咱们的状况同样,并且在客户使用的 kilo 版本上已经有 fix。bug
点击 commit 连接,能够看到 fix 都修改了哪些文件。方法
对照客户系统中的代码,确实没有包含该 fix,也印证了确实是这个 bug。im
由于 fix 的文件位于 nova 目录,可见这是 nova 模块的 bug。 接下来的工做就很直接了:
下载 nova 的代码。
安装 kilo 的最新版本。
重启全部 nova-* 服务。
关于如何更新 OpenStack 组件,请参考上一节的方法。
下节教你们如何快速安全地给 instance 作快照。