第8章 分布式系统的可靠性

合集下载

分布式系统的一致性与可靠性

分布式系统的一致性与可靠性

分布式系统的一致性与可靠性在现代计算机领域,分布式系统扮演着至关重要的角色。

分布式系统是由多个独立计算机或节点组成的,这些节点通过网络进行通信和协作,共同完成各种任务。

然而,由于涉及多个节点的操作,分布式系统面临着一致性和可靠性的挑战。

一、一致性一致性是指分布式系统中的各个节点在进行操作时所观察到的数据的状态是一致的。

具体来说,一致性要求在任何时间点,无论用户从哪个节点发起的操作,最终都能够得到一致的结果。

1. 强一致性强一致性是最严格的一致性要求,保证了分布式系统中所有节点在进行操作时都能够立即同步更新。

这意味着无论用户从哪个节点发起的操作,所有其他节点都会立即观察到该变动。

2. 弱一致性与强一致性相比,弱一致性要求更宽松。

它允许在不同节点之间的数据更新存在一定的延迟,因此在操作过程中节点之间的数据可能会呈现不一致的状态。

3. 最终一致性最终一致性是弱一致性范围内的一种形式,它强调了在分布式系统中,节点之间的数据最终会达到一致的状态。

即使在操作过程中存在一段时间的不一致,系统最终会通过合适的同步机制来达到一致。

二、可靠性可靠性是分布式系统变得健壮和稳定的关键特性。

可靠性要求系统能够在面对节点故障、通信错误等异常情况下继续提供正确的服务。

为了实现可靠性,分布式系统采取了多种技术和策略。

1. 冗余备份冗余备份是一种常见的提高系统可靠性的方法。

通过在不同的节点上复制数据或任务,当某个节点出现故障时,其他节点能够顶替它的工作,保证系统的连续性。

2. 容错机制容错机制是指系统在面对节点故障时,能够自动检测和处理故障,确保分布式系统的正常运行。

通过使用心跳机制、故障检测和自动恢复等技术,系统能够尽可能地减少故障对整体系统性能的影响。

3. 事务管理事务管理是实现分布式系统可靠性的重要手段。

事务管理软件能够确保系统中多个操作的一次性执行,即要么所有操作成功,要么所有操作失败。

这样能够保证系统在面对节点故障时不会出现数据丢失或不一致的情况。

分布式系统的安全性与可靠性研究

分布式系统的安全性与可靠性研究

分布式系统的安全性与可靠性研究分布式系统是目前最为热门的研究领域之一,随着互联网技术的飞速发展,分布式系统在数据中心、云计算、大数据等领域得到了广泛应用。

与此同时,分布式系统的安全性与可靠性也成为了一项值得深入探讨的重要研究方向。

一、分布式系统的安全性研究分布式系统的安全性是指能够保护系统中的数据和用户不受非法访问、篡改、破坏等恶意行为的影响。

在分布式系统中,由于存在网络等外部攻击,安全性问题变得更加突出。

1. 认证与鉴别技术认证与鉴别技术是防止非法访问的一种有效手段。

在分布式系统中,用户的身份必须经过鉴别方可进行操作。

因此,认证与鉴别技术实现起来也变得更加复杂。

基于密码学的技术、生物识别技术、智能卡技术都是常见的鉴别技术。

2. 密码学技术密码学技术是保证信息安全的重要手段。

分布式系统中涉及的信息量极大,只有采用密码学技术才能够确保数据的保密性、完整性和可靠性。

其中,公开密钥加密算法、数字签名算法、散列函数等技术被广泛应用。

3. 安全属性验证技术安全属性验证技术是一种验证分布式系统的安全属性的技术。

在分布式系统中,各个节点之间的通信、数据交换需要遵守一定的规则,因此,安全属性验证技术能够确保整个系统的安全性。

二、分布式系统的可靠性研究分布式系统的可靠性是指系统中的各个节点能够在预期时间内保持正常运行,系统不会崩溃或出现数据丢失等情况。

