双击热备、集群和高可用

目前主流应用的服务器容错技术有三类,它们分别是:服务器群集技术、双机热备份技术和单机容错技术。它们各自所对应的容错级别是从低到高的,也就是说服务器群集技术容错级别最低,而单机容错技术级别最高。由此可知它们各自应用的行业容错级别需求也是从低到高的。
什么是双机热备?
双机热备这一概念包括了广义与狭义两种意义。
   从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。
   双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。但在实际应用中,可能会出现多台服务器的情况,即服务器集群。
   双机热备一般情况下需要有共享的存储设备。但某些情况下也可以使用两台独立的服务器。
  实现双机热备,需要通过专业的集群软件或双机软件。
  从狭义上讲,双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
为什么要做双机热备?
双机热备针对的是服务器的故障。
   服务器的故障可能由各种原因引起,如设备故障、操作系统故障、软件系统故障等等。一般地讲,在技术人员在现场的情况下,恢复服务器正常可能需要10分钟、几小时甚至几天。从实际经验上看,除非是简单地重启服务器(可能隐患仍然存在),否则往往需要几个小时以上。而如果技术人员不在现场,则恢复服务的时间就更长了。
   而对于一些重要系统而言,用户是很难忍受这样长时间的服务中断的。因此,就需要通过双机热备,来避免长时间的服务中断,保证系统长期、可靠的服务。
   决定是否使用双机热备,正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度,以此决定是否使用双机热备。即,你的用户能容忍多长时间恢复服务,如果服务不能恢复会造成多大的影响。
   在考虑双机热备时,需要注意,一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务是有可能短时间中断的。但是,当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够很快恢复正常的服务,业务不致受到影响。而如果没有双机热备,则一旦出现服务器故障,可能会出现几个小时的服务中断,对业务的影响就可能会很严重。
   另有一点需要强调,即服务器的故障与交换机、存储设备的故障不同,其概念要高得多。原因在于服务器是比交换机、存储设备复杂得多的设备,同时也是既包括硬件、也包括操作系统、应用软件系统的复杂系统。不仅设备故障可能引起服务中断,而且软件方面的问题也可能导致服务器不能正常工作。
   还应指出的是,一些其他的防护措施如磁盘阵列(RAID)、数据备份虽然是非常重要的,但却不能代替双机热备的作用。可参见相关文章:双机热备与数据备份/Raid的关系:
双机热备的实现模式 - 基于共享存储与纯软件方式
双机热备有两种实现模式,一种是基于共享的存储设备的方式,另一种是没有共享的存储设备的方式,一般称为纯软件方式。
  基于存储共享的双机热备是双机热备的最标准方案。
  对于这种方式,采用两台(或多台,参见:双机与集群的异同)服务器,使用共享的存储设备(磁盘阵列柜或存储区域网SAN)。两台服务器可以采用互备、主从、并行等不同的方式。在工作过程中,两台服务器将以一个虚拟的IP地址对外提供服务,依工作方式的不同,将服务请求发送给其中一台服务器承担。同时,服务器通过心跳线(目前往往采用建立私有网络的方式)侦测另一台服务器的工作状况。当一台服务器出现故障时,另一台服务器根据心跳侦测的情况做出判断,并进行切换,接管服务。对于用户而言,这一过程是全自动的,在很短时间内完成,从而对业务不会造成影响。由于使用共享的存储设备,因此两台服务器使用的实际上是一样的数据,由双机或集群软件对其进行管理。
   (典型的双机热备产品,参见:LanderCluster集群软件)
   对于纯软件的方式,则是通过支持镜像的双机软件,将数据可以实时复制到另一台服务器上,这样同样的数据就在两台服务器上各存在一份,如果一台服务器出现故障,可以及时切换到另一台服务器。
   对于这种方式的深入分析,请参见:纯软件方式的双机热备方案深入分析
   纯软件方式还有另外一种情况,即服务器只是提供应用服务,而并不保存数据(比如只进行某些计算,做为应用服务器使用)。这种情况下同样也不需要使用共享的存储设备,而可以直接使用双机或集群软件即可。但这种情况其实与镜像无关,只不过是标准的双机热备的一种小的变化。
纯软件方式的双机热备方案深入分析
本文将对双机热备的纯软件方式进行深入分析。
   数据库双机热备有两种典型的方式,一种是比较标准的,两台服务器通过一个共享的存储设备(一般是共享的磁盘阵列或存储区域网SAN),并且安装双机软件,实现双机热备,称为共享方式。另一种方式是通过纯软件的方式,一般称为纯软件方式或镜像方式(Mirror)。
   对于共享方式,数据库放在共享的存储设备上。当一台服务器提供服务时,直接在存储设备上进行读写。而当系统切换后,另一台服务器也同样读取该存储设备上的数据。
   对于纯软件的方式,通过镜像软件,将数据可以实时复制到另一台服务器上,这样同样的数据就在两台服务器上各存在一份,如果一台服务器出现故障,可以及时切换到另一台服务器。
