chapter 7 fault tolerance.ppt

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chapter 7 fault tolerance

Fault Tolerance Chapter 7 容错性简介 进程恢复 可靠的客户-服务器通信 可靠的组通信 分布式提交 恢复 容错性简介 分布式系统区别于单机系统的一个特性是它可能部分失效。当分布式系统中的一个组件发生故障时就可能产生部分失效。这个故障也许会影响到其他组件的正确操作,但同时也有可能完全不影响其他组件。而非分布式系统中的故障通常会影响到所有的组件,可能很容易就使整个应用程序崩溃。 分布式系统设计中的一个重要目标是以这样的方式来构造系统:它可以从部分失效中自动恢复,而且不会严重地影响整体性能。特别是,当故障发生时,分布式系统应该在进行恢复的同时继续以可接受的方式进行操作,也就是说,它应该能容忍错误,在发生错误时某种程度上可以继续操作。 容错性简介 要理解容错在分布式系统中的作用,首先需要深入了解分布式系统中的容错到底意味着什么。容错与被称为可靠的系统(dependable system)紧密相关。可靠性是一个术语,它包含了分布式系统中很多有用的需求,列举以下: 可用性 可靠性 安全性 可维护性 容错性简介 可用性被定义为系统的一个属性,它说明系统已准备好,马上就可以使用。通常,它指在任何给定的时刻,系统都可以正确地操作,可根据用户的行为来执行它的功能。换句话说,高度可用的系统在任何给定的时刻都能及时地工作。 可靠性是指系统可以无故障地持续运行。与可用性相反,可靠性是根据时间间隔而不是任何时刻来进行定义的。高度可靠的系统可以在一个相对较长的时间内持续工作而不被中断。这很微妙,但是与可用性相比,这是一个重要的不同。 容错性简介 安全性 是指明在系统偶然出故障的情况下正确操作而不会造成任何灾难。例如,很多进程控制系统,比如那些用来控制核电站或把人送入太空的控制系统,就必须提供高度的安全性。这样的控制系统即使只是非常短时间瞬时故障,结果也将是灾难性的。过去的很多例子(以后也还会有更多的例子)都说明了要建立安全的系统是多么困难。 可维护性 是指发生故障的系统被恢复的难易程度。高度可维护的系统可能具有高度的可用性,特别是在可以在探测到故障并自动恢复时。但是,像我们在本章后面将看到的那样,从故障中自动恢复说起来简单,做起来就难了。 容错性简介 当一个系统不能兑现它的承诺时就被认为是失败的。尤其是,如果一个分布式系统被设计为它为为它的用户提供大量的服务,当这些服务中的一个或多个不能被(完整地)提供时,系统就发生故障了。而错误是系统状态的一部分,它可能会导致故障发生。例如,当从网络上传输数据包时,可能有一些数据包在到达接收者时已经被破坏了。在这种环境下,被破坏了意味着接收者可能错误地得到某位的值(例如把0读成1),甚至无法探测到有什么东西到达了。 容错性简介 造成错误的原因被称为故障(fault)。无疑,找到是什么引起了错误是很重要的。例如,不好的传输介质可能很容易使得数据包被破坏。在这种情况下要解决故障是相对容易的,但是无线网络中的传输错误可能是由恶劣的天气条件引起的。要改变天气来减少或防止错误是不可能的。 建立一个可靠的系统与控制故障紧密相关。防止、解决和预报故障三者之间是有差别的(Lapire 1995)。对我们来说最重要的问题是容错(fault tolerance),它意味着系统即使在发生故障时也能提供服务。 容错性简介 故障通常被分为暂时的、间歇的和持久的。暂时故障只发生一次,然后就消失了,即使重复操作也不会发生。 间歇故障发生,消失不见,然后再次发生,如此反复进行。连接器接触不良通常会造成间歇故障。间歇故障会造成情况的恶化,因为它们很难诊断。通常当解决故障的人到来时系统工作良好。 持久故障是那些直到故障组件被修复之前持续存在的故障。芯片燃烧、软件错误和磁盘头损坏都是持久性故障的例子。 典型故障 发生故障的系统不能充分地提供所设计的服务。如果我们把分布式系统视为一个彼此之间且与它们的客户进行通信的服务集,那么不能充分提供服务就意味着服务器、通信通道或两者都不能正常地进行工作。但是,出现故障的服务器本身并不总是我们应该查找错误的地方。如果这样的服务器要依赖其他服务器才能充分提供它的服务,那么错误的原因就可能需要到别的地方去寻找。 这样的依赖关系大量出项在分布式系统中。如果一个文件服务器的设计目的是提供高度可用的文件系统,那么失效的磁盘会使该服务器运行困难。如果这样的文件服务器是分布式数据库的一部分,那么整个数据库的正常工作都将被打乱,因为只有一部分数据真正可以访问。 典型故障 图7.1 不同类型的故障 典型故障 如果服务器过早停机但在停止之前工作正常,就发生了崩溃性故障。崩溃性故障的一个重要方面是,一旦服务器停机,就不再提供任何服务。崩溃性故障的一个典型例子是操纵系统崩溃,这时只

文档评论(0)

ajgoaw + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档