3.6 自治计算
本节将介绍自治计算,例如为什么需要它、自治计算系统具有什么种类的特征、如何对一个网格运用自治计算,以及它能够对网格带来什么好处。最后,我们介绍一些目前在自治计算上所做的工作。
3.6.1 自治计算的概念
从广义上讲,自治计算是指一个自动调节以满足正在其中运行的应用需要的基础结构。自治计算是一个自管理计算模型,以具有模式的人体自治神经系统来命名。一个自治计算系统是一个具有灵活性的系统,可以采取抢先的和后因子措施,用最小的人工干预来保证高质量的服务,类似于自治神经系统调节人体系统而不需要个体的有意识干预。
自治计算的目的是减少像网格这样大的计算系统管理的复杂性。网格由于以下原因需要采用自治计算。
● 复杂性:网格本质上是复杂的,因为它试图耦合大规模、全异的、分布的和异类的资源,例如数据、计算机、操作系统、数据库系统、应用和特殊的设备,上述这些资源可跨越多个虚拟组织去提供统一的计算平台。
● 动态的特性:网格是一个动态的计算环境,在这个环境中的资源和服务可随时加入和离开。
3.6.2 自治计算系统的特征
一个系统被归类到自治系统,它应具有下列主要特征。
自保护
一个自保护系统可以检测和识别敌对的行为,采取自治的动作保护自己、抵御入侵行为。可以想象,自保护系统能够保护它们自己来抵御两种类型的行为:由人造成的意外错误和恶意的动作。
为了保护它们自己抵御由人造成的意外错误,例如,当系统管理员发出一个能够中断服务的进程时,自保护系统可以提供一个警告。为保护它们自己抵御恶意的动作,自保护系统将扫描可疑的动作,并且对可疑动作做出反应而用户并不知道在过程中有这样的保护。除了简单地对构成部件出错做出响应或为故障运行周期性检查外,一个自治系统将总是维持警惕,预期可能的威胁并预备采取必要的动作。通过基于用户角色和预先建立的策略,确定准予访问的动作,自治系统也用于为授权用户在授权期间提供准确的信息。
自优化
在一个自治系统中的自优化组件能动态地调整自己,以用最小化的人为干预来适应端用户或企业的需要。调整动作包括基于负载平衡功能和系统运行状态信息的资源重新分配,以提升整个的资源利用率和系统性能。
自修复
自修复是从可以引起系统一些部分出问题的故障中恢复系统的能力。对一个自恢复的系统来说,它必须能够借助第一次检测从失效部件中恢复,并且隔离有故障的部件,使它离线,修复和重新装入已修好的或替换部件投入服务,不会造成任何明显的全面中断。一个自修复系统也需要预报问题并采取动作防止可能会影响到应用的故障发生。为了保持系统正常运转和在所有时间都是可用的,自修复目标是所有的消耗最小化。
自配置
安装、配置和集成一个大的、复杂的系统是具有挑战性的、很耗费时间和经常出错的,甚至对专家也是如此。自配置系统能够自动地适应动态变化的环境,环境中的系统组件包括可以动态增加到系统的软件组件和硬件组件,并且要求不中断系统服务和最小化人工干预。
开放标准
一个自治系统将基于一个开放的标准,并且提供与其他系统互操作的标准方法。
自学习
一个自治系统将与机器学习构件集成起来,可以基于一个系统运行的某段时间建立知识规则来改进系统性能、健壮性和灵活性,以及预知可能出现的故障。
3.6.3 自治计算项目
自治计算正处在它的发展初期。本节将介绍在这个领域正在进行的一些项目。
1. 行业成就
IBM eLiza
eLiza[51]是IBM初步的增加自治能力到现有产品中的开始,例如增加到它们的服务器中。自治服务器的一些能力将被增强,例如损坏的内存芯片的检测和隔离,抵御黑客攻击的防护,当增加新的特性时自身的自动配置,为了处理各种级别的内在通信量的CPU、存储和资源的优化。
IBM OptimalGrid(最佳网格)
最佳网格OptimalGrid [52]是一个中间件,目的是简化大规模的、连接的、并行网格应用的创建和管理。它是一体化自治计算特征的核心使用,例如自配置、自修复和自优化,用于创建一个环境,使应用开发者去使用这些特征成为可能,而不需要去建立它们或编写外部API代码。
Intel Itanium 2
Intel 构造它的Itanium 2[53]处理器时采用了称为机器检测体系结构(MCA,Machine Check Architecture)的自治计算特征。MCA是一个允许系统从错误情形恢复后继续执行处理的基础结构。它有检测和纠正错误的能力,并且向操作系统报告这些错误。它也有能力分析数据,以及为全面提高系统可靠性和可用性的方法做出反应。
Sun N1
Sun N1[51]的目标是把N个计算机作为一个实体来管理。N1中自治能力已经聚焦在为新行业服务开发的软件和硬件安装和配置的自动操作上。
2. 学术成就
美国亚利桑那州大学的Autonomia[55]
这个计划的目标是使具有自管理属性的移动代理的部署自动化。Autonomia提供动态的程序设计控制和管理服务,以支持智能应用的开发和部署。Autonomia环境给应用开发者提供需要指定适当的控制和管理配置所需要的工具,以维护服务质量需求或应用属性/功用,例如性能、故障或安全。Autonomia也提供核心中间件服务来保持一个大范围的网络应用和服务的自治需求。
美国Rutgers大学的Automate[56]
Automate的全面目标是研究具有自治能力的、上下文意识的网格应用所需要的技术。特别地,这个计划正在研究自治构件的定义、作为自治构件的动态成分的自治应用的生成,以及对现有网格中间件和支持这些应用实施的运行时服务的增强设计。基于Automate,Accord[57]为自治自管理应用的开发提供一个基于构件的程序设计框架。Accord程序设计框架目前是基于CCA[58]和OGSA的,并引入了下面4个概念:
● 一个应用上下文,为组件和应用定义一个通用语义基础。
● 把自治组件定义为自治应用的基本组成模块。
● 用于自治组件的管理和动态合成的规则和机制的定义。
● 规则提升自治应用行为的能力。
伦敦帝国学院的AMUSE[59]
AMUSE计划是研究用于建立未来可实现自管理的e-Health和e-Science应用的技术。
Open Overlays[60],英国牛津布鲁克斯大学和兰开斯特大学
Open Overlays,用于网格计划的基于组件的通信支持,用于研究对未来可自管理的网格应用的支持。
ASA[61],英国圣安德鲁斯大学
安全位置无关自治存储体系结构计划ASA是一个自治系统,用于趋近于“理想化”的理想特性集合的全球存储基础结构,这些特例如无束缚的容量、零延迟、零成本、完全可靠性、位置无关性;用户的一个简单的接口;完整的安全性;完整的历史归档装置。
3.6.4 自治网格服务的设想
本节给出如何应用自治计算到网格的一个设想,并说明如何使用此设想来开发自治网格系统。正如我们在第2章论述过的,OGSA是用于建立面向服务网格应用事实上的标准。在这个上下文中网格服务是对复制动态行为和状态需要进行一些扩展的Web服务。在语义网格的上下文中,网格服务用元数据注释,有说明它们的语义功能和它们所应用域的本体。有关语义网格的研究已经集中在自治注释、设定、注册和从网格服务组合来的语义工作流的发现。在这一阶段,网格服务可以提供短暂的和有状态的服务,它也有一些有关自身的知识,例如它在语义上需要什么种类的输入和输出,以及它应用在什么种类的域上。然而,它没有任何自治特征。可以想象到,未来的网格系统将是来自自治网格服务的组合,如图3-18所示。一个自治网格服务可能有下列组成部分。
● 核心:这是服务的核心部分,提供核心功能,例如执行一个计算。
● 广告:广告部件注册服务名字,在一个网格系统中的注册服务器可以解决与域有关的问题。域问题可以用元数据来注释。
● 自学习:基于服务运行的某段时间,利用这个部件可以获得一些关于服务组件的知识,例如如何调度部件,它可能会有什么种类的故障,如何修复故障。
● 自配置:基于配置元数据,利用这个部件可自动为所执行的服务配置环境。如果有必要的话,也可以安装或移除附加的软件。
● 日志:为了自愈合,可利用这个部件记录在服务执行期间发生的事件。事件将用日志元数据注释。
● 自愈合:一旦一个服务发生错误,可利用这个部件通过日志元数据和愈合策略元数据来确定如何治愈该服务。
● 监控:这个部件可用于监控服务的执行并周期调用日志记录事件。它也用于检测服务的纠正执行。如果有不正确的事情发生,它将调用自愈合部件去治愈该服务。
● 自保护:基于服务保护元数据,这个部件可以认证和授权谁可以使用该服务。
● 自优化:这个部件可用于周期地检查服务的状态信息。如果需要,它将用优化策略元数据优化该服务。

图3-18 自治网格服务的概念


