Apache Mesos:让你资源利用率更高、扩展性更好

日期:2017-4-12作者:Walker Rowe

【TechTarget中国原创】

Apache Mesos已经成为主要企业一种流行的手段,来进行线性扩展的能力、减少浪费资源消耗,以及抽象存储、CPU和内存。

由加利福尼亚大学伯克利分校的开发人员创建,由包括Twitter、Apple和Netflix在内的主要企业所拥护的Apache Mesos,它是一个开源软件,可以在一组机器上抽象出存储、CPU和内存 Apache Mesos的主要吸引力之一是它线性扩展,这意味着随着负载水平的增加,响应时间可以成比例地增加——基本上是无限制的扩展。Mesos将自己称为“分布式系统内核”,因为它采用了Linux内核的核心原则,但却应用在不同的抽象级别

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Walker Rowe
Walker Rowe

资深IT从业人员

云计算与虚拟化>更多

相关推荐

  • 从OpenStack Ocata看容器技术的走势

    然而2017年2月,OpenStack社区却突然发布了OpenStack的第15个版本Ocata。这一版本的发布,与上一版本的发布时间间隔只有四个月。

  • 听安全老炮儿艾奇伟谈移动虚拟化

    过去,虚拟化技术一直被应用于桌面计算机上。那么在这个移动设备成为个人、企业重心的时代,虚拟化技术是否也可以在移动领域发挥作用呢?

  • 预测潜风险:加强容器保护

    容器是IT行业最热门的软件话题。共享虚拟机通用部分——操作系统、管理工具乃至应用,大大减少了镜像消耗的内存资源,同时减少了加载相同代码的众多副本所需占用的网络带宽。

  • OpenStack Magnum如何部署Docker Swarm等容器

    使用容器技术,管理员能够部署完整应用或者是应用的重要组成部分,并且其体积只有几十MB。容器启动过程只需要几秒钟,而hypervisor需要数分钟才能够完成启动过程。

技术手册>更多

  • 如何扩展与管理虚拟架构?

    管理员在使用和管理他们的虚拟化基础架构中将遇到哪些问题?该如何解决?本技术手册将介绍解决问题的方法、策略和工具。

  • 高级虚拟化之存储

    虚拟化的优势远远超越了巩固现有应用。对服务器虚拟化而言,在同一个物理服务器上能够运行多个虚拟工作负载是必要的,同时企业级存储也将受益于虚拟化技术。在企业内部,存储虚拟化技术提供聚集优势——让不同的或孤立的存储资源能够集中供应和分配,而忽略其物理位置。可以通过多种方式实施存储虚拟化,以达到性能、管理效率和灵活性上的平衡。

  • 如何标识与追踪虚拟机?

    随着很多企业部署越来越多的虚拟化平台,如何区分物理服务器和虚拟服务器也变得越来越难。比较好的标识服务器对象(无论是虚拟环境还是物理环境)的方法是使用每一台计算机对象Active Directory中的Description属性。具体该如何操作呢?

  • 虚拟桌面基础架构VDI

    VDI,英文全称Virtual Desktop Infrastructure,即虚拟桌面基础架构,正迅速成为一个热门词语。本手册将探讨什么是虚拟桌面架构、与传统桌面解决方案的比较、适用于什么范围以及怎样实施VDI。

TechTarget

最新资源
  • 存储
  • CIO
  • 网络
  • 服务器
  • 数据中心
  • 云计算
【TechTarget中国原创】

Apache Mesos已经成为主要企业一种流行的手段,来进行线性扩展的能力、减少浪费资源消耗,以及抽象存储、CPU和内存。

由加利福尼亚大学伯克利分校的开发人员创建,由包括Twitter、Apple和Netflix在内的主要企业所拥护的Apache Mesos,它是一个开源软件,可以在一组机器上抽象出存储、CPU和内存 Apache Mesos的主要吸引力之一是它线性扩展,这意味着随着负载水平的增加,响应时间可以成比例地增加——基本上是无限制的扩展。Mesos将自己称为“分布式系统内核”,因为它采用了Linux内核的核心原则,但却应用在不同的抽象级别。

停止浪费虚拟机资源

数据中心管理员频繁地利用虚拟机(VM),导致企业浪费大量资金用于没有使用的资源上。这个问题通常通过分区来解决,通过分配一组特定的服务器来运行特定的功能。在传统环境中,你可以使用分区来定义需求,例如需要特定数量的服务器,然后相应地分配VM和存储。在公有云中—用户以资源使用为基础计费,无法访问云操作系统——分区将更大或更小的模板用于VM配置上。

虽然这种方法足够有效了,但这对协调服务(colocate services )更实际,这一服务是Apache Mesos输入图片的所在地。分区将机器用于特定任务,例如数据库服务器,另一个则用于运行,例如Web服务器。协调更有效率,因为它允许你在VM或服务器上运行多个服务。它也降低了成本,因为在同一台服务器上运行多个服务减少了所需的服务器数量。 Mesos不是依靠分区来运行服务的,而是使用托管方式来允许软件根据需要获取资源。就技术术语而言,Mesos用自己的框架替代你正在使用的资源管理器,并实现调度和执行接口的功能。