分布式系统的可靠性问题更加复杂,主要原因是系统的节点分布在不同的地方,节点之间的通信也会受到网络等因素的限制。

1. 数据备份和恢复数据备份和恢复是分布式系统中保证可靠性的关键技术。

在分布式系统中,系统的各个节点都分别存储着不同的数据,因此,数据备份和恢复技术能够保证数据的安全。

此外,数据备份和恢复技术还能够提供容错能力,在系统出现故障时能够恢复数据并重新启动系统。

2. 稳定性和弹性在分布式系统中,节点之间的通信更加不稳定,因此,稳定性和弹性显得尤为重要。

稳定性是指系统需要具备不间断运行的能力,能够在出现异常条件下保持正常运行。

分布式系统的性能与可靠性分析

分布式系统的性能与可靠性分析

分布式系统的性能与可靠性分析在当今数字化时代,分布式系统已经成为了实现高性能以及高可靠性的主要手段之一。

分布式系统指的是多台计算机通过网络协作来完成一个任务的计算环境。

在分布式系统中,各节点之间通过网络通信进行数据和计算资源的共享,从而达到提升计算效率以及提高系统可靠性的目的。

然而,由于分布式系统具有分布性和并发性等特点,导致其具有较为复杂的性能和可靠性问题。

性能分析在分布式系统中,性能问题是指系统在给定的条件下如何利用资源来完成所需任务的能力。

系统性能主要包括以下几个方面:1.响应时间分布式系统的响应时间是指从用户请求产生,到系统向用户返回结果所需要的时间。

优化响应时间有助于提高用户的使用体验,因此,降低响应时间是分布式系统性能优化的关键方面之一。

2.吞吐量分布式系统的吞吐量是指在单位时间内,系统可处理的请求数量。

即在指定时间内处理请求的能力。

提高系统的吞吐量有助于提高系统的性能。

3.并发性分布式系统的并发性是指系统在处理多个请求时的能力。

并发问题通常是由于共享资源的竞争而导致的,因此,减少共享资源的竞争是提高分布式系统并发性的重要措施之一。

4.稳定性分布式系统的稳定性是指系统在不断变化的环境下,能够保持稳定的运行状态。

为了提高系统的稳定性需要对不同的环境进行测试和优化,以确保系统在各种不同的情况下都能够正常运行。

可靠性分析在分布式系统中,可靠性问题是指系统在运行过程中出现错误时的处理能力。

在分布式系统中,可靠性主要包括以下三个方面:1.数据可靠性数据可靠性是指系统在出现故障时,数据不会丢失或发生错误。

为了保证数据的可靠性,需要采用冗余备份技术,并定时进行备份。

2.故障恢复能力故障恢复能力是指系统在发生故障时,能够快速的进行自我修复。

为了提高系统的故障恢复能力,需要进行故障排除,并定期进行故障演练。

3.可用性可用性是指系统在给定时间内可靠地工作的能力。

为了提高系统的可用性,需要采用负载均衡技术,并合理规划系统的硬件资源。

分布式系统的容错与可靠性设计

分布式系统的容错与可靠性设计

分布式系统的容错与可靠性设计随着科技的发展,分布式系统在各个领域中得到广泛应用。

分布式系统的特点在于由多个独立的节点组成,节点之间通过消息传递的方式进行通信和协作。

由于节点之间的网络通信以及节点本身故障的存在,分布式系统容易受到各种因素的干扰和影响,因此容错与可靠性设计成为分布式系统设计中的重要环节。

一、分布式系统的容错机制为了确保分布式系统在面对各种故障和错误时仍能正常运行,我们需要采取合适的容错机制。

常见的分布式系统容错机制包括:1.备份与冗余:通过对数据和计算资源进行多备份和冗余设计,当某个节点发生故障时,可以及时切换到备份节点,保证系统的连续运行。

2.错误检测与恢复:利用错误检测算法,监测分布式系统中节点的状态和行为,一旦出现错误,可以及时进行恢复或者切换操作。

