精华内容
下载资源
问答
  • 容错技术

    千次阅读 2019-04-23 11:57:32
    容错技术是保证系统在某些组成部分出现故障或差错时仍能正常工作的技术。 容错技术:单机容错技术、双机热备份技术和服务器集群技术。 系统的故障可分为两类: 一类是“致命的”,不可能自行修复. 另一类是局部的...

    容错技术是保证系统在某些组成部分出现故障或差错时仍能正常工作的技术。

    容错技术:单机容错技术、双机热备份技术和服务器集群技术。
    系统的故障可分为两类:
        一类是“致命的”,不可能自行修复.
        另一类是局部的,可能被修复.

        单机容错技术中,提高系统工作可靠性的方法主要有自检技术和冗余技术。 硬件容错、软件容错、整机容错
        自检技术:自检指系统在发生非致命性故障时能自动发现故障和确定故障的性质、部位,并自动采
    取措施更换和隔离产生故障的部件。

        冗余技术:
        冗余可分为硬件冗余(增加硬件)、软件冗余(增加程序,如同时采用不同算法或不同
    人编制的程序)、时间冗余(如指令重复执行、程序重复执行)、信息冗余(如增加数据位)
    等。冗余技术中最常用的两种方法是重复线路和备份线路。

    双机热备份技术
    双机热备份技术是一种软硬件结合的较高容错应用方案。该方案是由两台服务器系统和一个外接共享磁盘阵列柜和相应的双机热备份软件组成。

    所谓“心跳”,指的是主、从系统之间相互按照一定的时间间隔发送通信信号,表明各自系统当前的运行状态。

    双机热备份方案中,根据两台服务器的工作方式可以有三种不同的工作模式,即:双机热备模式、双机互备模式和双机双工模式。

    双机热备模式即目前通常所说的 active/standby 方式, active 服务器处于工作状态;而
    standby 服务器处于监控准备状态,服务器数据包括数据库数据同时往两台或多台服务器写
    入(通常各服务器采用 RAID 磁盘阵列卡),保证数据的即时同步。

    服务器集群技术集群技术指一组相互独立的服务器在网络中组合成为单一的系统工作,并以单一系统的
    模式加以管理。

    展开全文
  • 随着计算机技术的发展,计算机系统的可靠性越来越受到人们的重视,而容错技术是提高可靠性的一种有效方法。本文研究了计算机容错技术的各种方法,如硬件容错、信息容错、软件容错等,介绍了TMR(三模冗余)的原理...
  • 本文讲的是什么是容错技术容错技术是什么,【IT168 资讯】简单地说,容错就是当由于种种原因在系统中出现了数据、文件损坏或丢失时,系统能够自动将这些损坏或丢失的文件和数据恢复到发生事故以前的状态,使系统...

    本文讲的是什么是容错技术?容错技术是什么,【IT168 资讯】简单地说,容错就是当由于种种原因在系统中出现了数据、文件损坏或丢失时,系统能够自动将这些损坏或丢失的文件和数据恢复到发生事故以前的状态,使系统能够连续正常运行的一种技术。
      容错FT(Fault Tolerant)技术一般利用冗余硬件交叉检测操作结果。随着处理器速度的加快和价格的下跌而越来越多地转移到软件中。未来容错技术将完全在软件环境下完成,那时它和高可用性技术之间的差别也就随之消失了

    原文发布时间为:2009-06-17
    本文作者:IT168.com
    本文来自云栖社区合作伙伴IT168,了解相关信息可以关注IT168。
    原文标题:什么是容错技术?容错技术是什么

    展开全文
  • 服务器容错技术

    千次阅读 2016-04-07 08:49:23
    服务器容错技术 目前主流应用的服务器容错技术有三类,它们分别是:服务器群集技术、双机热备份技术和单机容错技术。它们各自所对应的容错级别是从低到高的,也就是说服务器群集技术容错级别最低,而单机容错...

                                                                  服务器容错技术


    目前主流应用的服务器容错技术有三类,它们分别是:服务器群集技术、双机热备份技术和单机容错技术。它们各自所对应的容错级别是从低到高的,也就是说服务器群集技术容错级别最低,而单机容错技术级别最高。由此可知它们各自应用的行业容错级别需求也是从低到高的。本文主要介绍后两种容错技术,先来看一下双机热备份容错技术。


         一、双机热备份技术

        双机热备份技术是一种软硬件结合的较高容错应用方案。该方案是由两台服务器系统和一个外接共享磁盘阵列柜(也可没有,而是在各自的服务器中采取RAID卡)及相应的双机热备份软件组成。

        在这个容错方案中,操作系统和应用程序安装在两台服务器的本地系统盘上,整个网络系统的数据是通过磁盘阵列集中管理和数据备份的。数据集中管理是通过双机热备份系统,将所有站点的数据直接从中央存储设备读取和存储,并由专业人员进行管理,极大地保护了数据的安全性和保密性。用户的数据存放在外接共享磁盘阵列中,在一台服务器出现故障时,备机主动替代主机工作,保证网络服务不间断。

        双机热备份系统采用“心跳”方法保证主系统与备用系统的联系。所谓“心跳”,指的是主从系统之间相互按照一定的时间间隔发送通讯信号,表明各自系统当前的运行状态。一旦“心跳”信号表明主机系统发生故障,或者备用系统无法收到主机系统的“心跳” 信号,则系统的高可用性管理软件认为主机系统发生故障,主机停止工作,并将系统资源转移到备用系统上,备用系统将替代主机发挥作用,以保证网络服务运行不间断。

        双机热备份方案中,根据两台服务器的工作方式可以有三种不同的工作模式,即:双机热备模式、双机互备模式和双机双工模式。下面分别予以简单介绍。

        双机热备模式即目前通常所说的active/standby 方式,active服务器处于工作状态;而standby 服务器处于监控准备状态,服务器数据包括数据库数据同时往两台或多台服务器写入(通常各服务器采用RAID磁盘阵列卡),保证数据的即时同步。当active服务器出现故障的时候,通过软件诊测或手工方式将standby机器激活,保证应用在短时间内完全恢复正常使用。典型应用在证券资金服务器或行情服务器。这是目前采用较多的一种模式,但由于另外一台服务器长期处于后备的状态,从计算资源方面考量,就存在一定的浪费。

        双机互备模式,是两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,但对服务器的性能要求比较高。配置相对要好。

        双机双工模式:是目前cluster(群集)的一种形式,两台服务器均为活动,同时运行相同的应用,保证整体的性能,也实现了负载均衡和互为备份,需要利用磁盘柜存储技术(最好采用San方式)。WEB服务器或FTP服务器等用此种方式比较多。

        二、单机容错技术

        从上面的分析我们知道,双机热备份技术所采用的是两台配置完全一样的服务器系统,其实服务器群集方案中的容错技术也是一种多服务器容错技术。而本节所要介绍的单机容错技术则是在一台服务器实现高性能容错的,它的容错能力要远比服务器群集和双机热备份中容错能力要高,所以更加适合那些如证券、电信、金融、医疗等对容错能力特别苛刻的行业。

        以往的集群系统在出现故障的情况下,需要中断服务器的运行,然后用一定的时间切换至备用的服务器上面进行运行,才能进行维修和恢复,这其中所付出的成本和带来的损失是用户最不愿意看到的。具有容错技术的容错服务器,最大的优势就在于它能够自动分离故障模块,在不中断运行的情况下,进行模块调换,对损坏的部件进行维护,并且在一切物理故障消除后,系统会自动重新同步运行,从而有效的解决了客户的后顾之忧。正因如此,具有容错技术的容错服务器,正在冲击前几年兴起的双机热备份和集群技术,越来越被人们所关注。同时,更为难得的是它可以在采用符合工业标准部件的服务器中实现(IA架构服务器),极具竞争力的成本优势,更使得容错服务器令人刮目相看。

        容错服务器是通过CPU时钟锁频,通过对系统中所有硬件的备份,包括CPU、内存和I/O总线等的冗余备份;通过系统内所有冗余部件的同步运行,实现真正意义上的容错。系统任何部件的故障都不会造成系统停顿和数据丢失。目前很多容错系统是基于IA架构的服务器,与 Windows 2000完全兼容,实现以前只有在RISC系统上才能实现的容错。这种容错技术在IA服务器上的实现,将IA服务器的可靠性提高到了99.999%,同时服务器的运行是不间断的。

        双机热备份和容错服务器的定位稍微有些不同,这是由两者实现的可用性差别决定的。双机热备份一般可以实现99.9%的可用性,容错服务器却可以实现99.999%的可用性。这样,双机热备份大多应用在业务连续性不是很严格的行业,比如说公安系统、部队系统或者个别的制造企业,这些行业的应用允许数据有一小段时间的中断。而如电信、金融、证券和医疗等要求高的行业则是容错服务器的天下。还要注意的一点是双机热备份与服务器群集并不一样,双机热备份通常要求两对路服务器的配置完全一样,而服务器群集则没有这方面的严格要求,这也是许多读者容易混淆的。

        另外,双机热备份方式由于需要至少2台服务器,导致在软件采购(操作系统、中间件、双机备份软件等)、软件维护升级、系统硬件升级都需要比单机容错方式多1倍的额外投入,而且在双机备份软件出现故障后,其维修的难度较高,对客户会带来较大困难。因此虽然单机容错服务器的硬件成本高于双机备份方式的硬件投入,而其总成本(TCO)却远远低于双机备份方式的成本。但是就其灵活配置方面,双机热备份方案更具优势,许多热备份方案都是由一些系统集成商组合不同厂家服务器产品进行的,可以满足不同客户需求。但总体来说,容错服务器是未来发展的趋势。
    展开全文
  • 5.1 拜占庭容错技术

    2018-09-30 14:48:23
    拜占庭容错技术(Byzantine Fault Tolerance,BFT)是一类分布式计算领域的容错技术。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因, 计算机和网络可能出现不可预料的...

    拜占庭容错技术(Byzantine Fault Tolerance,BFT)是一类分布式计算领域的容错技术。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因, 计算机和网络可能出现不可预料的行为。拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求。

    5.1.1 拜占庭将军问题

    拜占庭容错技术来源于拜占庭将军问题。拜占庭将军问题是Leslie Lamport在20世纪80年代提出的一个假象问题[1] 。拜占庭是东罗马帝国的首都,由于当时拜占庭罗马帝国国土辽阔,每支军队的驻地分隔很远,将军们只能靠信使传递消息。发生战争时,将军们必须制订统一的行 动计划。然而,这些将军中有叛徒,叛徒希望通过影响统一行动计划的制定与传播,破坏忠诚的将军们一致的行动计划。因此,将军们必须有一个预定的方法协议, 使所有忠诚的将军能够达成一致,而且少数几个叛徒不能使忠诚的将军做出错误的计划。也就是说,拜占庭将军问题的实质就是要寻找一个方法,使得将军们能在一 个有叛徒的非信任环境中建立对战斗计划的共识。在分布式系统中,特别是在区块链网络环境中,也和拜占庭将军的环境类似,有运行正常的服务器(类似忠诚的拜 占庭将军),有故障的服务器,还有破坏者的服务器(类似叛变的拜占庭将军)。共识算法的核心是在正常的节点间形成对网络状态的共识。

    求解拜占庭将军问题,隐含要满足以下两个条件:

    1)每个忠诚的将军必须收到相同的命令值vi(vi是第i个将军的命令)。

    2)如果第i个将军是忠诚的,那么他发送的命令和每个忠诚将军收到的vi相同。

    于是,拜占庭将军问题的可以描述为:一个发送命令的将军要发送一个命令给其余n-1个将军,使得:

    IC1.所有忠诚的接收命令的将军遵守相同的命令;

    IC2.如果发送命令的将军是忠诚的,那么所有忠诚的接收命令的将军遵守所接收的命令。

    Lamport对拜占庭将军问题的研究表明[2] ,当n>3m时,即叛徒的个数m小于将军总数n的1/3时,通过口头同步通信(假设通信是可靠的),可以构造同时满足IC1和IC2的解决方案,即 将军们可以达成一致的命令。但如果通信是可认证、防篡改伪造的(如采用PKI认证,消息签名等),则在任意多的叛徒(至少得有两个忠诚将军)的情况下都可 以找到解决方案。

    而在异步通信情况下,情况就没有这么乐观。Fischer-Lynch-Paterson定理证明了,只要有一个叛徒存在,拜占庭将军问题就无解[3] 。翻译成分布式计算语言,在一个多进程异步系统中,只要有一个进程不可靠,那么就不存在一个协议,此协议能保证有限时间内使所有进程达成一致。

    由此可见,拜占庭将军问题在一个分布式系统中,是一个非常有挑战性的问题。因为分布式系统不能依靠同步通信,否则性能和效率将非常低。因此寻找一种实用的解决拜占庭将军问题的算法一直是分布式计算领域中的一个重要问题。

    在这里,我们先给出分布式计算中有关拜占庭缺陷和故障的两个定义:

    定义1: 拜占庭缺陷(Byzantine Fault):

    任何观察者从不同角度看,表现出不同症状的缺陷。

    定义2: 拜占庭故障(Byzantine Failure):

    在需要共识的系统中由于拜占庭缺陷导致丧失系统服务。

    在分布式系统中,不是所有的缺陷或故障都能称作拜占庭缺陷或故障。像死机、丢消息等缺陷或故障不能算为拜占庭缺陷或故障。拜占庭缺陷或故障是最严重缺陷或故障,拜占庭缺陷有不可预测、任意性的缺陷,例如遭黑客破坏,中木马的服务器就是一个拜占庭服务器。

    在一个有拜占庭缺陷存在的分布式系统中,所有的进程都有一个初始值。在这种情况下,共识问题(Consensus Problem),就是要寻找一个算法和协议,使得该协议满足以下三个属性。

    1)一致性(Agreement):所有的非缺陷进程都必须同意同一个值。

    2)正确性(Validity):如果所有的非缺陷的进程有相同的初始值,那么所有非缺陷的进程所同意的值必须是同一个初始值。

    3)可结束性(Termination):每个非缺陷的进程必须最终确定一个值。

    根据Fischer-Lynch-Paterson的理论,在异步通信的分布式系统中,只要有一个拜占庭缺陷的进程, 就不可能找到一个共识算法,可同时满足上述要求的一致性、正确性和可结束性要求。在实际情况下,根据不同的假设条件,有很多不同的共识算法被设计出来。这 些算法各有优势和局限。算法的假设条件有以下几种情况:

    1)故障模型:非拜占庭故障/拜占庭故障。

    2)通信类型:同步/异步。

    3)通信网络连接:节点间直连数。

    4)信息发送者身份:实名/匿名。

    5)通信通道稳定性:通道可靠/不可靠。

    6)消息认证性:认证消息/非认证消息。

    在区块链网络中,由于应用场景的不同,所设计的目标各异,不同的区块链系统采用了不同的共识算法。一般来说,在私有链 和联盟链情况下,对一致性、正确性有很强的要求。一般来说要采用强一致性的共识算法。而在公有链情况下,对一致性和正确性通常没法做到百分之百,通常采用 最终一致性(Eventual Consistency)的共识算法。

    下面我们先来介绍适合私有链和联盟链场景的拜占庭容错系统。

    [1] Lamport L,Shostak R,Pease M.The Byzantine generals problem.ACM Trans.on Programming Languages and Systems,1982,4(3):382-401.

    [2] Lamport L,Shostak R,Pease M.The Byzantine generals problem.ACM Trans.on Programming Languages and Systems,1982,4(3):382-401.

    [3] Fischer,M.J.,Lynch,N.A.,Paterson,M.:Impossibility of distributed consensus with one faulty process.J.ACM 32(2),374-382(1985).

    5.1.2 拜占庭容错系统

    上一节的分析表明,区块链网络的记账共识和拜占庭将军问题是相似的。参与共识记账的每一个记账节点相当于将军,节点之间的消息传递相当于信使,某些节点可能由于各种原因而产生错误的信息并传达给其他节点。通常,这些发生故障节点被称为拜占庭节点 ,而正常的节点即为非拜占庭节点 。

    拜占庭容错系统是一个拥有n台节点的系统,整个系统对于每一个请求,满足以下条件:

    1)所有非拜占庭节点使用相同的输入信息,产生同样的结果;

    2)如果输入的信息正确,那么所有非拜占庭节点必须接收这个信息,并计算相应的结果。

    与此同时,在拜占庭系统的实际运行过程中,还需要假设整个系统中拜占庭节点不超过m台,并且每个请求还需要满足两个指标。

    ·安全性:任何已经完成的请求都不会被更改,它可以在以后请求看到;

    ·活性:可以接受并且执行非拜占庭客户端的请求,不会被任何因素影响而导致非拜占庭客户端的请求不能执行。

    拜占庭系统普遍采用的假设条件包括:

    1)拜占庭节点的行为可以是任意的,拜占庭节点之间可以共谋;

    2)节点之间的错误是不相关的;

    3)节点之间通过异步网络连接,网络中的消息可能丢失、乱序并延时到达,但大部分协议假设消息在有限的时间里能传达到目的地;

    4)服务器之间传递的信息,第三方可以嗅探到,但是不能篡改、伪造信息的内容和验证信息的完整性。

    5.1.3 实用的拜占庭容错系统

    原始的拜占庭容错系统[1] 由于需要展示其理论上的可行性而缺乏实用性。另外,还需要额外的时钟同步机制支持,算法的复杂度也是随节点增加而指数级增加。实用拜占庭容错系统(Practical Byzantine Fault Tolerance,PBFT)[2] ,降低了拜占庭协议的运行复杂度,从指数级别降低到多项式级别(Polynomial),使拜占庭协议在分布式系统中应用成为可能。

    PBFT是一类状态机拜占庭系统[3] ,要求共同维护一个状态,所有节点采取的行动一致。为此,需要运行三类基本协议,包括一致性协议、检查点协议和视图更换协议。我们主要关注支持系统日常运行的一致性协议。

    一致性协议要求来自客户端的请求在每个服务节点上都按照一个确定的顺序执行。这个协议把服务器节点分为两类:主节点和 从节点,其中主节点仅一个。在协议中,主节点负责将客户端的请求排序;从节点按照主节点提供的顺序执行请求。每个服务器节点在同样的配置信息下工作,该配 置信息被称为视图,主节点更换,视图也随之变化。

    一致性协议至少包含若干个阶段:请求(request)、序号分配(pre-prepare)和响应(reply)。根据协议设计的不同,可能包含相互交互(prepare),序号确认(commit)等阶段。

    PBFT的一致性协议如图5-1所示。PBFT系统通常假设故障节点数为m个,而整个服务节点数为3m+1个。每一个 客户端的请求需要经过5个阶段,通过采用两次两两交互的方式在服务器达成一致之后再执行客户端的请求。由于客户端不能从服务器端获得任何服务器运行状态的 信息,PBFT中主节点是否发生错误只能由服务器监测。如果服务器在一段时间内都不能完成客户端的请求,则会触发视图更换协议。

    image.png

    图5-1 PBFT协议通信模式

    图5-1显示了一个简化的PBFT的协议通信模式,其中C为客户端,N0 ~N3 表示服务节点,特别的,N0 为主节点,N3 为故障节点。整个协议的基本过程如下。

    1)客户端发送请求,激活主节点的服务操作。

    2)当主节点接收请求后,启动三阶段的协议以向各从节点广播请求。

    [2.1]序号分配阶段,主节点给请求赋值一个序列号n,广播序号分配消息和客户端的请求消息m,并将构造PRE-PREPARE消息给各从节点;

    [2.2]交互阶段,从节点接收PRE-PREPARE消息,向其他服务节点广播PREPARE消息;

    [2.3]序号确认阶段,各节点对视图内的请求和次序进行验证后,广播COMMIT消息,执行收到的客户端的请求并给客户端以响应。

    3)客户端等待来自不同节点的响应,若有m+1个响应相同,则该响应即为运算的结果。

    PBFT在很多场景都有应用,在区块链场景中,一般适合于对强一致性有要求的私有链和联盟链场景。例如,在IBM主导的区块链超级账本项目中,PBFT是一个可选的共识协议。

    除了PBFT之外,超级账本项目还引入了基于PBFT的自用共识协议,它的目的是希望在PBFT基础之上能够对节点的 输出也做好共识,这是因为,超级账本项目的一个重要功能是提供区块链之上的智能合约,即在区块链上执行的一段代码,因此它会导致区块链账本上最终状态的不 确定,为此这个自有共识协议会在PBFT实现的基础之上,引入代码执行结果签名进行验证。

    [1] Lamport L,Shostak R,Pease M.The Byzantine generals problem.ACM Trans.on Programming Languages and Systems,1982,4(3):382-401.

    [2] Castro M,Liskov B.Practical Byzantine fault tolerance and proactive recovery.ACM Trans.on Computer Systems,2002,20(4):398-461.

    [3] 范捷,易乐天,舒继武.拜占庭系统技术研究综述.软件学报,2013,24(6):1346-1360.

    5.1.4 Raft协议

    在很多分布式系统场景下,并不需要解决拜占庭将军问题,也就是说,在这些分布式系统的实用场景下,其假设条件不需要考 虑拜占庭故障,而只是处理一般的死机故障。在这种情况下,采用Paxos等协议会更加高效。Paxos是Lamport设计的保持分布式系统一致性的协 议。但由于Paxos非常复杂,比较难以理解,因此后来出现了各种不同的实现和变种。例如谷歌的GFS、BigTable就采用了基于Paxos的 Chubby的分布式锁协议;Yahoo的Hadoop系统采用了类似Paxos协议的Zookeeper协议。Raft也是为了避免Paxos的复杂性 而专门设计成易于理解的分布式一致性算法。在私有链和联盟链的场景下,通常共识算法有强一致性要求,同时对共识效率要求高。另外一般安全性要比公有链场景 高,一般来说不会经常存在拜占庭故障。因此,在一些场景下,可以考虑采用非拜占庭协议的分布式共识算法。

    在Hyperledger的Fabric项目中,共识模块被设计成可插拔的模块,支持像PBFT、Raft等共识算法。

    Raft最初是一个用于管理复制日志的共识算法[1] ,它是一个为真实世界应用建立的协议,主要注重协议的落地性和可理解性。Raft是在非拜占庭故障下达成共识的强一致协议。

    在区块链系统中,使用Raft实现记账共识的过程可以描述如下:首先选举一个leader,接着赋予leader完全 的权力管理记账。leader从客户端接收记账请求,完成记账操作,生成区块,并复制到其他记账节点。有了leader简化了记账操作的管理。例 如,leader能够决定是否接受新的交易记录项而无需考虑其他的记账节点,leader可能失效或与其他节点失去联系,这时,系统就会选出新的 leader。

    给定leader方法,Raft将共识问题分解为三个相对独立的子问题。

    ·leader选举:现有的leader失效时,必须选出新leader。

    ·记账:leader必须接受来自客户端的交易记录项,在参与共识记账的节点中进行复制,并使其他的记账节点认可交易所对应的区块。

    ·安全:若某个记账节点对其状态机应用了某个特定的区块项,其他的服务器不能对同一个区块索引应用不同的命令。

    1.Raft基础

    一个Raft集群通常包含5个服务器,允许系统有两个故障服务器。每个服务器处于3个状态之一:leader、 follower或candidate。正常操作状态下,仅有一个leader,其他的服务器均为follower。follower是被动的,不会对自 身发出请求而是对来自leader和candidate的请求做出响应。leader处理所有的客户端请求(若客户端联系follower,则该 follower将转发给leader)。candidate状态用来选举leader。

    Raft阶段主要分为两个,首先是leader选举过程,然后在选举出来的leader基础上进行正常操作,比如日志复制、记账等。

    2.leader选举

    当follower在选举超时时间内未收到leader的心跳消息,则转换为candidate状态。为了避免选举冲突,这个超时时间是一个150~300ms之间的随机数。

    一般而言,在Raft系统中:

    1)任何一个服务器都可以成为一个候选者candidate,它向其他服务器follower发出要求选举自己的请求。

    2)其他服务器同意了,发出OK。注意,如果在这个过程中,有一个follower宕机,没有收到请求选举的要求,此时候选者可以自己选自己,只要达到N/2+1的大多数票,候选人还是可以成为leader的。

    3)这样这个候选者就成为了leader领导人,它可以向选民也就是follower发出指令,比如进行记账。

    4)以后通过心跳进行记账的通知。

    5)一旦这个leader崩溃了,那么follower中有一个成为候选者,并发出邀票选举。

    6)follower同意后,其成为leader,继续承担记账等指导工作。

    3.记账过程

    Raft的记账过程按以下步骤完成:

    1)假设leader领导人已经选出,这时客户端发出增加一个日志的要求;

    2)leader要求follower遵从他的指令,都将这个新的日志内容追加到他们各自日志中;

    3)大多数follower服务器将交易记录写入账本后,确认追加成功,发出确认成功信息;

    4)在下一个心跳中,leader会通知所有follower更新确认的项目。

    对于每个新的交易记录,重复上述过程。

    如果在这一过程中,发生了网络通信故障,使得leader不能访问大多数follower了,那么leader只能正 常更新它能访问的那些follower服务器。而大多数的服务器follower因为没有了leader,他们将重新选举一个候选者作为leader,然 后这个leader作为代表与外界打交道,如果外界要求其添加新的交易记录,这个新的leader就按上述步骤通知大多数follower,如果这时网络 故障修复了,那么原先的leader就变成follower,在失联阶段,这个老leader的任何更新都不能算确认,都回滚,接收新的leader的新 的更新。

    本节介绍了分布式系统中的常用共识算法。从介绍拜占庭将军问题开始,介绍了拜占庭容错系统、状态机拜占庭协议、实用拜占庭容错协议(PBFT)和Raft。其中拜占庭容错协议和Raft是联盟链和私有链上常用的共识算法。

    而公共链的共识机制一般采用工作量证明(POW)和权益证明(POS)算法。下面进行介绍。

    [1] Ongaro D,Ousterhout J.In Search of an Understandable Consensus Algorithm.In:Proc.of USENIX Annual Technical Conference 2014,305-319.


    来源:我是码农,转载请保留出处和链接!

    本文链接:http://www.54manong.com/?id=1020

    '); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
    '); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
    展开全文
  • 在煤矿井下,外界干扰对电子产品的影响是...矿用电子产品可靠性设计是一项系统工程,其软件系统的容错技术能起到抑制煤矿井下干扰的作用。在软件运行过程中,应能及时诊断出硬件运行故障并修复错误,从而确保程序正确运行。
  • 随着大规模计算技术的发展,虚拟机技术已经成为云计算中的重要技术。为了提高云计算实验平台的运行效率,提出了一种虚拟机容错机制,并进行了研究,详细论述了...通过实验表明,该容错技术能有效的提高实验平台的性能。
  • 本文对过程控制中的容错技术进行了研究,介绍了容错过程控制的基本思想,从控制系统的硬件和软件两个方面,分析了利用容错技术提高控制系统的可靠性的措施和方法。最后,把容错技术应用于电力机车LCU设计。结果表明,容错...
  • 在SVG中开关管的脆弱性已经...故障容错技术中,根据调制策略的不同,采用不同的容错技术,在采用SVPWM(空间矢量调制)作为SVG主电路即三电平逆变电路调制策略的前提下成功将一种基于冗余矢量替代的容错分析方法应用于SVG。
  • 容错技术是保证系统在某些组成部分出现故障或差错时仍能正常工作的技术。通常根据不同的系统配置方法而采用相应容错技术:单机容错技术 、 双机热备份技术和服务器集群技术。 1 单机容错技术 容错技术是保证系统在...
  • 优先级反转是实时系统中出现最多的问题。为了防止这种现象的发生,目前经常采用的...容错技术是提高系统可靠性的重要保障,利用容错技术对优先级继承进行扩展,可以更好地解决优先级的反转问题,保障了系统的实时性能。
  • 容错技术是实时多任务并行计算系统设计中必须解决的一个关键难点。针对实时多任务并行计算系统的高可靠性和高效性的要求,介绍了计算机系统可靠性和容错技术的基本概念、基本方法和基本思想,在检查点技术和卷回技术...
  • 网络层容错及跨层协同优化设计是网络故障容错的重要研究内容, 主要对网络层容错技术研究进行了归纳和总结。网络层容错控制技术主要分为多路由传输、纠删编码/网络编码、数据重传机制、跨层协同优化与复合容错和仿生...
  • 计算机的容错技术

    2012-04-23 09:24:00
    提高计算机可靠性的技术可以分为避错技术和容错技术。后者主要运用冗余技术来抵消由于故障所引起的影响。冗余技术是计算机容错技术的基础,一般可分为下列几种类型。硬件冗余:以检测或屏蔽故障为目的而增加一定硬件...
  • 思科的网络容错技术

    千次阅读 2012-07-13 13:31:50
    思科的网络容错技术   ---- 应用中任意一节出现故障都会导致网站的巨大损失,因此总体的解决也应从多方面入手,如数据备份,服务器的硬件冗余、软件容错,以及网络设备的部件冗余和结构(链路)冗余等,以保障整套...
  • 除了传统的冗余机制,主动容错技术也被用来提高存储系统的可靠性。然而,当前对主动容错云存储系统可靠性的研究工作很少,而且都局限于硬盘故障服从指数分布的假设前提。针对主动容错磁盘冗余阵列RAID-5和RAID-6云...
  • 容错技术介绍

    2017-05-22 13:00:00
    容错的目标是降低或者最小化故障对系统可用性、可靠性、安全性、持续性等得影响。在软件容错中,常常使用fault(缺陷),error(错误),failure(故障)来表示系统异常的由来。系统缺陷在某种特定环境下被激活,到至系统...
  • 为满足航天器有效载荷间高速数据多路传输未来发展和空间抗辐射的需求, 研究了一种应用于SpaceWire路由器动态部分重构的容错技术。在SpaceWire总线标准网络层分析的基础上, 对cell矩阵无阻塞路由增添HanMing编码实现...
  • 论高可靠性系统中软件容错技术的应用 摘要: 2016年3月,我公司承担了国家某安全中心漏洞挖掘系统的开发工作,我在该项目中承担系统架构设计师的职务,主要负责系统的架构设计。该项目的主要目的是依托大数据...
  • 拜占庭容错技术算法

    2019-04-28 10:20:56
    想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答! BFT即拜占庭容错算法。EOS引入这个算法,主要是赋予出块节点更大的权力,加快出块速度,解决节点出的块都被漏掉的问题。 EOS...
  • 文章对基于FPGA的动态可重构技术容错领域的应用进行了研究。针对重构文件的大小,动态容错时隙的长短、资源利用率、实现的复杂性、模块间通信方式、冗余资源的比例与布局等方面的问题分析了一些方法的优缺点,针对...
  • 服务器网卡容错技术 AFT ALB FEC 2008-02-25 11:09:12 服务器不但需要有强悍的服务性能,同样也要具有绝对放心的安全措施。在实际应用中,无论是网线断了、集线器或交换机端口坏了,还是网卡坏了都会造成连接中断...
  • 摘要:基于SRAM的FPGA对于空间粒子辐射非常敏感,很容易产生软故障,所以对基于FPGA的电子系统采取容错措施以防止此类故障的出现是非常重要的。三模冗余(TMR)方法以其实现的简单性和效果的可靠性而被广泛用于对单...
  • 如果运行应用服务器的所有机器都发生故障,仍可以在客户端保存更新的资料,待应用程序服务器的机器恢复功能后,再自动把原先保存的资料更新回远程数据库服务器中,使得分布式多层应用系统的容错性能得到极大的提高。...
  • 阿里笔试题第二题之——-容错技术 定义:容错就是当由于种种原因在系统中出现了数据、文件损坏或丢失时,系统能够自动将这些损坏或丢失的文件和数据恢复到发生事故以前的状态,使系统能够连续正常运行一种技术。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,644
精华内容 1,457
关键字:

容错技术