【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

评论

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

从程序与机器码看低代码演进方向

印哥爱学习

编程 低代码

Go- 字符串处理

HelloBug

Go 语言 字符串处理

NodeJs深入浅出之旅:包与NPM 🌛

空城机

大前端 Node 8月日更

Go- 指针

HelloBug

指针 Go 语言

小A数仓之路:数仓现状与解决方案

水滴

数据仓库 数据架构 8月日更 数据架构体系 数据规范

微信业务架构图 & 学生管理系统

I see you

Spring XML 原理

gin

xml spring 自定义标签

多看了几套房

escray

生活记录 8月日更

农业第一性原理

非著名程序员

个人成长 认知提升 思维 8月日更

上游思维:先天下之忧而忧

石云升

读书笔记 8月日更 上游思维

LeetCode刷题01-简单 两数之和

ベ布小禅

8月日更

英国“蓝色”氢气计划因碳足迹高遭受重击

CECBC

container 包详解

Rayjun

Go 语言

区块链技术在溯源服务中的应用思考

CECBC

模块一作业

Geek_fc100d

「架构实战营」

网络攻防学习笔记 Day113

穿过生命散发芬芳

网络攻防 8月日更

Go- 时间与日期

HelloBug

时间 Go 语言 日期

理性创业,堵住失败的源头

boshi

创业

在网页上直接运行Win11,5秒内用AI克隆自己的声音 | 蛮三刀酱的Github周刊第二期

Zhendong

GitHub AI Windows11

数字人民币弯道超车领先世界,采用独创设计彻底根治区块链顽疾

CECBC

Flutter 绘制动机 VSYNC 流程源码全方位分析

工匠若水

flutter android 8月日更

MySQL远程连接

一个大红包

8月日更

闲话哲科思维与软件开发

印哥爱学习

计算机 经验总结

模块一作业

TIEDPAG

架构训练营

架构实战营 - 模块一作业

en

架构实战营

你的项目真的适合微服务架构吗?微服务架构有哪些痛呢?(一)

我爱娃哈哈😍

微服务 后端 架构设计 架构设计实战

sql task03 复杂一点的查询

橙橙橙橙汁丶

CSS的设计模式(三)ITCSS

Augus

CSS 8月日更

深入了解RocketMQ之客户端

邱学喆

图像分类-flower_photos 实验研究

毛显新

人工智能 神经网络 tensorflow 图像处理

醒酒菜:动画图解核心内存区--堆

阿Q说代码

GC 堆内存 8月日更 堆区分代 图解对象分配过程

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