如何实现nova-scheduler模块调度

如何实现nova-scheduler模块调度,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在云浮等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、网站制作 网站设计制作按需设计网站,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,成都外贸网站制作,云浮网站建设费用合理。

openstack在创建虚拟机或进行虚拟机的冷迁移时根据在nova.conf文件中scheduler_default_filters和scheduler_available_filters配置的过滤器,

对主机进行筛选,选择合适的目的主机。

下面根据nova M版源码分析调度不同过滤器的。

一、conductor服务通过rpc调用scheduler服务 SchedulerManager类的select_destinations,由此开始进入进入主机过滤阶段,

       此阶段主要目的是调用事先在nova.conf文件中配置的过滤器,选择合适的计算节点。

文件nova/scheduler/manager.py

如何实现nova-scheduler模块调度

104行,self.driver实际是在nova.conf文件中配置的FileterScheduler

如何实现nova-scheduler模块调度

二、nova/scheduler/filter_scheduler.py文件

如何实现nova-scheduler模块调度

52行,num_instances是要选择的计算节点数。

53行,self._schedule是实际的调度函数,在此函数中调度各个过滤器的函数。

三、_schedule函数

如何实现nova-scheduler模块调度

94行,加载json文件可以在json文件里配置过滤规则,现在m版json文件没起作用。

104行,在过滤之前首先要从数据库拿到所有计算节点的的当前状态。

112行,进行主机过滤

120行,拿到过滤的主机计算权重,并返回根据权重排序的列表。

四、nova/scheduler/host_manager.py文件

如何实现nova-scheduler模块调度

get_filtered_host函数中参数filter_class_names传进来的值是None,进入517分支

517行,filters是所有过滤器类名字的列表,由self._choose_host_filters函数返回

如何实现nova-scheduler模块调度

_choose_host_filters(),函数根据nova.conf文件中的scheduler_default_filters和scheduler_available_filters挑选出要使用的过滤器

self._load_filters()加载nova.conf文件中的scheduler_default_filters项,默认在nova/scheduler/filters下的全部过滤器都打开。

545行,调用nova/filters.py文件中BaseFilterHandler::get_filtered_objects,参数filters是要使用的过滤器类列表,hosts是所有的计算节点。

五、nova/filters.py文件

如何实现nova-scheduler模块调度

81行,循环调用过滤器

85行,调用过滤器类的filter_all方法,对主机进行筛选,以AvailabilityZoneFilter类说明调用关系

如何实现nova-scheduler模块调度

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。

本文题目:如何实现nova-scheduler模块调度
URL分享:https://www.cdcxhl.com/article8/jdodip.html

成都网站建设公司_创新互联,为您提供网站改版企业网站制作品牌网站设计定制开发响应式网站网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设