Mesos 了解

Mesos是什么

官网

问题1. 集群部署主要在VM或者在物理层静态的进行资源划分, 如下图, 划分每3台主机作为一个集群运行各自的应用

static_resource_split.png

此时从时间维度观察3个集群的资源利用情况, 如下图

static_resource_use.png

可以观察到整个时间轴上, 整体资源利用率并不很高, 但是假设9台机器组成共享资源池, 每个应用在执行过程中从资源池中申请需要的资源并执行, 此时整体资源利用率相对提高

问题2. 分布式系统通过联合调度进行任务的执行,由协调器(负责协调在集群中执行想要运行的代码)和Worker(具体的功能代码)组成

distributed_struct.png

在分布式系统中, 协调器与具体业务功能无关且各系统的协调器功能类似, 是否可以将协调器进行抽象并统一负责协调所有集群的任务执行, 实现一个分布式的协调系统

Mesos是一个分布式的集群管理框架, 宗旨为尝试和提高集群的利用率和性能、提供通用的分布式系统框架.

mesos_struct.png

Mesos框架本身只负责资源的分配, 而不负责资源的调度, 每个业务功能的调度器和mesos master API进行通信, mesos master根据剩余资源调度mesos slave执行相应的任务

好处:

  1. 可以在一批机器上部署执行多个分布式系统, 动态划分(解决静态资源划分问题)和共享资源, 并且不用为每个分布式实现一套协调功能
  2. 提供统一的分布式功能集(故障检测、分布式任务、任务启动、任务监控、结束任务、清理任务等)

架构

architecture.jpg

说明:

  1. mesos由framework、master、slave组成, fromework由调度器和执行器组成, 使用zookeeper来维护集群的高可用性和配置信息
  2. mesos提供资源的抽象提供双层调度系统, master主要负责从slave收集资源并根据资源分配算法以resource offer(list)的方式提供的框架的调度器, 调度器接收resource offer并决定如何使用, 可以选择接受或者拒绝资源, 当全责接收资源时则发送TaskInfo()信息给master,master经过检查下发给slave并由slave调用TaskInfo中指定的执行器来执行具体的任务。 流程图如下图:
architecture-example.jpg

Mesos用来干什么

先看下Mesos架构图:

mesos_environment.png

将Mesos生态组件和Linux操作系统对比:

distributed_os.png

可以用来构建分布式的操作"系统", 即数据中心操作系统(DCOS), mesosphere公司使用mesos构建了Mesosphere DCOS

版本

预言使用版本为: 0.24.0 (9月2日)
目前最新release版为: 0.24.1 (9月25日)
目前最新rc版为: 0.25.rc2 (10月6日)

每10天一个测试版, 每20天一个修正版本, 每40天一个子版本

开发语言&协议

开发语言: C++
协议: Apache License Version 2.0
Mesos扩展模块开发: C++ 若想使用Python,Java,GO等其他语言,需要使用C++实现代理
框架开发: Python, Java, Go等

你可能感兴趣的:(Mesos 了解)