Google Borg 简介
特性
- 物理资源利用率高。
- 服务器共享,在进程级别做隔离。
- 应用高可用,故障恢复时间短。
- 调度策略灵活。
- 应用接入和使用方便,提供了完备的 Job 描述语言,服务发现,实时状态监控和诊断工具。
有事21:
优势
- 对外隐藏底层资源管理和调度、故障处理等。
- 实现应用的高可靠和高可用。
- 足够弹性,支持应用跑在成千上万的机器上。
基本概念
Borg 架构
Borgmaster 主进程:(用来接收所有用户请求,对于应用开发人员是将作业请求提交给)
- 处理客户端 RPC 请求,比如创建 Job,查询 Job 等。
- 维护系统组件和服务的状态,比如服务器、Task 等。
- 负责与 Borglet 通信。
Scheduler 进程:
调度策略:
- worst fit
- best fit
- hybrid
调度优化:
- Score caching: 当服务器或者任务的状态未发生变更或者变更很少时,直接采用缓存数据,避免重复计算。
- Equivalence classes: 调度同一 Job 下多个相同的 Task 只需计算一次。
- Relaxed randomization: 引入一些随机性,即每次随机选择一些机器,只要符合需求的服务器数量达到一定值时,就课以停止计算,无需每次对 Cel l中所有服务器进行 feasibility checking。
Borglet:
- Borglet 是部署在所有服务器上的 Agent,负责接收 Borgmaster 进程的指令。