3.自动重试与重启:在通信过程中,如果发生消息传递失败或者节点崩溃等情况,可以通过自动重试和重启机制,尝试重新发送消息或者重新启动节点来保证系统的运行。

4.分布式事务管理:通过引入分布式事务管理机制,控制多个节点之间的协作和数据一致性,确保分布式系统的可靠性和正确性。

5.故障隔离与容错恢复:在分布式系统设计中,应该合理划分多个节点的职责和功能,隔离和限制故障的影响范围,并通过容错恢复机制快速恢复故障节点。

二、可靠性设计的原则在设计分布式系统的过程中,我们需要遵循以下原则来保证系统的可靠性:1.模块化设计:将系统划分为多个模块,并为每个模块定义清晰的接口和功能。

这样一来,当系统的某个模块发生故障时,可以仅仅替换这个故障模块,而不影响整个系统的正常运行。

2.灵活的配置:配置文件中应该包括各种容错机制的参数和配置选项,以便在需要时可以根据实际情况进行动态调整。

3.监控与日志:通过监控系统的运行状态和故障日志,可以及时发现和定位节点故障的原因,并采取相应的措施进行修复。

4.性能与可靠性权衡:分布式系统设计中,性能和可靠性常常是相互制约的。

分布式系统对系统可靠性的影响

分布式系统对系统可靠性的影响

分布式系统对系统可靠性的影响现代科技的快速发展使得分布式系统成为了许多大型企业和机构的常见选择,在此背景下,分布式系统对系统可靠性产生了重要的影响。

本文将从不同的角度探讨这种影响,以及可能采取的策略来提高系统的可靠性。

1. 系统分割和冗余分布式系统将一个大型系统分割为多个子系统,这些子系统分别运行在不同的服务器上。

这种分割能够降低系统整体的复杂性,使得系统更加易于管理和维护。

同时,通过在不同的服务器上运行相同的子系统,可以实现冗余备份。

当一个子系统出现故障时,其他正常运行的子系统可以接管其任务,从而保证系统的连续性和可靠性。

2. 资源共享和负载均衡分布式系统能够更好地利用资源,实现资源的共享。

相比于集中式系统,分布式系统可以根据实际需要将任务分配给不同的服务器处理,从而更好地平衡系统的负载。

通过合理分配资源,系统可以更好地应对高峰时段的需求,提高系统的可用性和可靠性。

3. 容错设计和自愈能力分布式系统对系统可靠性的影响还体现在容错设计和自愈能力方面。

分布式系统的设计通常包括容错机制,例如冗余数据和备份机制。

当一个节点或者子系统发生故障时,系统可以通过备份的数据或者其他节点的协助来保持正常运行。

此外,分布式系统还可以通过自动检测和自动修复等技术来提高系统的自愈能力,使得系统能够更快地从故障中恢复,减少用户的感知时间,提高系统的可靠性。

4. 数据一致性和可靠传输分布式系统中,数据的一致性和可靠传输是系统可靠性的重要方面。

在分布式系统中,不同的节点可能存储着相同的数据副本。

为了保证数据的一致性,系统需要采取合适的机制来协调这些节点之间的数据同步。

同时,分布式系统还需要确保数据的可靠传输,避免数据丢失或者传输错误。

通过合理的数据同步和传输机制,分布式系统可以提供更可靠的数据服务,增强系统的可靠性。

总结起来,分布式系统对系统可靠性产生了广泛而重要的影响。

通过系统分割和冗余,资源共享和负载均衡,容错设计和自愈能力,以及数据一致性和可靠传输等机制,分布式系统能够提高系统的可靠性和稳定性。

实现分布式系统的一致性与可靠性

实现分布式系统的一致性与可靠性

实现分布式系统的一致性与可靠性分布式系统的一致性和可靠性是实现一个可靠的、高性能的分布式系统的关键要素。

分布式系统通常由多个节点组成,这些节点分布在不同的物理位置上,并通过网络进行通信。

