Admin Documentation

OpenStack Compute 服务允许您控制一个基础设施即服务 (IaaS) 云计算平台。它使您能够控制实例和网络,并允许您通过用户和项目管理对云的访问。

Compute 不包含虚拟化软件。相反,它定义了与主机操作系统上运行的基础虚拟化机制交互的驱动程序,并通过基于 Web 的 API 暴露功能。

概述

为了有效地管理 compute,您必须了解不同的已安装节点如何相互交互。Compute 可以使用多个服务器以多种不同的方式安装,但通常多个 compute 节点控制虚拟机,而云控制器节点包含剩余的 Compute 服务。

Compute 云使用一系列名为 nova-* 的守护进程,这些进程持久存在于主机机器上。这些二进制文件可以全部运行在同一台机器上,也可以分布在大型部署中的多个机器上。服务和驱动程序的职责是

服务

nova-metadata-wsgi

一个 WSGI 应用程序,用于提供 Nova Metadata API。

nova-api-wsgi

一个 WSGI 应用程序,用于提供 Nova OpenStack Compute API。

nova-compute

管理虚拟机。加载 Service 对象,并通过远程过程调用 (RPC) 在 ComputeManager 上暴露公共方法。

nova-conductor

为 compute 节点提供数据库访问支持(从而降低安全风险)。

nova-scheduler

将新虚拟机的请求分派到正确的节点。

nova-novncproxy

为浏览器提供 VNC 代理,允许 VNC 控制台访问虚拟机。

nova-spicehtml5proxy

为浏览器提供 SPICE 代理,允许 SPICE 控制台访问虚拟机。

nova-serialproxy

提供串行控制台代理,允许用户访问虚拟机的串行控制台。

该架构在 Nova 系统架构 中有更详细的介绍。

注意

一些服务具有更改服务实现其核心功能的驱动程序。例如,nova-compute 服务支持允许您选择它可以使用的 hypervisor 类型的驱动程序。

部署注意事项

在进行部署之前,您可能需要考虑一些信息,尤其是在要进行较大规模的部署时。对于较小的部署,安装指南 中的默认设置就足够了。

  • Compute Driver Features Supported:虽然大多数 nova 部署使用 libvirt/kvm,但您可以使用 nova 与其他 compute 驱动程序。Nova 尝试在这些驱动程序之间提供统一的功能集,但是,并非所有功能都在所有后端上实现,并且并非所有功能都经过同等程度的测试。

  • Cells v2 configuration:对于大型部署,cells v2 cells 允许对您的 compute 环境进行分片。成功的 cells v2 布局的关键在于前期规划。

  • Availability Zones:Availability Zones 是一个面向最终用户的逻辑抽象,用于在不知道物理基础设施的情况下对云进行分区。

  • Placement service:Placement 服务的概述,包括它如何与 nova 的其余部分相适应。

  • Running nova-api on wsgi:有关使用真实的 WSGI 容器而不是内置的 eventlet Web 服务器的注意事项。

  • Nova service concurrency:有关如何在线程模式下使用和调整 Nova 服务的注意事项。

基本配置

一旦您拥有一个正在运行的 OpenStack 部署,您将希望对其进行管理。以下指南涵盖了从创建初始 flavor 和 image 到日志管理和实例实时迁移的所有内容。

  • Quotas:管理 nova 中的项目配额。

  • Scheduling:配置调度器的方式,以及这将如何影响 compute 实例在您的环境中的位置。如果您看到 compute 实例在您的主机中的分布出现意外情况,您将需要深入研究此配置。

  • Exposing custom metadata to compute instances:您可能希望扩展暴露给 compute 实例的基本元数据(通过元数据服务器或 config drive)以用于您的特定目的的方式和时间。

高级配置

OpenStack 云在平台运行,这些平台在它们提供的功能方面差异很大。默认情况下,Compute 服务试图抽象底层硬件,而不是暴露底层主机平台的具体信息。这种抽象表现为许多方面。例如,与其暴露主机上运行的 CPU 的类型和拓扑结构,服务会暴露一定数量的通用 CPU(虚拟 CPU 或 vCPU),并允许对这些 CPU 进行过度提交。同样,与其暴露主机上可用的单个类型的网络设备,而是提供通用的软件供电网络端口。这些功能旨在允许高资源利用率,并允许该服务提供一个通用的、具有成本效益的和高度可扩展的云,在其之上可以构建应用程序。

对于大多数工作负载,这种抽象是有益的。但是,对于某些工作负载,确定性和每实例性能至关重要,甚至至关重要。在这种情况下,实例预计可以提供接近原生性能。Compute 服务提供功能以改善这些类型工作负载的单个实例。

重要提示

在 Train 之前的部署中,或在正在进行滚动升级的 Stein/Train 混合部署中,除非明确 启用,使用 libvirt 驱动程序时,具有 NUMA 拓扑结构的实例的实时迁移是不可能的。NUMA 拓扑结构可以显式指定,或者由于使用 CPU pinning 或 huge pages 而隐式添加。有关更多信息,请参阅 bug #1289064。从 Train 开始,使用 libvirt 驱动程序时,具有 NUMA 拓扑结构的实例的实时迁移完全受支持。

维护

一旦您正在运行 nova,以下信息将非常有用。

  • Upgrades:nova 的设计方式,以最大限度地减少服务影响并以正确的顺序进行升级。