Chinaunix首页 | 论坛 | 博客
  • 博客访问: 134906
  • 博文数量: 38
  • 博客积分: 2431
  • 博客等级: 少校
  • 技术积分: 470
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-20 09:49
文章分类

全部博文(38)

文章存档

2011年(2)

2010年(14)

2009年(10)

2008年(12)

我的朋友

分类: DB2/Informix

2010-12-02 00:03:04

目的:配置Informix连接管理器(Connection Manager),实现通过CM的连接重定向、集群负载均衡和集群故障接管功能。
环境:系统为rhel 5.5 64bit
    数据库版本为informix v11.70fc1 for linux 64bit
    CSDK的版本为informix csdk v3.70 for linux 64bit
组网方式如下:Informix集群由SDS、HDR、RSS组成,和CM在同一个网络内
其中:
 PRI(Primary Server)的IP为192.168.80.56,INFORMIXSERVER为ids1_online_net
 HDR(HDR Secondary) 的IP为192.168.80.57,INFORMIXSERVER为ids2_online_net
 SDS(SDS Server)    的IP为192.168.80.58,INFORMIXSERVER为idssds_online_net
 RSS(RSS Server)    的IP为192.168.80.59,INFORMIXSERVER为idsrss_online_net
 CM(connection manager)的IP为192.168.80.60,INFORMIXSERVER为ids1170

关于如何创建SDS,HDR,RSS的方法及步骤,这里不再详述。需要注意的事项包括:
1, 参数中关于磁盘的配置需要一致
2, INFORMIXSERVER对应的网络协议必须使用TCP/IP连接方式的配置
3, DRAUTO设置为3 (使用CM控制)
4, 其它与SDS,HDR,RSS相关的参数全集群同步
5, 各服务器的SYSADMIN库都应当开启并正常使用(FOC需要)

配置Informix连接管理器

    Connection Manager ONCMSM 及相关的实用程序如 ONPASSWORD 都包含在 IBM Informix Client SDK (CSDK) 开发包中。 Connection Manager 可以安装在数据库应用程序运行的机器上,也可以安装在单独的一台独立于 Informix 高可用集群的机器上,减少管理开销。为了提高性能,一般建议安装在数据库应用程序运行的机器上。
这里将包含CM的CSDK安装于独立的服务器上(CSDK安装步骤不再详述),INFORMIXDIR使用CSDK的安装目录,INFORMIXSERVER使用informix集群的group名

1)创建加密的password密码文件
CM需要读这个密码文件,并通过这个密码连接到各服务器上
Password密码文件的格式为
ServerName AlternateServer USER PASSWORD

每一行表示一个Informix实例:
ServerName指INFORMIXSERVER,需使用TCP/IP方式的服务
AlternateServer指在无法连接上ServerName时的备用连接(无备用连接可设置跟ServerName一致)
USER指存在于ServerName所指定的服务器上的已存在的用户名
PASSWORD指USER使用的密码

此次示例如下:
ids1_online_net         ids1    informix        informix
ids2_online_net         ids2    informix        informix
idssds_online_net       idssds  informix        informix
idsrss_online_net       idsrss  informix        Informix

保存为passwd.txt文件,然后使用onpassword实用工具加密成${INFORMIXDIR}/etc/passwd_file 密码文件供CM使用
[ informix@cmserver ~] onpasswork -k SecretKey -e ./passwd.txt

2)创建CM配置文件
CM配置文件默认为${INFORMIXDIR}/etc/cmsm.cfg,可通过复制例子文件cmsm.cfg.sample创建cmsm.cfg,cmsm.cfg.sample内容如下:
# Connection Manager name(CM名称)
NAME    sample
# re-route Informix clients to the primary for transaction processing (SLA策略)
SLA     sqtp=PRI
# re-route Informix clients to any secondary node for reporting (SLA策略)
SLA     sqrt=(SDS+HDR+RSS)
# re-route IBM Data Server clients that use DRDA to the primary (SLA策略)
SLA     drtp=PRI
# re-route IBM Data Server clients that use DRDA to any secondary node (SLA策略)
SLA     drrt=(SDS+HDR+RSS)
# Failover Configuration (集群故障接管策略)
FOC     SDS+HDR+RSS,0
# worker threads for each SLA listener, default is 8 (SLA线程数)
SLA_WORKERS  16
# Connection Manager message file (CM日志)
LOGFILE /usr/informix/tmp/cm.log