纯软件方式有三大优点:
   1.避免了磁盘阵列的单点故障:对于双机热备,本身即是防范由于单个设备的故障导致服务中断,但磁盘阵列恰恰又形成了一个新的单点。(比如,服务器的可靠系数是99.9%, 磁盘阵列的可靠系数是99.95%,则纯软双机的可靠系数是1-99.9%x99.9%=99.99%,而基于磁盘阵列的双机热备系统的可靠系数则会是略低于99.95%
   2.节约投资:不需购买昂贵的磁盘阵列。
   3.不受距离的限制:两台服务器不需受SCSI电缆的长度限制(光纤通道的磁盘阵列也不受距离限制,但投资会大得多)。这样,可以更灵活地部署服务器,包括通过物理位置的距离来提高安全性。
 纯软件方式以前应用得较少,一方面是由于当时市场上比较流行的双机软件不支持纯软件方式,另一方面是由于少数支持纯软件方式的产品其可靠性不太令人放心。但随着NEC这样的大牌厂商的产品进入市场,应该说纯软件方式将逐渐成为一种方向。
   从方案选择的角度,建议在进行双机热备时,如果投资充裕、数据量大(1T以上),可以采用共享的存储设备(如磁盘阵列)的方式,但应尽量选择高可靠性(如著名品牌的)设备,并且考虑选择双控制器的方案。否则,则更好的选择是纯软件方式。当然,这时就一定要选择成熟的、大厂商的经过考验的产品。
双机、集群的配置模式:主从、互备、多点集群
在应用双机热备时,有多种应用模式,典型的包括主从、互备、多点集群三大类:
   主从模式是最标准、最简单的双机热备,即是目前通常所说的active/standby方式。它使用两台服务器,一台作为主服务器(Active),运行应用系统来提供服务。另一台作为备机,安装完全一样的应用系统,但处于待机状态(Standby)。当active服务器出现故障的时候,通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
   双机互备,在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。这种方式实际上是双机热备的一种应用。它避免了两个应用使用四台服务器分别实现双机热备。
 但双机互备存在着性能瓶颈,即如果进行切换后,在一台服务器上就有同时运行两个应用,有可能负载过大。并且,有些情况下会有不止两台服务器对外提供服务。在这种情况上,多点集群就显示出了其必要性。
   多点集群可以理解为双机热备在技术上的提升。多机服务器可以组成一个集群。根据应用的实际情况,可以灵活地在这些服务器上进行部署,同时可以灵活地设置接管策略。比如,可以由一台服务器作为其他所有服务器的备机,也可以设置多重的接管关系,等等。这样,就可以充分地利用服务器的资源,同时保证系统的高可用性。
双机软件与集群软件的异同:
双机软件与集群软件的异同
在双机热备应用方面,有两大类软件产品。一类是双机软件(HA),另一类则称作集群软件(Cluster)。这两类软件的异同在什么地方呢?
  它们都是为实现系统的高可用性服务的,都解决了一台服务器出现故障时,由其他服务器接管应用,从而持续可靠地提供服务的问题。
  它们都是通过心跳技术在进行系统检测。
  但是,双机软件只能支持两台服务器以主从方式或互备方式工作。而集群软件除了支持双机工作外,还可以支持多台服务器(Multi Node)工作,同时部署多个应用,并在多个服务器间灵活地设置接管策略。
  在两种情况下需要使用集群软件:一是有超过两个应用,本身就需要部署三台或更多的服务器。二是只有两个应用,但每个应用的负载均较大,不宜采用双机互备的方式,而是需要由第三台服务器来作为这两个应用的备机。
  一般地讲,集群软件具有更多的技术含量,具备更高的可靠性。同时,往往价格(平均到每台服务器)也高于双机软件。
  在选择产品时,应根据应用的实际情况来确定。最理想的方式,则是在应用数量少、负载不是很大时先使用双机软件,然后在应用数量增多、负载增大时平滑过渡到集群软件。
  典型的支持多点集群的热备软件,参见:LanderCluster集群软件)
如何选择与实施双机热备及高可用性方案?
建议采取以下的步骤与方法:
第一,确定对于双机热备或其他高可用性的要求。
 在这一步骤要以应用为主导,进行认真的分析。应该明确以下事项:
    * 有哪些服务器在运行
    * 服务器的操作系统与数据库系统、应用软件都是什么
    * 使用什么样的应用系统
    * 能够承担多长时间的服务中断
    * 数据量、数据写入的频繁程度
    * 硬件条件
    * 大致的预算 
