当前位置:文档之家› 分布式系统的可靠性

分布式系统的可靠性


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