首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Borg:Google集群管理大杀器

系列是阅读、总结计算机领域优秀论文的系列文章。由于论文的学术性较高,无法面面俱到,只会就关键思想进行概括介绍。

简介

Google的Borg集群系统需要管理数十万个jobs,要能够提高资源使用率、隔离性,通过调度策略降低关联故障发生率,通过声明式job描述语言简化复杂性。

Borg提供三个主要优势:

1.隐藏资源管理与故障处理的细节,用户可以集中在应用开发上2.高可用、高稳定3.O(10000)机器规模内高效任务调度相关术语1.job and task,一个job包含多个task,每个task包含多个进程

2.nameing and monitoring,通过提供服务发现。每个task都要提供健康检查HTTP接口,用于查询task的健康信息和各种指标数据3.cluster and cells,cell表示一组机器,cell中的机器构成一个集群,cell是一个逻辑区分概念

整体架构

Borg系统主要由以下构成:

1.一系列机器2.本地中心化控制器3.每台机器上运行的客户端

Borgmaster

Borgmaster包含两个组件:master进程和scheduler。master用于处理客户端的RPC请求,改变集群中的资源状态或者响应数据只读访问请求。master还负责管理系统中的状态(machines,task,allocs...),和Borglet通信,提供web UI。

在容错上,Borgmaster实际上有5个副本,逻辑上只有一个,通过Paxos协议选举逻辑上的leader。从选举leader到恢复数据大约要10s。master还会把自身某时刻的状态作为checkpoint存储到paxos store中。

scheduling

当提交job时,borgmaster将它记录到paxos store中,并加入到task的。scheduler会扫描获取任务,然后调度到满足其需求的机器上。扫描过程是相对复杂的,论文中是这样说的:

the scan proceeds from high to low priority, modulated by a round-robin scheme within a priority to ensure fairness across users and avoid head-of-line blocking behind a large job.

自己目前还不是太理解。

调度算法分为两部分:

1.,可行性检查,判断机器是否满足task的要求2.,通过对满足条件1中的机器打分,选择最合适的那个

这样一来,调度器的任务就是一个不断重复下面的流程:

1.从master抓取状态变更2.更新本地状态拷贝3.执行任务调度4.通知master自己的调度情况

Borglet

Borgleft是每个机器(master除外)上都要运行的客户端,它负责任务的启动、停止、重启等,还负责管理机器资源、滚动debug日志、上报机器状态到master和监控系统。

Borgmaster会主动从Borglet上polls信息,poll的频率可控制,这样Borgmaster可以控制系统中的通信频率,避免不必要的流程控制机制。

为了性能和扩展性,每个Borgmaster会运行无状态的副本,论文中称为,来处理一些与Borglet的通信。在弹性方面,Borglet总是上报本节点的完整信息,link shard会对上报信息进行对比,只把不同的部分发送给状态机,降低master的更新负载。

当集群中的机器非常多时,Borg会把borglet分割为多个进行,提高吞吐量。

隔离

隔离可以保证安全性,在同一个机器上,通过机制隔离不同的task,提供ssh链接机制用于debug。

现在,Borg的task运行在基于Linux CGroup的资源容器中。

总结

Borg论文出自Google工程师,内容上还是更偏,和伯克利的ray、mesos论文相比,缺少和,阅读起来也不是那么顺畅。因此阅读两边后决定只记录部分重要的内容,一些细节没有罗列。

阅读完Borg的论文,再回头看Kubernetes的架构和相关概念,和Borg论文中的思想基本上是一致的。所以对于Kubernetes从业人员来说,这篇论文还是值得阅读的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200825A0PA2600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券