本文主要是介绍深挖Openstack Nova - Scheduler调度策略(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当OpenStack自带的调度算法无法满足自己的业务需求时,这时我们可以增加自定义调度器。
现在有如下需求:
需求1. 同一项目的多个实例分散到不同的计算节点上;
需求2. 机柜感知 - 同一项目的多个实例分散到不同的机柜上;
需求3. 要求实例B不放在与实例A相同的节点上。
思路:
需求1:
(1)自带的ServerGroupAntiAffinityFilter过滤器可解决,创建实例时指定scheduler_hints -> group_hosts = [host1, host2],那么实例不能创建在这些host上。创建时,需要获取指定项目的其他实例所在的host,将其放入这过滤列表中。
缺点:每一次创建实例的请求都强依赖于上一次实例创建后的host,导致只能串行的一个一个创建实例。(当然可以采用预分配后创建的方式优化)
(2)采用hash算法对实例将要分配到的host节点进行预分配
需求2:
(1)客户端创建实例时指定机柜ID,机柜参数可以在Flavor里面的extra_specs中设置(key-value值)。同时,nova的instances表需要新增机柜ID字段:cabinet_id
ÿ
这篇关于深挖Openstack Nova - Scheduler调度策略(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!