请问openstack中虚拟机状态信息的更新是怎样的机制
在openstack的测试中,经常发现虚拟机状态不匹配的情况。一般情况下dashboard上和数据库中的信息是一致的,在虚拟机所在的计算节点使用virsh查看到的状态会和数据库中的不一致。请帮忙讲解一下这个里面有什么机制,或者虚拟机信息在数据库中的更新这块如何在源码里面追踪 OpenStack 虚拟机 --------------------编程问答-------------------- 以前用过kvm虚拟机的都应该知道,virsh是使用libvirt库开发的一套管理虚拟机包括虚拟资源的软件。
openstack里面应该也是直接调用libvirt库的python实现来维护自己的数据库的。至于dashboard,那就是使用openstack的api,自然就是从opentack自己的数据库里面取数据的。
这个是我的理解,因为不是搞开发的,没读过太多openstack源代码,只是从经验上来猜测。 --------------------编程问答-------------------- 嗯。对虚拟机的操作确实是通过libvirt来执行的,在虚拟机状态这部分,openstack跟libvirt的同步好像还不是很完善,准备到源码里看看细节。 --------------------编程问答-------------------- 我的理解是,openstack和virsh是同一概念上的东西,他们都是利用了libvirt库来封装的软件,只能说openstack和virsh不同步,当然,他们是两个东西,也没必要同步吧。 --------------------编程问答-------------------- virsh的状态和libvirt报告的是一回事。libvirt的状态经过简单抽象变成power_state. power_state会定期向数据库更新。
代码在 nova.compute.manager.ComputeVirtAPI._sync_power_states --------------------编程问答-------------------- 是查的数据库
补充:云计算 , OpenStack