示例使用cmsm.cfg如下:
NAME ids1170 
SLA oltp=PRI
SLA payroll=HDR+RSS+PRI
SLA report=SDS+HDR+RSS
DEBUG 1
SLA_WORKERS 4
LOGFILE /opt/informix/log/cmsm.log
FOC (SDS+HDR)+RSS,10

注:SLA(Service Level Agreement)中的参数定义
PRI 或者primary :集群中的主服务器
SDS :集群中的SDS服务器
HDR :集群中的HDR服务器
RSS  :集群中的RSS服务器
+ :表示使用负载均衡

注:FOC(failover configuration)中的参数定义
+ :表示顺序接管
() :表示同级别,仅有括号内的都失败,才由下一顺序接管
timeout_value最后的数字为等待主服务器响应的时间,单位是秒。

3)修改SQLHOSTS配置文件
所有informix集群的实例中的sqlhosts文件均应包含所有实例的信息;而CM中的SQLHOSTS中除包含所有实例中的信息外,还包含SLA策略

示例CM使用的sqlhosts如下:
所有Informix集群的实例都在同一个group中(所有的集群实例中都应包含INFORMIXSERVER这部分内容),CM中还包含CM SLA定义的策略
### INFORMIXSERVER
ids1170                 group           -       -       i=10
ids1_online_net         onsoctcp        rhel56  11801   g=ids1170
ids2_online_net         onsoctcp        rhel57  11802   g=ids1170
idssds_online_net       onsoctcp        rhel58  11803   g=ids1170
idsrss_online_net       onsoctcp        rhel59  11804   g=ids1170

# for Connection Manager's SLA defines
oltp                    onsoctcp        rhel60  11860
report                  onsoctcp        rhel60  11861
payroll                 onsoctcp        rhel60  11862


4)使用oncmsm实用工具启动CM
由于示例中仅定义了一个CM name,故可直接使用oncmsm启动
[Informix@cmserver ~] oncmsm
然后可通过cmsm.log查看cmsm的运行情况。

在接入了连接管理器的服务器上可以使用onstat -g cmsm查看CM运行状态
[informix@rhel55 ~] onstat -g cmsm
IBM Informix Dynamic Server Version 11.70.FC1     -- On-Line (Prim) -- Up 03:10:19 -- 173780 Kbytes
Connection Manager Name: ids1170
        Hostname: rhel55

        SLA                    Connections   Service/Protocol   Rule
        oltp                             0     11860/onsoctcp   PRI
        payroll                          0     11862/onsoctcp   (HDR+RSS)+PRI
        report                           0     11861/onsoctcp   SDS+HDR+RSS

Failover Configuration:
Connection Manager name        Rule                Timeout   State
ids1170
                               (SDS+HDR)+RSS            10   Active Arbitrator, Primary is up

CM管理故障接管

FOC (SDS+HDR)+RSS,10
第一层接管,在主服务器故障时,(SDS+HDR)启用接管。
SDS备机成为主服务器,原HDR备机重定向为当前主服务器HDR备机,原RSS备机重定向为当前主服务RSS备机

第二层接管,在主服务器故障(原SDS)时,(SDS+HDR)启用接管,此时由HDR备机接管。
HDR备机接管成为主服务器,原RSS备机重定向成为当前主服务RSS备机
第三层接管,在主服务器故障(原HDR)时,RSS启用接管,此时由RSS备机接管。
RSS备机接管成为主用服务器,由于此时没有别的备用服务器,仅有主服务器,不再有接管。
注:当集群存在多个RSS备机时,RSS其它备机仍可成为当前主服务器的RSS备机,直至最后一个RSS备机成为主用服务器。
阅读(2360) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~