scheduler_default_filters 详解

Filter scheduler 是 nova-scheduler 默认的调度器,调度过程分为两步:

   

通过过滤器(filter)选择满足条件的计算节点(运行 nova-compute)

通过权重计算(weighting)选择在最优(权重值最大)的计算节点上创建 Instance。

   

Nova 允许使用第三方 scheduler,配置 scheduler_driver 即可。

   

Scheduler 可以使用多个 filter 依次进行过滤,过滤之后的节点再通过计算权重选出最适合的节点。

   

scheduler_default_filters 详解

   

【RetryFilter】

   

RetryFilter 的作用是刷掉之前已经调度过的节点。

   

举个例子方便大家理解: 假设 A,B,C 三个节点都通过了过滤,最终 A 因为权重值最大被选中执行操作。 但由于某个原因,操作在 A 上失败了。 默认情况下,nova-scheduler 会重新执行过滤操作(重复次数由 scheduler_max_attempts 选项指定,默认是 3)。 那么这时候 RetryFilter 就会将 A 直接刷掉,避免操作再次失败。

RetryFilter 通常作为第一个 filter。

   

【AvailabilityZoneFilter】

   

为提高容灾性提供隔离服务,可以将计算节点划分到不同的Availability Zone中。

   

例如把一个机架上的机器划分在一个 Availability Zone 中。 OpenStack 默认有一个命名为 "Nova" 的 Availability Zone,所有的计算节点初始都是放在 "Nova" 中。 用户可以根据需要创建自己的 Availability Zone

   

【RamFilter】

   

RamFilter 将不能满足 flavor 内存需求的计算节点过滤掉。

   

对于内存有一点需要注意: 为了提高系统的资源使用率,OpenStack 在计算节点可用内存时允许 overcommit(超售),也就是可以超过实际内存大小。 超过的程度是通过 nova.conf 中 ram_allocation_ratio 这个参数来控制的,默认值为 1.5

ram_allocation_ratio = 1.5

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydyxp.html