1 Nova 概述
Nova是Openstack最核心的服务模块,负责管理和维护云计算环境的计算资源,负责整个云环境虚拟机生命周期的管理,负责维护和管理的网络和存储,提供计算服务。Nova位于Openstack架构的中心,其他服务或者组件(比如Glance、Cinder、Neutron等)对它提供支持,另外它本身的架构也比较复杂,包括很多组件:
- API
- Compute Core
- DB
- Console Interface
- MQ
1.API
nova-api:接收和响应客户的 API 调用。
2.Compute Core
nova-scheduler:虚机调度服务,负责决定在哪个计算节点上运行虚机。
nova-compute:管理虚机的核心服务,通过调用 Hypervisor API 实现虚机生命周期管理。
Hypervisor:计算节点上跑的虚拟化管理程序,虚机管理最底层的程序。不同虚拟化技术提供自己的 Hypervisor。 常用的 Hypervisor 有 KVM,Xen,VMWare 等。
nova-conductor:nova-compute 经常需要更新数据库,比如更新虚机的状态。 出于安全性和伸缩性的考虑,nova-compute 并不会直接访问数据库,而是将这个任务委托给 nova-conductor。
3.Console Interface
nova-console:用户可以通过多种方式访问虚机的控制台。
nova-novncproxy:基于 Web 浏览器的 VNC 访问。
nova-spicehtml5proxy:基于 HTML5 浏览器的 SPICE 访问。
nova-xvpnvncproxy:基于 Java 客户端的 VNC 访问。
4.Database
Nova 会有一些数据需要存放到数据库中,一般使用 MariaDB。Nova 使用命名为 “nova” 的数据库。
5.Message Queue
在架构图上我们看到 Nova 组件之间的连线,它们都通过 Message Queue 联系。OpenStack 默认是用 RabbitMQ 作为 Message Queue。