Turbolinux GreatTurbo Cluster Server 10 installation Guide

GreatTurbo Cluster
Server 10
用户快速安装手册
版权所有 (c) 2006
北京拓林思软件有限公司
目录
GREATTURBO CLUSTER SERVER 10 介绍................................................................... 1
1GREATTURBO CLUSTER SERVER 10 的使用限制 ............................................................. 1
2GREATTURBO CLUSTER SERVER 10 的相关术语 ............................................................. 2
3GREATTURBO CLUSTER SERVER 10 快速安装手册的使用方法 ................................................. 4
4GREATTURBO CLUSTER SERVER 10 快速安装的主体过程 ..................................................... 4
1 安装 GREATTURBO CLUSTER SERVER 10 前的准备工作 ............................................... 5
1.了解和分析您的应用 .............................................................................5
2.准备 GREATTURBO CLUSTER SERVER 10 需要的硬件环境..................................................... 6
3. 准备 GREATTURBO CLUSTER SERVER 10 需要的软件环境 ..................................................... 7
4. 安装 GREATTURBO CLUSTER SERVER 10 前需要准备的操作系统的配置 .........................................8
5. 安装 GREATTURBO CLUSTER SERVER 10 前需要准备用户的应用程序 ........................................... 8
6. 安装 GREATTURBO CLUSTER SERVER 10 的配置示例 ......................................................... 9
2 安装 GREATTURBO CLUSTER SERVER 10........................................................... 11
1.确认您所使用的 GREATTURBO CLUSTER SERVER 10 产品的类型..............................................11
2.安装 GREATTURBO CLUSTER SERVER 10 ..................................................................11
3.注册 GREATTURBO CLUSTER SERVER 10 产品.............................................................. 13
3 系统配置 ................................................................................... 16
1.选择其中一节点进行系统配置 ....................................................................16
2.在对方节点上同步配置 ..........................................................................23
3.运行 GREATTURBO CLUSTER SERVER 10 ..................................................................23
4 用户脚本和检测脚本 ......................................................................... 24
1.用户脚本 ...................................................................................... 24
2.检测脚本 ...................................................................................... 27
5 配置 HA 服务--使用共享磁盘 .................................................................. 30
1.配置工具 ...................................................................................... 30
2.配置条件 ...................................................................................... 30
3.配置命令 ...................................................................................... 30
4.配置服务 ...................................................................................... 32
5. 修改服务....................................................................................... 37
6. 删除服务....................................................................................... 38
7. 启动服务....................................................................................... 38
8. 停止服务....................................................................................... 39
9. 切换服务....................................................................................... 39
6 配置 HA 服务--不使用共享磁盘 ................................................................ 40
1.配置工具 ...................................................................................... 40
2.配置条件 ...................................................................................... 40
3.配置命令 ...................................................................................... 40
4.配置服务 ...................................................................................... 42
5. 修改服务....................................................................................... 45
6. 删除服务....................................................................................... 46
7. 启动服务....................................................................................... 46
8. 停止服务....................................................................................... 47
9. 切换服务....................................................................................... 47
7 配置 HA 服务--使用磁盘镜像设备 KERNEL2.4..................................................... 49
1.安装磁盘镜像软件(DRBD) ......................................................................... 49
2.注册具有磁盘镜像功能的 LICENSE .................................................................. 50
3.配置磁盘镜像设备 .............................................................................. 50
4.添加使用磁盘镜像设备的服务 ....................................................................52
5. 修改服务....................................................................................... 57
6. 删除服务....................................................................................... 58
7. 启动服务....................................................................................... 59
8. 停止服务....................................................................................... 59
9. 切换服务....................................................................................... 59
8 配置 HA 服务--使用磁盘镜像设备 KERNEL2.6..................................................... 61
1.安装磁盘镜像软件(DRBD) ......................................................................... 61
2.注册具有磁盘镜像功能的 LICENSE .................................................................. 62
3.配置磁盘镜像设备 .............................................................................. 62
4.添加使用磁盘镜像设备的服务 ....................................................................65
5. 修改服务....................................................................................... 70
6. 删除服务....................................................................................... 71
7. 启动服务....................................................................................... 71
8. 停止服务....................................................................................... 72
9. 切换服务....................................................................................... 72
9 配置 LB 服务--DR 方式........................................................................ 73
1.配置工具 ...................................................................................... 73
2.配置条件 ...................................................................................... 73
3.配置 REALSERVER 环境 ............................................................................. 73
4.配置调度节点环境 .............................................................................. 74
5.配置命令 ...................................................................................... 74
6.配置单端口服务 ................................................................................ 76
7. 修改服务....................................................................................... 81
8. 删除服务....................................................................................... 82
9. 启动服务....................................................................................... 82
10. 停止服务...................................................................................... 83
11. 切换服务...................................................................................... 83
10 配置 LB 服务--TUN 方式...................................................................... 85
1.配置工具 ...................................................................................... 85
2.配置条件 ...................................................................................... 85
3.配置 REALSERVER 环境 ............................................................................. 85
4.配置调度节点环境 .............................................................................. 86
5.配置命令 ...................................................................................... 87
6.配置单端口服务 ................................................................................ 88
7. 修改服务....................................................................................... 93
8. 删除服务....................................................................................... 94
9. 启动服务....................................................................................... 94
10. 停止服务...................................................................................... 95
11. 切换服务...................................................................................... 95
11 配置 LB 服务--NAT 方式...................................................................... 97
1.配置工具 ...................................................................................... 97
2.配置条件 ...................................................................................... 97
3.配置 REALSERVER 环境 ............................................................................. 97
4.配置调度节点环境 .............................................................................. 98
5.配置命令 ...................................................................................... 99
6.配置单端口服务 ............................................................................... 100
7. 修改服务...................................................................................... 105
8. 删除服务...................................................................................... 106
9. 启动服务...................................................................................... 106
10. 停止服务..................................................................................... 107
11. 切换服务..................................................................................... 107
12 配置 LB 服务--多端口 DR 方式 ............................................................... 109
1.配置工具 ..................................................................................... 109
2.配置条件 ..................................................................................... 109
3.配置 REALSERVER 环境 ............................................................................ 109
4.配置调度节点环境 ............................................................................. 110
5.配置命令 ..................................................................................... 111
6.配置多端口服务 ............................................................................... 112
7. 修改服务...................................................................................... 117
8. 删除服务...................................................................................... 118
9. 启动服务...................................................................................... 118
10. 停止服务..................................................................................... 119
11. 切换服务..................................................................................... 119
13 使用 GUIADMIN 来配置 GREATTURBO CLUSTER SERVER 10 .......................................... 121
1GUIADMIN 说明 ..................................................................................121
2.配置条件 ..................................................................................... 122
3.安装、启动 GUIADMIN 的命令 ...................................................................... 122
4.连接 GREATTURBO CLUSTER SERVER 10 服务器........................................................... 123
5GUIADMIN 功能介绍 ..............................................................................125
6. 停止 GUIADMIN................................................................................... 131
7. 卸载 GUIADMIN................................................................................... 131
14 检查 GREATTURBO CLUSTER SERVER 10 的运行状态 .............................................. 132
1.检查各守护进程的运行状态 .....................................................................132
2.检查集群与服务的运行状态 .....................................................................132
3.检查 DRBD 的运行状态 ........................................................................... 136
4.检查 IPVS 调度情况 ............................................................................. 139
15 卸载 GREATTURBO CLUSTER SERVER 10......................................................... 140
1.卸载 GREATTURBO CLUSTER SERVER 10 .................................................................140
2.卸载 DRBD...................................................................................... 141
3.卸载 GREATTURBO CLUSTER SERVER10 REALSERVER ....................................................... 142
4.卸载 GUIADMIN 客户端 ............................................................................ 142
附录 GREATTURBO CLUSTER SERVER 10 的维护 ......................................................... 143
1GREATTURBO CLUSTER SERVER 10 的日志信息 ........................................................... 143
2FAQ .......................................................................................... 143
3. LOG 收集工具的使用方法......................................................................... 146
4.联系拓林思软件有限公司 .......................................................................147
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
介绍
注意事项
在您开始使用 GreatTurbo Cluster Server 10 之前, 请您全面仔细的阅读本用户手册!否则,可能会因为 您的疏忽而使得安装过程出现不必要的问题!
GreatTurbo Cluster Server 10 介绍
GreatTurbo Cluster Server 10 是北京拓林思软件有限公司推出的为满足 Linux
平台企业级应用的高可用和负载均衡产品。它同时具备了高可用和负载均衡产品所 有的功能,而且在原有功能的基础上增加了许多新的功能。它提供的双机高可用方 案在保证负载均衡调度器高可用的同时,还能够满足其他应用对高可用的要求。其 良好的可靠性、可用性、可扩展性为用户业务提供了强有力的支持和保证。
1GreatTurbo 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 配置的所有 LB 服务都必须运行在同一调度
节点,并且只能对全部服务进行统一操作,如 EnableDisableRelocate 等。
GreatTurbo Cluster Server 10 的稳定性需要 OS 提供支撑。如果当操作系
统宕机时,可能会出现因 OS 没有彻底释放资源而导致 GreatTurbo Cluster Server 10 系统丧失高可用功能。在这种情况下,除非有额外的硬件设备, 否则 GreatTurbo Cluster Server 10 并不能够完全保证能够自动恢复操作 系统。此时需要用户手工干预操作系统,对崩溃的操作系统进行复位操作。 也就是说,当 OS 宕机时(尽管这种可能性很小),如果用户没有以下硬件 作为保障,仍然有可能会出现用户业务中断的可能:
1)采用电子开关。 2)服务器节点采用支持硬件 watchdog 功能的主板。
配置 GreatTurbo Cluster Server 10 的两台计算机节点的心跳方式时,必
须保证至少一条心跳通道正常工作。如果两台节点之间的所有心跳通道都发
1
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
生故障而不能正常连通,有可能会导致 GreatTurbo Cluster Server 10 发 生裂脑(split-brain),发生裂脑后,GreatTurbo Cluster Server 10 有 可能会导致用户的资源不一致。为了完全杜绝裂脑现象的发生,可以采取如 下方法:
1采用电子开关。 2使用第三方参考 IP,有关第三方参考 IP 的介绍将在第三章详述。
其中第一种办法是使用硬件的办法,由于电子开关是额外的电子硬件设 备,需要用户自行购买,所以实际中采用这种方式并不多;而第二种方式是 软件的方法,可以保证 GreatTurbo Cluster Server 10 发生裂脑时,用户 的资源不受损失。这需要用户提供一个能长期(永久性)正常工作的参考 IP 地址。
2GreatTurbo Cluster Server 10 的相关术语
节点 指运行 GreatTurbo Cluster Server 10 程序的计算机。
服务 也叫做资源组,指用户应用相关的一组资源的集合, 包括用户应用的 进程资源,磁盘资源,网卡资源,浮动 IP 资源,drbd 镜像资源等。服务可以是其 中几种资源或者全部资源的组合。 服务也可以为空,即不包括任何资源。通常用户 的一个应用与 GreatTurbo Cluster Server 10 的一个服务对应。GreatTurbo Cluster Server 10 的服务分为两种:高可用服务(HA 服务)和负载均衡服务(LB 服务)。HA 服务针对高可用集群确保高可用的对象。LB 服务是负载均衡系统进行 调度的具体应用,例如 Oracle 服务。HA 服务也可以是具体商业应用。
负载调度器(load balancer):也成为调度节点,它是整个负载均衡集群对 外的前端机。负责将客户的请求发送到一组真实服务器上执行, 而客户认为服务是 来自一个 IP 地址(我们可称之为虚拟 IP 地址)上的。在 GreatTurbo Cluster Server 10 典型应用中,负载调度器需要 2 个或多个,GreatTurbo Cluster Server 10 的 高可用方案保证负载调度器能稳定、24×7 不间断的运行。
真实服务器real server)
:也叫服务器池(server pool),是负载均衡 集群中真正执行客户请求的服务器,执行的服务有 WEBMAILFTP DNS 等。用 户请求由调度节点分发给真实服务器,由真实服务器来处理用户请求。
主节点 备节点
指服务运行所在的节点。 指完全没有服务运行的节点。如果主节点发生任何故障, 服务就会
从主节点迁移到备节点。此时的备节点也就转变成主节点, 此前的主节点也就转变 成备节点。
主备方式
常见的主备方式有Active-StandbyActive-Active
Active-Standby 是指服务仅在一个节点上运行。Active-Active 是指在两个节点都
有服务运行。也就是说,Active-Active 方式时都是主节点,也都是备节点,互为 主备关系。
优先节点(preferred node): 指服务将优先运行的节点。当配置一个服务 时, 可以给这个服务设定优先节点。一般有两种情况建议配置优先节点,一种情况 是当两个服务器节点的硬件配置不一样时,应当将服务的优先节点设定为硬件配置 较好的节点;另一种情况是当需要配置多个服务且应用的负载较重, 而且希望两个
2
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
服务分别在两个节点上运行以分担负载时,可以给这两个服务分别各设定一个节点 作为优先节点。
例如:假设服务 s 配置的优先节点是节点 A,并且将服务 s 在 A 节点启动,当 A 节点发生故障时,服务 s 会迁移到 B 节点,后来当 A 节点恢复之后,服务 s 会因 为A 节点设置成优先节点而自动回迁移到 A 节点。
当然,配置优先节点带来的弊病是,会导致服务多迁移一次。
服务的迁移(relocate): 是指服务在一个节点发生故障之后,服务先在故 障节点进行服务的停止以释放服务的所有资源,然后在另一节点启动服务, 使服务 继续可用的过程。
服务迁移的时间 :是指服务不可用的时间,也就是服务正在恢复之中但尚不 可用的时间段。
例如:服务在 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 Cluster Server 10 检测到连续出错次数达到指定的次数后,GreatTurbo Cluster Server 10 才认 为服务确实出错。服务确实出错后,会自动触发 GreatTurbo Cluster Server 10 进行服务的迁移。
裂脑(split-brain): 所谓裂脑,是指 GreatTurbo Cluster Server 10 高可用主备节点之间彼此失去了联系,但是单个节点的 GreatTurbo Cluster Server 10 仍然运行正常。发生裂脑的充要条件是:1. 系统的主备节点之间的所有心跳通 道都发生了故障,导致系统的两个节点失去了任何联系。2. 两个节点的 GreatTurbo Cluster Server 10 软件仍在正常运行。
裂脑带来的直接后果是导致两个节点都会各自启动并运行同一个服务,竞争同 一个服务的资源,这样有可能会导致资源(尤其是共享数据)被损坏。
drbd(磁盘镜像设备) 是指对两个节点各自大小相同的本地磁盘分区进行 实时镜像操作,使得这两个本地磁盘对双方节点而言, 可以当作一个虚拟的共享磁 盘阵列来使用,这个虚拟的共享磁盘阵列就叫做 drbd 设备,可以把 drbd 当作普通 的磁盘设备来使用。
Watchdog(看门狗) Watchdog 分为硬件级和软件级两种。 硬件级watchdog 是用来保障操作系统自动恢复的一种手段,如果服务器节点的主板支持 watchdog 功能,那么在 GreatTurbo Cluster Server 10 中可以进行相应的配置,当操作系 统发生死机等不响应情况,主板就会将操作系统自动重启恢复,而无需人工干预, 这一点对于“24 * 7”方式运行的服务器而言非常有用。而软件级的 watchdog 可 以用来保证 GreatTurbo Cluster Server 10 程序的健壮性但并不能保障操作系统 的自动重启恢复。所以硬件级的 watchdog 更加实用。
3
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
3GreatTurbo Cluster Server 10 快速安装手册的使 用方法
由于本手册是快速安装文档,所以各个章节的部分基本上都需要仔细阅读。 其 中第五章至第八章,第九章至第十二章根据您的应用类型选择进行阅读即可, 其余 章节都是必读部分。
4GreatTurbo Cluster Server 10 快速安装的主体过
GreatTurbo Cluster Server 10 快速安装的主体过程有如下六个步骤:
1) 进行安装/使用 GreatTurbo Cluster Server 10 前的准备工作。(第一章 介绍)
2) 安装 GreatTurbo Cluster Server 10 软件。(第二章介绍)
3) 配置 GreatTurbo Cluster Server 10 软件。(第三章介绍)
4) 准备服务的用户脚本和检测脚本。(第四章介绍)
5) 根据您的应用类型,将应用配置成高可用的服务。(第五/六//八章介绍)
6) 根据您的应用类型,配置具体的 LB 服务(第九//十一/十二章介绍)
7) 监控和维护 GreatTurbo Cluster Server 10 系统。 (第十三、 十四章介绍)
另外本手册在第十五章介绍了如何卸载 GreatTurbo Cluster Server 10,并 且在附录中还列出了 GreatTurbo Cluster Server 10 安装使用过程中常见的问题 以及如何进行一些后期的维护。
4
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
1
安装 GreatTurbo Cluster Server 10 前的准 备工作
安装 GreatTurbo Cluster Server 10 之前需要您做好相关的软硬件环境的准备 工作。否则,可能会影响您随后的安装过程,使您遇到不必要的麻烦。
安装前的准备工作可以分为如下四个步骤:
1) 了解和分析您的应用;
2) 准备 GreatTurbo Cluster Server 10 需要的硬件环境;
3) 准备 GreatTurbo Cluster Server 10 需要的软件环境;
4) 安装 GreatTurbo Cluster Server 10 前需要准备的操作系统的配置。
1.了解和分析您的应用
GreatTurbo Cluster Server 10 可以支持绝大多数的双机高可用和负载均
衡的应用。按照服务类型,GreatTurbo Cluster Server 10 将用户的应用分为 两大类:HA 应用和 LB 应用。
1HA 应用
根据用户应用是否需要使用共享的数据资源,GreatTurbo Cluster Server
10 将用 HA 应用分为以下三类: a)第一类应用:需要使用共享磁盘阵列的应用。
这类应用的特点是,应用的数据非常重要且 I/O 负载较高,必须使用共享 磁盘阵列来保证应用数据的一致性、可靠性和高性能。此类应用的典型例子是 各类数据库应用,如 OracleSybaseMySQL 等。也就是说,使用 GreatTurbo
Cluster Server 10 的双机系统本身作为后台数据系统。
b)第二类应用:不需要使用共享磁盘阵列并且也不需要存取共享数据的应用。
这类应用的特点是,不需要存取共享数据,使用 GreatTurbo Cluster Server 10 的双机系统只是用于进程和浮动 IP 等资源的切换。一般情况下,这种类型的
应用只是用来作为前端接入、前置机来使用。典型的应用有 WEB/MAIL 等网络应 用或者是用户自己的业务应用。这类应用通常会有另外的后台数据库系统来保 存数据。
c)第三类应用:需要使用共享磁盘阵列但是不具备磁盘阵列硬件条件的应用。
5
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
这类应用的特点是 I/O 负载较小(<10MB/s),数据本身并不是关键业务数 据,并且该应用需要使用共享的存储设备来保证数据的一致性。对于此类应用, GreatTurbo Cluster Server 10 提供了虚拟的共享磁盘设备 “磁盘镜像设备” 来保证应用数据的一致性。
2LB 应用
根据使用的负载均衡技术,LB 应用分为以下三类:
a)第一类应用:使用 VS/DR 负载均衡技术的应用。
b)第二类应用:使用 VS/TUN 负载均衡技术的应用。
c)第三类应用:使用 VS/NAT 负载均衡技术的应用。
注意:
通常情况下,用户的一个应用对应于 GreatTurbo Cluster Server 10 的一 个服务。如果有多个应用就需要在 GreatTurbo Cluster Server 10 中配置多个 服务,依照每个应用的类型,您可以分别按照第五、六、七、八章,第九、十、 十一、十二章的内容进行配置。
2.准备 GreatTurbo Cluster Server 10 需要的硬件环 境
1) 两台 X86 架构的计算机;硬件的配置只需满足能够安装主流的 Linux 操作系 统的条件即可。推荐用户使用具备 RAID-1 级别本地磁盘设备的服务器。
2) 虽然 GreatTurbo Cluster Server 10 本身对硬件的要求不高,但是节点的 硬件配置需要和用户的应用负载相匹配,也就是说用户的硬件环境的性能配置 应该满足用户的应用负载的峰值要求!
3) 每台计算机必须配备三块以上网卡。其中,用作两节点心跳信息的网卡采 用直连网线相连接,至少需要两条直连网线作为心跳线。
网卡的性能要求取决于您的应用的类别。如上所述,如果您的应用类别是 第三类应用时,建议您至少需要使用一块 1Gbps 的网卡作为直连网线的设备, 这样可以提高磁盘镜像设备的性能;如果是第一类应用或者是第二类应用时, 网卡性能达到 100Mbps 即可(当然如果您的应用对网络带宽要求较高,则也需 使用 1Gbps 网卡)。
请将两台计算机的所有用作 GreatTurbo Cluster Server 10 通道的对应网 卡用直连网线一一连接起来。
4) 一根串口线。为了保证系统的高可用性,需要再使用一根串口线连接两个节 点的串口。
请将两台计算机对应的串口用串口线连接起来。
5) 是否需要共享的磁盘阵列,取决于您的应用。如果您的应用是第二类或第三HA 应用,您可以不需要使用磁盘阵列。如果您的应用是第一类应用,您需要
6
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
使用共享的磁盘阵列。另外,如果您需要使用共享 raw 磁盘分区作为心跳方式, 则需要使用磁盘阵列
在选用磁盘阵列时,一般分两种情况:第一种是带独立 RAID 处理器的磁盘阵 列,主流厂商的 SCSI 或光纤磁盘阵列都可以满足 GreatTurbo Cluster Server 10 的要求,这类磁盘阵列产品的性能强且价格也较高。第二种是使用主机 RAID 卡和 磁盘柜(磁盘柜是指不具备硬件 RAID 处理器的磁盘盒)的方式,这种磁盘设备不 是真正意义上的磁盘阵列,但通过双机的 RAID clustering 技术和 RAID 的用户 接口工具等,也可以满足 GreatTurbo Cluster Server 10 的共享数据存取的需求, 常见的这种类型的“磁盘阵列”的典型产品有 IBM EXP400DELL 的 220S、HPMSA500-G2 等,这类“磁盘阵列”产品的性能和价格一般都较前一种低。
注意:
1) 在配置磁盘阵列和做 RAID 盘的时候,请认真仔细参考磁盘阵列提供厂商的 手册,根据应用的特点来配置相关参数,如 hotspare 盘、raid 级别、stripe 大小、 cache 策略等。如果不进行配置参数的调优将会导致磁盘阵列的可靠性和 I/O 性能 受到较大影响。
2) 在使用第二种“磁盘阵列”的时候,一定要仔细询问相应的硬件厂家,其 产品是否支持双机 GreatTurbo Cluster Server 10 的数据共享应用。另外,建议 尽量选择那些缓存较大同时附带后备电池的 RAID 卡型号,以提高 RAID 卡的高可用 性。
3) 无论使用那种磁盘阵列,都一定要和硬件厂商确认,该磁盘阵列相关设备 的驱动程序是否为最新的稳定版本,以提高磁盘阵列的高可用性。
3. 准备 GreatTurbo Cluster Server 10 需要的软件环 境
安装 GreatTurbo Cluster Server 10 的软件条件比较简单,必需要安装
GTES10 操作系统平台。
如果您想使用图形界面的管理工具,那么必须保证在客户端和服务器端的操作 系统上提供 Java 运行时环境支持,JRE1.4.2 及其以上版本。如果您不具备 java 环境,那么也可以使用文本方式的管理工具进行配置。
注意:
用户在安装操作系统时,建议用户采用完全安装操作系统的模式,并且将操作 系统安装在本地具有 RAID-1 功能的磁盘设备上。这样可以保证操作系统功能的完 备性和操作系统数据的可靠性。
如果使用图形管理工具,检查/usr/bin 目录下的 java 是否正确链接到 JRE 目 录。
7
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
4. 安装 GreatTurbo Cluster Server 10 前需要准备的 操作系统的配置
两个节点的操作系统配置需要确认如下环节:
1) 请确认您登陆操作系统的身份是 root 权限,因为随后的安装配置都需 要是 root 权限。
2) 如果您需要使用共享的磁盘阵列,请查看磁盘阵列是否已经可以使用 (包括硬件的配置、RAID 的配置、驱动的安装、分区、文件系统等)。
3) 所有网卡是否配置好。(包括直连网线是否连好、hosts 文件是否设置 等)。如果使用了串口,查看双方的串口是否正常连接。
4) 由于 GreatTurbo Cluster Server 10 使用了操作系统的 syslog 服务来 打印 GreatTurbo Cluster Server 10 LOG 日志,所以请确认 syslog 服务已经配置并且正在运行。例如:
[root@test1 root]# /etc/init.d/syslog status syslogd (pid 447) is running... klogd (pid 457) is running...
5) 如果你需要使用共享磁盘阵列,并且需要在共享磁盘上 make 文件系统,
除非特殊的要求,强烈建议文件系统的类型为日志文件系统(例如 EXT3 等)。同时 make 文件系统时,注意调整 block 参数的大小以便与磁盘 阵列做 RAID 盘时的 stripe 参数对应成最佳。这样可以提高文件系统的 性能。
6) GreatTurbo Cluster Server 10 的日志系统要求两台节点的系统时钟 一致,以方便后期维护。如果两台系统时钟不一致,请使用 hwclock 以及 date 命令来调整时钟,使得两台节点的时钟大致相同,误差小于
30 秒之内。
7) 为了方便后期维护,需要系统的 sshd 服务正常运行,并且允许 root 权限进行 ssh 登陆。
5. 安装 GreatTurbo Cluster Server 10 前需要准备用
户的应用程序
接下来,请在两个节点上安装用户的应用程序,两个节点的安装配置都要 求是对等的,也就是说,在两个节点上安装的用户的应用程序所在的目录、使 用的共享磁盘设备名称、网卡名称等都应该一致。
通常,都会将应用程序安装在两个节点的本地硬盘上。
如果如果您的应用类别是第一类应用时,可能还需要在共享磁盘设备上准 备共享的数据。例如:对于 oracle 应用,您需要表空间文件存放在共享磁盘设 备上。
8
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
上面介绍了安装前需要的准备工作,接下来将通过具体的例子来说明。
6. 安装GreatTurbo Cluster Server 10 的配置示例
现在我们引入一个较为通用的双机软硬件环境的例子来说明具体的过程。 在随后几章的安装、配置、使用等章节中的具体内容将参照如下拓扑结构的情 况进行说明。
交换机
eth0 172.16.70.10 eth0 172.16.70.20
浮动IP 172.16.70.100
eth1 192.168.1.11 第1条直连网线
Data General Data General
服务器
节点A
eth2 192.168.1.12
eth3 192.168.1.13
SCSIFC
2条直连网线
3条直连网线(可选)
串口线/dev/ttyS0 /dev/ttyS0
3Com
磁盘阵列
eth1 192.168.1.21
eth2 192.168.1.22
eth3 192.168.1.23
服务器
节点B
SCSIFC
如上图所示,有两台节点,服务器节点 A 和节点 B。假设每台机器有四个网卡 eth0-eth3eth0 连接至交换机,eth1-eth3 和另一节点的对应网卡通过直连网线 相连,并且两个节点通过串口线将各自的第一个串口相连。此外,两台机器通过 SCSI 线缆与共享的磁盘阵列相连。
在节点 A/B 两个节点上分别配置好各个网卡的信息 (包括IP 地址、 网络掩码、 广播地址等),分别将 eth0 hostname 设置成主机的 hostname,假设节点 A hostname 对应于 eth0, 且设置成test1,节点 B hostname 对应于 eth0,且设置 成test2。并且分别在/etc/hosts 文件中添加两个主机 eth0-eth3 网卡的别名。 例 如hosts 文件内容如下:
172.16.70.10 test1
172.16.70.20 test2
192.168.1.11 hb11
9
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
192.168.1.12 hb12
192.168.1.13 hb13
192.168.1.21 hb21
192.168.1.22 hb22
192.168.1.23 hb23
注意:不要把 hostname 对应到 127.0.0.1 这个 IP 地址。
其中 hb11hb12、hb13 对应节点 A 的eth1、eth2、eth3 三个网卡;hb21、hb22、
hb23 对应节点 B eth1eth2eth3 三个网卡。
10
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
2
安装 GreatTurbo Cluster Server 10
在做好了第一章中所列的各项准备工作之后,现在就可以安装 GreatTurbo Cluster Server 10 软件了。
安装过程如下:
1) 确认您所使用的 GreatTurbo Cluster Server 10 产品的功能级别
2) 安装 GreatTurbo Cluster Server 10
3) 注册 GreatTurbo Cluster Server 10
1.确认您所使用的 GreatTurbo Cluster Server 10 品的类型
GreatTurbo Cluster Server 10 产品分为两个功能级别,请确认您购买的产
品属于哪一个级别。第一级别只能够满足第一章提到的 HA 应用的第一类和第二类 的用户应用,第二级别能够全部满足第一章提到的三类 HA 应用。也就是说,第一 级别不支持磁盘镜像设备(drbd)功能,第二级别支持 drbd 功能。
当然,具体选购何种级别功能的 GreatTurbo Cluster Server 10,完全取决于 您需要满足的应用类型。确认了 GreatTurbo Cluster Server 10 的功能级别之后, 就可以开始安装 GreatTurbo Cluster Server 10 了。
2.安装 GreatTurbo Cluster Server 10
请分别在节点 A 和节点 B 安装 GreatTurbo Cluster Server 10 软件。
1 如果您购买的是正版的 GreatTurbo Cluster Server 10 产品,GreatTurbo Cluster Server 10 会附带软件的安装光盘。插入安装光盘到节点的光驱并 mount
后,光盘根目录中有一个安装文件 install_cluster,请运行如下命令进行安装。 根据您的操作系统版本并参照其提示完成 GreatTurbo Cluster Server 10 的安装。
如果您的 GreatTurbo Cluster Server 10 产品支持 drbd,请在“Do you want
to use drbd ?”时选择 yes,否则选择 no
例如:
[root@test1 root]# mount /dev/cdrom /mnt/cdrom [root@test1 root]# cd /mnt/cdrom [root@test1 cdrom]# ./install_cluster Following RPMs will be installed or upgraded to newer version if necessary:
11
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
*) pdksh *) lsof *) sg_utils *) drbd *) GreatTurbo Cluster Server *) GreatTurbo Cluster Server Agents Please select the operatating system version you are using:
0) GreatTurbo Enterprise Server 10 (x86_32)
1) GreatTurbo Enterprise Server 10 (x86_64)
2) GreatTurbo Enterprise Server 10 (OpenPower ppc64)
3) GreatTurbo Enterprise Server 10 (IA64)
4) cancel Please select an OS version, then the installation procedure will begin. Select 4 to abort [0/1/2/3/4]: 0 Do you want to use drbd? (y/n) [y]: y Please select the network forwarding method you want to use:
0) direct routing
1) NAT
2) IP tunnel Please select a network forwarding method [0/1/2]: 1
2 如果您是从拓林思公司下载的试用产品(使用有效期为 1 个月),您下载的 GreatTurbo Cluster Server 10 将是一个 ISO 文件和 md5 检验文件。ISO 文件的名 称一般为 greatturbocluster-10.x-x.iso md5 文件的名称一般为 greatturbocluster-10.x-x.iso.md5。为了验证您下载的 iso 文件是否正确,可以
先对您的 iso 文件进行 md5sum 操作, 如果发现 md5sum 运行命令所得结果,和您下 载的 md5 文件的内容一致,则表明您下载的 ISO 文件正确无误。
例如:
[root@test1 iso]#md5xum ./greatturbocluster-10.0-1.iso 88f7b387c8cdaca3fa38832c6b7b2b6a greatturbocluster-10.0-1.iso [root@test1 iso]# cat ./ greatturbocluster-10.0-1.iso.md5 88f7b387c8cdaca3fa38832c6b7b2b6a greatturbocluster-10.0-1.iso
证明您下载的 ISO 文件正确之后, 请先将 ISO 文件 mount 到某一个目录, 然后 运行这个目录下的 install_cluster 安装程序进行安装,接下来的过程同从光盘安 装时介绍的一样。
[root@test1 root]# mount –o loop ./ greatturbocluster-10.0-1.iso /mnt/iso [root@test1 root]# cd /mnt/iso [root@test1 iso]# ./install_cluster
12
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
3.注册 GreatTurbo Cluster Server 10 产品
安装完GreatTurbo Cluster Server 10 的软件之后,您需要注册GreatTurbo Cluster Server 10 产品,也就是说需要安装 GreatTurbo Cluster Server 10license,以保证 GreatTurbo Cluster Server 10 正常运行。
注册 GreatTurbo Cluster Server 10 产品的步骤如下:
1) 获得两个节点的硬件号,分别在两个节点上运行”/opt/cluster/bin/syncd
-l ,其输出的第一行信息,例如“Hardware ID: 3355DEJGQWVK”,其中
3355DEJGQWVK”就是硬件号。仔细记录两台节点的硬件号,以便在随后的 注册中使用。
2) 用浏览器登陆注册网站 http://www.turbolinux.com.cn/register。进入如下
图所示的登陆页面:
3) 如果您是第一次注册,请点击“新用户”按钮,按要求详细填写注册信息。
4) 注册完之后,返回如上登陆页,输入电子邮件地址和密码,点击“登陆”,
进入注册页。您还可以在产品序列号栏,输入您购买产品时附带的序列号,以 查看序列号有没有被注册过,如果发现被人盗用注册过,则请与拓林思软件有 限公司联系,因为注册码只允许注册一次。
5) 登陆后,进入以下页面:
13
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
如果您是正版用户,请点击“增加产品序列号”按钮、进入步骤 6)。如果 您没有序列号,只是试用,请点击“评估版许可证”按钮、进入步骤 7)。
6) 点击“增加产品序列号”之后,进入如下页面:
7) SN 栏输入您购买产品时附带在注册卡上的序列号、然后点击“下一步”
按钮,或者点击 5)中“评估版许可证”进入如下页面:
8) 选择您的产品类型,点击“下一步”按钮,进入以下页面:
9) 分别填入两个节点的硬件号,然后点击完成,进入到如下所示的页面:
14
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
10) 点击“取得使用许可证”按钮,在接下来的页面上选择如何保存你得许可证:
寄到信箱或者存到文件。
11) 得到 license 文件之后,你需要把它分别 copy 到两个节点的
/etc/opt/cluster/lic 目录下。
注意: 在/etc/opt/cluster/lic 目录下只能保存一个 license 文件。
至此,GreatTurbo Cluster Server 10 产品注册完毕。接下来在第三章中, 我们将讲述如何对 GreatTurbo Cluster Server 10 进行初始配置。
15
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
3
系统配置
在以上步骤配置完成之后,就可以初始化 GreatTurbo Cluster Server 10 了。 初始化过程是通过 member_config 命令来完成的。
初始化 GreatTurbo Cluster Server 10 的过程如下:
1) 选择其中一节点(例如节点 A)进行系统配置,
2) 在另一节点(例如节点 B)同步配置信息。 注意: member_config 只需要在一个节点上配置;系统运行中不能使用 member_config
1.选择其中一节点进行系统配置
首先我们需要选择其中一节点对 GreatTurbo Cluster Server 10 进行一些配置。
1启动member_config 命令
注意: 如果您使用了 IBM EXP400 系列的磁盘柜,在确定 IBM EXP400 磁盘阵列的硬件
安装和配置正确之后,运行 member_config -s 命令。 运行 member_config 命令,系统显示如下:
[root@test1 root]# /opt/cluster/bin/member_config
-----------------------------------­Cluster Member Configuration Utility
Version10.0 Built: Fri Jun 9 16:51:41 CST 2006 This utility sets up the member systems of a 2-node GreatTurbo Cluster Server 10 cluster, or the 2-node director members of a Load Balancing cluster. It prompts you for the following information:
o Hostname o Number of heartbeat channels
16
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
o Information about the type of channels and their names o Power switch type and device name o Information about the routers and network type of the Load Balancer
In addition, it performs checks to make sure that the information entered is consistent with the hardware, the Ethernet ports, the raw partitions and the character device files.
After the information is entered, it initializes the configure file and saves the configuration information to the configure file
- Checking that cluster daemons are stopped: done
- Configuration file exists already. Would you like to use those prior settings as defaults? (yes/no) [yes]:
如果以前运行过 member_config 命令,那么配置文件中会保存我们的配置结
果,该选项就是问我们是否使用以前的配置结果作为缺省值,通常回答 yes
注意:如果是第一次配置,则不会出现该选项。
2)配置本地节点名称
接下来,输入本地节点的名称。GreatTurbo Cluster Server 10 会自动的从您
系统中/etc/hosts 中得到本地节点的名称,前提是您没有把这个名称对应到
127.0.0.1 如果这个名称对应到 127.0.0.1,安装程序会退出,并提醒您正确的 配置/etc/hosts
---------------------------------------­Setting information for cluster member 0
---------------------------------------­Enter name of cluster member [test1]: test1 Looking for host test1 (may take a few seconds)... Host test1 found Cluster member name set to: test1
3)配置本地节点的heartbeat 选项:
GreatTurbo Cluster Server 10 heartbeat 通道有两类: 网络(net)和串口
(serial)。 对于网络,您需要配置 heartbeat 使用的网络设备对应的别名;对于串
口,您需要配置 heartbeat 使用的串口的设备名,例如 /dev/ttyS0
注意:为了获得更高的可用性,GreatTurbo Cluster Server 10 建议配置一
条串口通道以及至少两条直连网络心跳通道,并且必须将应用所在的网卡配置成通
17
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
道,配置通道的顺序为:先配置所有的直连网线通道,再配置应用所在网卡的通道, 最后配置串口通道。
Enter number of heartbeat channels (minimum = 1) [1]: 4 You selected 4 channels Information about channel 0: Channel type: net or serial [net]: Channel type set to: net Enter hostname of cluster member test1 on heartbeat channel 0 [test1]: hb11 Looking for host hb11 (may take a few seconds)... Host hb11 found Hostname corresponds to an interface on member 0 Channel name set to: hb11 Information about channel 1: Channel type: net or serial [net]: Channel type set to: net Enter hostname of cluster member test1 on heartbeat channel 1: hb12 Looking for host hb12 (may take a few seconds)... Host hb12 found Hostname corresponds to an interface on member 0 Channel name set to: hb12 Information about channel 2: Channel type: net or serial [net]: Channel type set to: net Enter hostname of cluster member test1 on heartbeat channel 2: test1 Looking for host test1 (may take a few seconds)... Host test1 found Hostname corresponds to an interface on member 0 Channel name set to: test1 Information about channel 3: Channel type: net or serial [net]: serial Channel type set to: serial Enter device name: /dev/ttyS0 Device /dev/ttyS0 found and no getty running on it Device name set to: /dev/ttyS0
4)配置本地节点的power switch 和 watchdog 选项:
如果没有硬件电子开关设备,请输入 NONE。如果有硬件电子开关,输入相应的
电子开关对应的类型,如:RSARPS10 或者是 APC
软件级的 watchdog 可以用来保证 GreatTurbo Cluster Server 10 程序的健壮
性但并不能保障操作系统的自动重启恢复; 如果有硬件 watchdog,请输入硬件
18
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
watchdog 对应的驱动模块的名字,如果没有硬件 watchdog,建议配置软件 watchdog,输入操作系统默认附带的软件 watchdog 的模块名字 softdog 即可。
Information about power switch connected to member 0 Specify one of the following switches (NONE/RSA/RPS10/APC) [NONE]: NONE Power switch type set to NONE
Information about watchdog to member 0 Choose one of the following watchdog drivers: NONE/softdog/...) [NONE] : softdog
5)配置对方节点信息
对方节点信息包括节点的机器名,heartbeat 的设置,watchdog driver 等。
设置方法和本地完全一样。
---------------------------------------­Setting information for cluster member 1
---------------------------------------­Enter name of cluster member: test2 Looking for host test2 (may take a few seconds)... Host test2 found Cluster member name set to: test2
You previously selected 4 channels Information about channel 0: Channel type selected as net Enter hostname of cluster member test2 on heartbeat channel 0: hb21 Looking for host hb21 (may take a few seconds)... Host hb21 found Channel name set to: hb21 Information about channel 1: Channel type selected as net Enter hostname of cluster member test2 on heartbeat channel 1: hb22 Looking for host hb22 (may take a few seconds)... Host hb22 found Channel name set to: hb22 Information about channel 2: Channel type selected as net Enter hostname of cluster member test2 on heartbeat channel 2: test2 Looking for host test2 (may take a few seconds)... Host test2 found
19
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Channel name set to: test2 Information about channel 3: Channel type selected as serial Enter device name [/dev/ttyS0]: /dev/ttyS0 Device name set to: /dev/ttyS0
Information about power switch connected to member 1 Specify one of the following switches (NONE/RSA/RPS10/APC) [NONE]: NONE Power switch type set to NONE
Information about watchdog to member 1 Choose one of the following watchdog drivers(NONE/softdog/...) [NONE]: softdog
6)配置磁盘心跳设备
利用共享 raw 磁盘分区作为心跳通道后,只要主备节点能够访问共享数据,就 不会发生裂脑, 从而有效的确保了共享数据的一致性。如果需要配置磁盘心跳,请 选择 yes 继续配置。如果条件实在不具备,输入 no,然后回车。
---------------------------­Setting up raw disk heartbeat
----------------------------
Do you want add raw disk heartbeat device? (yes/no) [yes]: The raw disk heartbeat device must be a raw disk device. To enhance redundancy, need to configure two raw disk devices.
Enter the name of first raw disk heartbeat device [/dev/raw/raw1]: /dev/raw/raw1
Enter the name of second raw disk heartbeat device [/dev/raw/raw2]: /dev/raw/raw1 Now begin to initialize the raw disk heartbeat device, it will cause the data in the devices lost. Are you sure to initialize the raw devices which you input? (yes/no) [yes]:yes
7)配置第三方IP 地址
您需要配置两个节点都可以连接的第三方 IP 地址 (要求能ping 通, 一般选择 网关作为第三方 IP)。第三方 IP 能配置多个,以进一步提高系统高可用性。如果
20
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
要使配置的第三方 IP 生效,必须将两个节点的对外网络设置为备用心跳。如果条 件具备,建议您配置第三方 IP
如果条件实在不具备,输入 no,然后回车。
------------------------------­Setting up the third partner ip
-------------------------------
Do you want cluster to determine network status? (yes/no) [yes]:
The IP address of third computer is needed to determine network status. The third computer should be up all the time, so it is recommend to use gateway IP address here. Please use IP address instead of domain name. If you want input multiple third part IP, please use comma to separate. For example, 192.168.0.1,192.168.0.3,192.168.0,10
Enter the IP address of third computer [172.16.76.1]:
……
8)配置负载均衡调度信息
首先需要输入两个调度节点的 ip 地址,然后选择一种调度方式。注意此时选 择的调度方式必须和安装软件包时所选择的方式一致(请选择和 realserver 保持 一致的调度方式) 。如果选择 NAT 作为负载调度技术, 那么还需要配置NAT router 地址的相关信息。
---------------------------------------­Setting Load Balancer informations
---------------------------------------­Enter load balancer primary server IP [172.16.70.138]: Looking for IP address 172.16.70.138 (may take a few seconds)... IP address 172.16.70.138 found IP address corresponds to an interface on member 0 Load balancer primary server IP set to: 172.16.70.138 Enter load balancer backup server IP [172.16.70.76]: Looking for IP address 172.16.70.76 (may take a few seconds)... IP address 172.16.70.76 found Load balancer backup server IP set to: 172.16.70.76 Enter load balancer network forwarding type(direct/nat/tunnel) [direct]: nat Load balancer network forwarding type set to: nat Enter NAT router IP address: 172.16.70.76
21
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
NAT router IP address set to: 172.16.70.76 Enter NAT router netmask: 255.255.255.0 NAT router netmask set to: 255.255.255.0 Enter NAT router device(e.g. eth1:1): eth1:1 NAT router device set to: eth1:1
-----------------------------------­The following choices will be saved:
-----------------------------------­ ……
9)保存配置
如果以上内容全部配置完毕,member_config 将会询问是否保存改动。如果
刚才的配置没有错误,请输入"yes"或直接回车;
然后程序还会询问是否运行"diskutil -I"来初始化配置文件,这里请选择
"yes"
注意:当 GreatTurbo Cluster Server 10 的守护进程正在运行时,请不要
选择运行 diskutil -I 来初始化配置文件,以免造成不可预知的后果。
Save changes? yes/no [yes]: Writing to output configuration file...done. Changes have been saved to /etc/opt/cluster/cluster.conf.
---------------------------­Setting up Configure File
---------------------------­Run diskutil -I to set up the configure file now?
- Select 'yes' to clean up a previous install
- Select 'no' if you have just set them up on other member and have not started the cluster services on that member
- Select 'no' if you are running it on other cluster member Warning: Do not run 'diskutil -I' on a running cluster, because it would have severe consequences. yes/no [no]: yes
Saving configuration information to configure file: done
---------------------------------------------------------------­Setup on this member is complete. If errors have been reported, correct them.
If you have not already set up the other cluster member, before running member_config, invoke the following operation on the
22
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
other cluster member: copy /etc/opt/cluster/cluster_raw.conf to another node with the same path. cluster daemons on each cluster member by invoking the cluster start script located in the System V init directory. For example: # /etc/rc.d/init.d/cluster start
2.在对方节点上同步配置
配置完成之后,需要把配置文件/etc/opt/cluster/cluster_raw.conf
工拷贝到另外一台机器的相同目录里(使用 scp 或者 ftp 均可)。
[root@test2 root]# scp test1:/etc/opt/cluster/cluster* /etc/opt/cluster
3.运行 GreatTurbo Cluster server 10
初始化完成之后,需要在两边节点分别运行 GreatTurbo Cluster Server 10。 脚本/etc/init.d/cluster 可以用来启动 GreatTurbo Cluster Server 10
[root@test1 root]# /etc/init.d/cluster start
-------- Performing cluster start --------------------­Starting Turbo cluster...done.
---- Performing guiadmin server start ---­Starting guiadmin server...done.
---- Completed guiadmin server start ----
-------- Completed cluster start ---------------------
注意:请不要执行完/etc/init.d/cluster start 后立即执行 /etc/init.d/cluster stop,请确认 GreatTurbo Cluster Server 10 启动完成后 再执行/etc/init.d/cluster stop
member_config 初始化完成之后,GreatTurbo Cluster Server 10 就可以正常
运行了,只不过没有配置服务。用户可以参阅第十四章的检测方法来判断 GreatTurbo Cluster Server10 是否可以成功启动。
在配置服务之前,首先需要准备服务所需要的用户脚本和检测脚本。
23
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
4
用户脚本和检测脚本
在配置 GreatTurbo Cluster Server 10 的服务时,需要配置服务要使用的 用户脚本和检测脚本。用户脚本也就是启动和停止脚本,用来启动和停止服务 相关的应用程序。检测脚本在服务运行过程中用来检测服务的运行情况。用户 脚本和检测脚本虽然并不是必需的,这要根据应用的实际情况来决定。如果需 要用户脚本和检测脚本,那么在配置服务之前首先需要准备好用户脚本和检测 脚本,并且测试用户脚本和检测脚本都正确无误后方可开始配置服务。
注意:对于 LB 服务,系统提供了默认脚本供用户使用,故本章讨论的脚本问 题均针对 HA 服务, 而不对LB 服务使用的脚本进行详述。 关于LB 服务使用的脚本, 具体参见第九、十、十一、十二章。
1.用户脚本
用户脚本是一个 shell 的脚本,用来启动和停止 HA 服务相关的应用程序,一
个服务只能配置一个用户脚本。
(1) 编写用户脚本
请参照下面的例子来编写用户脚本,在 GreatTurbo Cluster Server 10 安装光
盘的 doc/examples 目录下也有用户脚本的例子,名字为 usrapp.sh
在编写用户脚本时,需要注意以下的问题
1) 脚本的参数必须包含对输入参数 startstop 的相应处理,在启动部分加 入用户所有程序的启动命令,在停止部分加入用户所有程序的停止命令。 也就是说脚本的格式必须是规定的格式。请参照例子进行编写。
2) 请在脚本中加入 log 信息,以便发生故障时准确定位故障原因。
3) 脚本执行成功时要明确返回 0,失败时要明确返回 1。特别是当应用程序有
标准的启动/停止脚本时,请确认该脚本在成功时是否返回 0,失败时是否 返回 1,如果不是,请不要直接使用应用程序提供的脚本,请手动编写脚本。
4) 对于操作系统默认安装的一些应用的脚本,如 httpd,该脚本的返回值在启/停止时会判断是否已经启动 /停止了,在已经启动 /停止时,该脚本返回 值是 1,这不满足 GreatTurbo Cluster Server 10 的接口,需要将其改成
24
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
0。当然,用户自写的脚本在判断是否已经启动/停止时,也应该满足返回 值为 0 的条件。
5) 如果启动和停止分别有多步操作,停止操作的执行顺序一定要和启动操作的 执行顺序相反。
6) 用户脚本要有可执行权限。
(2) 测试用户脚本
用户脚本写好后,请务必通过测试检查用户脚本是否正确。 例如,用户脚本的名字为 usrapp.sh。
1) 启动 首先执行 usrapp.sh start。 然后 echo $? ,判断脚本的返回值是否为 0,0表示脚本执行成功。 检查应用程序是否正常启动。 如果脚本的返回值为 0 并且应用程序正常启动了,表示用户脚本在启动时是
正确的。
2) 停止 首先执行 usrapp.sh stop。 然后 echo $? ,判断脚本的返回值是否为 0,0 表示脚本执行成功。 检查应用程序是否正常停止。 如果脚本的返回值为 0 并且应用程序正常停止了,表示用户脚本在停止时是
正确的。
(3) 用户脚本的例子
#!/bin/sh
# userscript sample
LOG_EMERG=0 # system is unusable LOG_ALERT=1 # action must be taken immediately LOG_CRIT=2 # critical conditions LOG_ERR=3 # error conditions LOG_WARNING=4 # warning conditions LOG_NOTICE=5 # normal but significant condition
25
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
LOG_INFO=6 # informational LOG_DEBUG=7 # debug-level messages
script_name=`basename $0`
clulog() { log_level=$1 log_info=$2 /opt/cluster/bin/clulog -p $$ -n $script_name -s $log_level "$log_info" }
case "$1" in start)
# start your application, put actual start actions here
su - oracle -c "dbstart"
if [ $? -eq 0 ]; then
# should check application process here pmon=`ps -ef | egrep ora_pmon_$ORACLE_SID | grep -v grep` if [ "$pmon" = "" ]; then
clulog $LOG_ERR " oracle d atabase start failed, process not exist."
# must return 1 here exit 1 fi clulog $LOG_INFO " dbstart succeeded." else clulog $LOG_ERR " dbstart failed, ret=$?." # must return 1 here exit 1 fi su - oracle -c "lsnrctl start" if [ $? -eq 0 ]; then clulog $LOG_INFO " lsnrctl start succeeded." # must return 0 here exit 0 else clulog $LOG_ERR " lsnrctl start failed, ret=$?." # must return 1 here exit 1 fi
;;
stop) #stop your application, put act ual stop actions here su - oracle -c "lsnrctl stop" if [ $? -eq 0 ]; then clulog $LOG_INFO " lsnrctl stop succeeded." else clulog $LOG_ERR " lsnrctl stop failed, ret=$?."
26
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
#must return 1 here exit 1 fi su - oracle -c "dbshut" if [ $? -eq 0 ]; then pmon=`ps -ef | egrep ora_pmon_$ORACLE_SID | grep -v grep` if [ "$pmon" != "" ]; then
clulog $LOG_ERR " oracle database shut failed, process still exist."
# must return 1 here exit 1 fi clulog $LOG_INFO " dbshut succeeded." # must return 0 here exit 0 else clulog $LOG_ERR " dbshut failed, ret =$?." # must return 1 here exit 1 fi
;;
esac
2.检测脚本
服务的检测脚本是一个 shell 的脚本,用来检测 HA 服务是否正常运行,一个
HA 服务只能配置一个检测脚本。
根据应用的实际情况,您可以自己编写检测脚本,也可以使用 GreatTurbo
Cluster Server 10 自带的位于/opt/cluster/usercheck/目录下的 agent 脚本。
(1) 编写检测脚本
请参照下面的例子来编写检测脚本,在 GreatTurbo Cluster Server 10 安装光
盘的 doc/examples 目录下也有检测脚本的例子,名字为 usrchk.sh
在编写检测脚本时,需要注意以下的问题:
1) 请在脚本中加入 log 信息,以便发生故障时准确定位故障原因。为减小 log 文件的大小,检查成功时请不要打印 log 信息。
2) 脚本执行成功时返回0,失败时返回非 0 值。当有多步检查时,请将每步检 查失败时的返回值设置为不同的值。
3) 服务检测脚本的名称不要和待检测服务应用程序进程的名字相同。
27
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
4) 检测脚本要有可执行权限。
(2) 测试检测脚本
检测脚本写好后,请务必测试检测脚本是否正确。 例如,检测脚本的名字为 usrchk.sh。
1) 应用程序正常运行时 执行检测脚本 usrchk.sh。 然后 echo $? ,判断脚本的返回值是否为 0。
如果脚本的返回值为 0,表示检测脚本是正确的。
2) 应用程序运行不正常时 执行检测脚本 usrchk.sh。 然后 echo $? ,判断脚本的返回值是否为非 0 值。
如果脚本的返回值为非 0 值,表示检测脚本是正确的。
(3) 检测脚本的例子
#!/bin/sh
# checkscript sample
LOG_EMERG=0 # system is unusable LOG_ALERT=1 # action must be taken immediately LOG_CRIT=2 # critical conditions LOG_ERR=3 # error conditions LOG_WARNING=4 # warning conditions LOG_NOTICE=5 # normal but significant condition LOG_INFO=6 # informational LOG_DEBUG=7 # debug-level messages
script_name=`basename $0`
clulog() { log_level=$1 log_info=$2 /opt/cluster/bin/clulog -p $$ -n $script_name -s $log_level "$log_info" }
28
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
# check applications'process parts, you can add or delete part to check your actual processes
/opt/cluster/usercheck/oracleCheck 172.16.74.127 1521 if [ $? -ne 0 ] then # please add log information here clulog $LOG_ERR "oracleCheck failed, ret=$?." exit 1 fi
ps -ef | grep ora_pmon_ora10g | grep -v $0 | grep -v grep > /dev/null if [ $? -ne 0 ] then # please add log information here clulog $LOG_ERR "check oracle instance proc ess failed." exit 2 fi
ps -ef | grep tnslsnr | grep -v $0 | grep -v grep > /dev/null if [ $? -ne 0 ] then # please add log information here clulog $LOG_ERR " check oracle listener process failed." exit 3 fi
# if all checks aren't wrong, then ret urn 0 exit 0
脚本编写完成并检查无误后, 就可以配置HA 服务了。依照每个应用类型的不
同,可以分别按照第五章、第六章、第七/八章的内容进行配置。 1)第一类 HA 应用的用户(需要使用共享磁盘阵列的应用)直接按照第五章进
行配置。
2)第二类 HA 应用的用户(不需要使用共享磁盘阵列并且也不需要存取共享数 据的应用)直接按照第六章进行配置。
3)第三类 HA 应用的用户(需要使用共享磁盘阵列但是不具备磁盘阵列硬件条 件的应用)直接按照第七/八章进行配置。
29
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
5
配置 HA 服务--使用共享磁盘
GreatTurbo Cluster Server 10 在两个节点均正常启动后,就可以开始将用户 的应用配置成高可用的服务了。本章说明如何在 GreatTurbo Cluster Server 10 里面配置使用共享磁盘阵列的服务,对服务进行配置的过程如下:
1) 配置服务的名字、优先节点
2) 配置服务的用户脚本
3) 配置服务的检测脚本
4) 配置服务的浮动 IP
5) 配置共享磁盘设备的信息
6) 设置是否 disable 服务
1.配置工具
GreatTurbo Cluster Server 10 有两个配置工具:文本界面的 cluadmin 工具 和图形界面的 guiadmin 工具。
这里主要介绍 cluadmin 的使用方法,guiadmin 的使用方法请参照第十三章。
/opt/cluster/bin/cluadmin 是文本界面的管理工具,使用它可以很方便地配
置服务。cluadmin 类似 bash,可以使用 TAB 键进行命令补全。
注意:如果您使用的是 Turbolinux 中文版, 则在运行cluadmin 之前,请先在
bash 下执行“unset LC_CTYPE”。
2.配置条件
请在 GreatTurbo Cluster Server 10 运行时执行 cluadmin 配置服务。
注意:GreatTurbo Cluster Server 10 采用时间戳来判断两个节点的配置是
否同步,所以不要轻易修改系统时间。如果确实需要修改系统时间,请先停止
GreatTurbo Cluster Server 10,修改完系统时间后,再重新启动 GreatTurbo Cluster Server 10
3.配置命令
运行/opt/cluster/bin/cluadmin,然后在 cluadmin 中按下两次 TAB 键,会显
示如下所示的所有命令。([Tab] [Tab]表示连续按两下 Tab 键)
30
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
cluadmin>[Tab] [Tab] apropos clear exit help cluster status cluster monitor cluster loglevel cluster loglevel syncd cluster loglevel svcmgr cluster loglevel svccheck cluster loglevel powerd cluster loglevel heartbeat cluster loglevel clumon cluster heartbeat cluster mail from cluster mail to cluster mail smtpserver cluster mail level cluster reload cluster name cluster edit cluster backup cluster restore cluster saveas cluster restorefrom service add service show state service show config service show services service modify service disable service enable service relocate service delete nbd add nbd delete nbd show help apropos help clear help exit help help help cluster status help cluster monitor
31
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
help cluster loglevel help cluster reload help cluster name help cluster edit help cluster backup help cluster restore help cluster saveas help cluster restorefrom help service add help service show state help service show config help service show services help service modify help service disable help service enable help service relocate help service delete help nbd add help nbd delete help nbd show
4.配置服务
利用 cluadmin service add 命令添加服务。
(1) 执行 cluadmin
[root@test1 root]# cluadmin Sat Apr 9 17:48:57 CST 2005
(2) 执行 service add(GreatTurbo Cluster Server 10 最多只支持 16 个 HA
服务)
cluadmin> service add Currently defined services:
(3) 输入服务的名字(如果有多个服务,服务的名字不能重复)
Service name: svc01
32
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
(4) 输入服务的类别(只能选择 ha)
Service type (ha/lb): ha
(5) 配置服务的优先节点
如果一个服务有优先节点,当优先节点启动 GreatTurbo Cluster
Server 10 时或者优先节点的网卡故障恢复时,这个服务将会自动迁移到优
先节点上运行。
优先节点缺省值为 None。直接回车表示选择 None,即不选择优先节点。
否则输入优先节点的 hostname 名称。
Preferred member [None]: test1
(6) 配置服务的用户脚本
服务的用户脚本是启动和停止应用程序的脚本。一个服务最多只能配
置一个用户脚本。配置服务的用户脚本时,请输入全路径名。
User script (e.g., /usr/foo/script or None) [None]: /etc/init.d/ httpd
(7) 配置服务检测脚本
Check script”输入的脚本有两种选择方式,请根据应用选择其中
的一种。
第一种方式是使用 GreatTurbo Cluster Server 10 自带的 agent 脚本, 该脚本位于/opt/cluster/usercheck 目录下,使用 agent 脚本时,必须按 规定格式输入,例如:/opt/cluster/usercheck/httpCheck 172.16.70.100 80
第二种方式使用自己编写脚本。
配置服务的检测脚本时,必须输入全路径名。
配置服务检测脚本时还需要指定如下的参数:
¾Check interval”是检测服务的时间间隔,建议根据用户应用 要求的切换时间设定合适的值,一般输入 5 秒,表示每隔 5 秒时间执 行一次检测脚本。
¾Check timeout”是检测脚本执行的超时时间,执行用户检测脚 本的超时时间,建议输入 30 秒。
¾Max error count”是允许服务连续错误的次数,一般输入 3 次, 表示出错 3 次后,服务进行切换。
Do you want to add a check script to the service (yes/no/?) [no]:
33
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
yes Check Script Information Check script (e.g., "/opt/cluster/usercheck/httpCheck
172.16.69.200 80" or None) [None]: /opt/cluster/usercheck/httpCheck 172.16.70.100 80 Check interval (in seconds) [None]: 5 Check timeout (in seconds) [None]: 30 Max error count [None]: 3
(8) 配置服务的浮动 IP
服务可以绑定浮动 IP,浮动 IP 随着服务而浮动,也就是说这个 IP
在的节点也就是服务所在的节点。一个服务最多可以配置 16 个浮动 IP
注意:配置浮动 IP 时必须正确输入如下参数,注意随着 IP 地址的不
同,相应的子网掩码以及广播地址的值需与之对应。
¾ “Net interface”是浮动IP 绑定的网卡。 ¾ “Netmask”是浮动IP 的子网掩码。 ¾ “Broadcast”是浮动IP 的广播地址。
Do you want to add floating IP address to the service (yes/no/?) [no]: yes
IP Address Information
IP address: 172.16.70.100 Net interface [None]: eth0 Netmask (e.g. 255.255.255.0 or None) [None]: 255.255.255.0 Broadcast (e.g. X.Y.Z.255 or None) [None]: 172.16.71.255 Do you want to (a)dd, (m)odify, (d)elete or (s)how an IP address, or are you (f)inished adding IP addresses: f
(9) 配置共享磁盘设备的信息
因为我们在这里使用共享磁盘阵列,所以这里选择 yes GreatTurbo Cluster Server 10 最多可以支持 16 个磁盘设备。
我们支持两种类型的磁盘设备:一种是需要用户手动 mount 的磁盘设
备;另外一种是不需要 mount 的裸设备。
对于第一种磁盘设备,我们必须按照下述要求输入相应参数。(以下
例子假设用户需要 mount 的磁盘阵列的共享分区为/dev/sdb0
必须指定的参数如下:
34
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
¾ Device special file”是磁盘分区的设备名。 ¾ Check service device”指定是否检查磁盘设备,默认为yes ¾ Device is SCSI”指定磁盘设备是否是SCSI 设备,默认为 yes
请确认一下您的共享磁盘设备的类型, 如果不是 SCSI 设备请选择 no
¾Device check timeout”是磁盘检测的超时时间,默认为 120
秒。一般情况下选默认值就可以,如果磁盘负载比较大,请适当 调大超时时间。
¾ Filesystem type”是文件系统的类型。 ¾ Mount point”是mount 的位置。 ¾ Mount options”是mount 时的选项,一般用 rw, sync ¾ Forced unmount support”是指定umount 时是否杀死该分区上
运行的进程。
¾ “Device owner”是mount 时的用户名,一般为 root。 ¾ “Device group”是mount 时的用户组名,一般为 root。 ¾ “Device mode”是mount 时的访问权限,一般为 755。
Do you want to add a disk device to the service (yes/no/?) [no]: yes
Disk Device Information
Device special file (e.g., /dev/sda1): /dev/sdb0 Check service device (yes/no/?) [yes]: Device is SCSI (yes/no/?) [yes]: Device check timeout (in seconds) [120]: Filesystem type (e.g., ext2, reiserfs, ext3 or None): ext3 Mount point (e.g., /usr/mnt/service1) [None]: /mnt/userData Mount options (e.g., rw,nosuid): rw Forced unmount support (yes/no/?) [no]: yes Device owner (e.g., root): root Device group (e.g., root): root Device mode (e.g., 755): 755 Do you want to (a)dd, (m)odify, (d)elete or (s)how devices, or are you (f)inished adding devices: f
一次只能输入一个分区设备的信息,如果有多个分区设备,可以在结
束提示时,不选择 f,而选择 a 继续增加分区设备。
对于第二种磁盘设备即裸设备,只需输入磁盘分区的设备名称,及指 定磁盘检测的相关信息,其他信息必须全部按回车键略过;(以下例子假 设裸设备对应的文件名是/dev/sdc
35
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Do you want to add a disk device to the service (yes/no/?) [no]: yes
Disk Device Information
Device special file (e.g., /dev/sda1): /dev/sdc Check service device (yes/no/?) [yes]: Device is SCSI (yes/no/?) [yes]: Device check timeout (in seconds) [120]: Filesystem type (e.g., ext2, reiserfs, ext3 or None): Mount point (e.g., /usr/mnt/service1) [None]: Mount options (e.g., rw,nosuid): Forced unmount support (yes/no/?) [no]: Device owner (e.g., root): Device group (e.g., root): Device mode (e.g., 755): Do you want to (a)dd, (m)odify, (d)elete or (s)how devices, or are you (f)inished adding devices: f
同样一次只能输入一个裸设备的名字,如果有多个裸设备,可以在结 束提示时,不选择 f,而选择 a 继续增加分区设备。
(10) 设置启动服务的超时时间
建议此处直接回车,以选择服务默认启动超时时间 3600 秒。
Service start timeout (in seconds) [None]:
(11) 设置停止服务的超时时间
建议此处直接回车,以选择服务默认停止超时时间 3600 秒。
Service stop timeout (in seconds) [None]:
(12) 设置停止服务失败时是否 reboot 机器
如果设为“yes”,当服务停止失败时,为了释放服务的资源,将自动 reboot 机器。
如果设为“no” ,当服务停止失败时, 不会自动 reboot 机器,需要用户手 动干预。
Reboot system if stop the service failed (yes/no/?) [yes]: yes
36
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
(13) 设置是否 disable 服务
如果设为“yes”,服务将不会立即被启动,只能以后由用户手动启动。 如果设为“no”,服务将立即被启动。一般选择 no,表示立即启动服务。
Disable service (yes/no/?) [no]: no
(14) 确认添加该服务
如果确认配置正确,请选择 yes 添加以上配置的服务。
Add svc01 service as shown? (yes/no/?) yes Added svc01.
到这里,我们成功的添加了一个使用共享磁盘阵列的服务。 如果用户还需要添 加服务,那么仍然需要按照第四章末尾所述的内容来进行: 选择第五、六、七、八 章的其中一章来进行配置。
5. 修改服务
如果需要修改服务的配置,请执行 cluadmin service modify 命令。 首先要求选择需要修改的服务,请输入列表中的服务的编号。 如果服务正在运行,将要求先停止服务,请输入 yes 然后所有的操作都和添加服务相同。
cluadmin> service modify
You will be prompted for information about the service.
Enter a question mark (?) at a prompt to obtain help.
Enter a colon (:) and a single-character command at a prompt to
do
one of the following:
c - Cancel and return to the top-level cluadmin command
r - Restart to the initial prompt while keeping previous responses
p - Proceed with the next prompt
37
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
0) svc01
c) cancel
Choose service to modify: 0
Modifying: svc01
Service is not disabled. Disable it? (yes/no/?) yes
6. 删除服务
如果要删除服务,请执行 cluadmin 的 service delete 命令。 然后输入列表中的服务的编号即可。
cluadmin> service delete
0) svc01
c) cancel
Choose service to delete: 0
Deleting svc01, are you sure? (yes/no/?): yes
Service svc01 disabled
Svc01 deleted.
7. 启动服务
如果在添加服务时没有启动服务,需要手动启动服务,请执行 cluadmin
service enable 命令。
首先要求选择需要启动的服务,请输入列表中的服务的编号。 然后要求选择在哪个节点上启动服务,请输入节点的编号。
cluadmin> service enable
0) svc01
c) cancel
Choose service to enable: 0
Are you sure? (yes/no/?) yes
0) test1
1) test2
c) cancel
Choose member: 0
38
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Enabling svc01 on member test1. Service enabled.
8. 停止服务
如果需要停止服务,请执行 cluadmin 的 service disable 命令。 首先选择要停止的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。
cluadmin> service disable
0) svc01
c) cancel
Choose service to disable: 0
Are you sure? (yes/no/?) yes
Disabling svc01. Service disabled.
9. 切换服务
如果需要把在一个节点上运行的服务切换到另一个节点上,请执行 cluadmin
service relocate 命令。
首先选择要切换的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。
cluadmin> service relocate
0) svc01
c) cancel
Choose service to relocate: 0
Are you sure? (yes/no/?) yes
Relocating svc01. Service relocated.
如果所有的服务添加完成,请直接到第十三章继续阅读随后内容。
39
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
6
配置 HA 服务--不使用共享磁盘
本章说明如何在 GreatTurbo Cluster Server 10 中配置不具有共享磁盘阵列的 服务,配置服务的过程如下:
1) 配置服务的名字、优先节点
2) 配置服务的用户脚本
3) 配置服务的检测脚本
4) 配置服务的浮动 IP
5) 设置是否 disable 服务
1.配置工具
GreatTurbo Cluster Server 10 有两个配置工具:文本界面的 cluadmin 工具 和图形界面的 guiadmin 工具。
这里主要介绍 cluadmin 的使用方法,guiadmin 的使用方法请参照第十三章。
/opt/cluster/bin/cluadmin 是个文本界面的管理工具,使用它可以很方便的
配置服务。cluadmin 类似 bash,可以使用 TAB 键进行命令补全。
注意:如果你使用的是 Turbolinux 中文版,则在运行 cluadmin 前,请先在
bash 下执行“unset LC_CTYPE”。
2.配置条件
请在 GreatTurbo Cluster Server 10 运行时执行 cluadmin 配置服务。
注意:GreatTurbo Cluster Server 10 采用时间戳来判断两个节点的配置是
否同步,所以不要轻易修改系统时间。如果确实需要修改系统时间,请先停止
GreatTurbo Cluster Server 10,修改完系统时间后,再重新启动 GreatTurbo Cluster Server 10
3.配置命令
运行/opt/cluster/bin/cluadmin,然后在 cluadmin 中按下两次 TAB 键,会显 示如下所示的所有命令:
cluadmin>[Tab] [Tab]
40
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
apropos clear exit help cluster status cluster monitor cluster loglevel cluster loglevel syncd cluster loglevel svcmgr cluster loglevel svccheck cluster loglevel powerd cluster loglevel heartbeat cluster loglevel clumon cluster heartbeat cluster mail from cluster mail to cluster mail smtpserver cluster mail level cluster reload cluster name cluster edit cluster backup cluster restore cluster saveas cluster restorefrom service add service show state service show config service show services service modify service disable service enable service relocate service delete nbd add nbd delete nbd show help apropos help clear help exit help help help cluster status help cluster monitor help cluster loglevel
41
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
help cluster reload help cluster name help cluster edit help cluster backup help cluster restore help cluster saveas help cluster restorefrom help service add help service show state help service show config help service show services help service modify help service disable help service enable help service relocate help service delete help nbd add help nbd delete help nbd show
4.配置服务
利用 cluadmin service add 命令添加服务。
(1) 执行cluadmin
[root@test1 root]# cluadmin Sat Apr 9 17:48:57 CST 2005
(2) 执行service addGreatTurbo Cluster Server 10 最多只支持 16
HA 服务)
cluadmin> service add Currently defined services:
(3) 输入服务的名字(如果有多个服务,服务的名字不能重复)
Service name: svc01
42
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
(4) 输入服务的类别(只能选择ha
Service type (ha/lb): ha
(5) 配置服务的优先节点
如果一个服务有优先节点,当优先节点启动时,这个服务将会首先选
择在优先节点上运行。
优先节点缺省值为 None。直接回车表示选择 None,即不选择优先节点。
Preferred member [None]: test1
(6) 配置服务的用户脚本
服务的用户脚本是启动和停止应用程序的脚本。一个服务最多只能配
置一个用户脚本。配置服务的用户脚本时,必须输入全路径名。
User script (e.g., /usr/foo/script or None) [None]: /etc/init.d/ httpd
(7) 配置服务的检测脚本
Check script”输入的脚本有两种选择方式,请根据应用选择其中
的一种。
第一种方式是使用 GreatTurbo Cluster Server 10 自带的 agent 脚本, 该脚本位于/opt/cluster/usercheck 目录下,使用 agent 脚本时,必须按 规定格式输入,例如:/opt/cluster/usercheck/httpCheck 172.16.70.100 80
第二种方式使用自己编写脚本。
配置服务的检测脚本时,必须输入全路径名。
配置服务检测脚本时还需要指定如下的参数:
¾Check interval” 是检测服务的时间间隔,建议根据用户的应用
要求的切换时间设定合适的值,一般输入 5 秒,表示每隔 5 秒时间 执行一次检测脚本。
¾Check timeout”是检测脚本返回的超时时间,执行用户检测脚
本的超时时间,建议输入 30 秒。
¾Max error count”是允许服务连续错误的次数,一般输入3 次,
表示出错 3 次后,服务进行切换。
Do you want to add a check script to the service (yes/no/?) [no]: yes Check Script Information
43
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Check script (e.g., "/opt/cluster/usercheck/httpCheck
172.16.69.200 80" or None) [None]: /opt/cluster/usercheck/httpCheck 172.16.70.100 80 Check interval (in seconds) [None]: 5 Check timeout (in seconds) [None]: 30 Max error count [None]: 3
(8) 配置服务的浮动IP
服务可以绑定浮动 IP,浮动 IP 随着服务而浮动,也就是说这个 IP 所 在的节点也就是服务所在的节点。一个服务最多可以配置 16 个浮动 IP
注意:配置浮动 IP 时必须正确输入如下参数,注意随着 IP 地址的不 同,相应的子网掩码以及广播地址的值需与之对应。
¾ “Net interface”是浮动IP 绑定的网卡。
¾ “Netmask”是浮动IP 的子网掩码。
¾ “Broadcast”是浮动IP 的广播地址。
Do you want to add floating IP address to the service (yes/no/?) [no]: yes
IP Address Information
IP address: 172.16.70.100 Net interface [None]: eth0 Netmask (e.g. 255.255.255.0 or None) [None]: 255.255.255.0 Broadcast (e.g. X.Y.Z.255 or None) [None]: 172.16.71.255 Do you want to (a)dd, (m)odify, (d)elete or (s)how an IP address, or are you (f)inished adding IP addresses: f
(9) 配置共享磁盘设备的信息
由于服务不使用共享磁盘设备,所有在此必须选择 no,直接回车。
Do you want to add a disk device to the service (yes/no/?) [no]:
(10) 设置启动服务的超时时间
建议此处直接回车,以选择服务默认启动超时时间 3600 秒。
Service start timeout (in seconds) [None]:
44
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
(11) 设置停止服务的超时时间
建议此处直接回车,以选择服务默认停止超时时间 3600 秒。
Service stop timeout (in seconds) [None]:
(12) 设置停止服务失败时是否 reboot 机器
如果设为“yes”,当服务停止失败时,为了释放服务的资源,将自动 reboot 机器。
如果设为“no” ,当服务停止失败时, 不会自动 reboot 机器,需要用户手 动干预。
Reboot system if stop the service failed (yes/no/?) [yes]: yes
(13) 设置是否 disable 服务
如果设为“yes”,服务将不会立即被启动,只能以后由用户手动启动。 如果设为“no”,服务将立即被启动。一般选择 no,表示立即启动服务。
Disable service (yes/no/?) [no]: no
(14) 确认添加该服务
如果确认配置正确,请选择 yes 添加以上配置的服务。
Add svc01 service as shown? (yes/no/?) yes Added svc01.
到这里,我们成功的添加了一个不使用共享磁盘阵列的服务。如果用户 还需要添加服务,那么仍然需要按照第四章末尾所述的内容来进行:选择第 五、六、七、八章的其中一章来进行配置。
5. 修改服务
如果需要修改服务的配置,请执行 cluadmin service modify 命令。 首先要求选择需要修改的服务,请输入列表中的服务的编号。 如果服务正在运行,将要求先停止服务,请输入 yes 然后所有的操作都和添加服务相同。
45
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
cluadmin> service modify
You will be prompted for information about the service.
Enter a question mark (?) at a prompt to obtain help.
Enter a colon (:) and a single-character command at a prompt to do one of the following:
c - Cancel and return to the top-level cluadmin command r - Restart to the initial prompt while keeping previous responses p - Proceed with the next prompt
0) svc01 c) cancel
Choose service to modify: 0 Modifying: svc01 Service is not disabled. Disable it? (yes/no/?) yes
6. 删除服务
如果要删除服务,请执行 cluadmin 的 service delete 命令。 然后输入列表中的服务的编号即可。
cluadmin> service delete
0) svc01 c) cancel
Choose service to delete: 0 Deleting svc01, are you sure? (yes/no/?): yes Service svc01 disabled Svc01 deleted.
7. 启动服务
如果在添加服务时没有启动服务,需要手动启动服务,请执行 cluadmin
service enable 命令。
首先要求选择需要启动的服务,请输入列表中的服务的编号。
46
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
然后要求选择在哪个节点上启动服务,请输入节点的编号。
cluadmin> service enable
0) svc01 c) cancel
Choose service to enable: 0 Are you sure? (yes/no/?) yes
0) test1
1) test2 c) cancel
Choose member: 0 Enabling svc01 on member test1. Service enabled.
8. 停止服务
如果需要停止服务,请执行 cluadmin 的 service disable 命令。 首先选择要停止的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。
cluadmin> service disable
0) svc01 c) cancel
Choose service to disable: 0 Are you sure? (yes/no/?) yes Disabling svc01. Service disabled.
9. 切换服务
如果需要把在一个节点上运行的服务切换到另一个节点上,请执行 cluadmin
service relocate 命令。
首先选择要切换的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。
cluadmin> service relocate
0) svc01 c) cancel
47
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Choose service to relocate: 0 Are you sure? (yes/no/?) yes Relocating svc01. Service relocated.
如果所有的服务添加完成,请直接到第十三章继续阅读随后内容。
48
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
7
配置HA 服务--使用磁盘镜像设备kernel2.4
GreatTurbo Cluster Server 10 提供了虚拟的共享磁盘阵列的功能,使用磁盘 镜像设备来保证应用数据的一致性。您可以使用节点本地普通的 IDE SCSI 硬 盘来构建磁盘镜像。
本章说明在 Linux kernel2.4 的环境下,如何在 GreatTurbo Cluster Server 10 中配置具有磁盘镜像设备的服务。
配置具有磁盘镜像设备的服务过程如下:
1) 安装磁盘镜像软件(drbd)
2) 注册具有磁盘镜像功能的 license
3) 配置磁盘镜像设备。
4) 添加使用磁盘镜像设备的服务。
1.安装磁盘镜像软件(drbd)
GreatTurbo Cluster Server 10 安装时,会提示是否安装磁盘镜像软件,
如果需要使用磁盘镜像软件,这时应当选择安装。
Test1:/mnt/cdrom # ./install_cluster Do you want to use drbd? (y/n) [y]: y
选择了 y 后,安装程序会自动安装与当前系统相匹配的磁盘镜像软件(drbd)
注意:
1) 磁盘镜像软件需要在两个节点上都要安装。
2) 请用安装程序自动安装磁盘镜像软件,不要手动安装磁盘镜像软件的 RPM 包。
3) 磁盘镜像软件中包含了 kernel 的模块,要求和 kernel 的版本相匹配,
如果安装的过程中提示 drbd kernel 模块和您当前系统的 kernel 版 本不匹配,请更换成匹配的 kernel 或者获取更新的 drbd 安装包。
49
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
2.注册具有磁盘镜像功能的license
使用 GreatTurbo Cluster Server 10 的磁盘镜像功能,需要注册 GreatTurbo
Cluster Server 10 的带有磁盘镜像功能的 license。
License 的注册方法请参照【第 2 安装GreatTurbo Cluster Server 10】。 在申请 GreatTurbo Cluster Server 10 license 时,请注意选择带 drbd
license
3.配置磁盘镜像设备
(1) 在两个节点上分别为磁盘镜像设备准备大小相同的磁盘分区。 (2) 利用 cluadmin 工具配置磁盘镜像设备。
cluadmin 工具的详细使用方法请参照 GreatTurbo Cluster Server 10
用户手册。
两个节点的 GreatTurbo Cluster Server 10 正常启动后,可以利用 cluadmin nbd add 命令配置磁盘镜像设备。配置磁盘镜像设备的过程如下:
1) 执行 nbd add,输入 nbd IDnbd ID 是镜像设备的编号,必须是 0-15 之间的整数。
Cluadmin> nbd add Currently defined nbds: Nbd ID(nbd identifier. e.g. 0): 0
2) 配置节点 A nbd 信息。
Nbd configuration on member0: name(nbd member ip address. e.g. 192.168.0.1): 192.168.1.11 device(block device used by nbd. e.g. /dev/hda14): /dev/hda7 port(port number used by nbd service. e.g. 8787): 8787 deviceNode(nbd block device. e.g. /dev/nb0): /dev/nb0
注意:
节点 A(member0)必须是执行 member_config 配置 GreatTurbo
Cluster Server 10 时配置的第 1 个节点。
3) 配置节点 B nbd 信息。
Nbd configuration on member1: name(nbd member ip address. e.g. 192.168.0.1): 192.168.1.21 device(block device used by nbd. e.g. /dev/hda14): /dev/hda7 port(port number used by nbd service. e.g. 8787): 8787
50
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
deviceNode( +nbd block device. e.g. /dev/nb0): /dev/nb0
注意:
节点 B(member1)必须是执行 member_config 配置 GreatTurbo
Cluster Server 10 时配置的第 2 个节点。
4) 确认添加 nbd 设备。
Are you sure? (yes/no/?) y Add nbd device 0
注意:
1) nbd 节点的 IP 必须采用双机直连的 IP
2) 同一个 nbd 设备在两节点上的端口号要相同。
3) 磁盘镜像的设备名必须是/dev/nb#,并且同一个 nbd 设备在两节点 上的设备名要相同。
4) 可以使用 nbd show 显示已添加的 nbd 设备;nbd delete 删除 nbd 设备。
5) 磁盘镜像设备配置完成后,将生成配置文件/etc/drbd.conf,请 不 要手动修改这个文件。
(3) 启动磁盘镜像设备。
在两节点上分别执行命令 /etc/init.d/drbd start
(4) 初始化磁盘镜像设备。
1) 在节点 A 执行 control 0,使节点 A 成为第 0 号磁盘镜像设备的 Primary 节点。
[root@test1 root]# control 0 Setting 'drbd0' to Primary .. OK datadisk: 'drbd0' activated
2) 查看磁盘镜像设备的状态。
[root@test1 root]# cat /proc/drbd version: 0.6.8 (api:63/proto:62)
0: cs:Connected st:Primary/Secondary ns:0 nr:0 dw:0 dr:0
51
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
pe:0 ua:0 NEEDS_SYNC
3) 如果磁盘镜像设备的状态显示为“NEEDS_SYNC”,需要同步两节点的 磁盘镜像设备。
[root@test1 root]# datasync -l 0 Option l '0' datadisk: 'drbd0' full synced!
4) 同步的过程中,可以查看进度。
[root@test1 root]# cat /proc/drbd version: 0.6.8 (api:63/proto:62)
0: cs:SyncingAll st:Primary/Secondary ns:119100 nr:0 dw:0 dr:119108 pe:253 ua:0
[==>.................] sync'ed: 14.8%
(89611/104391)K finish: 0:06min speed: 14,780 (14,780) K/sec
5) 同步完成后,在 Primary 的节点上创建文件系统。例如,
[root@test1 root]# mkfs.ext3 /dev/nb0
(5) 如果需要在磁盘镜像设备上安装应用程序的共享数据,需要执行本步;否
则,跳过本步。
mount Primary 节点的磁盘镜像设备,安装应用程序的共享数据到磁盘镜 像设备。例如,
[root@test1 root]# mount /dev/nb0 /mnt/hda7
4.添加使用磁盘镜像设备的服务
利用 cluadmin service add 命令添加服务。
(1) 执行 cluadmin
52
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
[root@test1 root]# cluadmin Sat Apr 9 17:48:57 CST 2005
(2) 执行 service add
cluadmin> service add Currently defined services:
(3) 输入服务的名字
Service name: svc01
(4) 输入服务的类别(只能选择 ha)
Service type (ha/lb): ha
(5) 配置服务的优先节点
如果一个服务有优先节点,当优先节点启动时,这个服务将会首先选择在 优先节点上运行。
优先节点缺省值为 None。直接回车表示选择 None,即不选择优先节点。
Preferred member [None]: test1
(6) 配置服务的用户脚本
服务的用户脚本是启动和停止应用程序的脚本。一个服务最多只能配置一 个用户脚本。配置服务的用户脚本时,请输入全路径名。
User script (e.g., /usr/foo/script or None) [None]: /etc/init.d/httpd
(7) 配置服务检测脚本
“Check script”输入的脚本有两种选择方式,请根据应用选择其中的一 种。
53
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
第一种方式是使用 GreatTurbo Cluster Server 10 自带的 agent 脚本,该 脚本位于/opt/cluster/usercheck 目录下,使用 agent 脚本时,必须按规 定格式输入,例如:/opt/cluster/usercheck/httpCheck 172.16.70.100 80
第二种方式使用自己编写脚本。 配置服务的检测脚本时,必须输入全路径名。
配置服务检测脚本时需要指定如下的参数:
¾ “Check interval”是检测服务的时间间隔,缺省值是 3 秒。 ¾ “Check timeout”是检测脚本返回的超时时间,缺省值是 30 秒。 ¾ “Max error count”是允许服务连续错误的次数,缺省是 5 次。
Do you want to add a check script to the service (yes/no/?) [no]: yes
Check Script Information
Check script (e.g., "/opt/cluster/usercheck/httpCheck
172.16.69.200 80" or None) [None]: /opt/cluster/usercheck/httpCheck 172.16.70.100 80 Check interval (in seconds) [None]: 5 Check timeout (in seconds) [None]: 10 Max error count [None]: 8
(8) 配置服务的浮动 IP
服务可以绑定浮动 IP,浮动 IP 随着服务而浮动,也就是说这个 IP
在的节点也就是服务所在的节点。一个服务最多可以配置 16 个浮动 IP
配置浮动 IP 时必须正确输入如下参数:
¾ “Net interface”是浮动IP 绑定的网卡。 ¾ “Netmask”是浮动IP 的子网掩码。 ¾ “Broadcast”是浮动IP 的广播地址。
Do you want to add floating IP address to the service (yes/no/?) [no]: yes
IP Address Information
IP address: 172.16.70.100 Net interface [None]: eth0 Netmask (e.g. 255.255.255.0 or None) [None]: 255.255.255.0 Broadcast (e.g. X.Y.Z.255 or None) [None]: 172.16.70.255 Do you want to (a)dd, (m)odify, (d)elete or (s)how an IP address,
54
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
or are you (f)inished adding IP addresses: f
(9) 配置磁盘镜像设备
给服务配置磁盘镜像设备,一个服务最多可以配置 16 个磁盘镜像设备。 需要指定的参数如下: ¾ “Nbd device ID”指定磁盘镜像设备的ID,所指定的磁盘镜像设备必
须是前面配置过的。
¾Device special file”是磁盘分区的设备名,指定为磁盘镜像设备
名。 ¾ “Check service device”指定是否检测磁盘设备,这里请选择no 注意: 由于磁盘镜像设备自身有检测磁盘设备的功能,因此在配置磁盘镜
像设备时请不要设置为检测磁盘设备。
Do you want to add a nbd mirror disk device to the service (yes/no/?) [no]: yes
Nbd Information
Nbd device ID: 0 Do you want to (a)dd, (m)odify, (d)elete or (s)how nbds, or are you (f)inished add nbds: f Do you want to add a disk device to the service (yes/no/?) [no]: yes
Disk Device Information
Device special file (e.g., /dev/sda1): /dev/nb0 Check service device (yes/no/?) [yes]: no
(10) 配置磁盘镜像设备的 mount 信息
磁盘镜像设备的 mount 信息在配置服务的磁盘分区时设置,最多可以配置 16 个。
需要指定的参数如下:
¾ “Filesystem type ”是文件系统的类型,请尽量选用日志文件系统。 ¾ “Mount point”是mount 的位置。 ¾ “Mount options”是mount 时的选项,一般用 rw, sync。
55
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
¾Forced unmount support”是指定umount 时是否杀死该分区上运行
的进程。
¾ “Device owner”是mount 时的用户名,一般为 root。 ¾ “Device group”是mount 时的用户组名,一般为 root。 ¾ “Device mode”是mount 时的访问权限,一般为 755。
Filesystem type (e.g., ext2, reiserfs, ext3 or None): ext3 Mount point (e.g., /usr/mnt/service1) [None]: /mnt/hda7 Mount options (e.g., rw,nosuid): rw Forced unmount support (yes/no/?) [no]: yes Device owner (e.g., root): root Device group (e.g., root): root Device mode (e.g., 755): 755 Do you want to (a)dd, (m)odify, (d)elete or (s)how devices, or are you (f)inished adding devices: f
(11) 设置启动服务的超时时间
启动服务的时间 = 启动 nbd 的时间 + mount 设备的时间 + 启动 IP 的时间 + 启动用户脚本的时间
启动服务的超时时间应当大于启动服务的时间,各个阶段的时间可以 估算来设置,如果没有磁盘镜像设备,建议不设置启动服务的超时时间, 采用缺省值。缺省值是 3600 秒(1 小时)。
由于启动 nbd 时,可能会进行两节点间数据的同步,因此比较花费时 间。启动 nbd 的时间可以按如下的方法进行估算:
启动 nbd 的时间 = 磁盘分区大小/nbd 网络带宽 + 余量
当配置有多个 nbd 设备时,要分别计算。
例如:系统配置了 2 个 nbd 设备,分区大小分别为 100MB500MB,使 用同一个网络接口,网络带宽为 100Mbps
启动 nbd 的时间 = (100*8/100 + 500*8/100)*2 + 100
= 196
考虑到 mount 设备的时间、启动 IP 的时间、启动用户脚本的时间, 启动服 务的超时时间可以设置为 300 秒。
Service start timeout (in seconds) [None]: 300
(12) 设置停止服务的超时时间
56
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
停止服务的时间 = 停止用户脚本的时间 + 停止 IP 的时间 + umount
设备的时间 + 停止 nbd 的时间
停止服务的超时时间应当大于停止服务的时间,各个阶段的时间可以 估算来设置,如果没有磁盘镜像设备,建议不设置停止服务的超时时间, 采用缺省值。缺省值是 3600 秒(1 小时)。
由于停止 nbd 时,可能会等待两节点间数据的同步,因此比较花费时 间。
停止服务的超时时间的估算方法可以参考启动服务的超时时间的估算 方法。
Service stop timeout (in seconds) [None]: 300
(13) 设置停止服务失败时是否 reboot 机器
如果设为“yes”,当服务停止失败时,为了释放服务的资源,将自动 reboot 机器。
如果设为“no” ,当服务停止失败时, 不会自动 reboot 机器,需要用户手 动干预。
Reboot system if stop the service failed (yes/no/?) [yes]: yes
(14) 设置是否 disable 服务
如果设为“yes”,服务将不会立即被启动,只能由用户手动启动。 如果设为“no”,服务将立即被启动。
Disable service (yes/no/?) [no]: no
(15) 确认添加该服务
如果确认配置正确,请选择 yes 添加以上配置的服务。
Add svc01 service as shown? (yes/no/?) yes Added svc01.
到这里,我们成功的添加了一个使用磁盘镜像设备的服务。如果用户还 需要添加服务,那么仍然需要按照第四章末尾所述的内容来进行:选择第五、 六、七、八章的其中一章来进行配置。
5. 修改服务
如果需要修改服务的配置,请执行 cluadmin service modify 命令。
57
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
首先要求选择需要修改的服务,请输入列表中服务的编号。 如果服务正在运行,将要求先停止服务,请输入 yes 然后所有的操作都和添加服务相同。
Cluadmin> service modify
You will be prompted for information about the service.
Enter a question mark (?) at a prompt to obtain help.
Enter a colon (:) and a single-character command at a prompt to do one of the following:
c - Cancel and return to the top-level cluadmin command r - Restart to the initial prompt while keeping previous responses p - Proceed with the next prompt
0) svc01 c) cancel
Choose service to modify: 0 Modifying: svc01 Service is not disabled. Disable it? (yes/no/?) yes
6. 删除服务
如果要删除服务,请执行 cluadmin 的 service delete 命令。 然后输入列表中的服务的编号即可。
cluadmin> service delete
0) svc01 c) cancel
Choose service to delete: 0 Deleting svc01, are you sure? (yes/no/?): yes Service svc01 disabled Svc01 deleted.
58
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
7. 启动服务
如果在添加服务时没有启动服务,需要手动启动服务,请执行 cluadmin
service enable 命令。
首先要求选择需要启动的服务,请输入列表中的服务的编号。 然后要求选择在哪个节点上启动服务,请输入节点的编号。
cluadmin> service enable
0) svc01 c) cancel
Choose service to enable: 0 Are you sure? (yes/no/?) yes
0) test1
1) test2 c) cancel
Choose member: 0 Enabling svc01 on member test1. Service enabled.
8. 停止服务
如果需要停止服务,请执行 cluadmin 的 service disable 命令。 首先选择要停止的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。
cluadmin> service disable
0) svc01 c) cancel
Choose service to disable: 0 Are you sure? (yes/no/?) yes Disabling svc01. Service disabled.
9. 切换服务
如果需要把在一个节点上运行的服务切换到另一个节点上,请执行 cluadmin
service relocate 命令。
首先选择要切换的服务,请输入列表中的服务的编号。
59
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
然后要求确认,请输入 yes
cluadmin> service relocate
0) svc01 c) cancel
Choose service to relocate: 0 Are you sure? (yes/no/?) yes Relocating svc01. Service relocated.
如果所有的服务添加完成,请到第十三章继续阅读随后内容。
60
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
8
配置HA 服务--使用磁盘镜像设备kernel2.6
GreatTurbo Cluster Server 10 提供了虚拟的共享磁盘阵列的功能,使用磁盘 镜像设备来保证应用数据的一致性。您可以使用节点本地普通的 IDE SCSI 硬 盘来构建磁盘镜像。
本章说明在 Linux kernel2.6 的环境下,如何在 GreatTurbo Cluster Server 10 中配置具有磁盘镜像设备的服务。
配置具有磁盘镜像设备的服务过程如下:
1) 安装磁盘镜像软件(drbd)
2) 注册具有磁盘镜像功能的 license
3) 配置磁盘镜像设备。
4) 添加使用磁盘镜像设备的服务。
1.安装磁盘镜像软件(drbd)
GreatTurbo Cluster Server 10 安装时,会提示是否安装磁盘镜像软件,
如果需要使用磁盘镜像软件,这时应当选择安装。
Test1:/mnt/cdrom # ./install_cluster Do you want to use drbd? (y/n) [y]: y
选择了 y 后,安装程序会自动安装与当前系统相匹配的磁盘镜像软件(drbd)
注意:
1) 磁盘镜像软件需要在两个节点上都安装。
2) 请用安装程序自动安装磁盘镜像软件,不要手动安装磁盘镜像软件的 RPM 包。
3) 磁盘镜像软件中包含了 kernel 的模块,要求和 kernel 的版本相匹配,
如果安装的过程中提示 drbd kernel 模块和您当前系统的 kernel 版 本不匹配,请更换成匹配的 kernel 或者获取更新的 drbd 安装包。
61
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
2.注册具有磁盘镜像功能的license
使用 GreatTurbo Cluster Server 10 的磁盘镜像功能,需要注册 GreatTurbo
Cluster Server 10 的带有磁盘镜像功能的 license。
License 的注册方法请参照【第 2 安装GreatTurbo Cluster Server 10】。 在申请 GreatTurbo Cluster Server 10 license 时,请注意选择带 drbd
license
3.配置磁盘镜像设备
(1) 在两个节点上分别为磁盘镜像设备准备大小相同的磁盘分区。 (2) 编辑磁盘镜像设备的配置文件。
在安装 GreatTurbo Cluster Server 10 时,会安装 drbd 的配置文件:
/etc/drbd.conf,安装后的 drbd 的配置文件的内容如下所示:
# # /etc/drbd.conf #
# this is an example of drbd.conf # please modify the following items according to your real environment. # - hostname # - device # - disk # - address # if no particular reasons, you no need to modify other items.
resource drbd0 { protocol C;
startup { wfc-timeout 30; degr-wfc-timeout 60; }
syncer { rate 600M; group 0; }
on hostname1 { device /dev/drbd0; disk /dev/hda6;
62
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
address 192.168.0.1:7788; meta-disk internal; }
on hostname2 { device /dev/drbd0; disk /dev/hda6; address 192.168.0.2:7788; meta-disk internal; } }
/etc/drbd.conf 需要根据应用的实际环境编辑以下的内容:
¾ hostname, 机器名。为 GreatTurbo Cluster Server 10 节点的机器名。 ¾ device,设备名。为 drbd 设备名, 可以选择/dev/drbd0/dev/drbd1
等,两个节点所对应的 drbd 设备应当一致。
¾ disk,磁盘分区。为 drbd 设备所对应的物理磁盘分区。 ¾ addressIP 地址和端口。为 drbd 设备通讯所用的网络及端口。Drbd
设备所用的网络最好是直连网络,不同的 drbd 设备所用的端口应当不 同。
注意:
1) 关于drbd 配置文件的详细说明请参照 GreatTurbo Cluster Server 10
用户手册。
2) 由于meta-disk 需要占用 128MB 的磁盘空间,所以 drbd 所用的磁盘分 区应当为 128MB 以上。
3) 由于 drbd 采用以太网络进行数据的传输和同步,所以 drbd 通讯所用 的网络应当为直连网络,并且最好采用 bonding。
4) 如果要用多个drbd 设备,请复制整个 resource 部分,并修改resource 的名字,例如 reource1,然后再相应地对 hostname,device,disk 和address 进行修改即可。
(3) 启动磁盘镜像设备。
在两节点上分别执行命令 /etc/init.d/drbd start。 例如:
[root@test1 root]# /etc/init.d/drbd start Starting DRBD resources: [ d0 s0 n0 ].
(4) 查看磁盘镜像设备的状态。
63
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
执行命令 cat /proc/drbd 来查看磁盘镜像设备的状态。 如果磁盘镜像设备的数据已经同步,状态显示如下:
[root@test1 root]# cat /proc/drbd version: 0.7.11 (api:77/proto:74) SVN Revision: 1912M build by root@qa3-127, 2005-08-25 10:20:28 0: cs:Connected st:Secondary/Secondary ld:Consistent ns:0 nr:0 dw:0 dr:0 al:0 bm:92 lo:0 pe:0 ua:0 ap:0
如果磁盘镜像设备的数据没有同步,状态显示如下:
[root@test1 root]# cat /proc/drbd version: 0.7.11 (api:77/proto:74) SVN Revision: 1912M build by root@qa3-127, 2005-08-25 10:20:28 0: cs:Connected st:Secondary/Secondary ld:Inconsistent ns:0 nr:0 dw:0 dr:0 al:0 bm:46 lo:0 pe:0 ua:0 ap:0
(5) 使其中一个节点成为 Primary 节点。
如果状态显示为“ld: Consistent”,请在其中一个节点上执行“drbdsetup /dev/drbd# primary”。例如,
[root@test1 root]# drbdsetup /dev/drbd0 primary [root@test1 root]# cat /proc/drbd version: 0.7.11 (api:77/proto:74) SVN Revision: 1912M build by root@qa3-127, 2005-08-25 10:20:28 0: cs:Connected st:Primary/Secondary ld:Consistent ns:0 nr:366908 dw:366908 dr:0 al:0 bm:92 lo:0 pe:0 ua:0 ap:0
如果状态显示为“ld: Inconsistent ”,请在其中一个节点上执行 “drbdsetup /dev/drbd# primary --do-what-I-say”。这时,drbd 会自 动进行同步。例如,
[root@test1 root]# drbdsetup /dev/drbd0 primary
--do-what-I-say [root@test1 root]# cat /proc/drbd version: 0.7.12 (api:77/proto:74) SVN Revision: 1926M build by root@dev3-76, 2005-09-02 10:11:58 0: cs:SyncSource st:Primary/Secondary ld:Consistent ns:152776 nr:0 dw:0 dr:160832 al:0 bm:1118 lo:756 pe:1418 ua:2014 ap:0
[>...................] sync'ed: 2.5% (5776/5919)M
finish: 0:02:00 speed: 49,036 (49,036) K/sec
(6) 创建文件系统。
如果需要使用文件系统,则需要在 Primary 节点上创建文件系统。
64
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
[root@test1 root]# mkfs.ext3 /dev/drbd0
注意:
文件系统只需要在 Primary 节点上创建,Secondary 节点会自动进行创建。
(7) 如果需要在磁盘镜像设备上安装应用程序的共享数据,需要执行本步操作;
否则,跳过本步。
mount Primary 节点的磁盘镜像设备,安装应用程序的共享数据到磁盘镜 像设备。例如,
[root@test1 root]# mount /dev/drbd0 /opt/oradata
(8) 共享数据安装完成后,需要 umount 磁盘镜像设备。
[root@test1 root]# umount /dev/drbd0
(9) 使 Primary 节点成为 Secondary 节点。
[root@test1 root]# drbdsetup /dev/drbd0 secondary [root@test1 root]# cat /proc/drbd version: 0.7.11 (api:77/proto:74) SVN Revision: 1912M build by root@qa3-127, 2005-08-25 10:20:28 0: cs:Connected st:Secondary/Secondary ld:Consistent ns:20348 nr:366908 dw:387256 dr:14468 al:47 bm:139 lo:0 pe:0 ua:0 ap:0
经过上述的操作以后,drbd 设备就准备好了,可以将 drbd 设备作为普通 的磁盘进行使用,可以配置使用 drbd 设备的服务。
4.添加使用磁盘镜像设备的服务
可以利用 cluadmin 工具或 guiadmin 工具来添加服务,这里主要介绍利用
cluadmin 工具配置的方法,guiadmin 工具的使用方法请参照第 9 章。
cluadmin 工具的详细使用方法请参照 GreatTurbo Cluster Server 10 的用户
手册。 两个节点的 GreatTurbo Cluster Server 10 正常启动后,可以利用 cluadmin
service add 命令添加服务。
65
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
(1) 执行 cluadmin
[root@test1 root]# cluadmin Sat Apr 9 17:48:57 CST 2005
(2) 执行 service add
cluadmin> service add Currently defined services:
(3) 输入服务的名字。
Service name: svc01
(4) 输入服务的类别(只能选择 ha)
Service type (ha/lb): ha
(5) 配置服务的优先节点。
如果一个服务有优先节点,当优先节点启动时,这个服务将会首先选择在 优先节点上运行。
优先节点缺省值为 None。直接回车表示选择 None,即不选择优先节点。
Preferred member [None]: test1
(6) 配置服务的用户脚本。
服务的用户脚本是启动和停止应用程序的脚本。一个服务最多只能配置一 个用户脚本。配置服务的用户脚本时,请输入全路径名。
User script (e.g., /usr/foo/script or None) [None]: /etc/init.d/httpd
(7) 配置服务检测脚本。
66
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Check script”输入的脚本有两种选择方式,请根据应用选择其中的一 种。
第一种方式是使用 GreatTurbo Cluster Server 10 自带的 agent 脚本,该 脚本位于/opt/cluster/usercheck 目录下,使用 agent 脚本时,必须按规 定格式输入,例如:/opt/cluster/usercheck/httpCheck 172.16.70.100 80
第二种方式使用自己编写脚本。 配置服务的检测脚本时,必须输入全路径名。
配置服务检测脚本时需要指定如下的参数:
¾ “Check interval”是检测服务的时间间隔,缺省值是 3 秒。 ¾ “Check timeout”是检测脚本返回的超时时间,缺省值是 30 秒。 ¾ “Max error count”是允许服务连续错误的次数,缺省是 5 次。
Do you want to add a check script to the service (yes/no/?) [no]: yes
Check Script Information
Check script (e.g., "/opt/cluster/usercheck/httpCheck
172.16.69.200 80" or None) [None]: /opt/cluster/usercheck/httpCheck 172.16.70.100 80 Check interval (in seconds) [None]: 5 Check timeout (in seconds) [None]: 10 Max error count [None]: 8
(8) 配置服务的浮动 IP
服务可以绑定浮动 IP,浮动 IP 随着服务而浮动,也就是说这个 IP 所在的 节点也就是服务所在的节点。一个服务最多可以配置 16 个浮动 IP
配置浮动 IP 时必须正确输入如下参数:
¾ “Net interface”是浮动IP 绑定的网卡。 ¾ “Netmask”是浮动IP 的子网掩码。 ¾ “Broadcast”是浮动IP 的广播地址。
Do you want to add floating IP address to the service (yes/no/?) [no]: yes
IP Address Information
IP address: 172.16.70.100 Net interface [None]: eth0 Netmask (e.g. 255.255.255.0 or None) [None]: 255.255.255.0
67
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Broadcast (e.g. X.Y.Z.255 or None) [None]: 172.16.70.255 Do you want to (a)dd, (m)odify, (d)elete or (s)how an IP address, or are you (f)inished adding IP addresses: f
(9) 配置磁盘设备。
在配置磁盘设备时,请指定相应的drbd 设备。例如:/dev/drbd0。一个服
务最多可以配置 16 个磁盘设备。
Do you want to add a disk device to the service (yes/no/?) [no]: yes
Disk Device Information
Device special file (e.g., /dev/sda1): /dev/drbd0
(10) 配置磁盘设备的 mount 信息。
需要指定的参数如下:
¾ Filesystem type ”是文件系统的类型,请尽量选用日志文件系统。 ¾ Mount point”是mount 的位置。 ¾ Mount options”是mount 时的选项,一般用 rw, sync ¾ Forced unmount support”是指定umount 时是否杀死该分区上运行
的进程。
¾ “Device owner”是mount 时的用户名,一般为 root。 ¾ “Device group”是mount 时的用户组名,一般为 root。 ¾ “Device mode”是mount 时的访问权限,一般为 755。
Filesystem type (e.g., ext2, reiserfs, ext3 or None): ext3 Mount point (e.g., /usr/mnt/service1) [None]: /mnt/hda7 Mount options (e.g., rw,nosuid): rw Forced unmount support (yes/no/?) [no]: yes Device owner (e.g., root): root Device group (e.g., root): root Device mode (e.g., 755): 755 Do you want to (a)dd, (m)odify, (d)elete or (s)how devices, or are you (f)inished adding devices: f
(11) 设置启动服务的超时时间。
68
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
启动服务的时间 = 启动 drbd 的时间 + mount 设备的时间 + 启动 IP 的时 间 + 启动用户脚本的时间
启动服务的超时时间应当大于启动服务的时间,各个阶段的时间可以 估算来设置,如果没有磁盘镜像设备,建议不设置启动服务的超时时间, 采用缺省值。缺省值是 3600 秒(1 小时)。
由于启动 drbd 时,可能会进行两节点间数据的同步,因此比较花费时 间。启动 drbd 的时间可以按如下的方法进行估算:
启动 drbd 的时间 = 磁盘分区大小/drbd 网络带宽 + 余量
当配置有多个 drbd 设备时,要分别计算。
例如:系统配置了 2 个drbd 设备,分区大小分别为500MB1GB,使用 同一个网络接口,网络带宽为 100Mbps
启动 nbd 的时间 = (500*8/100 + 1024*8/100)*2 + 100
= 344
考虑到 mount 设备的时间、启动 IP 的时间、启动用户脚本的时间, 启动服 务的超时时间可以设置为 500 秒。
Service start timeout (in seconds) [None]: 500
(12) 设置停止服务的超时时间。
停止服务的时间 = 停止用户脚本的时间 + 停止 IP 的时间 + umount
设备的时间 + 停止 drbd 的时间
停止服务的超时时间应当大于停止服务的时间,各个阶段的时间可以 估算来设置,如果没有磁盘镜像设备,建议不设置停止服务的超时时间, 采用缺省值。缺省值是 3600 秒(1 小时)。
由于停止 drbd 时,可能会等待两节点间数据的同步,因此比较花费时 间。
停止服务的超时时间的估算方法可以参考启动服务的超时时间的估算 方法。
Service stop timeout (in seconds) [None]: 500
(13) 设置停止服务失败时是否 reboot 机器。
如果设为“yes”,当服务停止失败时,为了释放服务的资源,将自动 reboot 机器。
如果设为“no” ,当服务停止失败时, 不会自动 reboot 机器,需要用户手 动干预。
69
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Reboot system if stop the service failed (yes/no/?) [yes]: yes
(14) 设置是否 disable 服务。
如果设为“yes”,服务将不会立即被启动,只能由用户手动启动。 如果设为“no”,服务将立即被启动。
Disable service (yes/no/?) [no]: no
(15) 确认添加该服务。
如果确认配置正确,请选择 yes 添加以上配置的服务。
Add svc01 service as shown? (yes/no/?) yes Added svc01.
到这里,我们成功的添加了一个使用磁盘镜像设备的服务。如果用户还 需要添加服务,那么仍然需要按照第四章末尾所述的内容来进行:选择第五、 六、七、八章的其中一章来进行配置。
5. 修改服务
如果需要修改服务的配置,请执行 cluadmin service modify 命令。 首先要求选择需要修改的服务,请输入列表中服务的编号。 如果服务正在运行,将要求先停止服务,请输入 yes 然后所有的操作都和添加服务相同。
Cluadmin> service modify
You will be prompted for information about the service.
Enter a question mark (?) at a prompt to obtain help.
Enter a colon (:) and a single-character command at a prompt to do one of the following:
c - Cancel and return to the top-level cluadmin command r - Restart to the initial prompt while keeping previous responses p - Proceed with the next prompt
70
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
0) svc01 c) cancel
Choose service to modify: 0 Modifying: svc01 Service is not disabled. Disable it? (yes/no/?) yes
6. 删除服务
如果要删除服务,请执行 cluadmin 的 service delete 命令。 然后输入列表中的服务的编号即可。
cluadmin> service delete
0) svc01 c) cancel
Choose service to delete: 0 Deleting svc01, are you sure? (yes/no/?): yes Service svc01 disabled Svc01 deleted.
7. 启动服务
如果在添加服务时没有启动服务,需要手动启动服务,请执行 cluadmin
service enable 命令。
首先要求选择需要启动的服务,请输入列表中的服务的编号。 然后要求选择在哪个节点上启动服务,请输入节点的编号。
cluadmin> service enable
0) svc01 c) cancel
Choose service to enable: 0 Are you sure? (yes/no/?) yes
0) test1
1) test2 c) cancel
Choose member: 0 Enabling svc01 on member test1. Service enabled.
71
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
8. 停止服务
如果需要停止服务,请执行 cluadmin 的 service disable 命令。 首先选择要停止的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。
cluadmin> service disable
0) svc01 c) cancel
Choose service to disable: 0 Are you sure? (yes/no/?) yes Disabling svc01. Service disabled.
9. 切换服务
如果需要把在一个节点上运行的服务切换到另一个节点上,请执行 cluadmin
service relocate 命令。
首先选择要切换的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。
cluadmin> service relocate
0) svc01 c) cancel
Choose service to relocate: 0 Are you sure? (yes/no/?) yes Relocating svc01. Service relocated.
如果所有的服务添加完成,请到第十三章继续阅读随后内容。
72
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
9
配置 LB 服务--DR 方式
配置服务前要求用户在安装软件和初始化过程中均选择 dr 作为负载均衡技术。 GreatTurbo Cluster Server 10 在调度节点正常启动后,就可以开始将用户的
应用配置成负载均衡的服务了。本章说明如何配置使用 dr 方式的服务,对服务 进行配置的过程如下:
7) 配置 realserver 环境
8) 配置 director 环境
9) director 上配置服务
1.配置工具
GreatTurbo Cluster Server 10 使用 cluadmin 进行配置服务。
/opt/cluster/bin/cluadmin 是文本界面的管理工具,使用它可以很方便地配
置服务。cluadmin 类似 bash,可以使用 TAB 键进行命令补全。
注意:如果您使用的是 Turbolinux 中文版, 则在运行cluadmin 之前,请先在
bash 下执行“unset LC_CTYPE”。
2.配置条件
¾ 请在 GreatTurbo Cluster Server 10 运行时执行 cluadmin 配置服务。
注意:GreatTurbo Cluster Server 10 采用时间戳来判断两个调度节点 的配置是否同步,所以不要轻易修改系统时间。如果确实需要修改系统时间, 请先停止 GreatTurbo Cluster Server 10,修改完系统时间后,再重新启动 GreatTurbo Cluster Server 10
¾ 因为 dr 工作方式需要使用防火墙(iptables)作为转发工具,所以需要
保证在作 realserver 的机器上安装 iptables 软件。
¾ 调度节点和所有 realserver 都必须在物理上有一个网卡通过不分断的局
域网相连,如通过高速的交换机或者 HUB 相连。
3.配置 realserver 环境
1) 以下 2-4 步操作要求在所有的 realserver 上都执行。
2) 根据业务需要修改/etc/init.d/lbrealserver-dr 文件。
73
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
如果 realserver 上需要运行的服务没有在机器启动后自动运行,那
么需要在上述文件 startstop 部分的指定位置添加该服务的启动 和停止脚本。
如果 realserver 上运行的服务在机器启动后自动运行,那么不需要
修改上述文件。
3) 根据 realserver 上运行的服务个数及配置,修改
/opt/cluster/lb/lbrealserver-conf-dr 文件。
i. 如果 realserver 上运行 n 个服务,那么需要在 start、stop 部分复
n-1 iptables 项。然后根据服务具体情况修改每一项的 ip 地 址、dport--to-port 值。如果仅有一个服务,那么只需要修改脚 本中已经存在的 iptalbes 项。
ii. 例,文件中 start 部分有如下项:
iptables -t nat -A PREROUTING -p tcp -d 172.16.70.100 --dport 22 -j REDIRECT --to-port 22
修改其中的 ip 地址“172.16.70.100”为服务的实际浮动 ip
址。
dport 后和--to-port 后的端口号“22”修改为服务实际占用
的端口。
根据上述内容,在 stop 部分作相应的修改,清除所设置的防火
墙规则。
4) 执行“/etc/init.d/lbrealserver-dr start”命令,将该节点配置成
一个 realserver。如果用户从集群中删掉该节点,那么需要执行 “/etc/init.c/lbrealserver-dr stop”命令恢复原来设置。
5) 如果用户在已经运行的 GreatTurbo Cluster Server 10 系统上添加 LB
服务,那么需要在每个 realserver 上先后进行如下操作。
执行/etc/init.d/lbrealserver-dr stop修改/opt/cluster/lb/lbrealserver-conf-dr 文件; 执行/etc/init.d/lbrealserver-dr start
4.配置调度节点环境
1) 如果调度节点(director)没有作为 realserver 使用,那么 director
两节点不需要其他配置。
2) 如果 director 同时作为 realserver 使用,那么需要按照普通
realserver配置一样首先配置环境。具体配置方法参见“配置realsever 环境”
5.配置命令
运行/opt/cluster/bin/cluadmin,然后在 cluadmin 中按下两次 TAB 键,会显
示如下所示的所有命令。([Tab] [Tab]表示连续按两下 Tab 键)
cluadmin>[Tab] [Tab] apropos clear
74
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
exit help cluster status cluster monitor cluster loglevel cluster loglevel syncd cluster loglevel svcmgr cluster loglevel svccheck cluster loglevel powerd cluster loglevel heartbeat cluster loglevel clumon cluster heartbeat cluster mail from cluster mail to cluster mail smtpserver cluster mail level cluster reload cluster name cluster edit cluster backup cluster restore cluster saveas cluster restorefrom service add service show state service show config service show services service modify service disable service enable service relocate service delete nbd add nbd delete nbd show help apropos help clear help exit help help help cluster status help cluster monitor help cluster loglevel help cluster reload help cluster name
75
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
help cluster edit help cluster backup help cluster restore help cluster saveas help cluster restorefrom help service add help service show state help service show config help service show services help service modify help service disable help service enable help service relocate help service delete help nbd add help nbd delete help nbd show
6.配置单端口服务
1) 执行 cluadmin
[root@test1 root]# cluadmin Sat May 9 17:48:57 CST 2006
2) 执行 service addGreatTurbo Cluster Server 10 最多只支持 256 个服
务)
cluadmin> service add Currently defined services:
3) 输入服务的名字(如果有多个服务,服务的名字不能重复)
Service name: svc01
4) 输入服务的类别(只能选择 lb
Service type (ha/lb): lb
76
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
5) 配置服务的优先节点
如果服务有优先节点,当优先节点启动 LB 时或者优先节点的网卡故障
恢复时,这个服务将会自动迁移到优先节点上运行。
优先节点缺省值为 None。直接回车表示选择 None,即不选择优先节点。
否则输入优先节点的 hostname 名称。
如果配置优先节点,那么所有服务必须选择同一优先节点。
Preferred member [None]: test1
6) 配置服务的用户脚本
服务的用户脚本是启动和停止应用程序的脚本。配置服务的用户脚本
时,请输入全路径名。所有 lb 服务的用户脚本需要保持相同。
如果两个调度节点同时作为 realserver 使用,那么使用
/opt/cluster/bin/lbdirector-real-dr 作为用户脚本。
User script (required, e.g., /opt/cluster/bin/lbdirector-dr): /opt/cluster/bin/lbdirector-dr
7) 配置服务检测脚本
所有 lb 服务只能使用同一指定脚本:/opt/cluster/bin/lbcheck
配置服务检测脚本时还需要指定如下的参数:
¾Check interval”是检测服务的时间间隔,建议根据用户应用 要求的切换时间设定合适的值,一般输入 5 秒,表示每隔 5 秒时间执 行一次检测脚本。
¾Check timeout”是检测脚本执行的超时时间,执行用户检测脚 本的超时时间,建议输入 30 秒。
¾Max error count”是允许服务连续错误的次数,一般输入 3 次, 表示出错 3 次后,服务进行切换。
Do you want to add a check script to the service (yes/no/?) [no]: yes Check Script Information Check script (e.g., "/opt/cluster/bin/lbcheck" or None) [None]: /opt/cluster/bin/lbcheck Check interval (in seconds) [None]: 5 Check timeout (in seconds) [None]: 30 Max error count [None]: 3
8) 配置服务的端口号
77
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
对于单端口服务只需要输入实际服务运行的端口号即可。如 http 80 ssh 22
Application port(e.g., 80 or None) [None]: 22
9) 配置服务的协议
Protocol(tcp/udp) [tcp]: tcp
10) 配置服务的浮动 IP
服务可以绑定浮动 IP,浮动 IP 随着服务而浮动,也就是说这个 IP
在的节点也就是服务所在的节点。
注意:配置浮动 IP 时必须正确输入如下参数,注意随着 IP 地址的不
同,相应的子网掩码需与之对应。
¾ “address”是浮动IP 的地址。 ¾ “netmask”是浮动IP 的子网掩码。 ¾ “device” 是浮动IP 所要绑定的网卡。
Virtual IP address(required): 172.16.71.111 Virtual IP network mask(optional) [None]: 255.255.255.0 Virtual IP device(required, e.g., eth0:1): eth0:1
11) 配置 firewall mark 单端口服务不需要配置,直接回车即可。
Firewall mark [None]:
12) 配置真实服务器重新加入集群的时间 建议使用默认值
Re-entry time(in seconds) [15]:
13) 配置检测 realserver 的时间间隔 建议使用默认值
Service timeout(in seconds) [6]:
78
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
14) 配置服务连接表选项 建议配置为 yes,表示当真实服务器重新加入集群内要把已经存在的连接
表清空,避免新加入的服务器过度负载。
Quiesce server(yes/no) [no]:yes
15) 配置 realserver 的负载监视工具
调度节点能够使用
果选择了
ruptime,每个真正服务器就必须运行 rwhod 服务。
rup,每个真正服务器就必须运行 rstatd 服务。如果选择了
rup ruptime 来监视各个真正服务器的载量。如
注意: 载量监视和负载均衡不同。当与加权的调度算法综合使用时,能 够导致难以预测的调度行为。还有,如果你要使用载量监视,群集中的真 正服务器就必须是 Linux 机器。
Load monitoring tool(rup/ruptime/None) [None]:
16) 配置调度算法 根据服务的具体要求可以选择一种调度算法。
Scheduling(rr/wrr/lc/wlc/lblc/lblcr/dh/sh) [wlc]:
17) 配置持续连接时间 单端口服务不需要配置此项,回车即可。
Persistence(in seconds) [None]:
18) 配置 realserver 上服务的监视脚本
这里输入监视 realserver 上服务的脚本。我们提供了一些监视脚本,可以 用来监视大多数常见服务;如果没有提供指定服务的脚本,您可以参照其 他监视脚本自己编写或者选择 None。如果选择使用脚本检测 realserver, 注意要在脚本路径后面使用特殊的“%h”符号。调度节点的 Nanny 进程会 在调度该脚本时,使用 realserver 的真实 ip 地址代替%h
Sending program(e.g., "/opt/cluster/bin/lbsend-http %h" or None) [None]: /opt/cluster/bin/lbsend-ssh %h
79
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
19) 配置 realserver 的回复文本 如果使用我们提供的脚本,那么要输入“OK”;如果使用其它方式,那么
expect 项根据具体脚本情况填写。
Expect string(e.g., "OK" or None) [None]: OK
20) 配置回复文本属性 如果回复文本时正则表达式,则此处选择 yes;否则选择 no
Treat expect string as a regular expression(yes/no) [no]: no
21) 配置 realserver
一个服务可以配置多个 realserver,调度器根据调度算法,将客户的请求 调度到不同的 realserver 上。每个 realserver 都需要配置如下几项:
¾ “Server name”是一个用于真正服务器的描述性名称。 ¾ “Server address”是真正服务器的 IP 地址。 ¾ “Server weight是一个表明和集群内其它主机相比而言的主机
能力的整数值。
¾ “Server active” 表示真实服务器是否启用。
Do you want to add server to the service (yes/no/?) [no]: y
Server Information
Server name(required): server1 Server address(required): 172.16.70.211 Server weight [None]: 1 Server active(yes/no) [yes]: yes Do you want to (a)dd, (m)odify, (d)elete or (s)how a server, or are you (f)inished adding servers: f
22) 设置停止服务失败时是否 reboot 机器
如果设为“yes”,当服务停止失败时,为了释放服务的资源,将自动 reboot 机器。
80
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
如果设为“no” ,当服务停止失败时, 不会自动 reboot 机器,需要用户手 动干预。
Reboot system if stop the service failed (yes/no/?) [yes]: yes
23) 设置是否 disable 服务
如果设为“yes”,服务将不会立即被启动,只能以后由用户手动启动。 如果设为“no”,服务将立即被启动。一般选择 no,表示立即启动服务。
Disable service (yes/no/?) [no]: no
24) 保存服务配置
选择 yes
Add test service as shown? (yes/no/?) yes
到这里, 我们成功的添加了一个单端口的服务。如果用户还需要添加服务,那
么重复上述过程。
7. 修改服务
如果需要修改服务的配置,请在 cluadmin 下执行 service modify 命令。 首先要求选择需要修改的服务,请输入列表中的服务的编号。 如果服务正在运行,将要求先停止服务,请输入 yes 然后所有的操作都和添加服务相同。
cluadmin> service modify
You will be prompted for information about the service.
Enter a question mark (?) at a prompt to obtain help.
Enter a colon (:) and a single-character command at a prompt to do one of the following:
c - Cancel and return to the top-level cluadmin command r - Restart to the initial prompt while keeping previous responses p - Proceed with the next prompt
81
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
0) svc01 c) cancel
Choose service to modify: 0 Modifying: svc01 Service is not disabled. Disable it? (yes/no/?) yes
8. 删除服务
如果要删除服务,请执行 cluadmin 的 service delete 命令。 然后输入列表中的服务的编号即可。
cluadmin> service delete
0) svc01 c) cancel
Choose service to delete: 0 Deleting svc01, are you sure? (yes/no/?): yes Service svc01 disabled Svc01 deleted.
9. 启动服务
如果在添加服务时没有启动服务,需要手动启动服务,请执行 cluadmin
service enable 命令。
首先要求选择需要启动的服务,请输入列表中的服务的编号。 然后要求选择在哪个节点上启动服务,请输入节点的编号。 注意:启动一个服务的同时,所有的服务都将被启动。
cluadmin> service enable
0) svc01 c) cancel
Choose service to enable: 0 Are you sure? (yes/no/?) yes
0) test1
1) test2 c) cancel
82
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Choose member: 0 Enabling svc01 on member test1. Service enabled.
10. 停止服务
如果需要停止服务,请执行 cluadmin 的 service disable 命令。 首先选择要停止的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。 注意: 停止一个服务的同时,所有的服务都将被停止。
cluadmin> service disable
0) svc01 c) cancel
Choose service to disable: 0 Are you sure? (yes/no/?) yes Disabling svc01. Service disabled.
11. 切换服务
如果需要把在一个节点上运行的服务切换到另一个节点上,请执行 cluadmin
service relocate 命令。
首先选择要切换的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。 注意:切换一个服务的同时,所有的服务都将被切换。
cluadmin> service relocate
0) svc01 c) cancel
Choose service to relocate: 0 Are you sure? (yes/no/?) yes Relocating svc01. Service relocated.
83
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
如果所有的服务添加完成,请直接到第十三章继续阅读随后内容。
84
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
10
配置 LB 服务--TUN 方式
配置服务前要求用户在安装软件和初始化过程中均选择tun作为负载均衡技术。 GreatTurbo Cluster Server 10 在调度节点正常启动后,就可以开始将用户的
应用配置成负载均衡的服务了。本章说明如何配置使用 tun 方式的服务,对服 务进行配置的过程如下:
(1) 配置 realserver 环境 (2) 配置 director 环境 (3) 在 director 上配置服务
1.配置工具
GreatTurbo Cluster Server 10 使用 cluadmin 进行配置服务。
/opt/cluster/bin/cluadmin 是文本界面的管理工具,使用它可以很方便地配
置服务。cluadmin 类似 bash,可以使用 TAB 键把命令补全。
注意:如果您使用的是 Turbolinux 中文版, 则在运行cluadmin 之前,请先在
bash 下执行“unset LC_CTYPE”。
2.配置条件
¾ 请在 GreatTurbo Cluster Server 10 运行时执行 cluadmin 配置服务。
注意:GreatTurbo Cluster Server 10 采用时间戳来判断两个调度节点 的配置是否同步,所以不要轻易修改系统时间。如果确实需要修改系统时间, 请先停止 GreatTurbo Cluster Server 10,修改完系统时间后,再重新启动 GreatTurbo Cluster Server 10
¾ 该方式要求所有节点能够加载 ipip 模块。
3.配置 realserver 环境
1) 以下 2-4 项操作要求在所有的 realserver 上都执行。
2) 根据业务需要修改/etc/init.d/lbrealserver-tun 文件。
如果 realserver 上需要运行的服务没有在机器启动后自动运行,那
么需要在上述文件 startstop 部分的指定位置添加该服务的启动 和停止脚本。
85
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
如果 realserver 上运行的服务在机器启动后自动运行,那么不需要
修改上述文件。
3) 根据 realserver 上运行的服务个数及配置,修改
/opt/cluster/lb/lbrealserver-conf-tun 文件。
i. 如果 realserver 上运行多个服务,那么需要在 start 部分添加每个
服务的浮动 ip 和路由设置,在 stop 部分添加取消路由设置的内容。 添加完毕后参考下例对所添加的项目进行修改;如果仅有一个服务, 那么只需要修改脚本中已经存在的项既可。
ii. 例,文件中 start 部分有如下项:
ifconfig tunl0:0 172.16.70.100 broadcast 172.16.70.100 netmask 255.255.255.255 up route add -host 172.16.70.100 dev tunl0
将每个服务的浮动 ip 都建立在 tunl0 设备上,分别为 tunl0:0
tunl0:1.
修改其中的 ip 地址“172.16.70.100”和 broadcast 地址为服务
的实际浮动 ip 地址。
修改路由设置中的 ip 地 址,将“ 172.16.70.100”修改为服务的
真实浮动 ip 地址。
iii. 例,文件中 stop 部分有如下项:
route del -host 172.16.70.100 dev tunl0 ifconfig tunl0:0 down
修改路由设置部分的 ip 地 址,将“ 172.16.70.100”修改为服务
的真实浮动 ip 地址。
修改 ifconfig 部分的“tunl0:0”,要求和 start 部分的设置相
对应。
4) 执行“/etc/init.d/lbrealserver-tun start”命令,将该节点配置成
一个 realserver。如果用户从集群中删掉该节点,那么需要执行 “/etc/init.c/lbrealserver-tun stop”命令恢复原来设置。
5) 如果用户在已经运行的 GreatTurbo Load Balance Server 系统上添加
服务,那么需要在每个 realserver 上先后进行如下操作
执行/etc/init.d/lbrealserver-tun stop; 修改/opt/cluster/lb/lbrealserver-conf-tun 文件; 执行/etc/init.d/lbrealserver-tun start。
4.配置调度节点环境
1) 如果调度节点(director)没有作为 realserver 使用,那么不需要进
行环境设置。
2) 如果 director 同时作为 realserver 使用,那么需要按照普通
realserver配置一样首先配置环境。具体配置方法参见“配置realsever 环境”
86
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
5.配置命令
运行/opt/cluster/bin/cluadmin,然后在 cluadmin 中按下两次 TAB 键,会显
示如下所示的所有命令。([Tab] [Tab]表示连续按两下 Tab 键)
cluadmin>[Tab] [Tab] apropos clear exit help cluster status cluster monitor cluster loglevel cluster loglevel syncd cluster loglevel svcmgr cluster loglevel svccheck cluster loglevel powerd cluster loglevel heartbeat cluster loglevel clumon cluster heartbeat cluster mail from cluster mail to cluster mail smtpserver cluster mail level cluster reload cluster name cluster edit cluster backup cluster restore cluster saveas cluster restorefrom service add service show state service show config service show services service modify service disable service enable service relocate service delete nbd add nbd delete nbd show help apropos
87
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
help clear help exit help help help cluster status help cluster monitor help cluster loglevel help cluster reload help cluster name help cluster edit help cluster backup help cluster restore help cluster saveas help cluster restorefrom help service add help service show state help service show config help service show services help service modify help service disable help service enable help service relocate help service delete help nbd add help nbd delete help nbd show
6.配置单端口服务
1) 执行 cluadmin
[root@test1 root]# cluadmin Sat May 9 17:48:57 CST 2006
2) 执行 service addGreatTurbo Cluster Server 10 最多只支持 256 个服
务)
cluadmin> service add Currently defined services:
3) 输入服务的名字(如果有多个服务,服务的名字不能重复)
88
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Service name: svc01
4) 输入服务的类别(只能选择 lb
Service type (ha/lb): lb
5) 配置服务的优先节点
如果服务有优先节点,当优先节点启动 LB 时或者优先节点的网卡故障
恢复时,这个服务将会自动迁移到优先节点上运行。
优先节点缺省值为 None。直接回车表示选择 None,即不选择优先节点。
否则输入优先节点的 hostname 名称。
如果配置优先节点,那么所有服务必须选择同一优先节点。
Preferred member [None]: test1
6) 配置服务的用户脚本
服务的用户脚本是启动和停止应用程序的脚本。配置服务的用户脚本
时,请输入全路径名。所有 lb 服务的用户脚本需要保持相同。
如果两个调度节点同时作为 realserver 使用,那么使用
/opt/cluster/bin/lbdirector-real-tun 作为用户脚本。
User script (required, e.g., /opt/cluster/bin/lbdirector-dr): /opt/cluster/bin/lbdirector-tun
7) 配置服务检测脚本
所有 lb 服务只能使用同一指定脚本:/opt/cluster/bin/lbcheck
配置服务检测脚本时还需要指定如下的参数:
¾Check interval”是检测服务的时间间隔,建议根据用户应用 要求的切换时间设定合适的值,一般输入 5 秒,表示每隔 5 秒时间执 行一次检测脚本。
¾Check timeout”是检测脚本执行的超时时间,执行用户检测脚 本的超时时间,建议输入 30 秒。
¾Max error count”是允许服务连续错误的次数,一般输入 3 次, 表示出错 3 次后,服务进行切换。
Do you want to add a check script to the service (yes/no/?) [no]: yes
89
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Check Script Information Check script (e.g., "/opt/cluster/bin/lbcheck" or None) [None]: /opt/cluster/bin/lbcheck Check interval (in seconds) [None]: 5 Check timeout (in seconds) [None]: 30 Max error count [None]: 3
8) 配置服务的端口号 对于单端口服务只需要输入实际服务运行的端口号即可。如 http 80
ssh 22
Application port(e.g., 80 or None) [None]: 22
9) 配置服务的协议
Protocol(tcp/udp) [tcp]: tcp
10) 配置服务的浮动 IP
服务可以绑定浮动 IP,浮动 IP 随着服务而浮动,也就是说这个 IP
在的节点也就是服务所在的节点。
注意:配置浮动 IP 时必须正确输入如下参数,注意随着 IP 地址的不
同,相应的子网掩码需与之对应。
¾ “address”是浮动IP 的地址。 ¾ “netmask”是浮动IP 的子网掩码。 ¾ “device” 是浮动IP 所要绑定的网卡。
Virtual IP address(required): 172.16.71.111 Virtual IP network mask(optional) [None]: 255.255.255.0 Virtual IP device(required, e.g., eth0:1): eth0:1
11) 配置 firewall mark 单端口服务不需要配置,直接回车即可。
Firewall mark [None]:
12) 配置真实服务器重新加入集群的时间
90
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
建议使用默认值
Re-entry time(in seconds) [15]:
13) 配置检测 realserver 的时间间隔 建议使用默认值
Service timeout(in seconds) [6]:
14) 配置服务连接表选项
建议配置为 yes,表示当真实服务器重新加入集群内要把已经存在的连接 表清空,避免新加入的服务器过度负载。
Quiesce server(yes/no) [no]:yes
15) 配置 realserver 的负载监视工具
调度节点能够使用 rupruptime 来监视各个真正服务器的载量。如
果选择了 rup,每个真正服务器就必须运行 rstatd 服务。如果选择了
ruptime,每个真正服务器就必须运行 rwhod 服务。
注意: 载量监视和负载均衡不同。当与加权的调度算法综合使用时,能 够导致难以预测的调度行为。还有,如果你要使用载量监视,群集中的真 正服务器就必须是 Linux 机器。
Load monitoring tool(rup/ruptime/None) [None]:
16) 配置调度算法 根据服务的具体要求可以选择一种调度算法。
Scheduling(rr/wrr/lc/wlc/lblc/lblcr/dh/sh) [wlc]:
17) 配置持续连接时间 单端口服务不需要配置此项,回车即可。
Persistence(in seconds) [None]:
91
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
18) 配置 realserver 上服务的监视脚本 这里输入监视 realserver 上服务的脚本。我们提供了一些监视脚本,可以
用来监视大多数常见服务;如果没有提供指定服务的脚本,您可以参照其 他监视脚本自己编写或者选择 None。如果选择使用脚本检测 realserver, 注意要在脚本路径后面使用特殊的“%h”符号。调度节点的 Nanny 进程会 在调度该脚本时,使用 realserver 的真实 ip 地址代替%h
Sending program(e.g., "/opt/cluster/bin/lbsend-http %h" or None) [None]: /opt/cluster/bin/lbsend-ssh %h
19) 配置 realserver 的回复文本 如果使用我们提供的脚本,那么要输入“OK”;如果使用其它方式,那么
expect 项根据具体脚本情况填写。
Expect string(e.g., "OK" or None) [None]: OK
20) 配置回复文本属性 如果回复文本时正则表达式,则此处选择 yes;否则选择 no
Treat expect string as a regular expression(yes/no) [no]: no
21) 配置 realserver
一个服务可以配置多个 realserver,调度器根据调度算法,将客户的请求 调度到不同的 realserver 上。每个 realserver 都需要配置如下几项:
¾ “Server name”是一个用于真正服务器的描述性名称。 ¾ “Server address”是真正服务器的 IP 地址。 ¾ “Server weight是一个表明和集群内其它主机相比而言的主机
能力的整数值。
¾ “Server active” 表示真实服务器是否启用。
Do you want to add server to the service (yes/no/?) [no]: y
Server Information
Server name(required): server1
92
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
Server address(required): 172.16.70.211 Server weight [None]: 1 Server active(yes/no) [yes]: yes Do you want to (a)dd, (m)odify, (d)elete or (s)how a server, or are you (f)inished adding servers: f
22) 设置停止服务失败时是否 reboot 机器
如果设为“yes”,当服务停止失败时,为了释放服务的资源,将自动 reboot 机器。
如果设为“no” ,当服务停止失败时, 不会自动 reboot 机器,需要用户手 动干预。
Reboot system if stop the service failed (yes/no/?) [yes]: yes
23) 设置是否 disable 服务
如果设为“yes”,服务将不会立即被启动,只能以后由用户手动启动。 如果设为“no”,服务将立即被启动。一般选择 no,表示立即启动服务。
Disable service (yes/no/?) [no]: no
24) 保存服务配置
选择 yes
Add test service as shown? (yes/no/?) yes
到这里, 我们成功的添加了一个单端口的服务。如果用户还需要添加服务,那
么请重复上述过程。
7. 修改服务
如果需要修改服务的配置,请在 cluadmin 下执行 service modify 命令。 首先要求选择需要修改的服务,请输入列表中的服务的编号。 如果服务正在运行,将要求先停止服务,请输入 yes 然后所有的操作都和添加服务相同。
cluadmin> service modify
93
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
You will be prompted for information about the service.
Enter a question mark (?) at a prompt to obtain help.
Enter a colon (:) and a single-character command at a prompt to do one of the following:
c - Cancel and return to the top-level cluadmin command r - Restart to the initial prompt while keeping previous responses p - Proceed with the next prompt
0) svc01 c) cancel
Choose service to modify: 0 Modifying: svc01 Service is not disabled. Disable it? (yes/no/?) yes
8. 删除服务
如果要删除服务,请执行 cluadmin 的 service delete 命令。 然后输入列表中的服务的编号即可。
cluadmin> service delete
0) svc01 c) cancel
Choose service to delete: 0 Deleting svc01, are you sure? (yes/no/?): yes Service svc01 disabled Svc01 deleted.
9. 启动服务
如果在添加服务时没有启动服务,需要手动启动服务,请执行 cluadmin
service enable 命令。
首先要求选择需要启动的服务,请输入列表中的服务的编号。 然后要求选择在哪个节点上启动服务,请输入节点的编号。
94
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
注意:启动一个服务的同时,所有的服务都将被启动。
cluadmin> service enable
0) svc01 c) cancel
Choose service to enable: 0 Are you sure? (yes/no/?) yes
0) test1
1) test2 c) cancel
Choose member: 0 Enabling svc01 on member test1. Service enabled.
10. 停止服务
如果需要停止服务,请执行 cluadmin 的 service disable 命令。 首先选择要停止的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。 注意: 停止一个服务的同时,所有的服务都将被停止。
cluadmin> service disable
0) svc01 c) cancel
Choose service to disable: 0 Are you sure? (yes/no/?) yes Disabling svc01. Service disabled.
11. 切换服务
如果需要把在一个节点上运行的服务切换到另一个节点上,请执行 cluadmin
service relocate 命令。
首先选择要切换的服务,请输入列表中的服务的编号。 然后要求确认,请输入 yes。 注意:切换一个服务的同时,所有的服务都将被切换。
cluadmin> service relocate
95
GREATTURBO CLUSTER SERVER 10 用户快速安装手册
0) svc01 c) cancel
Choose service to relocate: 0 Are you sure? (yes/no/?) yes Relocating svc01. Service relocated.
如果所有的服务添加完成,请直接到第十三章继续阅读随后内容。
96
Loading...