由于系统中的节点数量众多且分布广泛,可能会面临各种网络故障、节点故障以及其他不可预见的问题。

因此,实现分布式系统的一致性和可靠性是至关重要的。

一致性和可靠性是两个紧密相关但不同的概念。

一致性指的是在分布式系统中的所有节点上,对于相同数据的操作应该保持一致的结果。

也就是说,无论在系统中的哪个节点上执行操作,最终结果都应该是一致的。

而可靠性指的是系统能够在出现故障或异常情况下,继续正常运行并提供正确的服务。

要实现分布式系统的一致性和可靠性,可以采取以下几个关键策略:1.数据复制与冗余:在分布式系统中,数据的复制是实现一致性和可靠性的重要手段。

通过将数据复制到不同的节点上,可以提高系统的可靠性,并在节点故障时保证数据的可用性。

同时,通过采用一致性协议(如Paxos或Raft),可以确保在系统中的所有节点上对数据的操作保持一致,从而实现一致性。

2.故障检测与容错:为了实现可靠性,分布式系统需要能够及时检测和识别故障,并采取相应的措施进行容错处理。

常用的故障检测机制包括心跳机制和故障检测算法,而容错处理则包括故障转移和重启等措施。

通过合理的故障检测和容错机制,可以保证系统在节点故障时能够及时自动切换和恢复,提高系统的可用性和可靠性。

3.一致性协议与分布式事务:为了实现一致性,分布式系统需要采取一致性协议或分布式事务机制来确保数据的一致性。

常用的一致性协议包括Paxos和Raft等,而分布式事务机制可以通过两阶段提交(2PC)或三阶段提交(3PC)来实现。

这些协议和机制能够在分布式系统中保持数据的一致性,并解决分布式环境下的数据一致性问题。

4.异地备份与容灾:为了提高系统的可靠性和可用性,分布式系统通常采用异地备份和容灾机制。

第8章 分布式系统的可靠性

第8章 分布式系统的可靠性
《分布式系统》(八) 2011 14
故障的处理
节点故障的处理 拜占庭式故障的处理 通信故障的处理 软件故障的处理
《分布式系统》(八) 2011
15
节点故障的处理
使用主动复制的方法处理节点故障,相对来说比较简 单和容易,但其代价较大:
– 处理“永久”故障的硬件冗余比较昂贵; – 处理“暂时”故障的时间冗余(重试)其效率受到较大影 响。
《分布式系统》(八) 2011
17
向后式恢复
一个进行新旧检查点保存替换的方案(Sequoia):
– 使用2个处于稳定存储器中的内存库( A库和B库)作为检 查点的双份保存。 – 在对新检查点状态信息进行保存以刷新旧检查点状态信息 时,同时写入 4 个固定、相同的时戳: A 库,刷新前 Ta1, 刷新后Ta2;B库,刷新前Tb1,刷新后Tb2。 – 通过分析替换操作后的时戳结果,确定下一步的措施,以 及是否导致替换操作成功:
我们的讨论中,以基于进程的模型为例。
《分布式系统》(八) 2011
7
容错系统设计的构件模块
具备容错能力的、可靠的分布式系统中涉及到三种逻 辑实体,包括二种构件模块:
– 稳定存储器 – 故障-停止处理器
和一个用于构件模块的:
– 原子操作
《分布式系统》(八) 2011
8
稳定存储器
稳定存储器是在系统失效的情况下,可以躲过系统错 误的特定存储空间的抽象概念。也就是说,稳定存储 器空间里的内容不被一个失效所摧毁。 存储器的两个基本操作是读和写,稳定存储器的目标 是在系统失效的情况下,屏蔽不希望的事件,正确地 执行读、写操作。
将A库复制到B库


18
(例中假设先刷新A库;若相反,则类似)

分布式系统中的可靠性与容错设计

分布式系统中的可靠性与容错设计

分布式系统中的可靠性与容错设计在分布式系统中,可靠性与容错设计是非常关键的一方面。

由于分布式系统通常由多个节点组成,节点之间的通信和协作是实现系统功能的基础。

