容错技术是保证系统在某些组成部分出现故障或差错时仍能正常工作的技术。通常根据不同的系统配置方法而采用相应容错技术:单机容错技术 、 双机热备份技术和服务器集群技术。
1 单机容错技术
容错技术是保证系统在某些组成部分出现故障或差错时仍能正常工作的技术。系统的故障可分为两类:一类是 “ 致命的 ” ,不可能自行修复,例如系统的主要部件全部损坏;另一类是局部的,可能被修复,例如部分元件失效 、 线路故障 、 偶然干扰引起的差错等。
容错技术正是用于构造一种能够自动排除非致命性故障的系统,即容错系统。在单机容错技术中,提高系统工作可靠性的方法主要有自检技术和冗馀技术。容错又有多种形式,如硬件容错 、 软件容错 、 整机容错等。
1.1 自检技术
自检指系统在发生非致命性故障时能自动发现故障和确定故障的性质 、 部位,并自动采取措施更换和隔离产生故障的部件。自检需采用诊断技术,常用专门程序实现,属于程序设计的范围。容错系统的实现要求系统必须具有重复部件或备份部件,或具有不止一个完成某种功能的通道。因此自检技术常配合冗馀技术使用。计算机的容错系统一般都需要应用自检技术。
1.2 冗余技术
冗馀可分为硬件冗馀(增加硬件) 、 软件冗馀(增加程序,如同时采用不同算法或不同人编制的程序) 、 时间冗馀(如指令重复执行 、 程序重复执行) 、 信息冗馀(如增加数据位)等。
冗馀技术中最常用的两种方法是重复线路和备份线路。重复线路指用多个相同品种和规格的元件或构件并联起来,当作一个元件或构件使用,只要有一个不出故障,系统就能够正常工作。在并联工作时每一个构件的可靠性概率是互相独立的。备份线路与重复线路的差别是参加备份的构件并不接入系统,只有在处于工作状态的构件发生故障后才把输入和输出接到备份构件上来,同时切断故障构件的输入 、 输出。容错技术已获得广泛应用,常用于对可靠性要求高的系统,特别是用于危及人身安全的关键部位。在这些部位大多采用双重冗馀,也有采用三重 、 四重甚至五重冗馀的。
现代的大型复杂系统常常是容错能力很强的系统。容错技术在计算机中应用得最早 、 最广泛。
2 双机热备份技术
双机热备份技术是一种软硬件结合的较高容错应用方案。该方案是由两台服务器系统和一个外接共享磁盘阵列柜和相应的双机热备份软件组成。其中的外接共享磁盘阵列柜也可以没有,而是在各自的服务器中采取 RAID ( Redundant Arrayof Independent Disk ,独立冗馀磁盘阵列)卡。
在这个容错方案中,操作系统和应用程序安装在两台服务器的本地系统盘上,整个网络系统的数据是通过磁盘阵列集中管理和数据备份的。数据集中管理是通过双机热备份系统,将所有站点的数据直接从中央存储设备读取和存储,并由专业人员进行管理,极大地保护了数据的安全性和保密性。用户的数据存放在外接共享磁盘阵列中,在一台服务器出现故障时,备机主动替代主机工作,保证网络服务不间断。
双机热备份系统采用 “ 心跳 ” 方法保证主系统与备用系统的联系。所谓 “ 心跳 ” ,指的是主 、 从系统之间相互按照一定的时间间隔发送通信信号,表明各自系统当前的运行状态。一旦 “ 心跳 ” 信号表明主机系统发生故障,或者备用系统无法收到主机系统的 “ 心跳 ” 信号,则系统的高可用性管理软件认为主机系统发生故障,立即将系统资源转移到备用系统上,备用系统替代主机工作,以保证系统正常运行和网络服务不间断。
双机热备份方案中,根据两台服务器的工作方式可以有三种不同的工作模式,即:双机热备模式 、 双机互备模式和双机双工模式。
双机热备模式即目前通常所说的 active / standby 方式, active 服务器处于工作状态;而 standby 服务器处于监控准备状态,服务器数据包括数据库数据同时往两台或多台服务器写入(通常各服务器采用 RAID 磁盘阵列卡),保证数据的即时同步。当 active 服务器出现故障时,通过软件诊测或手工方式将 standby 机器激活,保证应用在短时间内完全恢复正常使用。典型应用有证券资金服务器或行情服务器。这是目前采用较多的一种模式,但由于另外一台服务器长期处于后备的状态,所以浪费了一部分计算资源。
用户可以根据系统的重要性及终端用户对服务中断的容忍程度决定是否使用双机热备份。例如,网络中的用户最多能容忍多长时间恢复服务,如果服务不能很快恢复会造成什么样的后果作为是否采用双机热备份的根据。对于承担企业关键业务应用的服务器需要极高的稳定性和可用性,并需要提供每周7(天) ×24 (小时)不间断服务的应用,推荐使用双机热备份。
双机互备模式,是两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,但对服务器的性能要求比较高。
双机双工模式是集群的一种形式,两台服务器均处于活动状态,同时运行相同的应用,以保证整体系统的性能,也实现了负载均衡和互为备份,通常使用磁盘柜存储技术 。Web 服务器或 FTP 服务器等用此种方式比较多。
3 服务器集群技术
集群技术指一组相互独立的服务器在网络中组合成为单一的系统工作,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。大多数情况下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户使用。集群必须可以协调管理各分离的构件出现的错误和故障,并可透明地向集群中加入构件。
一个集群包含多台(至少二台)共享数据存储空间的服务器。其中任何一台服务器运行应用时,应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。
集群内各节点服务器通过一个内部局域网相互通信,当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上的任一故障发生时,客户都将能很快连接到其他应用服务器上。