简介

  • 集群调度的主要目标是提高集群的利用率和使用效率。

中央式调度器架构

为所有任务都使用一个中心调度算法。其缺点是不易增加新的调度策略,也不能随着集群的扩展而扩展。

双层调度器架构

使用一个动态资源管理器提供计算资源或者存储资源给到多个并行的调度框架。每一个调度框架所拥有的都是一个整个资源的一个子集。为什么是一个动态资源管理器呢?是相对于静态的集群分区来说的。我们可以静态的把集群分为几个区,分别服务于不同的应用。上面的动态资源管理器完成工作就是把静态的分区工作动态化。由于两层调度无法处理难以调度的挑剔任务,且不能根据整个集群的状态做出决策,google 引入下面的调度架构。

共享状态架构

使用无锁的乐观并发控制算法。那么对比起来,Two-level schedulers 本质上是悲观调度算法。Omega,google 的下一代调度系统中使用了该架构。

在 omega 看来,mesos 的 offer 的机制本质上是一个动态的过滤机制,这样 mesos master 向应用框架提供的只是一个资源池的子集。当然可以把这个子集扩大为一个全集,也是 share state 的,但其接口依然是悲观策略的。