QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

深入浅出 Mesos(一):为软件定义数据中心而生的操作系统

  • 2015-04-14
  • 本文字数:2047 字

    阅读完需:约 7 分钟

【编者按】Mesos 是 Apache 下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos 最初是由加州大学伯克利分校的 AMPLab 开发的,后在 Twitter 得到广泛使用。InfoQ 接下来将会策划系列文章来为读者剖析 Mesos。本文是整个系列的第一篇,简单介绍了 Mesos 的背景、历史以及架构。

注:本文翻译自 Cloud Architect Musings ,InfoQ 中文站在获得作者授权的基础上对文章进行了翻译。


我讨厌“软件定义数据中心(SDDC)”这个词,并不是因为我质疑这个概念,而是我发现很多公司都对这个词有误用,他们甚至直接把这个词拿来套用,并急于把自己定位为下一代数据中心的创新者。具体来说,我认为,在商用 x86 硬件上运行软件(应用)并不是什么 SDDC 解决方案,它也不具备虚拟化硬件到资源池的能力。真正的 SDDC 底层基础架构应该可以从运行于其上的应用程序中抽象出来,并根据应用程序不断变化的需求,动态且自动地分配、重新分配应用程序,然后运行于数据中心的不同组件之中。

这就是为什么我一直兴奋地要在后面介绍 Mesos,一个 Apache 开源项目。为什么我对 Mesos 如此兴奋?回想 x86 虚拟化之初对数据中心曾经的承诺:通过增加服务器利用率使其更高效,通过从物理基础架构抽象应用使其更敏捷。虽然收获颇丰,但是以虚拟机为单位,粒度仍不够精细,如果应用程序都过于庞大,那就难以充分实现这一承诺。如今,飞速发展的容器技术、分布式应用程序和微服务技术正悄然改变着我们对数据中心的运行和管理方式。

试想,可否整合数据中心中的所有资源,并将它们放在一个大的虚拟池里,代替单独的物理服务器;然后开放诸如 CPU、内存和 I/O 这些基本资源而不是虚拟机?同样,可否把应用程序拆分成小的、隔离的任务单位,从而根据数据中心应用的需求,从虚拟数据中心池中动态分配任务资源?就像操作系统将 PC 的处理器和 RAM 放入资源池,使其可以为不同的进程协调分配和释放资源。进一步讲,我们可以把 Mesos 作为操作系统内核,然后将数据中心看为 PC。这也是正是我想说的:Mesos 正在改变数据中心,它让真正的 SDDC 成为现实。

接下来我先介绍下 Mesos 的历史。Mesos 的起源于 Google 的数据中心资源管理系统 Borg。你可以从 WIRED 杂志的这篇文章中了解更多关于Borg 起源的信息及它对Mesos 影响。Twitter 从Google 的Borg 系统中得到启发,然后就开发一个类似的资源管理系统来帮助他们摆脱可怕的“失败之鲸”(译者注:见上图)。后来他们注意到加州大学伯克利分校AMPLab 正在开发的名为Mesos 的项目,这个项目的负责人是Ben Hindman,Ben 是加州大学伯克利分校的博士研究生。后来Ben Hindman 加入了Twitter,负责开发和部署Mesos。现在Mesos 管理着Twitter 超过30,0000 台服务器上的应用部署,“失败之鲸”已成往事。其他公司纷至沓来,也部署了Mesos,比如Airbnb(空中食宿网)、eBay(电子港湾)和Netflix。

Mesos 是如何让 Twitter 和 Airbnb 这样的公司,通过数据中心资源更高效的管理系统,扩展应用的呢?我们从一个相当简单但很优雅的两级调度架构开始说起。

上图修改自Apache Mesos 网站上的图片,如图所示,Mesos 实现了两级调度架构,它可以管理多种类型的应用程序。第一级调度是Master 的守护进程,管理Mesos 集群中所有节点上运行的Slave 守护进程。集群由物理服务器或虚拟服务器组成,用于运行应用程序的任务,比如Hadoop 和MPI 作业。第二级调度由被称作Framework 的“组件”组成。Framework 包括调度器(Scheduler)和执行器(Executor)进程,其中每个节点上都会运行执行器。Mesos 能和不同类型的Framework 通信,每种Framework 由相应的应用集群管理。上图中只展示了Hadoop 和MPI 两种类型,其它类型的应用程序也有相应的Framework。

