OpenStack 上的资源分配不正确

OpenStack 上的资源分配不正确

在我们的集群中,有 4 个计算机正在运行,而数字 4 存在问题。

我们无法在该节点上创建虚拟机,也无法将虚拟机迁移到该节点或从该节点迁移虚拟机。但虚拟机仍可正常运行。经过初步诊断,似乎资源提供商存在问题。

节点在数据库中声明为:

  • 名称:os-compute-4,uuid:d12ea77b-d678-40ce-a813-d8094cabbbd8

以下是资源提供者:

  • 名称:os-compute-4,uuid:a9dc2a56-5b2d-49b1-ac47-6d996d2d029a
  • 名称:os-compute-4.openstack.local,uuid:d12ea776-d678-40ce-a813-d8094cabbbd8

我们认为 os-compute-4.openstack.local 根本不应该存在。我们想销毁这两个资源提供程序并重新创建一个。

我还必须明确指出,os-compute-4 资源提供程序有 0 个分配,而 os-compute-4.openstack.local 只有 3 个。此外,它们的 uuid 与任何现有虚拟机都不对应。总体而言,没有任何虚拟机在 os-compute-4 上有资源分配。

我们在互联网上找到了该命令nova-manage placement heal_allocations,但在任何容器中都找不到它,也许已被弃用?集群正在运行使用 Openstack-ansible 安装的 Ussuri。

如果您有任何建议,我们将不胜感激。谢谢。:)

答案1

通常,可以从数据库中清除资源提供者并nova-compute在计算节点上重新启动服务,过一段时间后,nova 将重新提交当前资源使用情况的新记录,该记录将是正确的。

对于 nova-mange,它应该安装在控制节点上,即运行nova-api服务的节点,您可以在所有节点上循环ansible并尝试定位进程或检查分配的 ansible 角色。

您还可以使用包osc-placement[1],它使用资源提供程序相关的子命令来扩展 openstack cli。

安装后,您可以resource provider delete在陈旧的记录上发出命令,然后nova-compute在计算节点上重新启动服务,这将触发记录同步。

[1]https://docs.openstack.org/osc-placement/latest/index.html

相关内容