写点什么

深入浅出 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:3056261

评论

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

到底什么样的数字化才是企业需要的?用2个数字化案例告诉你

优秀

数字化转型

超越所有人的成就,牛顿的光芒也无法掩盖的天才数学巨人

图灵社区

数学 微积分 数学家

图文实录|多模态自然语言处理最新进展

澜舟孟子开源社区

人工智能 自然语言处理 算法 后端

Introduction to ByteDance Pitaya

字节跳动终端技术

Python Machine Learning Pitaya ByteDance End Intelligence

如何正确理解Java领域中的锁机制,我们一般需要掌握哪些理论知识?

PivotalCloud

三面阿里,offer到手定级P7,过程很艰辛结果很满意

程序知音

程序员 阿里 java面试 后端技术 Java八股文

卡塔尔世界杯足球赛dapp系统智能合约开发

开发微hkkf5566

Java编程之语法结构

魏铁锤

数据赋能智慧重庆,巴适得很!

云计算

视频会议,WebRTC及RingCentral解决之道

RingCentral铃盛

WebRTC 视频会议 企业号九月金秋榜

MobPush 安卓推送消息数据解析推荐实现

MobTech袤博科技

android 移动推送

超越所有人的成就,牛顿的光芒也无法掩盖的天才数学巨人

图灵教育

数学 微积分 数学家

【大话C语言】分支与循环语句

Albert Edison

C语言 开发语言 for循环 if语句 9月月更

【计算讲谈社】第十一讲|商用车智能驾驶商业化实践:“科技+保险”模式探索

大咖说

智能驾驶 商用车

05_Linux基础-NGINX编译安装^判断是否启动^修改端口^启动停止重启^相关路径^中文乱码-Windows、Linux文件传输

mycpen

Linux

高端手机市场的诸神之战,vivo举起一把“雷神之锤”

脑极体

阿里云对边缘计算的探索和实践

阿里云CloudImagine

边缘计算

「技术人生」第9篇:如何设定业务目标

阿里巴巴中间件

阿里云 业务 技术文章

MobPush 指定页面跳转最佳实现

MobTech袤博科技

ios android intent 页面跳转

06_Linux基础-NGINX和浏览器、网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能-备份脚本

mycpen

Linux

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令-快捷键-改为英文编码-3个时间-stat-其他基础命令

mycpen

Linux

Alluxio入选英特尔AI百佳创新激励计划

Alluxio

人工智能 创新 英特尔 Alluxio 9月月更

Nacos 企业版如何提升读写性能和可观测性

阿里巴巴中间件

阿里云 微服务 云原生 中间件 可观测

07_Linux基础-计划任务-备份脚本-变量定义和使用

mycpen

Linux

09_Linux基础-SHELL-标准输入与标准输出-重定向-管道

mycpen

Linux

设计模式的艺术 第十八章解释器设计模式练习(为数据库备份和同步开发一套简单的数据库同步指令,指令可对数据库中的数据和结构进行备份。例如,输入指令“COPY VIEW FROM srcDB TO desDB”表示将srcDB中所有视图对象复制至desDB)

代廉洁

设计模式的艺术

《数据结构》线性表之顺序表的实现(C语言)

孤衫

数据结构 C语言 9月月更

AOP

平凡人生

08_Linux基础-vim-tmux-字符编码

mycpen

Linux

海泰方圆成功举办“引领数据安全创新,加速数字经济发展”技术研讨会

电子信息发烧客

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