计算服务概述

待办事项

更新其中的许多链接。

使用 OpenStack Compute 来托管和管理云计算系统。OpenStack Compute 是基础设施即服务 (IaaS) 系统的一个主要部分。主要模块是用 Python 实现的。

OpenStack Compute 与 OpenStack Identity 进行身份验证交互,与 OpenStack Placement 进行资源库存跟踪和选择交互,与 OpenStack Image 服务进行磁盘和服务器镜像交互,并与 OpenStack Dashboard 进行用户和管理界面交互。镜像访问受项目和用户限制;配额按项目限制(例如实例数量)。OpenStack Compute 可以在标准硬件上水平扩展,并下载镜像以启动实例。

OpenStack Compute 由以下区域及其组件组成

nova-api-wsgi 服务

接受并响应终端用户计算 API 调用。该服务支持 OpenStack Compute API。它强制执行某些策略并启动大多数编排活动,例如运行实例。

nova-metadata-wsgi 服务

接受来自实例的元数据请求。有关更多信息,请参阅 元数据服务

nova-compute 服务

一个工作守护进程,它通过 hypervisor API 创建和终止虚拟机实例。例如

  • libvirt 用于 KVM 或 QEMU

  • VMwareAPI 用于 VMware

处理过程相当复杂。基本上,守护进程从队列中接受操作,并执行一系列系统命令,例如启动 KVM 实例并在数据库中更新其状态。

nova-scheduler 服务

从队列中获取虚拟机实例请求,并确定其在哪个计算服务器主机上运行。

nova-conductor 模块

调解 nova-compute 服务与数据库之间的交互。它消除了 nova-compute 服务对云数据库的直接访问。 nova-conductor 模块可以水平扩展。但是,不要将其部署在运行 nova-compute 服务的节点上。有关更多信息,请参阅 配置选项 中的 conductor 部分。

nova-novncproxy 守护进程

提供通过 VNC 连接访问正在运行的实例的代理。支持基于浏览器的 novnc 客户端。

nova-spicehtml5proxy 守护进程

提供通过 SPICE 连接访问正在运行的实例的代理。支持基于浏览器的 HTML5 客户端。

队列

守护进程之间传递消息的中央枢纽。通常使用 RabbitMQ 实现,但 其他选项可用

SQL 数据库

存储云基础设施的大多数构建时间和运行时状态,包括

  • 可用的实例类型

  • 正在使用的实例

  • 可用的网络

  • 项目

理论上,OpenStack Compute 可以支持 SQLAlchemy 支持的任何数据库。常见的数据库包括 SQLite3 用于测试和开发工作、MySQL、MariaDB 和 PostgreSQL。