云计算
云计算的体系结构由5部分组成,分别为应用层,平台层,资源层,用户访问层和管理层,云计算的本质是通过网络提供服务,所以其体系结构以服务为核心。
系统的可靠性技术---容错技术---冗余技术
容错是指系统在运行过程中发生一定的硬件故障或软件错误时,仍能保持正常工作而不影响正确结果的一种性能或措施。
冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件和软件。
冗余是容错技术的基础,通过冗余资源的加入,可以使系统的可靠性得到较大的提高。主要的冗余技术有结构冗余(硬件冗余和软件冗余)、信息冗余、时间冗余、冗余附加4种。
结构冗余是常用的冗余技术,按其工作方式,可分为静态冗余、动态冗余和混合冗余三种。静态冗余又称为屏蔽冗余或被动冗余,常用的有三模冗余和多模冗余。动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可不工作。前者叫做热备份系统(双重系统),后者叫做冷备份系统(双工系统、双份系统)。混合冗余技术是将静态冗余和动态冗余结合起来。
软件备份是属于软件冗余范畴。
信息冗余是在实现正常功能所需要的信息之外再添加—些信息,以保证运行的结果正确。所有的纠错码和检错码都属干信息冗余技术。
程序卷回是从出错的地方重新执行程序,属于时间冗余技术。指令复执也是时间冗余技术,就是重新执行出错的指令。
除冗余技术之外,软件容错技术还可采用N版本程序设计、恢复块方法和防卫式程序设计等。
N版本程序设计是一种静态的故障屏蔽技术,采用前向恢复的策略;N版本程序的设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。
恢复块方法是一种动态的故障屏蔽技术,采用后向恢复策略;恢复块方法提供具有相同功能的主块和几个后备块,一个块就是一个执行完整的程序段,主块首先投入运行,结束后进行验证测试,如果没有通过验证测试,系统经现场恢复后由后备块1运行。后备块1运行结束后也进行验证测试,如果没有通过验证测试,系统经现场恢复后由后备块2运行。重复这一过程,可以重复到耗尽所有的后备块,或者某个程序故障行为超出了预料,从而导致不可恢复的后果。
防卫式程序设计是一种不采用任何传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想是通过在程序中包含错误检查代码和错误恢复代码,使得一旦发生错误,程序就能撤销错误状态,恢复到一个己知的正确状态中去。
名词说明:
- 前向恢复:指系统进行可靠性设计时,在可能发生故障的进程上设置一系列检测点,要求检测点提供尽可能多的故障信息,并在进程前方预先设置一个或若干个恢复点,系统可以在这些点上从预定的状态开始恢复工作,最终能够得到一个可以接受的输出序列。前向恢复适用于时空资源比较苛刻,但实时性要求又比较强的系统。由于它没有进行完整的运算,所提供的服务往往是功能降级的。在存在多个恢复点时,根据故障检测得到的信息,可以选择服务损失最小的恢复点开始恢复。因此,前向恢复需要对故障可能的影响进行估计,选择究竟从哪一点开始继续运行,并对最终结果可能带来的偏差以及因丢失了一部分服务使得服务的降格进行估计。
- 后向恢复:指在系统进行可靠性设计时,在可能发生故障的进程上设置一系列检测点,要求检测点提供尽可能多的故障信息。并在检测点进程后方设置一系列一个或若干个恢复点,当检测点检测到一个故障时,系统就复位到故障前进程经由的一个恢复点。恢复点能够保持先前进程经由时的状态(数据),以便故障排除后,可以从这个状态重新开始进行从该恢复点到到检测点之间的运算,得到正确的结果。这种恢复策略的优点是系统恢复不造成功能的降级;缺点是增加了执行时间和空间。
- 图中g表示检测点,j表示恢复点。
- 按进程方向来看,恢复点在进程方向前方的是前向恢复,恢复点在进程方向后方的是后向恢复。