资讯专栏INFORMATION COLUMN

译 | 像使用一台主机一样管理集群

Jingbin_ / 2703人阅读

摘要:不论是还是,都是某种意义上为集群设计的操作系统,让用户像使用一台单机一样来使用整个集群。例如的就是用来在管理的集群上进行任务调度,已经成为了的孵化器项目。

【编者的话】不论是 YARN、Mesos 还是 Omega,都是某种意义上为集群设计的操作系统,让用户像使用一台单机一样来使用整个集群。向下集中管理所有物理资源,向上承载各种集群化的应用; 同时, docker 的出现也为云操作系统提供了更有力的支撑。

1984年,SUN 的 John Gage 说出了那句家喻户晓的名言 “网络就是计算机”

三十年后,Gage 的梦想“几乎”成为的现实。特别是随着 web 2.0 和云计算时代的到来,人们可以使用任何设备从任何地方通过互联网访问任何云端的资源。

不过即使在“云端”,实际上还是一堆物理服务器。每一台服务器的 CPU 和内存资源都是有限的,但是组合成集群就像云一样无穷无尽。套用 Gage 的名言,可以说“集群就是计算机”

当单机的 CPU 性能硬盘容量逐渐碰到了天花板,通过 Hadoop 这样的集群化技术来突破单机性能瓶颈就越来越流行。当然在 Hadoop 出现之前,集群方案早就应用于高性能的生产系统,例如 Weblogic 或者集群化的 WEB 服务器(复杂均衡按照 round-robin 算法将流量发送到集群中的 Web 服务器上)。这些集群方案都针对特定场景设计,无法像通用的计算机一样用来运行各种不同的软件。

Hadoop 是第一个具有通用的集群化计算平台特征的技术,而且目前已经发展地相当成熟。随着新的集群化计算技术层出不穷,例如 Spark、Storm 和 Cassandra,运维人员希望能够隔离它们以便更好的管理,同时,从节约成本的角度讲, 大家又希望公司内部各个团队能够共用这些昂贵的计算资源。

目前解决这个问题的两大法宝是 Hadoop YARN 和 Apache Mesos。Mesos 的设计受到了 Google 的 Omega 平台启发,而后者则来自 Google 内部久经考验的Borg任务管理平台。同样的事情当初也发声在 Hadoop 之上,它就是受到了 Google 的 GFS 和 Big-Table 启发。不论是 YARN、Mesos 还是 Omega,都是某种意义上为集群设计的操作系统,让用户像使用一台单机一样来使用整个集群。向下集中管理所有物理资源,向上承载各种集群化的应用。

因为 YARN 本身与 Hadoop/Map Reduce v2 绑定,对于使用早期 Hadoop 版本的开发者,升级到 YARN 也许是一个比较容易的决定。理论上可以将 YARN 跑在 Mesos 上,不过有些人担心随之而来的两层资源分配问题。

Mesos 可以支持大量的框架(插件),逐步在构建一个快速增长的生态环境。例如 Twitter的 Aurora 就是用来在 Mesos 管理的集群上进行任务调度,已经成为了 Apache 的孵化器项目。此外 Ringmaster 则用来在 Mesos 上快速运行 Cassandra 和 Spark。

Chronos 相当于 Mesos 之上的 crontable,Marathon 则相当于 init.d,让大家用熟悉的方式来调度任务。

最激动人心的还是 Docker 与 mesos 的整合,几乎让 Mesos 可以运行任何语言编写的软件。

Docker 的崛起本身和集群技术倒没有直接关系,它首先被用来代替传统的 VM(虚拟机)。容器分享了底层操作系统,远比传统 VM 更加轻量。类似技术在2000年就出现了,那就是“jail”命令。Wiki 有关词条描述了 35 年来 chroot 如何发展到 jails,最后的 Docker 和容器成为了集大成者。

