1. 软件定义数据中心
- Mesos的二级调度机制:
maseos协调每个节点的slave,获取每个节点的机器资源。获取资源后,在相应节点运行framework,在容器中执行任务。从而使得多种类型的服务运行在同一台机器上 - mesosphere
2. Messos体系结构
- slave:运行在节点上的守护进程
- framework:调度器+执行器
(1)首先:slave向mater汇报该节点所有可用资源。master将该资源转发给framework。
(2)然后:framework的调度器(scheduler)计算任务需要的具体资源并告知master。
(3)最后:master通知slave分配这些具体资源,另通知framework的执行器(executer)执行任务
【注】:master不是任务调度的角色,所有已不存在性能瓶颈
framework担任任务调度,这些framework以插件形式扩展。开发者专注自身应用的选择和相应framework的选择
3. Mesos的持久化存储和容错
-
持久化存储
(1)分布式文件系统
eg:hdfs,这种文件系统有网络延迟问题,某些应用不适用
(2)使用数据复制的本地文件系统
eg:NoSql数据库。这需要framework静态预留多个节点作为数据复制存储
(3)不用复制的本地文件系统
静态分配一个节点 -
容错
(1)slave:zookeeper实现
(2)framework调度器:注册多个scheduler到master,当一个scheduler发生异常,master切换另一个scheduler来分配任务。scheduler之间的资源状态共享有framework自己实现
(3)slave:slave进程消失,不会影响执行器的继续执行。master重启该节点上的slave进程,改重启进程再次连接节点上得executer。
当slave节点未响应连续多个are you alive的报文后,master从可用资源列表中删除该节点,并报告scheduler该任务执行失败,scheduler执行失败任务处理机制,通常是在新的slave节点上重启该任务
(4)executer:执行器异常,master通知其scheduler,scheduler执行失败任务处理机制,通常是在新的slave节点上重启该任务
4. Mesos的资源分配(DRF分配)
- DRF的目标是:为每个framework在异构环境中获得所需资源的公平份额