Nova虚拟机管理的主线
从主线上看,只涉及Nova-api,nova-Scheduler和nova-compute等3个服务
- nova-api
(1)接收来自客户端、Dashboard创建虚拟机的请求。
(3)接收到请求之后,验证请求是否合法。
(3)通过验证后的请求,将会转给nova-scheduler - nova-scheduler:
(1)scheduler顾名思义,调度器。nova-scheduler主要工作就是选择主机。
(2)将接收到nova-api的请求后,会查看所有服务正常的计算节点,从这些节点中选择一个节点启动虚拟机。
(3)选择节点的算法一般是随机算法,就是从计算节点中随机选择一台。
(4)选择结束后,将创建虚拟机的请求转发到选中的节点的nova-compute服务。 - nova-compute
(1)nova-compute服务运行在计算节点上,专门负责创建虚拟机。
(2)nova-compute服务中,Compute Manager负责接收消息,而真正负责干活的就是compute Driver。
(3)Openstack的Compute Driver可以支持很多种Hypervisor。比如Hyper-V、vmware、XenServer、KVM和XEN等等。
(4)其中KVM和XEN主要通过libvirt进行管理。Openstack默认采用的是libvirt作为底层来管理虚拟机。因此nova-compute将消息转给libvirt的时候,nova-compute的活就算干完了。剩下的就交给libvirt负责了 - libvirt、KVM和Xen
(1)首先libvirt接收到消息
(2)然后将具体的任务交给KVM和Xen。