Docker 化的应用像一个 tar 压缩包,在一台普通的物理机上,你可以轻松地运行数十个独立的 Docker。对于一个由 Mesos 管理的集群,而且恰好你的应用某种程度上使用了分布式的架构,那么瞬间你的集群变成了一台强大的大型机。其实 tar 本身意思是 “tape archive”,就是过去大型机磁带系统的文件格式。

使用 Docker 容器来完全取代传统的 jar 或者 ear 文件,一夜间用 Mesos 来完全取代 weblogic,还是有点操之过急——目前传统软件的架构依然是 web、计算逻辑和存储分开部署。不过对于互联网公司的后台,用 Mesos 来承载 web 服务器集群应付高并发业务,完全不是什么新鲜事儿了。

点击查看英文原文
原文作者:michaelmalak

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26494.html

相关文章

  • 如何用Docker编排容器

    摘要:应用被绑定到虚拟机或者容器并且成为主要的管理元素。采用的方法是他们正在使用的一系列实现容器自动化的工具,和。,使用相同的作为标准引擎实例,被设计用来提供容器可扩展的环境。 欢迎来到后硬件时代。在这个时代我们把容器或者是虚拟机迁移到我们需要的地方,而不需要考虑容器或者虚拟机。这里我们介绍一些新的Docker工具来做这份工作。 构建下一代应用是一回事,管理和运行它们是另一回事。 showI...

    xialong 评论0 收藏0
  • Rancher 2.0快速上手指南

    摘要:而用户能在同一平台上管理任何集群,轻松地充分利用的强大能力及其迅速壮大的生态系统。在本指南中,你将会了解如何快速上手。环境中的所有主机必须允许彼此间的流量能够进行跨主机联网。这一过程需要几分钟完成。如果服务正常,将会显示状态为绿色。 大家好,给大家介绍一下,这是帮助大家率先上手尝试Rancher 2.0的神器 @Rancher 2.0快速上手指南 内容导读 准备一台Linux主机 启...

    xiaodao 评论0 收藏0
  • Rancher 2.0快速上手指南

    摘要:而用户能在同一平台上管理任何集群,轻松地充分利用的强大能力及其迅速壮大的生态系统。在本指南中,你将会了解如何快速上手。环境中的所有主机必须允许彼此间的流量能够进行跨主机联网。这一过程需要几分钟完成。如果服务正常,将会显示状态为绿色。 大家好,给大家介绍一下,这是帮助大家率先上手尝试Rancher 2.0的神器 @Rancher 2.0快速上手指南 内容导读 准备一台Linux主机 启...

    hufeng 评论0 收藏0
  • 虚拟主机是什么意思-服务器与虚拟主机有什么区别?

    摘要:服务器与虚拟主机有什么区别服务器和空虚拟主机的区别在于以下几点一服务器,也称伺服器,是提供计算服务的设备,通常指硬件。虚拟主机是使用特殊的软硬件技术,把一台真实的物理服务器主机分割成多个逻辑存储单元。请问一下,服务器、云服务器和虚拟主机有什么区别?1、服务器:相当于你独自拥有的一台电脑,所有的操作权限你都有。维护成本高,费用高,稳定性最好。需要有自己的机房,类似华为、浪潮等服务器集群。2、云...

    littlelightss 评论0 收藏0
  • 虚拟主机的意思是什么-服务器与虚拟主机有什么区别?

    摘要:服务器与虚拟主机有什么区别服务器和空虚拟主机的区别在于以下几点一服务器,也称伺服器,是提供计算服务的设备,通常指硬件。虚拟主机是使用特殊的软硬件技术,把一台真实的物理服务器主机分割成多个逻辑存储单元。服务器与虚拟主机有什么区别?服务器和空虚拟主机的区别在于以下几点:一、服务器,也称伺服器,是提供计算服务的设备,通常指硬件。而虚拟主机是指在网络服务器上分出一定的磁盘空间,用户可以租用此部分空间...

    shenhualong 评论0 收藏0

发表评论

0条评论

Jingbin_

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<