在这个过程中,可能会出现各种故障和异常情况,如网络延迟、节点故障或通信错误等。

因此,为了保证系统能够持续稳定地运行,需要采取一系列的可靠性和容错设计策略。

首先,故障检测与恢复是确保分布式系统可靠性的关键一环。

通过监控节点的状态和行为,可以及时发现节点故障或异常情况。

一旦发现故障节点,系统应该采取相应的恢复策略,如启动备用节点或重新分配任务。

在设计系统时,需要考虑到各种可能的故障情况,并设计相应的监测机制和故障处理流程。

其次,容错性是确保分布式系统稳定性的另一个关键要素。

容错技术可以保证系统在节点故障或通信错误的情况下依然能够正确运行。

这包括使用冗余机制,如备份节点和冗余数据存储,以防止单个节点或存储设备的故障对系统的影响。

容错设计还包括使用错误检测和纠正技术,如冗余校验和错误编码,以确保数据传输的准确性和完整性。

另外,负载均衡与自适应调整也是提高分布式系统可靠性的重要手段。

通过将任务和数据在各个节点之间合理分配,可以避免单个节点过载而导致系统性能下降或崩溃。

负载均衡算法可以根据节点的当前负载情况动态调整任务的分配,以保证系统资源的充分利用和平衡分布。

自适应调整则可以根据系统的运行状况和负载情况,调整系统的配置和参数,以适应不同的工作负载和环境变化。

此外,采用分布式一致性协议也是确保分布式系统可靠性的关键一环。

一致性协议可以保证分布式系统在并发访问和节点故障等情况下依然能够提供一致的服务。

著名的一致性协议包括Paxos和Raft等,它们通过引入选举和多阶段提交等机制,确保节点之间的数据一致性和协调性。

在设计分布式系统时,需要根据具体的需求和场景选择适合的一致性协议,并将其纳入系统的设计和实现。

