资源定位使用¶
跟踪资源¶
资源定位服务使其他项目能够跟踪他们自己的资源。这些项目可以通过资源定位的 HTTP API 向资源定位注册/删除他们自己的资源。
资源定位服务起源于 Nova 项目。因此,资源定位中的许多功能都是由 Nova 的需求驱动的。然而,该功能被设计成足够通用,可以被任何需要管理资源选择和消耗的服务使用。
Nova 如何使用资源定位¶
两个进程,nova-compute 和 nova-scheduler,托管 Nova 与资源定位的大部分交互。
在 nova-compute 中的 Nova 资源跟踪器负责 创建资源提供者 记录,该记录对应于资源跟踪器运行的计算主机,设置库存,该库存描述了工作负载可以消耗的定量资源(例如,VCPU),以及 设置特征,这些特征描述了资源的定性方面(例如,STORAGE_DISK_SSD)。
如果其他项目(例如,Neutron 或 Cyborg)希望管理计算主机上的资源,他们应该创建资源提供者作为计算主机提供者的子项,并将他们自己管理的资源作为这些子提供者的库存进行注册。有关更多信息,请参阅 使用提供者树建模。
nova-scheduler 负责为工作负载选择一组合适的目的地主机。它首先向资源定位发出请求,以获取 分配候选者 列表。该请求表达了定量和定性要求、聚合的成员资格,以及在更复杂的情况下,相关资源的拓扑结构。调度器进程内的过滤器和称重器会减少和排序该列表。针对代表目的地的资源提供者进行 分配,消耗资源跟踪器设置的库存的一部分。
REST API¶
资源定位 API 服务提供了一个文档完善、基于 JSON 的 HTTP API 和数据模型。它被设计成易于从任何合适的 HTTP 客户端使用。有一个插件到 openstackclient 命令行工具,称为 osc-placement,它对于偶尔检查和操作资源定位服务中的资源非常有用。
微版本¶
资源定位 API 使用微版本来对 API 进行增量更改,客户端请求必须选择加入这些更改。
尤其重要的是要记住,nova-compute 是资源定位 REST API 的客户端,并且基于 Nova 如何支持滚动升级,nova-compute 服务可能是 Newton 级别的代码,向 Ocata 资源定位 API 发出请求,反之亦然,Ocata 计算服务在一个 cells v2 单元中,可以向 Newton 资源定位 API 发出请求。
资源定位微版本的历史记录可以在以下子部分中找到。