Google的大规模集群管理系统Borg(上篇)

本文译者:王勇桥,80后的IT攻城狮,曾供职于IBM多年,现供职于华为公司,担任高级系统架构师。主要从事云计算领域相关的工作。Mesos和Swarm社区的贡献者。对容器化技术,自动化部署,分布式集群管理,资源调度,存储技术有较深的研究。

编者按:本文是对Google在分布式底层架构的经典文章的翻译,原文可以查看这里,由于原文较长,CSDN将分上、下两篇全文刊载此篇论文的翻译,欢迎关注。本文为上篇。

摘要:Google的Borg系统是一个运行着成千上万项作业的集群管理器,它同时管理着很多个应用集群,每个集群都有成千上万台机器,这些集群之上运行着Google的很多不同的应用。Borg通过准入控制,高效的任务打包,超额的资源分配和进程级隔离的机器共享,来实现超高的资源利用率。它通过最小化故障恢复时间的运行时特性和减少相关运行时故障的调度策略来支持高可用的应用程序Borg通过提供一个作业声明的标准语言,命名服务的集成机制,实时的作业监控,以及一套分析和模拟系统行为的工具来简化用户的使用。

我们将通过此论文对Borg系统的架构和主要特性进行总结,包括重要的设计决定,一些调度管理策略的定量分析,以及对十年的使用经验中汲取的教训的定性分析。

1.简介

图片描述

图1 Borg的高级架构。仅显示了成千上万工作节点中的一小部分。

这个在我们内部称为Borg的集群管理系统,它负责权限控制、调度、启动、重新启动和监视全部的Google中运行的应用程序。本文将解释它是如何做到的。

总的来说,Brog主要提供了三个主要的好处:(1)隐藏资源管理和故障处理的细节,因此其用户可以专注于应用程序开发; (2)提供高可靠性和高可用性操作,支持的应用也是如此; (3)使我们能够有效地在数万台机器上运行工作负载。 Borg不是解决这些问题的第一个系统,但它是在能够保证最大弹性和完整性情况下,以大规模运行的少数几个系统之一。 本文将主要围绕这些主题进行组织,并从Borg投入生产,这十多年来的使用经验作为总结 。

2.用户视图

Borg的用户是运行Google应用和服务的Google开发人员和系统管理员(网站可靠性工程师或SRE)。 用户以作业的形式将他们的工作提交给Borg,每个作业包括一个或多个任务,它们都运行相同的程序(二进制)。 每个作业在一个Borg单元中运行,一组机器组织为一个单元。 本节的剩余部分描述了Borg用户视图中展现的主要功能。

2.1 工作负载

Borg的所有单元都同时运行着两种类型的异质工作负载。第一个是“永远运行下去”的长服务,他们对延迟和性能波动敏感, 此类服务用于面向终端用户的产品,例如Gmail,Google文档,web搜索和内部基础设施服务(例如,BigTable)。 第二个是批处理作业,需要花费从几秒到几天完成,这些任务对短期性能波动的敏感性要小得多。 这些工作负载混合运行在Borg的各个运行单元中,其根据其主要租户(例如,一些单元是专门用来运行批量密集任务的)运行不同的混合应用,并且也随时间变化:批处理作业完成和重新运行,许多面向终端用户的服务作业看到日常使用模式。 Borg同样需要处理好所有这些情况。

Borg的代表性工作负载情况可以从2011年5月的一个公开的月份跟踪中找到[80],已经进行了广泛分析(例如[68]和[1,26,27,57])。

在过去几年中,许多应用程序框架已经建立在Borg之上,包括我们内部的MapReduce系统[23],FlumeJava [18],Millwheel [3]和Pregel [59]。 大多数都有一个控制器提交一个主作业和一个或多个工作作业; 前两者对YARN的应用程序管理器[76]起类似的作用。 我们的分布式存储系统如GFS [34]及其后继CFS,Bigtable [19]和Megastore [8]都运行在Borg上。

对于本文,我们将优先级较高的Borg作业分为“生产”(prod)作业,其余作为“非生产”(non-prod)作业。 大多数长期运行的服务器作业是prod;大多数批处理作业是非prod的。在代表性单元中,分配给prod作业大约总CPU资源的70%,大约占总CPU使用量的60%; 分配给它们约总内存的55%,约占总内存使用的85%。在§5.5节,将看到分配和使用之间的差异将是很重要的。

2.2 集群和单元

单元中的机器属于单个集群,由连接它们的高性能数据中心规模的网络架构定义。

一个集群位于单个数据中心大楼内,大厦集合构成一个站点。一个集群通常承载一个大型单元,可能有一些较小规模的测试或特殊用途单元。 我们努力避免任何单点故障。

中央单元大小是排除测试单元后约10k机器; 有些会更大。一个单元中的机器在许多维度上是异构的:大小(CPU,RAM,磁盘,网络),处理器类型,性能和功能(比如外部IP地址或闪存存储器)。Borg通过确定单元中的运行任务࿰

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值