Linux 平台电信级和企业级应用的高可用产品。GreatTurbo Cluster Server 10 提供
的双机高可用、负载均衡方案能够更好的满足用户业务的连续性,并且能够满足不
同应用对高可用的要求。
自2001 年以来,北京拓林思软件有限公司先后推出了高可用和负载均衡产品。
GreatTurbo Cluster Server 10 是完整的高可用、负载均衡解决方案。 GreatTurbo
Cluster Server 10 提供更好的可靠性、更高的性价比、更好的易用性和可管理性,完全满足企业级应用所要求的 RASM(Reliability、Availability、Scalability、
Manageability)特性。同时 GreatTurbo Cluster Server 10 支持磁盘镜像功能,使得
用户应用和 GreatTurbo Cluster Server 10 软件可以不需要磁盘阵列来提供高可用
服务。
GreatTurbo Cluster Server 10 可支持 Turbolinux 发布的 GTES10 操作系统平
台。由于 GreatTurbo Cluster Server 10 可以和 Turbolinux 操作系统更好的配合,
使得从操作系统到 GreatTurbo Cluster Server 10 软件构建的高可用解决方案更加
的可靠,并广泛服务于电信、银行、政府等行业客户。
本用户手册使用说明
《GreatTurbo Cluster Server 10 用户手册》是帮助用户了解、使用和维护
GreatTurbo Cluster Server 10 的文档,文档中详细阐述了 GreatTurbo Cluster
Server 10 的技术特点、系统软硬件环境、安装、配置、管理、维护、FAQ 等各个
方面。
如果用户第一次使用 GreatTurbo Cluster Server 10,建议仔细阅读本手册,
以便于对 GreatTurbo Cluster Server 10 进行详细的了解。
如果用户已经对 GreatTurbo Cluster Server 10 有所了解,可以直接阅读
1
GreatTurbo Cluster Server 10 用户手册
《GreatTurbo Cluster Server 10 快速安装文档》进行安装配置。
2
GreatTurbo Cluster Server 10 用户手册
第一章 GreatTurbo Cluster Server10 介绍
1.1 GreatTurbo Cluster Server 10 简介
GreatTurbo Cluster Server 10是北京拓林思软件有限公司推出的为满足 Linux
平台企业级应用的高可用和负载均衡产品。它同时具备了高可用和负载均衡产品所
有的功能,而且在原有功能的基础上增加了许多新的功能。它提供的双机高可用方
案不但能够保证负载均衡调度器自身的高可用,而且更好的满足用户业务的连续性、
更加可靠,并且能够满足不同应用对高可用的要求;而其提供的负载均衡功能使得
您的 Web、IPTV、Mail、Game 等各种解决方案可以昼夜不停地提供 24×7 的服务,
同时提供了您业务强大的并发处理能力。GreatTurbo Cluster Server 10 是基于最
新的 linux 2.6 内核,其领先的集群技术为您的业务注入更高的可靠性、稳地性、
和强大的扩展能力。
自2000 年以来,北京拓林思软件有限公司先后推出了高可用产品系列 TurboHA
和负载均衡产品 TurboCluster 。GreatTurbo Cluster Server 10 是在这两个系列
产品的基础上,根据市场的实际需求和企业级用户多年实践经验的总结,依据已有
成熟架构的基础上而开发的,它能够为 LAMP(Linux、Apache、Mysql、Perl/PHP
/Python)架构的应用和企业级用户提供更加可靠和可扩展的基础平台。GreatTurbo Cluster Server 10 提供更好的可靠性和可扩展性,更高的性价比,更好的易用性
和可管理性,完全满足企业级应用所要求的 RASM(Reliability,Availability,
Scalability,Manageability)特性。
GreatTurbo Cluster Server 10 可支持 Turbolinux 发布的 GTES10/TDS10 操作系统平台,适用于 i386、x86_64、IA64、openpower 等主流的硬件平台。由于
GreatTurbo Cluster Server 10 可以和 Turbolinux 操作系统更好的配合,使得从
操作系统到 GreatTurbo Cluster Server 10 软件构建的高可用和负载均衡解决方案
更加的可靠,并广泛服务于电信、银行、政府等行业客户。
3
GreatTurbo Cluster Server 10 用户手册
1.2 应用支持
当我们通过硬件(服务器、交换机、电子开关等)和软件(操作系统平台、HA
系统软件、应用软件等)搭建一个高可用群集环境的时候,首先我们需要明确的是,
高可用系统软件能否支持和管理我们的应用程序。GreatTurbo Cluster Server 10
高可用功能能够支持绝大多数的 Linux 环境下的应用程序,支持的典型应用程序类
型如下:
¾通用的,无需修改的应用程序:GreatTurbo Cluster Server 10支持大多数
Linux平台的应用程序,这些应用大多数是能够接受几秒种的停机时间的业务。
¾ 数据库应用:GreatTurbo Cluster Server 10能够很好的支持各种数据库产
品,包括Oracle 8i/9i/10g、MySQL、Sybase和IBM DB2数据库。
¾ 各种文件服务:GreatTurbo Cluster Server 10能够为各种类型的文件服务
提供高可用集群功能,如NFS和SMB/CIFS (使用Samba)。
¾ 主流的商业应用软件:GreatTurbo Cluster Server 10能够很好的支持主流
的商业应用软件,如SAP、Oracle Application Server和Tuxedo。
¾ 互联网和开放源代码的应用:GreatTurbo Cluster Server 10可以很好的支
持各种流行的互联网应用软件和各种开放源代码产品,如Apache、Wu-ftp、
VSFTP等。
¾ 邮件服务软件:如Sendmail和Domino。
1.3 GreatTurbo Cluster Server 10 技术特点
1.3.1 支持磁盘镜像功能
磁盘镜像功能,是一种不需要磁盘阵列的双机数据共享方案。它的基本原理
是通过对两个节点各自的本地磁盘分区进行实时镜像操作,使得这两个本地磁盘
对双方节点而言,可以当作一个虚拟的共享磁盘设备来使用,这个虚拟的 RAID-1
级别的共享磁盘设备,能够作为应用的共享设备,既可以当作共享的裸设备来使
用,也可以在其上创建各种 Linux 文件系统。GreatTurbo Cluster Server 10
本身提供磁盘镜像功能,使得共享数据的应用不需要磁盘阵列也能够搭建双机高
4
GreatTurbo Cluster Server 10 用户手册
可用方案。
1.3.2 提供多种类型的磁盘阵列支持
对于需要磁盘阵列的一些应用,如数据库应用等,需要专业的硬件磁盘阵列
来保证性能。而 GreatTurbo Cluster Server 10 能够支持绝大多数的磁盘阵列
设备。
GreatTurbo Cluster Server 10 同时支持直连网线、串口和 raw 磁盘分区
的方式来同步 HA 两个节点之间的心跳信息。可同时支持多条直连网线和串口线
以及磁盘的 raw 分区作为通道,提供更高可靠性的硬件冗余方式,以保证两个节
点之间不会发生 Split-brain 现象。其中 raw 磁盘分区的心跳通道,保证了只要
主备节点能够访问共享数据,就不会发生裂脑,从而有效的确保了共享数据的一
致性。即使两节点之间的心跳通道都发生故障,GreatTurbo Cluster Server 10
还可以通过配置第三方参考 IP 的方式,保证两个节点系统的一致性。GreatTurbo Cluster Server 10 支持配置多个第三方参考 IP,避免了第三方参考 IP 成为的
单一故障点。
Stonith(shut the other node in the head),就是把故障节点重启,以保
证资源被完全释放。Stonith 的方式有两种,一种是通过电子开关(power switch)
来重启对方;(另外一种是通过网络发送命令来重启对方。但是后者通常不起作
用)。有一些厂家的服务器有类似的管理界面(一种硬件设备),也可以用来作
为 stonith 的工具,比如 IBM xServer 的 RSA(Remote Supervisor Adapter)和
Intel 的 IPMI,GreatTurbo Cluster Server 10 也可以支持。
1.3.6 支持 Watchdog Timers
GreatTurbo Cluster Server 10 的高可用功能支持三种类型的看门狗定时
器为系统提供了一个稳健的 I/O barrier。最简单的就是 Linux 内核自带的通过
中断处理来实现的软件 softdog 定时器,它被 GreatTurbo Cluster Server 10
用来控制后台程序的执行。
GreatTurbo Cluster Server 10 通过使用应用程序代理检查某一服务是否
运行。应用程序代理用于定期检查某一服务是正常工作。如果服务没有正常运行,
则相应地触发一次切换,使服务在另一节点被恢复。GreatTurbo Cluster Server 10 提供用于常用服务的应用程序代理,对于自身没有应用程序代理程序的服务
则可以使用 GreatTurbo Cluster Server 10 提供的接口进行灵活的按需定制。
请同时参见本文中的“应用程序代理 API”一节。
1.3.10 应用程序代理 API
应用程序代理 API 是一种在应用程序代理或服务检查程序和 GreatTurbo Cluster Server 10 服务进程之间的接口,在 GreatTurbo Cluster Server 10
用户手册中有详细介绍。按照此接口的规范,您可以为您的特定服务编写定制的
应用程序代理。编写定制的应用程序代理的好处在于它可以根据您现场实际的负
载情况为应用程序提供更精确的服务检查以及更快的切换。
1.3.11 图形管理工具
GreatTurbo Cluster Server 10 高可用功能通过提供基于 Java 技术的图形
管理工具而改善了集群的可管理性。支持本地和远程的监控和管理,支持
Linux/Windows 客户端的管理。
利用所提供的图形管理工具,可以方便地进行配置更改和状态监测。除了提
供图形管理工具外,GreatTurbo Cluster Server 10 还提供有功能同样强大的
命令行配置和监控管理工具。
7
GreatTurbo Cluster Server 10 用户手册
1.3.12 更好的日志文件系统支持
GreatTurbo Cluster Server 10 支持与日志文件系统诸如 Reiser 和 Ext3
等的协同工作。这些日志文件系统特别适用于 GreatTurbo Cluster Server 10,
因为它们消除了诸如 Ext2 等文件系统中所化费的耗时的文件系统检查从而减少
了切换时间。当系统装载时,日志文件系统仅仅要求恢复其日志。当一种日志文
件系统被用于共享存贮时,GreatTurbo Cluster Server 10 能够自动地进行确
认,跳过不需要的 FSCK 文件系统检查,并立即装载文件系统用于文件系统日志
的恢复。
1.3.13 更详细的系统故障日志信息
GreatTurbo Cluster Server 10 采用的日志函数和 Linux 的 syslogd 是一
样的方式,在两个节点均有记录,每个守护进程都有自己的日志级别,可以在配
置文件中指定。每一条记录的信息,包括有时间、日志级别、进程名称、进程
id、消息等内容,这样可以方便用户进行应用故障现场的保护以及故障后的分析
定位。同时日志的级别可以动态进行设置调整,以根据实际需要调整输出日志的
信息内容。默认情况下,系统已经将日志级别设置成较为详细的信息输出,包括
HA 启动、停止过程,HA 事件触发原因,服务故障原因,服务切换过程,服务手
动操作记录等。同时 GreatTurbo Cluster Server 10 还提供日志收集工具,自
动收集系统以及 HA 相关信息,以便于更方便的进行故障定位。
1.4 GreatTurbo Cluster Server 10 的使用限制
GreatTurbo Cluster Server 10 目前只支持 GTES10/TDS10 操作系统平台。
GreatTurbo Cluster Server 10 暂不支持并行处理的应用。也就是说不支持
同一个应用在两个节点同时并发运行的应用。例如:Oracle 9i RAC。
GreatTurbo Cluster Server 10 配置的所有负载均衡(LB)服务都必须采用同
一种 ip 负载均衡技术。
GreatTurbo Cluster Server 10 配置的所有服务都必须运行在同一调度节点,
并且只能对全部服务进行统一操作,如 Enable、Disable、Relocate 等。
8
GreatTurbo Cluster Server 10 用户手册
GreatTurbo Cluster Server 10 的稳定性需要 OS 提供支撑。如果当操作系
统宕机时,可能会出现因 OS 没有彻底释放资源而导致 HA 系统丧失高可用
功能。在这种情况下,除非有额外的硬件设备,否则 GreatTurbo Cluster Server 10 并不能够完全保证能够自动恢复操作系统。此时需要用户手工干
预操作系统,对崩溃的操作系统进行复位操作。也就是说,当 OS 宕机时(尽
管这种可能性很小),如果用户没有以下硬件作为保障,仍然有可能会出现
用户业务中断的可能:
1)采用电子开关。
2)服务器节点采用支持硬件 watchdog 功能的主板。
配置 GreatTurbo Cluster Server 10 的两台计算机节点的心跳方式时,必须
保证至少一条心跳通道正常工作。如果两台节点之间的所有心跳通道都发生
故障而不能正常连通,有可能会导致 GreatTurbo Cluster Server 10 发生裂
脑(split-brain),发生裂脑后,GreatTurbo Cluster Server 10 有可能会导
致用户的资源不一致。为了完全杜绝裂脑现象的发生,可以采取如下方法:
1)采用电子开关。
2)使用第三方参考 IP,有关第三方参考 IP 的介绍将在第三章详述。
其中第一种办法是使用硬件的办法,由于电子开关是额外的电子硬件
设备,需要用户自行购买,所以实际中采用这种方式并不多;而第二种方
式是软件的方法,可以保证 GreatTurbo Cluster Server 10 发生裂脑时,
用户的资源不受损失,但是需要用户提供另一个永久性正常工作的参考性
IP 地址。
1.5 GreatTurbo Cluster Server 10 的相关术语
节点 : 指运行 GreatTurbo Cluster Server 10 程序的计算机。
服务 : 也叫做资源组,指用户应用相关的一组资源的集合,包括用户应用的
进程资源,磁盘资源,网卡资源,浮动 IP 资源,drbd 镜像资源等。服务可以是其
中几种资源或者全部资源的组合。服务也可以为空,即不包括任何资源。通常用户
的一个应用与 GreatTurbo Cluster Server 10 的一个服务对应。GreatTurbo Cluster Server 10 的服务分为两种:高可用服务(HA 服务)和负载均衡服务(LB服务)。
9
GreatTurbo Cluster Server 10 用户手册
HA 服务针对高可用集群确保高可用的对象。LB 服务是负载均衡系统进行调度的具
体应用,例如 Oracle 服务。HA 服务也可以是具体商业应用。在 GreatTurbo Cluster
Server 10 的典型应用中,LB 作为 HA 服务出现。也就是说,LB 的高可用性是由
HA 提供、保证的。
负载调度器(load balancer), 也 成为调度节点, 它是整个集群对外面的前端
机,负责将客户的请求发送到一组真实服务器上执行,而客户认为服务是来自一个
IP 地址(我们可称之为虚拟 IP 地址)上的。
例如:服务在 A 节点发生故障的时刻为 T(a),服务自动迁移到 B 节点并在 B
节点成功运行的时刻为 T(b),那么服务的迁移时间 T(relocate)=T(b)-T(a)。另一方面,
从整个迁移的子过程来看,服务迁移的时间(近似等于) ≈服务在 A节点检测到错
误的时间+服务在 A 节点停止的时间+服务在 B 节点启动的时间。 其中,服务的启
动/停止时间是由用户的应用来决定的, 一般不能够进行调整,而服务检测到错误的
时间可以通过 GreatTurbo Cluster Server 10 的配置参数来进行调整。
服务检测到错误的时间 = 服务检查的间隔时间(check interval) * 服务连续
检查到错误的次数(check count)。Check interval 和 check count 参数可以在配
置服务的检测脚本时进行指定。 这样,只有当 GreatTurbo HA 检测到连续出错次数
达到指定的次数后,GreatTurbo Cluster Server 10 才认为服务确实出错。 服务确实
出错后,会自动触发 GreatTurbo Cluster Server 10 进行服务的迁移。
裂脑(split-brain): 所谓裂脑,是指 HA 的节点之间彼此失去了联系,但是
单个节点的 HA 仍然运行正常。发生裂脑的充要条件是:1. HA 的两个节点之间的
所有心跳通道都发生了故障,导致HA 的两个节点失去了任何联系。2. 两个节点的
HA 软件正在正常运行。