一、 Nova概述
使用OpenStack Compute来托管和管理云计算系统。OpenStack Compute是基础架构即服务(IaaS)系统的主要部分。主要模块在Python中实现。
OpenStack Compute与OpenStack Identity进行交互以进行身份验证;用于磁盘和服务器映像的OpenStack Image服务;和用于用户和管理界面的OpenStack仪表板。 镜像访问受到项目和用户的限制;每个项目的配额有限(例如数量)。 OpenStack Compute可以在标准硬件上水平扩展,并下载镜像以启动实例。
OpenStack Compute由以下几个方面组成:
(1)nova-api服务
接受并响应最终用户的计算API调用。 该服务支持OpenStack Compute API,Amazon EC2 API和特殊的Admin API,用于特权用户执行管理操作。 它执行一些策略并启动大多数业务流程活动,例如运行一个实例。
(2)nova-api-metadata服务
接受来自实例的元数据请求。当您使用nova-network安装在多主机模式下运行时,通常会使用nova-api-metadata服务。
(3)nova-compute计算服务
通过虚拟机管理程序API创建和终止虚拟机实例的工作程序守护程序。
- 适用于XenServer / XCP的XenAPI
- KVM或QEMU的libvirt
- 适用于VMware的VMwareAPI
处理相当复杂。基本上,守护程序接受队列中的操作,并执行一系列系统命令,例如启动KVM实例并更新数据库中的状态。
(4)nova-placement-api服务
跟踪每个提供商的库存和使用情况。有关详细信息,请参阅Placement API。
(5)nova-scheduler服务
从队列获取虚拟机实例请求,并确定运行哪个计算服务器主机。
(6)nova-conductor module模块
nova-compute服务与数据库之间的交互。它消除了由nova-compute服务器对云数据库的直接访问。新星导体模块水平放置。但是,不要在运行nova-compute服务的节点上部署它。
(7)nova-cert模块
为X509证书提供Nova Cert服务的服务器守护程序。用于生成euca-bundle-image的证书。只需要EC2 API。
(8)nova-consoleauth守护进程
为控制台代理提供的用户授权令牌。参见nova-novncproxy和nova-xvpvncproxy。此服务必须运行才能使控制台代理工作。您可以在集群配置中针对单个nova-consoleauth服务运行任一类型的代理。
(9)nova-novncproxy守护进程
提供通过VNC连接访问运行实例的代理。 支持基于浏览器的novnc客户端。
(10)nova-spicehtml5proxy守护进程
提供通过SPICE连接访问运行实例的代理。支持基于浏览器的HTML5客户端。
(11)nova-xvpvncproxy守护进程
提供通过VNC连接访问运行实例的代理。支持特定于OpenStack的Java客户机。
(12)Message Queue
在守护进程之间传递消息的中心枢纽。 通常用RabbitMQ实现,也可以用另一个AMQP消息队列来实现,如ZeroMQ。
(13)SQL数据库
存储云基础架构的大部分构建时间和运行时状态,包括:
- 可用的实例类型
- 正在使用的实例
- 可用网络
- 项目
理论上,OpenStack Compute可以支持SQLAlchemy支持的任何数据库。 公共数据库是用于测试和开发工作的SQLite3,MySQL,MariaDB和PostgreSQL。
二、 Nova架构
1、Nova逻辑架构
图1 Nova逻辑架构(早期架构)
图2 Nova逻辑架构
2、Nova服务架构
图3 Nova服务架构