Mesos Master 协调全部的 Slave,并确定每个节点的可用资源,
聚合计算跨节点的所有可用资源的报告,然后向注册到 Master 的 Framework(作为 Master 的客户端)发出资源邀约。Framework 可以根据应用程序的需求,选择接受或拒绝来自 master 的资源邀约。一旦接受邀约,Master 即协调 Framework 和 Slave,调度参与节点上任务,并在容器中执行,以使多种类型的任务,比如 Hadoop 和 Cassandra,可以在同一个节点上同时运行。

我将在接下来的文章中,详细介绍 Mesos 的体系结构和工作流。我认为,Mesos 使用的两级调度架构以及算法、隔离技术让在同一个节点上运行多种不同类型的应用成为了现实,这才是数据中心的未来。正如我之前所述,这是到目前为止我所见过的,履行 SDDC 承诺最好的现成技术。

我希望这篇介绍让你受用并吊起你了解 Mesos 的胃口。接下来,我将带你深入技术细节,教你一些上手方法,还会告诉你如何加入社区。

查看英文原文: APACHE MESOS: THE TRUE OS FOR THE SOFTWARE DEFINED DATA CENTER?


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流。

2015-04-14 09:3055536

评论

发布
暂无评论
发现更多内容

2020倒计时,大厂核心送给每一个脚踏实地努力着的Android程序员,逆风前行

android 程序员 移动开发

2020年最新字节、阿里、腾讯,移动开发技术总结

android 程序员 移动开发

Flink 的运行架构详细剖析

五分钟学大数据

flink 11月日更

2020荒诞的一年,35岁程序员现状:我现在房贷车贷家庭,学习Android开发的步骤,

android 程序员 移动开发

2020一个Android大牛的面试经历分享(金九银十面试30多家公司)

android 程序员 移动开发

等保测评机构推荐证书有效期是多久?到期后怎么办?

行云管家

网络安全 等级保护 等保测评 等保评测

2020年Android开发者常见面试题(一),android视频开发的面试问题

android 程序员 移动开发

632页!我熬夜读完这份“高分宝典”,竟4面拿下字节跳动offer

Java 程序员 算法 结构

2020年上半年最接地气的Android面经,为你进大厂保驾护航

android 程序员 移动开发

2020年,初级、中级-Android-工程师可能因离职而失业吗

android 程序员 移动开发

2020移动互联网寒冬(Android)求职随感,移动端开发框架

android 程序员 移动开发

2020上半年百度Android岗(初级到高级)面试真题全收录

android 程序员 移动开发

2020字节跳动,腾讯,网易云,美团Android面试题

android 程序员 移动开发

2020年GitHub-上那些优秀Android开源库,这里是Top10!建议收藏

android 程序员 移动开发

2020最全的BAT大厂面试题整理改版,flutter菜鸟教程

android 程序员 移动开发

最全Hadoop HDFS解析(一)

大数据技术指南

11月日更

2020你与字节跳动只差这份笔记,我靠着这份笔记,工资从15K到了40K

android 程序员 移动开发

2020年8月30写篇文章,记录我的字节跳动客户端面试之旅!

android 程序员 移动开发

大牛手撕阿里Spring框架:AOP、IOC、注解、事务,带你统统搞定

Java spring 框架 spring aop spring ioc

2020Android面经,历时一个半月,斩获3个大厂offer,移动端开发工程师面试题

android 程序员 移动开发

2020在项目中使用MVVM的正确打开方式,你没用过的船新版本,还不快学学

android 程序员 移动开发

2020展望Android原生开发的现状,android面试试题

android 程序员 移动开发

2020年是意义非凡的一年,大专的我面试阿里P6居然过了,flutter视频教程12套

android 程序员 移动开发

2020这一年的Android面经汇总(百度、腾讯、滴滴,查漏补缺

android 程序员 移动开发

2020你与字节跳动只差这份笔记,我靠着这份笔记,工资从15K到了40K(1)

android 程序员 移动开发

2020倒计时,大厂核心送给每一个脚踏实地努力着的Android程序员,逆风前行(1)

android 程序员 移动开发

2020年疫情下的Android开发是否还有未来,面试4个月被17家公司拒绝

android 程序员 移动开发

2020年腾讯丶百度丶字节丶OPPO等Android面试大全,附带教你如何写好简历

android 程序员 移动开发

【云计算】什么是私有云?可提供哪些服务?缺点是什么?

行云管家

云计算 公有云 私有云

2020请收好这一份全面-&-详细的Android学习指南,androidstudio播放音频

android 程序员 移动开发

2020跳槽过后“带薪划水”偷刷阿里老哥的面经宝典,移动客户端开发框架

android 程序员 移动开发

深入浅出Mesos(一):为软件定义数据中心而生的操作系统_语言 & 开发_韩陆_InfoQ精选文章