1

我最近正在阅读一些 OpenStack 资料,但还没有机会尝试。我感觉到 Openstack 可以通过 API 或仪表板接口管理大量虚拟机。用户可以轻松创建/启动虚拟机。

然后我很困惑。由于底层计算机硬件可能会有所不同,某些计算机可能只能托管一台虚拟机,有些可能只有十台。当用户启动虚拟机时,是用户手动还是 Openstack 自动指定一台硬件计算机来托管虚拟机?无论哪种情况,如何确定硬件计算机的容量?Openstack是否提供设置硬件计算机容量属性的功能?

4

1 回答 1

3

当你运行 OpenStack 时,每台物理机(OpenStack 称为计算主机)会定期报告它有多少 CPU 和它有多少 RAM,以及有多少 CPU 和多少 RAM 已分配给当前正在运行的虚拟机.

OpenStack 调度程序使用此信息来确定在哪个计算主机上运行 VM。首先,它检查主机是否有足够的 CPU(通过应用CoreFilter)和足够的 RAM(通过应用RamFilter)。甚至不会考虑没有足够 CPU 或 RAM 可用的计算主机。

一旦它拥有一组具有足够 CPU 和 RAM 的候选主机,调度程序就需要从中挑选一个。默认情况下,调度程序将使用“传播优先”策略,将 VM 分配给当前未分配给 VM 的 CPU/RAM 数量最多的计算机。可以将此策略更改为“先填充”行为,以便首先分配具有最少可用资源的计算主机。这是通过设置 nova.scheduler.least_cost.compute_fill_first_cost_fn参数来配置的。

有关更多信息,请参阅OpenStack Compute Admin 指南中的调度章节。

于 2012-12-07T14:06:52.193 回答