第二,确定双机热备及其他高可用性方案的模式。
 1. 决定要不要备、谁和谁备。采用数据库双机热备,应用服务器集群,是主从方式还是互备?亦或是多台服务器?
  请参见:双机热备与数据备份的关系
      双机热备、双机互备与双机双工的区别
      Web服务器和应用服务器的负载均衡
 2. 决定如何备。就双机热备而言,是采用共享存储方式、纯软件备份方式、备机方式,甚至什么都不采用?
  请参见:基于存储共享的双机热备方案  术语解释:磁盘阵列
      纯软件方式的双机热备方案
第三,选择确定具体的设备、软件的型号。
  要特别注意的是,不同的软件、存储设备之间存在兼容性的问题,因此一定要统一考虑,并提前及时咨询专业人员。切忌出现采购了双机软件对相关的存储设备不兼容等问题。
  请参见:LanderCluster软件概述
      LifeKeeper高可用性软件概述
      RoseHA双机软件概述
第四,实施。
第五,在双机热备或其他高可用性方案实施完成后,一定要进行测试。
第六,在使用阶段,要定期对双机热备或其他高可用性系统是否能够正常切换进行测试。
目前,市场上主要的基于Windows和Linux平台的双机软件包括LanderCluster、LifeKeeper、 RosaHA等。有关方案规划与产品选择,请咨询我们。
双机热备、集群及高可用性软件产品的选择
在进行双机热备、集群及高可用性软件产品的选择时,可按以下步骤进行:
1. 明确应用的方式与要求:
  是双机方式还是多点集群?或者是目前使用双机、以后可能升级到集群?(相关内容:双机、集群的配置模式:主从、互备、多点集群)
  如果是双机,是采用共享的存储设备,还是采用基于镜像的纯软件方式?(相关内容:双机热备的实现模式 - 基于共享存储与纯软件方式)
2. 了解清楚应用环境:
  使用什么操作系统?
  运行什么应用?(比如,数据库的版本)
  使用什么服务器?
  使用什么存储设备?
  如果考虑纯软件方式,则还有了解清楚:数据量的大小、数据写入的频率、应用的关键性与重要性(相关内容:纯软件方式的双机热备方案深入分析)
3. 在此基础上,考虑以下因素,选择相应的软件产品:
  产品是否能支持所要求的应用方式?
  产品是否能支持所使用的应用环境?
  产品的其他特性:
    * 是否支持远程监控?(可以使你不用非要经常跑到机房,才知道是否一台服务器宕机了)
    * 界面语言。(对双机软件,中文界面并不是非常重要,但也是一个因素。同时,是否有中文手册等则可能非常重要)
    * 安装的难易程度 
  是买贵的、买性价比高的、还是买最便宜的?
  是否存在合法的供货渠道?(直接关系到产品是否能得到长期可靠的服务!!!)
  是否需要安装服务? 需要什么样的售后服务? 服务要求是否有保障?
