openstack学习笔记---- filters 和 weights

Filter Scheduler 是用来判断一个vm应该在哪一台主机上面创建。一台主机选出来被要经历你filters 和weights两个过程。


1 filtering

分类器大致分为2类:主机分类器和cell分类器,主机分类器需要重写hostpass() ,cell分类器需重写cellpass()

用筛选属性,将不符合属性要求的主机筛选掉。选择策略有很多:AllHostsFilter ,ImagePropertiesFilter  etc,具体策略可查阅文档:http://docs.openstack.org/developer/nova/devref/filter_scheduler.html


如何编写自己的过滤器:

a 继承BaseHostFilter,实现host_passes方法。 

改写配置文件  nova.conf 

--scheduler_driver=nova.scheduler.FilterScheduler
--scheduler_available_filters=nova.scheduler.filters.standard_filters
--scheduler_available_filters=myfilter.MyFilter
--scheduler_default_filters=RamFilter,ComputeFilter,MyFilter

2 weights

在这一个步骤当中是对刚才过滤得到的主机列表当中,选出最为合适的一台主机。

weight = w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ...
编写自己weighter 应该是  weights.BaseHostWeigher 的子类 ,必须实现weight_multiplier和 weight_object 方法。



版权声明:本文为rually原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。