Nova - 计算服务

Nova 是 OpenStack 中的核心服务,提供计算服务。通常通过虚拟机 (VM) 提供,但如果 Nova 与 Ironic 结合使用,也可以通过裸机服务器提供。

Nova 默认启用,但可以通过在 globals.yml 中将 enable_nova 设置为 no 来禁用。

虚拟化驱动程序

虚拟化驱动程序可以通过 globals.yml 中的 nova_compute_virt_type 来选择。支持的选项有 qemukvm。默认值为 kvm

Libvirt

有关基于 libvirt 的驱动程序 kvmqemu 的信息,请参阅 Libvirt - Nova 虚拟化驱动程序

裸机

有关使用 Nova 与 Ironic 将计算实例部署到裸机的信息,请参阅 Ironic - 裸机配置

Fake 驱动程序

Fake 驱动程序可用于测试 Nova 的扩展属性,而无需访问大量的硬件资源。它包含在 Nova Fake 驱动程序 中。

控制台

控制台驱动程序可以通过 globals.yml 中的 nova_console 来选择。有效选项有 nonenovncspice。此外,可以通过将 enable_nova_serialconsole_proxy 设置为 yes 来启用串行控制台支持。

Cells

有关使用 Nova Cells V2 进行扩展的信息,请参阅 Nova Cells

Vendordata

Nova 支持通过称为 Vendordata 的概念将部署者提供的数据传递给实例。如果 Vendordata 文件位于 Kolla 配置中的以下路径,Kolla 会在部署或重新配置 Nova 服务时自动使用它:/etc/kolla/config/nova/vendordata.json

故障处理

计算服务注册

在部署期间,Kolla Ansible 会等待 Nova 计算服务进行注册。默认情况下,如果计算服务在超时之前未注册,则该主机将在 Ansible 运行中标记为失败。这种行为在规模较大、故障更频繁的情况下很有用。

或者,要使单元中的所有主机在任何计算服务失败注册时都失败,请将 nova_compute_registration_fatal 设置为 true

通过配置文件管理资源提供程序

在 Victoria 周期中,Nova 合并了通过 配置文件 管理资源提供程序的支持。

Kolla Ansible 将此功能的使用限制为每个 Nova 计算服务的一个配置文件,该配置文件通过 Ansible 库存组/主机变量定义。这样做是为了鼓励用户单独配置每个计算服务,以便在添加更多资源时,现有的计算服务无需重新启动。

例如,想要为特定主机配置带有 GPU 的计算资源的用户可以将以下文件添加到 host_vars

[host_vars]$ cat gpu_compute_0001
nova_cell_compute_provider_config:
  meta:
    schema_version: '1.0'
  providers:
    - identification:
        name: $COMPUTE_NODE
      inventories:
        additional:
          - CUSTOM_GPU:
              total: 8
              reserved: 0
              min_unit: 1
              max_unit: 1
              step_size: 1
              allocation_ratio: 1.0

可以使用组变量以覆盖多台机器。

由于格式错误的配置文件会阻止 Nova 计算服务启动,因此应首先按照 文档 中所述对其进行验证。然后可以重新配置 Nova 计算服务以应用更改。

要删除资源提供程序配置,最简单的方法是在不指定任何库存或特征的情况下将组/主机变量保留在原位。这将有效地在重新启动 Nova 计算服务时删除配置。如果您选择在主机上取消定义 nova_cell_compute_provider_config,则必须手动从容器内部删除生成的配置文件,或者重新创建容器。