Mesos与个人软件、Docker容器,和配置为使用Mesos作为资源管理器的大型数据集群协同工作。Apache Mesos不是VM的业务流程系统。Mesos还使用Linux控制组(也称为cgroups)来限制资源,优先处理进程并进行计算。这在公有云中很有用,因为它允许供应商根据使用的资源来对客户收费。Cgroups在传统环境中也很有用,因为它们可以限制进程,从而不会占用机器资源。

Mesos和YARN解决分区问题

Apache Hadoop还有另一个资源协调器YARN,它是Apache Hadoop MapReduce的资源管理员,执行与Mesos大致相同的功能。事实上,Myriad是一个开源项目,它可以让数据中心同时使用这两种产品。例如,如果你想使用Mesos运行容器应用,又想使用YARN来运行Hadoop,那么可以一起使用Mesos和YARN。

如果我们仔细看看雅虎重写了Hadoop添加了YARN的原因,我们就可以更好地了解Mesos和YARN的功能。

为YARN编写框架是一项复杂的任务,这更适合于大型软件产品的工程师,如Apache Spark,而不是最终用户。Hadoop的配置使得使用YARN更容易。在集群环境中,你可以简单地编辑名称节点上的配置文件,然后把整个Hadoop安装复制到日期节点上——YARN可以在不需要任何进一步更改配置的情况下工作。

Hadoop早期版本的主要问题是分区。通过分区,你可以指定插槽来运行映射作业或将作业减少到Hadoop集群中的机器上。一旦你分配了一个插槽来运行一个映射作业,你就不能使用它来运行减少作业,反之亦然。假设你已经分配了10个插槽来运行映射作业,10个插槽来在Hadoop集群的机器上减少作业。现在,我们假设Hadoop需要运行11个映射 作业,你会发现你限制了自己,因为你没有为映射 作业分配足够的插槽,而且你了不能使用任何额外的插槽分配给减少 工作。这个问题清楚地表明,我们需要一个更好的方式来共同服务,并取消分区。对此,Apache做出了回应,从而让YARN和Mesos可以排除服务。

Apache Mesos架构

Apache Mesos架构由一个主守护进程组成,可以管理每个群集节点上运行的代理守护程序。代理程序也使用了cgroup来确保它们在已分配的内存、CPU和存储空间中工作。每个代理使用一个Mesos框架运行任务。该框架由两个组件组成:调度程序——其向主机注册以接收资源;执行器——其从调度器接收这些资源并使用它们运行框架的任务。实际上,执行器 会识别出哪正在运行的应用程序资源可用。

Mesos和容器编排

像Kubernetes和Docker Swarm一样,Mesos也执行容器编排。Mesos使用三种类型的容器技术:Composing,它允许不同的容器技术一起运行;Docker和Mesos自己的容器化,这是默认配置。

Apache Mesosphere

Apache Mesosphere是向原始Apache Mesos框架添加附加功能的软件; 它包括Aurora 、Chronos和Marathon。

由Twitter开发运行无状态服务,如Java VM和Web服务器,Apache Aurora是为长期运行和cron工作而设计的框架。Apache Chronos是一个弹性分布式系统,表示作业之间的依赖关系。由Mesosphere撰写,Apache Marathon是一个可以扩展到数千个物理服务器的容器编排系统。Aurora、Chronos和Marathon都使用JSON和REST API与Mesos接口。

帮助创建Mesos的Twitter工程师之一在DockerCon上表示,他建议Mesos用户在家庭实验室中要至少使用三台机器来运行工作中的Mesos原型。Apache为有兴趣尝试Mesos的用户提供了minimesos实验和测试工具。Minimesos包括一个bash shell,你可以在其中部署Mesos Elasticsearch框架。

主流企业牛拥抱Mesos

你可以想像,像Uber那样的企业有一些重要的数据处理需求。Uber使用Apache Cassandra数据库——一个NoSQL面向列的数据库来存储位置数据。面向列的数据库一次写入一行/列组合,而不是写入整行列,因此它不会在空列中浪费空间。面向列的数据库还将列保持在一起,以便快速检索。

除了依靠Mesos跟踪数据,Uber还定期向Mesos提供代码。在2016年,Uber写了一个名为DC / OS Apache Cassandra的扩展,这使得在DC / OS上部署Mesos更容易。DC / OS协调主代理关系中的多个Mesos代理。像Mesos一样,DC / OS是分布式操作系统,但具有配置管理Marathon和Chronos等其他功能。你可以在DC / OS的顶部运行Hadoop、Spark、Cassandra等等,因为它是可扩展的。最近,DC / OS Apache Cassandra被集成到了Mesosphere DC / OS中。

Netflix也是Apache Mesos的主要用户和贡献者。Netflix表示,它运行在亚马逊弹性云计算(EC2)上,并使用Mesos提供“细粒度的资源分配到可以打包到单个EC2实例的各种大小的任务上。2015年,Netflix开发了Fenzo,这是Apache Mesos框架的开源调度程序。Fenzo管理部署的调度和资源分配,并向Mesos添加集群自动缩放功能。