OpenStack Nova中与启动虚拟机相关的组件

首先API server收到一个来自用户的run_instances命令:

      1. API server把这条消息转发给云控制器
      2. 先要认证用户有需要的权限。云控制器把消息发给调度器
      3. 调度器把这条消息扔给一个随机的host(计算节点),并请求启动一台新虚拟机。
      4. 计算节点上的compute worker捕获这条消息
      5. compute worker需要一个固定IP来启动新虚拟机,因此发送一条消息给network controller。

 

  • 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。
posted on 2022-01-28 11:10  属于我的梦,明明还在  阅读(293)  评论(0)    收藏  举报