最后,容错设计还应该考虑到系统的可恢复性和可扩展性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《分布式系统》(八) 08-05
19
节点故障的处理
当检测到节点模块(如 PE)出现故障时,使用被动 复制的向后式恢复方法,可以这样处理:
– 对于“永久性”故障:用后备冗余模块替换故障模块,替 换上来的模块从稳定存储器中获得上一个检查点(最近的) 的系统状态,从该处重新执行。(硬件冗余) – 对于“暂时性”故障:使用原来的模块从稳定存储器中获 得上一个检查点(最近的)的系统状态,从该处重新执行。 (时间冗余)
《分布式系统》(八) 08-05 16
向后式恢复
检查点( Check-point):进程执行中设定的、记录 当时进程状态的、用于以后节点故障时进程向后恢复 回来的点被称为“检查点”。 有两种方法来保存检查点:
– 每个检查点被传送到每一个被动(备份)模块。 – 每个检查点被存储在当地的稳定存储器中。
通常结合使用外部检测方法和内部检测方法,以得到 一个有效的故障检测方案。 故障检测的技术实施手段包括:通信应答超时、编码 校验、结果比较等。
《分布式系统》(八) 08-05 6
基本模型
处理软件故障通常采用两个软件模型:
– 基于进程的模型:一个应用程序由一连串协同作业的进程 组成,如[ P1‖P2‖…‖Pn ]。 – 基于对象的模型:一个应用程序由一连串对象组成,每一 个对象都是一个独立的原子操作。通过很好定义的界面访 问,就可以获得对象的封装。
对于写write(address: a, data:d)来说,其不希望的结 果:
– a保持不变,而d变为不同的数据d'; – a变为(bad, d)。
一个理想的稳定存储器:读总是返回正确的结果,写 总是成功。
《分布式系统》(八) 08-05
10
稳定存储器-RAID
获得适宜的稳定存储器的一个方法是使用RAID技术
《分布式系统》(八) 08-05
3
基本模型
要确保系统具备容错能力,通常使用冗余技术。 有四种冗余类型:
– – – – 硬件冗余:如额外的PE、I/O系统等。 软件冗余:如软件模块的额外版本。 信息冗余:如使用了额外位数的错误检测代码。 时间冗余:如用来完成系统功能的附加时间。
《分布式系统》(八) 08-05
《分布式系统》(八) 08-05 13
原子操作
一个原子操作就是由硬件独立执行的一系列动作。即 每一个动作或者被完全彻底地执行,或者系统的状态 保持不变(动作根本没有执行)。 每一个动作都是孤立的,当执行这一动作时,在进程 中感觉不到外界活动的存在,也意识不到外界状态的 变化。同样,任何外界的进程均感觉不到一个孤立的 原子操作的内在状态的变化。 即原子操作具有“全或无”性质。 许多应用都需要原子操作,如:对信号量操作、对数 据库的访问等。
我们讨论被动复制的方法,在被动复制中可以使用向 前式恢复或向后式恢复。
– 向前式恢复中,假定系统中故障和损失的性质可被完全准 确地获知。这样就可能去掉这些故障以使系统继续向前运 行。(看似简单,实现困难!) – 向后式恢复适用于当故障的性质无法预知及去掉时。系统 要定时地记录系统状态,这样当失效导致系统处于不相容 的状态时,系统可以重新恢复到从前没发生故障的状态。 (比较可行!)
(Redundant Arrays of Inexpensive Disks,廉价磁盘冗余阵列)。
目前常用的有下列RAID技术:
数组种类 RAID level 0 RAID level 1 RAID level 3 RAID level 4 英文简述 Stripe / Span(分条/分跨) Mirror(镜像) Parallel with Parity (分条奇偶校验) Parallel with Parity(分区奇偶校验)
硬盘容错吗? N个硬盘 可用容量
No Yes Yes Yes
N N/2 N-1 N-1
RAID level 5
RAID level 0+1
《分布式系统》(八) 08-05
Striped with Rotating Parity
Mirror + Stripe
Yes
Yes
N-1
N/2
11
故障-停止处理器
故障-停止处理器
可以使用下面的方法使一个非故障-停止处理器变成 一个故障-停止处理器: 使用稳定存储器和一个可靠的存储处理器(一个控 制存储媒介的处理器)以及k+1个处理器:
– 这k+1个处理器都运行同样的程序并通过存储处理器访问 同一个稳定存储器。 – 如果存储处理器发现任何一个请求是不同的,或者任何 一个请求没有在指定的期间到达存储处理器,则意味着 检测到一个失效事件,因而应该丢弃所有请求。 – 这个故障-停止处理器是一个k-故障-停止处理器:当系统 中有k个元件失效时,仍然可以满足故障 -停止处理器的 要求。
时戳结果 Ta1=Ta2=Tb1=Tb2 Ta1>Ta2=Tb1=Tb2 失效时刻 没有 刷新A库时 措施 没有 将B库复制到A库 是否导致成功 是 否(恢复到旧检查点)
Ta1=Ta2>Tb1=Tb2
Ta1=Ta2=Tb1>Tb2
《分布式系统》(八) 08-05
在二者之间操作时
刷新B库时
将A库复制到B库
我们的讨论中,以基于进程的模型为例。
《分布式系统》(八) 08-05
7
容错系统设计的构件模块
具备容错能力的、可靠的分布式系统中涉及到三种逻 辑实体,包括二种构件模块:
– 稳定存储器 – 故障-停止处理器
和一个用于构件模块的:
– 原子操作
《分布式系统》(八) 08-05
8
稳定存储器
稳定存储器是在系统失效的情况下,可以躲过系统错 误的特定存储空间的抽象概念。也就是说,稳定存储 器空间里的内容不被一个失效所摧毁。 存储器的两个基本操作是读和写,稳定存储器的目标 是在系统失效的情况下,屏蔽不希望的事件,正确地 执行读、写操作。
一个处理器故障时,最好的结果是不进行任何不正 确的操作,而简单地停止工作。这样的处理器称为 故障-停止处理器。 一个故障-停止处理器有以下特性:
(a)处理器停止运行。 (b)暂态存储丢失,而稳态存储不受影响。 (c)任何处理器均可检测到故障-停止处理器的失效状态。
《分布式系统》(八) 08-05
12
4
基本模型
有三种基本的处理故障的方法:
– 主动复制。所有的复制模块协同进行,并且它们的状态紧 密同步。 – 被动复制。由唯一的一个处于主动的模块设定定期检查点, 定期更新其它模块的交互状态。 – 半主动复制。是主动复制和被动复制的混合。此种方法所 需的恢复开销相对较低。
主动复制用到了错误屏蔽的概念,即隐藏出现的故障 或防止故障造成错误结果。 被动复制,又称为动态方法,它通过从系统中检测错 误的存在,并采取一定措施转移错误元件来获得容错。
第8章 分布式系统的可靠性
基本模型
分布式系统的一个重要目标是获取高度的可依赖性 (Dependability)。 可依赖性的概念包括以下三个方面:
– 可靠性:在错误存在的情况下持续服务的能力。 – 安全性:不出现灾难性错误的能力。 – 保密性:指避免、或承受对系统进行的故意性攻击的能力。
本章重点关注可依赖性中的可靠性,即故障、错误或 失效(faults, errors, or failures,这些概念通用)的检测 和处理。
将A库复制到B库


