Nova 服务插件¶
https://blueprints.launchpad.net/searchlight/+spec/nova-service-plugin
本规范旨在支持 nova 服务插件 (OS::Nova::Service,请注意 OS::Nova::Service 不存在于 heat 资源类型中,与 hypervisor 插件类似,并且它是一个仅限管理员的资源类型),并且 nova 中的服务支持版本化通知 [0]。这将是 Searchlight 的一个很好的附加插件。
问题描述¶
服务[1] 采用一个管理器并基于主题通过监听队列启用 rpc。它还会定期在管理器上运行任务并将状态报告到数据库服务表。因此,在拥有大量计算节点的云环境中,将会有相当多的服务(通常每个计算节点一个服务,每个控制器节点四个服务)。使用原生 nova API 获取服务列表或搜索服务(您可以使用命令 nova service-list 获取完整列表或按主机或二进制文件过滤结果)可能会变慢。并且 hypervisor 的版本化通知 [2] 指的是服务 ID。在 hypervisor 插件 [3] 的未来实现中,我们可能需要通过服务 ID 获取 hypervisor 创建或更新操作的服务详细信息。
参考资料¶
[0] https://github.com/openstack/nova/blob/master/nova/objects/service.py#L309-L315 [1] https://docs.openstack.org/developer/nova/services.html#the-nova-service-module [2] https://review.opendev.org/#/c/315312/11/nova/notifications/objects/compute_node.py [3] https://github.com/openstack/searchlight/blob/master/searchlight/elasticsearch/plugins/nova/notification_handler.py#L107