OS apiv2.1/{tenant-id}/os-hypervisors/detail
的响应返回具有负值的参数disk_available_least
。 我想知道这个参数是什么以及如何计算。
尝试在OpenStack文档中搜索,但没有运气。
过度承诺
尽管虚拟化有助于更好地利用资源,但大多数情况下,虚拟化仍然可以得到更多优化。
例如,开发人员的工作站每天仅使用 8-9 小时。分配给此工作站的资源可用于在不同班次工作的其他开发人员。另一个例子是,可能大多数时候并非所有分配的RAM都被机器使用。
Openstack允许我们过度提交CPU,磁盘和RAM。在此处查看官方开放堆栈文档
这意味着,虽然我们的物理机只有 100GB 的 RAM,但我们可以创建累积分配 RAM 可能为 150GB 的 VM,具体取决于超额承诺比率。
对问题的回答
disk_available_least使用以下公式计算:
disk_available_least = disk_free_gb - disk_over_committed
如您所观察的,此值取决于磁盘的超额承诺值,该值可能高于磁盘的物理值以及导致负值的可用磁盘大小。
有一个非常好的页面用 openstack 的示例和实际源代码来解释这种现象。