如果可能会运行特别的应用系统(比如使用面较少的操作系统、数据库、自己开发的应用软件等),是否能得到原厂商在开发与调试一级的支持。(非常重要!!!)
常见产品:
LanderCluster集群软件:支持多点集群及双机;远程监控;支持Unix
LifeKeeper集群软件:支持多点集群及双机
RoseHA双机软件:双机热备、互备
选择合适的双机和集群软件
本文将避免深入的技术研究,以快速的方法,帮助你选择最合适的高可用性软件。
 首先要明确,本文所说的双机和集群软件,都是指需要对数据进行写操作的情况,比如数据库。如果仅仅是应用服务器,则应该选择负载均衡软件。
 对于双机和集群软件,选择的基本方法是,先处理可选项少的情况,再处理可选项多的情况,这样便于快速对号入座。
 SCO UNIX: 只有LanderCluster支持。     更多了解LanderCluster
 SUN Solaris:只有PCL支持          更多了解PCL HA软件
 Linux:
    -无共享存储设备,低端数据库(如My SQL),数据量小(
          o 多台服务器 可供选择的包括:LanderCluster, LifeKeeper
          o 两台服务器:几乎所有产品均可支持,其中,ROSE HA价格合理,但要防止买到非正规渠道产品;LifeKeeper价格较贵(原因是其价格与纯软方式、多点版本没有差别),没有本地支持;LanderCluster支持远程监控,具有良好的本地支持,价格合理                       
        
重要提示:双机热备、集群等,是一种高可用性方案,其目的是增加系统的可靠性,切勿贪图便宜,给后续应用和维护带来诸多麻烦。
常见产品:
PCL HA集群软件:Linux和Solaris平台下集群的可靠选择,支持多点集群及双机;远程监控
PrimeCluster_HA特点及优势
HA 服务器——应用与服务随时可用
PRIMECLUSTER拥有近20年的历史,它随着富士通西门子计算机公司在全球的业务开展,遍布各个行业和领域,在欧洲、中东、非洲和亚洲有着大量的成功案例。
支持多平台――PRIMECLUSTER支持Linux/Intel和Solaris/Sparc平台。它在用户层面保持界面、操作方法、管理命令的统一,和OS,硬件平台无关。
高效、冗余的集群心跳协议――PRIMECLUSTER可拥有多达8条心跳线路;采用自有的ICF(Internode Communication Facility)协议取代低效的IP协议
保护数据完整性――独有的Shutdown Facility机制,确保在集群脑裂(Brain-Split)的情况下用户数据的完整性,最完美的解决方案。严谨的Online、Offline检查机制,确保应用只可能在一个节点上启动。
灵活的配置方案――HA模式最大支持8个节点,支持1:1、N+1、N:M配置模式,多节点多应用可在集群内灵活配置。
单一管理图形界面――PRIMECLUSTER采用基于浏览器的Java管理界面,可在单一节点上远程管理集群内所有节点。
向导化的配置工具――PCS配置工具能够自动生成资源树,简化配置步骤,自动检查配置的一致性和生成配置文件信息。能够自动识别某些资源,如卷管理器、SAN网络和NAS。对于Oracle、DB2、WebServer、SAP等应用拥有Turn Key解决方案
滚动升级――PRIMECLUSTER支持版本异构(甚至OS异构),从而支持滚动升级,最小限度减少停机时间。
动态配置――HA和负载均衡模式均支持动态配置,可以在不停止应用的情况下对配置进行修改并生效。
LanderCluster集群软件:支持多点集群及双机;远程监控;支持SCO Unix
LanderCluster产品概述
LanderCluster For Windows2000 是一个高可用集群软件包,目前支持的操作系统为Windows2000、Windows2003、Linux、SCO OpenServer/UnixWare7 等环境。
在该系统中,每台主机运行各自的应用系统,用户数据存放在共享存储子系统上。LanderCluster 的守护进程通过 EtherNet 监测整个集群的运行状态。由 PC 服务器、共享磁盘阵列子系统和LanderCluster集群软件包组成一个有效的高可用集群系统。
LanderCluster系列产品分为LanderCluster-DN和LanderCluster-MN:
    * LanderCluster-DN双机高可用产品:是LanderCluster集群产品系列中的主流产品。支持Windows/Linux/SCO Unix等操作系统平台,具有稳定可靠、易于管理、开放性强、性价比高的特点,同时支持多语种、支持远程管理等功能,是您构建高可用环境的必要选择。 
    * LanderCluster-MN多节点集群产品:是LanderCluster集群产品系列中的旗舰产品。支持两个以上节点的集群环境,支持Windows Server/Linux/SCO Unix等操作系统平台,具有稳定可靠、易于管理、备援方式灵活多样、节点和任务的伸缩性强、保护用户投资、整合和优化用户系统环境、支持包括ISCSI存储环境等特点。该产品能够支持八个以上节点的集群环境。
LifeKeeper集群软件:支持多点集群及双机
LifeKeeper软件介绍
美国SteelEye公司的LifeKeeper 是一种支持多种软(WindowNT, Windows2000, 多种Linux等)、硬件平台的高性能容错软件,最多可支持16台服务器集群。Lifekeeper软件源于美国NCR公司及著名的AT&T贝尔实验室。为企业、银行、政府等的信息服务,商务服务,政务服务等提供高可用性解决方案。
 LifeKeeper属于高可用容错集群软件,运行于NT、Windows 2000、Linux和NCR Unix平台。同时支持纯软件镜像方式和共享磁盘阵列柜方式,并支持远程灾难实时复制备份恢复系统。使用户的服务器、操作系统、数据库系统以及关键的数据及应用程序保持7天×24小时连续不间断,提供99.99%的高可用性。软件包括核心部分和一些针对不同应用的ARK。
LifeKeeper的关键特点
 1.不用增加任何额外硬件投资,纯软件方式实现双机容错,且对备机无硬件配置要求。
 
 2.可支持Notes、Exchange、SQL Server、Sybase、Informix、Oracle 、SAP等多种系统的应用层热恢复。
 
 3.是全球第一套基于NT操作系统的容错软件并同时支持LINUX平台。支持远程灾难备份。
 
 4.支持共享磁盘阵列柜和扩展镜像两种方式,给用户提供了选择上的灵活性,同时也能适应各种机型、网络结构、软件平台及应用系统。
 
 5.LifeKeeper在扩展镜像或共享磁盘阵列任意方式下,均能实现两台服务器各自运行不同应用且相互热备份,即实现双Active运转模式。
 
 6.使用共享磁盘阵列柜方式时,最多可以支持16个节点,远远大于其它类似系统所支持的2个节点数。
 
 7.最大限度地保护用户端的应用连续性。用户的硬件资源(如网卡),软件资源(如NT操作系统、数据库管理系统、数据库应用系统、电子邮件系统等)均能处于LifeKeeper的保护之下,当这些被保护资源出现技术故障时,LifeKeeper可随时实施系统资源切换。如此,LifeKeeper真正实现了用户硬件或是软件资源发生故障时系统及应用层上的在线热切换。
 
 8.LifeKeeper占用系统资源极少,不增加网络负荷,且不打扰任何具体应用系统的任何操作。
 
 9.LifeKeeper真正实现无人值守,全自动地实现应用资源切换,且图形界面操作,简单方便。
 
 10.自投入使用以来,已经历了大量交易高峰的实际考验,其执行效率很高且运行十分稳定可靠,全球市场占有率第一。
RoseHA双机软件:双机热备、互备
RoseHA双机热备软件概述
在双机热备的架构中,除了要考虑切换时间外,要根据每个系统的作业环境,包括网路系统是单网或是双网,数据库的安装和作业内容及用户端的设备是经由广域网路、区域网路接入不同用户有不同的需求,而要求有不同的切换模式,所以选择不同的切换模式,可以使用户端的改变达到最少的程度。
  ROSEHA根据不同的行业及各行业不同的需求设计多种备援模式以弹性的调适用户的最佳组合及选择。
    * ROSEHA系统运作方式 
  在正常的运作情形之下,主机之间透过冗余侦测线路互相侦测,当任一主机有错误产生时,ROSE HA提供严谨的判断与分析,确认主机出错之后,才完全启动备援接管动作。
支持各种操作系统平台,包括Windows NT/2000/2003、SCO Openserver/Unixware、Linux、Solaris等。
  RoseHA支持各种数据库:MS-SQL、Oracle 、Informix、Sybase、Lotus/Nose、DB2等
接管动作包括
    * 文件系统( File System)
    * 数据库( Database)
    * 网络地址( IP Address)
    * 应用程序(AP)
    * 系统环境(OS) 
其他相关领域产品
PCL SIS负衡均衡软件:以软件方式实现服务器的负衡均衡集群
PrimeCluster SIS负载均衡软件概述
PRIMECLUSTER(PCL) SIS是一个功能强大的基于软件的负载均衡产品,提供可扩展的容错网络服务。SIS帮助用户建立一个可扩展的、可靠的并易于管理的服务器集群,提供了在Linux、Solaris、Windows环境下实现负载均衡(Load Balance)的高效、可靠和高性价比的方案。
 PCL-SIS集群中的节点可通过一至多个虚拟IP(VIP)地址来访问,在用户面前就好象是一个网络服务器。
 PCL-SIS节点可以包括Linux、Solaris或Windows,它们共享不同服务的负载。有了SIS,用户可配置每项服务的负载共享,还可运用多种负载均衡算法对特殊应用及站点需求进行细调。
 PCL-SIS删除了单一故障点并确保以下可用性:
    * 如果任一SIS节点或服务出现故障,SIS会对故障节点周围的请求进行调度;
    * 任一出现故障的SIS模块会得到适度修复;
    * 曾启动过SIS的故障节点重启之后将无缝加入集群,从而恢复最大性能。
    * 通过将出局包从NIC路由至功能节点,SIS可恢复NIC故障。 
 SIS具有以下特色:
    * 为所有外部用户提供单一IP目标地址
    * 易于添加节点和服务
    * 基于每个端口的TCP和UDP服务配置
    * 多种可用的负载均衡算法
    * 无缝处理节点故障、服务故障和组件故障
    * 灵活的备份节点管理
    * 用于集群的代理服务器地址
    * 节点间的专用通信
    * 基于软件的解决方案
    * 基于图形界面GUI的配置和管理界面 
更多关于SIS:
    * SIS应用环境 
服务节点
 服务节点提供web服务和目录服务之类的网络服务。SIS可将服务节点构成集群,如果一个服务节点发生故障,会在其周围调度服务。服务节点恢复正常后将无缝加入应用集群中。
 服务节点可以是Windows 2000服务器、Solaris及Linux。
网关节点
 每个VIP地址均有一个网关节点。 所有进来的数据包均由该节点接收并转发给根据服务的调度算法选定的服务节点。
  SIS支持多台基于Linux的服务器构成网关节点的集群。如果某个网关节点发生故障,另一节点会无缝接替故障网关节点的角色。
数据库节点
 数据库节点包括主数据库节点和备份数据库节点。它们可以由网关节点同时承担,也可以设为单独的节点。
 主数据库节点保存着SIS集群的静态及动态数据。静态信息可能包括SIS集群节点列表,VIP地址及所提供的服务,以及调度算法。动态信息包括当前的连接列表及SIS集群状态。
 若主数据库节点出故障,不论出于什么原因,备份数据库节点都会接替它的角色。备份数据库节点可能不止一个。每个备份数据库节点均包括详细的静态配置信息,而且SIS会从所有可用节点那里收集动态配置信息,因此,网路破坏保持在最低限度。
    * SIS负载均衡工作原理
下图为一个示例的SIS集群,由一个网关节点和两个服务节点组成(实际SIS集群可以包括更多的节点)。以下步骤演示SIS集群在收到客户请求后如何操作。
如上图,SIS集群的操作如下:
1、客户通过网络请求服务,只看见一个IP地址;
2、网关节点接收初始连接请求;
3、网关节点根据调度政策和可用性服务,网关节点及数据库节点选择一个服务节点。只有初始请求需要调度;随后的数据包直接路由至服务节点。
4、服务节点处理请求并直接响应客户;
5、客户通过网络收到响应。
    * SIS负载均衡算法 
PrimeCluster 并行服务器产品及优势
并行服务器提供持续数据库可用性
企业对数据库的可用性要求最高。在数据库恢复过程中不能访问数据是不能接受的。
Oracle并行服务器及真正应用集群可为定制集群实施提供额外选项。
与常规数据库应用相比,这些来自Oracle的选项能大幅度提高数据可用性及传输能力。它们基于集群概念,提供更高的可用性,并支持更多以在线事务处理(OLTP )模式工作的用户。
不间断运行
根据这种方法,每个数据库系统在一个集群节点运行,平行访问共享数据。由于数据库始终对各节点可用,某节点出现中断不会影响其他节点的工作。在该故障节点上的应用或事务处理会在其他节点重新开始,而新的节点会对受系统故障影响的数据库事务处理进行重置。该恢复操作在线进行,因此,工作能继续进行,不会中断。
按需增长
并行数据库在高可用性及扩展性方面具有极大的优势。此外,管理一个大型数据库的成本要比管理网络内松散连接的多个服务器低。管理员可将整个数据库看作一个逻辑单元,就像在一个大型服务器上管理这个数据库。
当对可用性、性能以及扩展性的需求超过一个简单的故障转移集群所能提供的范围时,可实施并行数据库。将额外的系统节点添加到集群上不仅可提供额外的处理器,还可添加整个系统,包括内存、系统主线以及I/O 子系统。这样,在快速响应时间内可支持更多的并行应用及用户。
最佳扩展性
PRIMECLUSTER HA系统不仅提供其应有的功能,还为数据库系统提供通讯界面。该应用实施基于设计用于较短的等待时间的协议,支持集群与不同带宽(如快速以太网及千兆以太网)互联。除保证数据库的持续可用性外,该并行方案还保证实现最佳升级,提高数据库的处理能力,从而实现最短的响应时间。
    * 代理服务器与专用地址 
SIS的代理服务器与专用地址
SIS支持代理服务器地址及专用地址,大大增强了负载均衡应用的灵活性。
 代理服务器地址可定制成给一个节点分配一至多个虚拟地址。由于代理服务器地址具有故障转移功能,因此它们提供了高可用性。可有以下用途:
    * 同时托管赋予一个节点的多个地址
    * 将外部连接性指派给没有互联网连接的节点
    * 将备份节点分配到节点 
 专用地址可在SIS集群每个可用节点上配置。 这些地址一般用于通过互连及IP协议进行的节点间通信。专用地址安全、快捷,并使用冗余互连来确保高可用性。
    * 故障转移 
SIS的故障转移
PCL SIS负载均衡软件,为应用服务提供了高可靠性的保障。
 对于应用服务而言,每项服务都可有一至多个节点充当服务节点。每个服务节点都可有一至多个备份节点。 备份节点既可以是热待机,也可以是正在做其它事情的节点。 如果一个或一些节点发生故障,根据配置文件,配置好的备份节点会取代故障节点。
 通过故障转移,可以避免单点故障对整个应用服务的影响,保证服务的连续与可靠性。
ICX数据库路由软件:提供SQL Server数据库服务器的并行处理、负载均衡和热备份、实时切换
双机热备、集群及高可用性相关资料
系统高可用性、双机热备常见问题
常见问题与方案选择
对于企业重要的应用系统而言,保证系统能持续、可靠地提供服务是非常重要的,因此就出现了对高可用性的需求和高可用性的解决方案。
对于如何选择高可用性的解决方案,特别是关于双机热备的方案选择,常见的有以下问题:
Q:已经采取了RAID技术和数据备份技术,还有必要做双机吗?
A:参见:双机热备与数据备份及RAID的关系
Q:高可用性的解决方案有哪些?
A:从广义讲,高可用性包括一切避免系统服务中断的技术。而一般所说的系统高可用性,往往特指服务器的双机或多机热备/容错。
Q:什么时候需要双机热备?
A:决定是否使用双机热备,正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度,以此决定是否使用双机热备。即,你的用户能容忍多长时间恢复服务,如果服务不能恢复会造成多大的影响。
Q:双机热备、双机互备与双机双工三个概念都是什么意思?有什么区别?
A:参见:双机热备、双机互备与双机双工的区别
Q:双机热备方案与集群的区别?
A:从概念上,双机热备是集群(Cluster)的一种。集群一般包括两类,一类是纯粹应用服务器的集群,各个应用服务器都访问统一的数据库服务器,但彼些并不需要共享存储,这种集群是比较简单的,往往采取各个服务器同时提供服务的方式,并且往往同时采用负载均衡技术。有关应用服务的集群,请参见:谈Web服务器和应用服务器的负载均衡
另一类是数据库服务器(或其他需要访问存储数据的系统如Exchange、Notes)的集群。集群可能包括多台服务器。集群软件除了支持双机工作外,还可以支持多台服务器(Multi Node)工作,同时部署多个应用,并在多个服务器间灵活地设置接管策略。请参见:双机、集群的配置模式-主从、互备、多点集群 双机软件与集群软件的异同
Q:数据库服务的高可用性有几种方式?
A:最简单的,是采用备机的方式。这其实不属于高可用性的范围,但可以将出现故障后恢复服务的时间控制在几十分钟的量级,而且备机平时还可用作其他用途。这种方式是一种低成本的简单方案,对于不是非常重要的应用比较适合。它不适用于重要应用,但是除非你的应用停上几天都无所谓,否则至少要有这一级别的保护措施。
第二种是通过软件方式实现双机热备。即不采用共享的存储设备,而是数据不再单点存储,本机数据可以向多台主机做实时的数据复制。这种方式的优点是节省了昂贵的存储设备投资。缺点是或者会产生数据的差异,或者会影响数据库的速度。比如,如果在服务中断时切换到备机,则可能有少量已经在主机完成的事务在备机上尚未实现。而与备份数据的恢复不同,备机启动后,后续的操作已经进行,因此丢失的事务就很难补上。因此,这种方式适用于对于丢失少量数据不是非常敏感的系统。
  有关这种方式的深入探讨,可参见:镜像与HA-数据库双机热备的两种方式
第三种是基于共享存储设备和双机软件实现双机热备。这是标准的方法,能够在无人值守的情况下提供秒级的切换,并且不会丢失数据。当然,投资会比较高。
Q:数据库双机热备时,双机是同时工作吗?
A:在一般的中小规模应用中,数据库的双机热备都是主/备方式,主服务器工作时另一台等待,在主服务器出现故障时借助双机软件自动切换至另一台服务器。而有些大规模应用为充分利用设备,可以采用并行服务的方式,两台服务器同时提供服务,如Oracle的RAC(Oracle Real Application Cluster),以及支持SQL Server并行服务的数据库路由器软件ICX
Q:如何选择与实施系统高可用性方案?
A:参见:如何选择与实施系统高可用性方案?
心跳&故障检测过程说明
双机热备份系统采用“心跳”方法保证主系统与备用系统的联系。所谓“心跳”,指的是主从系统之间相互按照一定的时间间隔发送通讯信号,表明各自系统当前的运行状态。一旦“心跳”信号表明主机系统发生故障,或者备用系统无法收到主机系统的“心跳” 信号,则系统的高可用性管理软件认为主机系统发生故障,主机停止工作,并将系统资源转移到备用系统上,备用系统将替代主机发挥作用,以保证网络服务运行不间断。
 传统上心跳故障检测使用串口通讯的方式。但目前已经普遍使用基于TCP/IP的方式。两台服务器之间,可以使用直连网线。也可以将两台或多台服务器用于心跳诊断的网卡通过交换机连接,组成一个私网。
双机热备份方案工作模式
双机热备份方案中,根据两台服务器的工作方式可以有三种不同的工作模式,即:双机热备模式、双机互备模式和双机双工模式。
双机热备、双机互备与双机双工的区别
双机热备即是目前通常所说的active/standby方式,服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。当active服务器出现故障的时候,通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
 双机互备,在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。这种方式实际上是双机热备的一种应用。它避免了两个应用使用四台服务器分别实现双机热备。
 双机双工,两台或多台服务器均为活动,同时运行相同的应用,保证整体的性能,也实现了负载均衡和互为备份。需要利用磁盘柜存储技术(最好采用san)。对于数据库服务而言,它同时需要数据库软件的支持,是比较复杂的。而WEB服务器或应用服务器就比较简单了,可参见:谈Web服务器和应用服务器的负载均衡
(本文内容引自ChinaUNIX.net中yllmm80512的发言并做了修改)

Web服务器和应用服务器的负载均衡
本文对Web服务器和应用服务器的负载均衡进行说明。
 在负载均衡的思路下,多台服务器为对称方式,每台服务器都具有同等的地位,可以单独对外提供服务而无须其他服务器的辅助。通过负载分担技术,将外部发送来的请求按一定规则分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。
 提供服务的一组服务器组成了一个应用服务器集群(cluster),并对外提供一个统一的地址。当一个服务请求被发至该集群时,根据一定规则选择一台服务器,并将服务转定向给该服务器承担,即将负载进行均衡分摊。
 通过应用负载均衡技术,使应用服务超过了一台服务器只能为有限用户提供服务的限制,可以利用多台服务器同时为大量用户提供服务。当某台服务器出现故障时,负载均衡服务器会自动进行检测并停止将服务请求分发至该服务器,而由其他工作正常的服务器继续提供服务,从而保证了服务的可靠性。
 上述的集群技术一般都用于Web服务器、应用服务器等,而不是用于数据库服务器,即不是用于有共享的存储的服务。数据库服务器将涉及到加锁、回滚等一系列问题,要复杂的多。一般数据库服务器只是使用双机,其中一台工作,另一台备份。数据库的双机并行只用于大型数据库中。可参见:
系统高可用性与双机备份常见问题与方案选择
 负载均衡实现的方法有几种:
    * 最简单的是通过DNS,但只能实现简单的轮流分配,也不能处理故障 
    * 如果是基于MS IIS,Windows 2003 Server本身就带了负载均衡服务。但这一服务也只是轮流分配。 
    * 硬件方式,通过交换机的功能或专门的负载均衡设备可以实现。对于流量的分配可以有多种方式,但基本上都是应用无关的,与服务器的实际负载关系也不大。另外,设备的价格较贵(优点是能支持很多台服务器)。这种方式往往适合大流量、简单应用。 
    * 软件方式,通过一台负载均衡服务器进行,上面安装软件。这种方式比较灵活,成本相对也较低。另外一个很大的优点就是可以根据应用的情况和服务器的情况采取一些策略。这方面比较典型的软件产品,是富士通西门子公司的PCL SIS负载均衡软件。 
(更多了解 PCL SIS负载均衡软件)
双机热备与数据备份的关系
一些用户在规划双机热备或双机备份时,会有这样的问题:我已经有了RAID,以及磁带备份,还有必须做双机吗?或者,如果我做了双机备份,还有必要做磁带备份吗?
 应该说RAID和数据备份都是很重要的。但是,RAID技术只能解决硬盘的问题,备份只能解决系统出现问题后的恢复。而一旦服务器本身出现问题,不论是设备的硬件问题还是软件系统的问题,都会造成服务的中断。因此,RAID及数据备份技术不能解决避免服务中断的问题。对于需要持续可靠地提供应用服务的系统,双机还是非常重要的。只要想一想,如果你的服务器坏了,你要用多少时间将其恢复到能正常工作,你的用户能容忍多长的恢复时间就能理解双机的重要性了。
 从另外一个方面,RAID以及磁带备份也是非常需要的。对于RAID而言,可以以很低的成本大大提高系统的可靠性,而且其复杂程度远远低于双机。因为毕竟硬盘是系统中机械操作最频繁、易损率最高的部件,如果采用RAID,就可以使出现故障的系统很容易修复,也减少服务器停机进行切换的次数。
 数据备份更是必不可少的措施。因为不论RAID还是双机,都是一种实时的备份。任何软件错误、病毒影响、误操作等等,都会同步地在多份数据中发生影响。因此,一定要进行数据的备份(不论采取什么介质,都建议用户至少要有一份脱机的备份),以便能在数据损坏、丢失时进行恢复

你可能感兴趣的:(linux,数据库,网络,操作系统)