问题描述
我正在尝试设置模拟真实节点的 openstack 计算节点,但实际上从未在物理主机上设置虚拟机。
在 openstack 测试中,通过复杂的测试类系统使用假驱动程序(在 nova/virt/fake.py
中定义)。
我希望在测试中启动并运行这样的节点不是(意思是,我不想使用这些类来生成计算节点),但是,在实际的虚拟机/容器上,我无法弄清楚如何让计算进程与这个假虚拟机管理程序(或者更具体地说,由我定义的虚拟机管理程序)一起运行。
如何在计算节点中注入这个假驱动程序而不是真正的驱动程序?
(另外,我正在使用 devstack(最新)安装操作系统)
为了更清楚地说明,我的目标是对操作系统进行压力测试,运行多个假计算节点,不是在多合一配置中。使用 devstack 设置控制器节点是为了简化流程,但系统应该是:
- 一个控制器节点,运行核心服务(Nova、Glance、Keystone 等)。
- 多个计算节点,在不同的机器上使用假虚拟机管理程序。
解决方法
安装新的计算节点时,会自动创建一个配置文件 nova-compute.conf
。
似乎在 /etc/nova/nova-compute.conf
中有一个选项:
compute_driver = libvirt.LibvirtDriver
使用 libvirt
作为计算节点的默认管理程序。除了hyperv
、vmwareapi
和xenapi
之外,根据nova configuration documentation,可以通过将此选项更改为:
compute_driver = fake.FakeDriver
为了在我们的实现中设置假驱动程序,我们可能会用其他东西替换 fake.py
中编写的假驱动程序。