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