机房360首页
当前位置:首页 » 其他 » 集群级软件系统

集群级软件系统

来源:机房360 作者:GOCN编辑 更新时间:2013-1-26 18:50:56

摘要:就像一个操作系统层需要管理资源,并在单个计算机上提供基本服务,一个由成千上万的计算机、网络、存储库构成的系统同样也需要有这样一个软件层来提供相似的功能,这个层叫做集群级软件系统。

  就像一个操作系统层需要管理资源,并在单个计算机上提供基本服务,一个由成千上万的计算机、网络、存储库构成的系统同样也需要有这样一个软件层来提供相似的功能,这个层叫做集群级软件系统。接下来说明集群级软件系统的四个组成部分。

  1.资源管理

  资源管理部分是集群级系统软件层必不可少的组成部分;它控制着用户任务与硬件资源的匹配,执行优先权及配额,提供基本的任务管理服务。在最简单的形式下,可以简单地认为它是一个接口,能手动 (静态的)为给定的用户或任务分配机器组。更有用的版本应该提出一个更高层次的抽象概念,自动进行资源配置,并允许在较高的粒度上进行资源共享。这些系统的用户应该能够较详细地说明他们的工作要求 (例如,cpu性能、存储器容量、网络带宽等),并有调度程序能够将这些资源进行合理的配置。集群级的调度程序在制定调度决策时,应该考虑到能源限制,以及能源利用率的最优化,不仅要处理突发事件 (如降温设备故障),而且要最大化数据中心能源预分配能源的利用率,这一点已变得越来越重要。第7章将深入探讨这个话题。

  2·硬件封装和其他基木服务

  几乎每一个大规模的分布式应用程序都需要一套基本的功能,如可靠的分布式存储、信息传输、集群级同步。在大型的集群中准确无误地实现这种既具高性能又具高可用性的功能是复杂的。避免在每个应用程序上重复实现这种棘手的代码是明智的,但可以创建可再利用的模块或者服务。GFS[203]、Dynamo[200]、Chubby[201]是Google和Amazon开发的大型集群可靠储存和锁服务。

  3·部署与维护

  许多在小系统中需要手动执行的任务,在大型的系统中需要大量基础设施的支持才能有效地运行。这样的例子有很多,如软件镜像分发和配置管理,监控服务性能和质量,以及在紧急事件发生时对警告进行分类。微软的Autopilot[204]系统,为WindowsLive数据中心提供了一些上述功能。监控整个机群的安全状况也需要细致监控,自动诊断及工作流自动修复。Google的系统健康基础设施Pinheiroetal[205],是高效健康管理所需要的软件系统的一个范本。

  最后,这种规模系统的性能调试和优化也需要具体的解决方案。美国加州大学伯克利分校 (UC Berkerly)开发的XTrace[206]系统则是监控基础设施的一个例子,目的是对大型分布式系统的性能进行调试。

  4·编程框架

  前面描述的基础设施简化了硬件资源部署和有效利用,但是对于一般程序员来说,这并不会从根木上隐藏大型硬件集群内在的复杂性。从程序员的角度来看,硬件集群有较复杂的内存/存储结构、异构组件、故障组件及一些稀缺资源 (如DRAM和数据中心级的网络带宽),要解决问题的规模显然会使事件更复杂。某些类型的操作或者问题的子集在大规模的服务中是十分常见的,有必要建立定向编程框架,这样可以显著地简化新产品的开发。MapReduce[212]、BigTable[199]、Dynamo[200]都是软件系统很好的例子,它们通过自动处理数摺分块、分发及容错,极大地改苦了程序员的产出率。

责任编辑:GOCN

本文地址:http://www.jifang360.com/news/2013126/n564944759.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
更多
推荐图片