前言
Compute Service Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源。OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的。
Nova子服务
API
接收和响应用户的API调用。
Computer Core计算核心
nove-scheduler:虚拟机调度服务,负责决定在哪个计算节点上运行虚拟机。
nova-computer:管理虚拟机的核心服务,通过Hypervisor API实现虚拟机生命周期管理。
Hypervisor:虚拟机管理最底层的程序。
nova-conductor:负责nova-computer更新数据库的任务
Console Interface控制接口
nova-console:多种方式可访问虚拟机的控制台
nova-novncproxy | 基于Web浏览器的VNC访问 |
nova-spicehtml5proxy | 基于HTML5浏览器的SPICE访问 |
Nova-xvpncproxy | 基于JAVA客户端的VNC访问 |
nova-consoleauth:提供Token认证
nova-cert:提供x509证书支持
Database数据库
nova一些数据存储于名为“nova”的数据库中
Message Queue消息队列
RabbitMQ
物理部署
Nova主要部署在计算节点和控制节点,利用ps -elf| grep nova
来查看运行的nova子服务。
虚拟机创建流程
客户机向API发送请求,API对请求做一些必要的处理后,向Messaging请求让Scheduler创建一个虚拟机,Scheduler获得请求后执行调度算法,从若干计算节点中选出节点A,让Messaging在计算节点A上创建虚拟机,则计算节点A的Hypervisor上启动虚拟机,若此过程需要查询或更新数据库信息,则会通过conductor访问数据库。