我一直想知道是否有工具可以监控 OpenStack 如何为其虚拟基础架构使用物理资源(集群 [CPU、RAM]、网络 [接口、交换机])?虚拟基础架构在 Horizon 中可见,但无法看到它如何映射到物理资源。有没有办法获取此信息?
添加 监控物理基础设施上的资源利用率是一回事(感谢 Jeroen 为我指明了方向),但我感兴趣的是诸如 VM X 在主机 Z 上使用接口 A 和磁盘 B 在 CPU Y 上运行之类的信息(其中 Y、Z、A、B 是 OpenStack 正在运行的集群的一部分)。OpenStack 需要以某种方式保存这些信息,所以我想知道是否有任何工具可以保存这些信息,或者是否有方法可以提取这些信息,或者是否需要我自己进行一些黑客攻击?
另外,我感兴趣的是 OpenStack 如何决定应将哪些资源分配给启动虚拟机实例。假设 OpenStack 正在某个集群上运行,并且有人正在启动虚拟机实例。它如何从集群中为其分配物理资源?它是使用任何巧妙的策略或算法还是随机的?您能否列出任何可能有助于进一步研究这个问题的来源?IAAS 中的资源分配是什么,尤其是在 OpenStack 中。
答案1
如果你想要了解每个虚拟机/租户的资源使用情况,你可以使用云高仪。如果您想要监控 OpenStack 服务而不是虚拟机,您可能必须自己创建一些东西(例如 collectd/diamond + graphite)。
哪些卷连接到虚拟机等信息存储在数据库中(根据您的设置,可能是 Cinder DB)。启动虚拟机时,nova-scheduler 将尝试查找具有足够剩余资源来生成虚拟机的虚拟机管理程序。它使用一种算法来实现这一点。