18
(例中假设先刷新A库;若相反,则类似)
向后式恢复
– 如果 4 个时戳相等,则新旧检查点保存替换操作完全成功。 – 如果一个库中只写下刷新前的时戳(如Ta1),则失效发生 在向该库(A库)刷新的过程中,即该库(A库)中新检查 点是不完全的,此时需用另一个旧库( B 库)中的旧检查 点信息将该库(A库)恢复。 – 一旦有一个库刷新成功(如Ta1=Ta2),则可以复制这个新 库(A库)中的新检查点信息到旧库(B库)中,而使整个 新旧检查点保存替换操作成功。
《分布式系统》(八) 08-05
20
前卷式恢复
一个向前式恢复策略是前卷式恢复,它是半主动复制 的一个特例,其主要的思路是:
– 一个进程(任务)的初始备份(或上一个正确的检查点开 始)由不同的处理器来运行,这些版本的结果在检查点进 行表决(或比较):
如果表决结果是成功的,则可以获得一个储存在稳定存储器中的正 确结果。在这个结果的基础上,再执行下一项任务的备份。 如果表决结果是失败的,非故障处理器就在以前的任务的每一个结 果的基础上执行下一项任务的备份。与此同时,后备处理器替换故 障处理器对以前的任务执行一次回卷运行,即在后备处理器上再运 行以前的任务,目的是获得正确的结果。 稳定存储器只保存基于以前的任务项的正确版本的经过表决后正确 的结果,而抛弃掉其他结果。 所有版本都失效,或后备处理器重新运行以前的任务也不能获得正 确的结果,回卷是不可避免的。但这种最坏情况发生的可能性很小, 因此前卷式恢复仍然可以节省很多的回卷时间。
《分布式系统》(八) 08-05 5
基本模型
故障检测可被分为两类:
– 外部检测:将检测节点失效的职责赋予节点的外部附件 (或其它节点)。但需防止检测者本身故障、检测者和被 检测者间通信故障时导致的误检(误报)。 – 内部检测将检测机制置于一个节点内部(自检)。通常假 定内部有一个可以完全信赖的“硬核”( hardcore)检测 元件,“硬核”不受节点故障的冲击。完全做到这一点其 实是很难的。
《分布式系统》(八) 08-05
2
基本模型
分布式系统可靠性的目标是当故障发生时,确保系统 的全局一致性。即确保系统具备容错能力。 故障来源于如下4类:
– – – – 节点(硬件)故障:物理硬件故障; 程序(软件)故障:软件设计或编码错误; 通讯故障:通信介质故障; 时序故障:物理故障导致运行时序错误。
相关文档
最新文档