跳转到: 导航, 搜索

SchedulerImplementation

调度器实现

关于此主题的实时笔记可以在这里获取: http://etherpad.openstack.org/Scheduler

用户发起构建新的切片/实例/虚拟机请求。

在数千个潜在节点中,我们如何决定将它放置在哪里?

确定影响决策的因素,例如

  • 定性适用性度量(硬性规则)
    • 它是否“活跃”(节点可能具有某种状态(“活跃”、“维护”等)?)
    • 硬件是否是当前版本或正在逐步淘汰?
    • 它能放得下吗?(一个 16 GB 的切片无法放置在只有 256 MB 可用空间的节点上)
  • 定量适用性(权重)
    • 状态(可能有更多状态可用于新的虚拟机,但有些状态可能比其他状态更受欢迎(例如,应优先选择“活跃”服务器而不是“备用”服务器,但必要时,“备用”服务器也是合适的))
    • 服务器在执行其他任务(例如构建虚拟机或清理旧虚拟机)时有多忙?
    • 用户是否在同一集群中有其他虚拟机(不是硬性规则,因为我们只有这么多集群)
    • 用户是否在同一节点上有其他虚拟机(不是硬性规则,因为我们只有这么多节点)
      • 节点是否已经缓存了磁盘镜像的副本?

我们需要“最佳匹配”、“足够好”还是“还不错”?

讨论包括拍卖和“去获取它”以及想法。

  • 主机仅在有效候选人时响应
  • 然后最不忙的获胜
  • 在启动队列中,就像硬币分类器(更复杂)
  • 最先响应的获胜,除非很大,然后最不忙的获胜
  • 主机智能更好,因为它具有可扩展性,更高级别的智能则没有
  • 可插拔

当前 Ozone 实现的服务器最佳匹配 (SBM)

  • 硬性规则
  • 软性规则
  • 最佳加权获胜