我已经在 ask.openstack.org 上问过这个问题了,但我想在这里也会得到更多的关注。
我在 5 节点集群上运行 OpenStack Mitaka,1 个控制器/网络节点和 4 个计算节点。我可以创建虚拟机并在一天中正常使用它们,但当我早上回来时,一些实例已关闭。
我已检查以确保有足够的磁盘空间(OK)。我已检查问题是否出在任何计算节点上(是)。我还检查了 RAM 和 CPU 使用率(OK)。
我尝试将 nova.conf 中的 handle_virt_lifecycle_events 变量更改为 true 和 false,但没有成功,正如一些研究所引导的那样。
似乎是由于从数据库到虚拟机管理程序(KVM)的电源状态不匹配导致了这种情况。
有任何想法吗?
这是我能找到的唯一相关信息/var/log/nova/nova-compute.log:
2016-06-08 21:20:18.208 1738 INFO nova.compute.manager [-] [实例:493ad84c-1e46-410c-8fab-078c77ddea10] 在 _sync_instance_power_state 期间,DB power_state (1) 与虚拟机管理程序中的 vm_power_state (4) 不匹配。更新 DB 中的 power_state 以匹配虚拟机管理程序。
2016-06-08 21:20:18.228 1738 INFO nova.compute.manager [-] [实例:2dcb6116-55ab-4987-a4f5-ce3e0f1edda4] 在 _sync_instance_power_state 期间,DB power_state (1) 与虚拟机管理程序中的 vm_power_state (4) 不匹配。更新 DB 中的 power_state 以匹配虚拟机管理程序。
2016-06-08 21:20:18.232 1738 INFO nova.compute.manager [-] [实例:d1d0172d-20aa-4333-b9e9-aabc064287bc] 在 _sync_instance_power_state 期间,DB power_state (1) 与虚拟机管理程序中的 vm_power_state (4) 不匹配。更新 DB 中的 power_state 以匹配虚拟机管理程序。2016-06-08
21:20:18.298 1738 WARNING nova.compute.manager [-] [实例:493ad84c-1e46-410c-8fab-078c77ddea10] 实例自行关闭。调用停止 API。当前 vm_state:活动,当前 task_state:无,原始 DB power_state:1,当前 VM power_state:4
2016-06-08 21:20:18.314 1738 警告 nova.compute.manager [-] [实例:2dcb6116-55ab-4987-a4f5-ce3e0f1edda4] 实例自行关闭。调用停止 API。当前 vm_state:活动,当前 task_state:无,原始 DB power_state:1,当前 VM power_state:4
2016-06-08 21:20:18.334 1738 警告 nova.compute.manager [-] [实例:d1d0172d-20aa-4333-b9e9-aabc064287bc] 实例自行关闭。调用停止 API。当前 vm_state:active,当前 task_state:None,原始 DB power_state:1,当前 VM power_state:4
答案1
在 /etc/nova/nova.conf 中,设置以下选项以禁用同步
sync_power_state_interval=-1
这将阻止从 DB 强制执行 VM 状态。
引自这里:
同步任务将看到DB不同步并将尝试通过关闭虚拟机来“纠正”不一致问题。