《数据中心设计与运营实战》——2.4 集群级基础架构软件

本节书摘来自异步社区《数据中心设计与运营实战》一书中的第2章,第2.4节,作者: 【美】Luiz André Barroso , 【美】Jimmy Clidaras , 【瑞士】Urs Hölzle 更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 集群级基础架构软件

就像电脑需要一个操作系统层来管理资源、提供基本服务一样,由成千的计算机、网络和存储组成的系统同样需要一个系统软件层使其在更大规模上提供类似的功能。我们称此为集群级基础架构。下面将详细阐述构成这一层的四大类基础架构软件。

2.4.1 资源管理
资源管理是集群基础架构层最不可缺少的组件。它负责将硬件资源分配给用户任务,控制分配优先级和配额,提供基本任务管理服务。资源管理最简单的形式是一个可以手动(静态地)给指定用户或任务分配一组设备的界面。更有用的版本应该能展现更高级别的抽象化,自动分配资源,允许资源在更好的粒度级别共享和用户应该能在更高水平上(例如,多少CPU性能、内存容量和网络带宽等)定义其工作需要,并有调度器将其翻译成适当的资源进行分配。功率限制和能源优化利用在集群调度器的功能中越来越重要,调度决策时不仅要应付突发事件(如冷却设备故障),而且还应能最大限度地利用数据中心的额定功率。第5章提供了关于此主题的更多细节。如需更多信息,可以在最近的出版物【81,139】中找到。

2.4.2 硬件抽象和其他基础服务
几乎所有的大规模分布式应用都需要一系列基础服务,如可靠的分布存储、信息传递和集群级同步等。在大型集群中准确无误地实施这些功能并实现高性能及高可用是相当复杂的。避免为每个应用实施这种棘手的代码,创建可以重复使用的模块和服务是比较明智的做法。Google和Amazon开发的GFS、Dynamo和Chubby是为大型集群提供可靠数据存储和一致性服务的很好例子。

2.4.3 部署和维护
在一个小的部署中可行的手动过程,在大规模系统中则需要大量的基础设施支持才能更加有效的操作,例如软件镜像的分发和配置管理、服务性能和质量的监控,在紧急情况下发送报警给操作人员。Microsoft公司的Autopilot系统为Windows Live数据中心的某些功能提供了设计示例。集群整体的健康状况同样需要仔细的监控、自动诊断以及自动化的修复工作流程。Google的System Health Infrastructure(如Pinheiro【123】所述)就是一个有效健康管理所需的软件基础架构的实例。这种级别的性能调试和优化同样需要专门的解决方案。加州大学伯克利分校开发的X-Trace系统就是针对大型分布式系统性能调试的。

2.4.4 编程框架
前面几段所描述的整体基础构架简化了硬件资源的部署和利用,但没有从根本上隐藏大规模系统作为目标平台时对一般程序员的复杂性。在程序员看来,硬件集群具有相当深且复杂的内存/存储层级结构、混杂的部件、不可靠的硬件、来自同一系统不同程序间不断变化的反向负载,以及资源(例如内存和数据中心级网络带宽)稀缺。大规模服务中一些高级别的运行问题的普遍性,使构建出目标编程框架以简化新产品开发成为必然。MapReduce 【35】、BigTable 【26】和Dynamo 【36】就是很好的基础架构软件的例子,通过自动处理数据分片、分发和容错等,极大地提高了程序员的工作效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值