Nova 和 DevStack

这是关于 Nova 在 DevStack 上运行的各种配置参数的简要指南。

nova-serialproxy

在 Juno 中,Nova 实现了一个 规范,允许通过 nova-serialproxy 读取/写入实例的串口控制台。

可以通过将 n-sproxy 添加到 ENABLED_SERVICES 来启用该服务。可以通过 local.conf 启用更多选项,例如:

[[post-config|$NOVA_CONF]]
[serial_console]
#
# Options defined in nova.cmd.serialproxy
#

# Host on which to listen for incoming requests (string value)
#serialproxy_host=0.0.0.0

# Port on which to listen for incoming requests (integer
# value)
#serialproxy_port=6083


#
# Options defined in nova.console.serial
#

# Enable serial console related features (boolean value)
#enabled=false
# Do not set this manually.  Instead enable the service as
# outlined above.

# Range of TCP ports to use for serial ports on compute hosts
# (string value)
#port_range=10000:20000

# Location of serial console proxy. (string value)
#base_url=ws://127.0.0.1:6083/

# IP address on which instance serial console should listen
# (string value)
#listen=127.0.0.1

# The address to which proxy clients (like nova-serialproxy)
# should connect (string value)
#proxyclient_address=127.0.0.1

启用该服务足以使单机 DevStack 正常工作。

这些配置选项定义在 nova.conf.serial_console 中。

有关 OpenStack 配置的更多信息,请参阅 OpenStack Compute 服务配置参考

虚假 virt 驱动

Nova 具有一个 虚假 virt 驱动,可用于扩展控制平面服务的规模测试或测试“移动”操作(例如冷/实时迁移、撤离和恢复)在虚假计算节点之间。

虚假 virt 驱动不会与任何 hypervisor 通信,它只是报告一些虚假的资源库存值并跟踪创建、移动和删除的“客户”的状态。它没有完全实现计算 API,但足以进行大多数 API 测试,并且也在 nova 功能测试中使用了它,因此相当稳定。

配置

在您的 devstack local.conf 中设置以下内容:

[[local|localrc]]
VIRT_DRIVER=fake
NUMBER_FAKE_NOVA_COMPUTE=<number>

变量 NUMBER_FAKE_NOVA_COMPUTE 控制要运行的虚假 nova-compute 服务的数量,默认值为 1。

当使用 VIRT_DRIVER=fake 时,devstack 将自动禁用 nova 和 neutron 中的配额检查。但是,其他服务(例如 cinder)默认仍将强制执行配额限制。

扩展

要为 NUMBER_FAKE_NOVA_COMPUTE 使用的实际值取决于以下因素:

  • 运行 devstack 的主机的大小(物理或虚拟化)。

  • API worker 的数量。默认情况下,devstack 将为每个 API 服务运行 max($nproc/2, 2) 个 worker。如果您在单个主机上运行多个虚假计算服务,请考虑在 local.conf 中设置 API_WORKERS=1

此外,虽然 neutron 中的配额将被禁用,但 neutron 没有用于 neutron 的虚假 ML2 后端,因此创建虚假 VM 仍然会导致创建实际端口。要创建没有网络的服务器,您可以在创建服务器时指定 --nic=none,例如:

$ openstack --os-compute-api-version 2.37 server create --flavor cirros256 \
    --image cirros-0.6.3-x86_64-disk --nic none --wait test-server

注意

--os-compute-api-version 大于或等于 2.37 才能使用 --nic=none

为了避免您可能不需要的其他服务的开销,请在您的 local.conf 中禁用它们,例如:

disable_service horizon
disable_service tempest