白话mesos(1)

什么是mesos

Mesos的起源于Google的数据中心资源管理系统Borg。Mesosphere将mesos定位为DCOS(数据中心的操作系统)。
简单来看,mesos是一个master/slave的结构。master是一个全局资源调度器,采用某种策略把某个slave上的空闲资源分配给某个framework。master、slave、framework三者的关系如下图所示



master作为注册中心,slave向master报告当前空闲资源数量,master把空闲资源数量发给framework作为资源邀请,framework根据应用程序的需求,选择接受或拒绝来自master的资源邀请。如果接受,就在slave上启动一个executor来执行对应的task。

mesos流程

官方对mesos事件的过程描述如下:


  • Slave 1向Master汇报其空闲资源:4个CPU、4GB内存。然后,Master触发分配策略模块,得到的反馈是Framework 1要请求全部可用资源。
  • Master向Framework 1发送资源邀约,描述了Slave 1上的可用资源。
  • Framework的调度器(Scheduler)响应Master,需要在Slave上运行两个任务,第一个任务分配<2 CPUs, 1 GB RAM>资源,第二个任务分配<1 CPUs, 2 GB RAM>资源。
  • 最后,Master向Slave下发任务,分配适当的资源给Framework的任务执行器(Executor),接下来由执行器启动这两个任务(如图中虚线框所示)。 此时,还有1个CPU和1GB的RAM尚未分配,因此分配模块可以将这些资源供给Framework 2。

资源分配

我们来更深入地看一下资源邀约和分配策略,因为这对Mesos管理跨多个Framework和应用的资源,是不可或缺的。 我们前面提到资源邀约的概念,即由Master向注册其上的Framework发送资源邀约。 每次资源邀约包含一份Slave节点上可用的CPU、RAM等资源的列表。 Master提供这些资源给它的Framework,是基于分配策略的。分配策略对所有的Framework普遍适用,同时适用于特定的Framework。 Framework可以拒绝资源邀约,如果它不满足要求,若此,资源邀约随即可以发给其他Framework。 由Mesos管理的应用程序通常运行短周期的任务,因此这样可以快速释放资源,缓解Framework的资源饥饿; Slave定期向Master报告其可用资源,以便Master能够不断产生新的资源邀约。 另外,还可以使用诸如此类的技术, 每个Fraamework过滤不满足要求的资源邀约、Master主动废除给定周期内一直没有被接受的邀约。
分配策略有助于Mesos Master判断是否应该把当前可用资源提供给特定的Framework,以及应该提供多少资源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章