美国SteelEye公司的LifeKeeper是一款支持多软、硬件平台的高性能容错群集软件。它最多可支持16台服务器组成的集群,能工作于软件镜像和共享盘阵两种模式。
此文档以DB2 UDB Express 8.2 for Windows为例,介绍使用LifeKeeper实现DB2双节点、主备式群集的安装、配置及使用。
前提与假设
在安装配置LifeKeeper群集之前,假设用户已做了如下准备工作:
l
两套型号一致并至少拥有两块网卡的PC Server或小机;
l
两套版本号、补丁版本号一致的Windows操作系统(2000或2003);
l
一根用于心跳检测的直联线(超五类或六类线);
l
若系统BIOS里有超线程设定,要将其“disable”;
|
主服务器
|
备份服务器
|
计算机名
|
LK1
|
LK2
|
私网(心跳网络)设置
|
IP= 10.10.10 .3
Mask=255.0.0.0
|
IP= 10.10.10 .4
Mask=255.0.0.0
|
公网(应用网络)设置
|
IP=172.17.20.3
Mask=255.255.0.0
|
IP=172.17.20.4
Mask=255.255.0.0
|
虚拟IP地址
|
172.17.20.100
|
|
本地磁盘
|
C:
|
|
共享磁盘
|
D
:
|
磁盘卷组划分
数据库服务器的磁盘卷组可由用户喜好进行划分。若用户空间足够,建议用两块磁盘组成Raid1,安装操作系统;剩余的磁盘组成Raid5用于存放DB2程序、配置及库文件。若磁盘空间有限,可将全部磁盘构建成Raid5,再划分若干逻辑分区分别存放操作系统文件和DB2文件。
注意:无论如何划分磁盘卷组,都应保证:
l
两节点的DB2的程序文件和库文件应独立存在于同一个逻辑分区;
l
两节点的DB2分区应大小一致或者LK1的DB2分区略大于LK2的DB2分区
l
DB2
分区所在卷组不能是动态磁盘,只能是基本磁盘;系统交换、缓存文件也不能放在DB2分区;
安装操作系统及DB2软件
按正常方式安装操作系统,请不要使用Ghost等工具从镜像文件中安装系统;将DB2安装至DB2分区,表空间和数据库倒入等工作可稍后进行。
LifeKeeper
群集环境配置
l
日志属性配置
在2003无需做此项配置。
在“事件查看器”属性中修改“应用程序”和“系统”的“当达到最大日志尺寸”选项的属性,将其改为“按需要改写日志”;
l
网卡名及位置配置
将两个节点四块网卡分别命名为:heart1、net1、heart2、net2;在网络和拨号连接=〉高级=〉高级设置菜单中将heart网卡的访问顺序设定为第一位;
l
虚拟IP配置
在系统目录>system32driversetchosts文件中配置群集私网IP和虚拟IP;
10.10.10
.3 LK1
10.10.10
.4 LK2
172.17.20.100 ha-svr
l
建立群集管理用户
为LifeKeeper群集建立管理员用户lkamin,将其加入管理员用户组;
l
防火墙
对于安装了防火墙的服务器,需要作如下设置并开放下列端口和协议
n
TCP 7365
(通信路径/“心跳”)
n
TCP 1500,1510,...
(通信路径/“心跳”)
n
81
,82(LifeKeeper GUI连接)
n
1024
及以上(Java RMI,LifeKeeper GUI)
n
允许访问任何虚拟IP地址(两台服务器上均配置)
n
LifeKeeper
使用一种 broadcast ping 测试来定时检查虚拟 IP 地址. 为使这种测试其作用,防火墙必须允许下列类型的网络活动.
ü
从虚拟IP地址发出的 Internet Control Message Protocol (ICMP) 数据包
ü
到达虚拟IP地址的 ICMP 数据包
ü
从任何本地地址发出的 ICMP reply 数据包
ü
到达虚拟IP地址的任何 ICMP reply 数据包
安装LifeKeeper和DR
按照下列步骤分别在LK1、LK2服务器上安装LifeKeeper:
1
.运行lk4.2.exe,系统执行安装程序:
2
.首先提示安装是否继续,选择”y”
3
.缺省LifeKeeper将程序安装到C:LK
4
.使用典型安装
5
.LifeKeeper要求关闭网络介质感应
6
.进入LifeKeeper Core Application的完成
7
.完成后,LifeKeeper会显示本机的hostID号,用于申请软件运行许可码
8
.确认该HostID号为本机第一块网卡的Mac地址后,点击确定,若与本机第一块网卡的不相符,请回退至“网卡名及位置配置”处修正设定。
9
.询问是否安装license,点击是。
10.
询问以哪种方式安装lisence,点击否,直接输入序列号。
10.license
输入完成后,系统提示是否重启。至此,LifeKeeper Core Application安装过程。
11.
安装LifeKeeper Data Replication,运行DR39.exe,系统执行安装程序。
12.
缺省的安装目录是EM
13.
选择完全安装类型
14
.安装结束后,同样会显示用于申请许可码的HostID
15.
可以在此时输入许可码,也可在以后输入,完成后,系统提示是否重启。至此,LifeKeeper Data Replication安装结束
16.
系统服务中有三个服务是与LifeKeeper相关的
配置LifeKeeper
l
登陆节点
在节点LK1上运行ifeKeeper GUI:
使用前面创建的用户lkadmin登陆节点1:
从“File”菜单选择“Connect Server”,在“Server Name”中输入节点LK2的名字lk3,用相同的用户名和口令连接节点LK2,完成后,LifeKeeper GUI显示:
l
建立节点间的通讯连接
在私有网络上创建主通信路经,从工具栏选择,本地和远程服务器分别选择lk1和lk3:
选择通讯路径的通讯类型为TCP/IP:
按照实际需求调整心跳间隔(Interval)和可容忍丢失的最多心跳数(Maximum Heartbeat Misses)。
一般来说可将Heatbeat Interval设为4(缺省值为6),点击“next”
将Maximum Heartbeat Missers设定为3:
选定私网IP为主通讯路径,分别设定本地和远程两个私网IP:
设定主通讯路径的优先级为1,
选择远端心跳的ip地址
指定TCP/IP端口号为1500(默认):
点击“Create”,创建第一条通讯路径。
点击“next”
点击“done”,完成第一条通讯路径的设置。
此时LifeKeeper GUI的显示如下:
用同样的方法在公网上创建第二条通信路径作为备份心跳,完成后GUI界面状态显示为:
用鼠标选中任一服务器图标,点击右键,在菜单中选择属性,在“CommPaths”一栏,应显示出两条活动(ALIVE)的心跳,至此完成通信路径的创建
l
创建虚拟IP地址资源
选择“edit-----Resource------Create Resource Hierarchy ,建立资源。
选择IP Address,点击“next”
选择自动回切类型,一般来说,应设定为INTELLIGENT(智能),即不自动回切(因为本配置中两台服务器硬件性能一致,没有必要回切)
点击“next”
点击“next”,输入要保护的虚拟IP地址:
虚拟ip地址的子网掩码,选择与公网相同的子网掩码:
IP
资源标签,为该资源设定一个容易设别的名字:
选择公网网卡接口为该虚拟IP的网络接口:
Local Recovery
参数设为NO,因为我们没有第三块网卡用于本地恢复:
设定快速检查时间(Quick check)为1
和深度检查时间(Deep check)为2:
创建成功后,显示如下:
完成节点LK1的虚拟ip 创建,选择“Next“,以继续将配置扩展到LK2上。.
选择“Continue“
设定和节点1一样回切类型、优先级为10(默认)等参数,成功扩展后显示:
选择Finish完成IP资源设定,GUI界面显示为:
l
创建共享卷资源
Data Replicaton
配置
运行Data Replicaton为两个节点建立卷镜像,注意互为镜像的卷不能是系统卷、页面卷或者动态卷。
单击Mirror=〉创建:
分别选中源和目标卷:
选择镜像模式为同步镜像(Synchronous Mirror):
下一步后,请在摘要窗口确认镜像配置,特别注意source和target是否与节点LK1和节点LK2一一对应:
点击“完成“,开始卷的同步过程:
创建成功后,Synchronous状态为Mirror
LifeKeeper
配置
从工具栏选择(创建资源层次),从下拉菜单中选择“Volume”:
选择回切类型为INTELLIGENT,即不自动回切。
选择节点LK1:
选择节点LK1上的共享卷:
系统自动发现该共享盘的类型为SCSI,故显示为EM:
缺省为该资源提供一个帮助记忆的名字(Tag),可使用任意指定一个方便记忆的名字:
设定快速检查时间(Quick check)和深度检查时间(Deep check)为1和3;该值最好根据实际情况设定,若磁盘容量相对较大,比如大于200G,则可将快速检查时间和深度检查时间修改为3和5。
Create
完成后,可将卷资源扩展到节点LK2:
扩展设定中优先级变为10,其它设定不变,一路Next后:
点击Finish后,LifeKeeper GUI显示如下:
l
建立DB2资源
在建立DB2资源前,创建<系统盘>/LK/subsys/DB2目录,将restore.ksh、remove.ksh、quickchk.ksh三个脚本文件(请向项目部索取)拷贝至该目录下。
点击,选择Generic Application:
选择回切类型为INTELLIGENT:
输入之前添加在<系统目录>/LK/subsys/db2目录中的restore.ksh文件:
输入之前添加在<系统目录>/LK/subsys/db2目录中的remove.ksh文件:
输入之前添加在<系统目录>/LK/subsys/db2目录中的quickchk.ksh文件:
删除Deep Check Script文本框中的内容:
删除Local Recovery Script文本框中的内容:
在Application info文本框中根据需要输入DB2资源的相关信息:
将Bring Resource in service设定为Yes:
输入资源标签,用以标识该资源:
点击Create开始创建资源:
和IP资源、卷资源一样,DB2资源在节点LK1完成后,需扩展至节点LK2;一路Next后,完成资源创建:
l
建立资源间的依赖关系
右键点击DB2资源对应的绿色圆点,选中Create Dependency:
选择要加入DB2资源组的资源,首先将卷资源加入DB2资源组:
接着加入虚拟IP资源:
全部完成后,GUI界面显示为:
注意:在做以下的操作前先将2台机器中WINDOWS服务中的DB2服务改为“手动”启动
DB2
客户路由配置:现在命令行输入db2cmd,然后弹出新的命令行
在LK1数据库服务器上
C:>db2 connect to netdb
C:>db2 update alternate server for database netdb using hostname 172.17.20.4 port 50000
在LK2数据库服务器上
C:>db2 connect to netdb
C:>db2 update alternate server for database netdb using hostname 172.17.20.3 port 50000
组件服务器注册表修改设置
:
媒质:
[HKEY_LOCAL_MACHINESOFTWARESOBEYPUBLICSOBEYDBMANAGE]
DatabaseType=DB2
Servername=172.17.20.100
DatabaseName=netdb ( 即DB2 实例名)
Userid=sbnetdba (即DB2 用户名)
DatabaseType=DB2
Servername=172.17.20.100
DatabaseName=netdb ( 即DB2 实例名)
Userid=sbnetdba (即DB2 用户名)
[HKEY_LOCAL_MACHINESOFTWARESOBEYPUBLICSobeyNetDB]
DBMS Type=IBMDB2
ServerName=172.17.20.100
DatabaseName=netdb ( 即DB2 实例名)
UserName=sbnetdba (即DB2 用户名)
password=sbnetdba (即DB2 用户密码)
DBMS Type=IBMDB2
ServerName=172.17.20.100
DatabaseName=netdb ( 即DB2 实例名)
UserName=sbnetdba (即DB2 用户名)
password=sbnetdba (即DB2 用户密码)
l
简单测试
以上步骤完成后,LifeKeeper主备式群集就配置完成了。下面做一些简单的双机切换测试:
1
、 通过db2cmd在节点LK1上创建一张零时表,insert into一些数据;
2
、 手工切换资源组;在当前Active的LK1中,选择DB2B并右键点击运行”Out of Ssevice
或者在standby 上,右键点击运行”In Ssevice.正常切换后为:
3
、 在节点LK2上察看该表信息,若正确,可初步认定该LifeKeeper群集工作正常;
注意事项及日常维护
l
日常维护
日常检查,只需观察Lifekeeper管理界面的资源状态(资源在主机,为绿色的圆点,备机为灰色圆点)和Data Replicaton的镜像卷的状态(mirroring)。
l
工作机升级维护
工作机lk1如果需要维护或者升级,需手工将资源切换至备机lk2,等待备机lk2完全接管后,将工作机lk1关闭,断网维护;维护完成后,将lk1连接网线后重新开机,lk1启动完成后,察看Data Replicaton的镜像卷的状态,当镜像卷的状态为mirroring后,可认定LifeKeeper群集已正常工作。
l
关闭工作机
正常关闭工作机lk1(开始=〉关机)不会导致资源切换,LifeKeeper会认为当前处于管理员维护模式。
强行关闭工作机lk1(非正常关机)或者主机失效,会导致资源切换,所有资源会被备机lk2接管。当lk1重新回到网络中,lk2会自动向lk1进行同步。同步完成后,可以将lk2接管的资源重新切换到lk1。
l
关闭备机
关闭备机,对工作机lk1的应用没有影响,群集可以正常工作。当备机lk2回到网络中,如果有镜像卷存在,工作机lk1回自动向备机lk2进行同步,管理员不需要其他维护。
l
资源失效
若工作机lk1上LifeKeeper保护的资源失效,备机lk2会接管工作机lk1上的资源,在接管的时间内,应用会中断,在备机lk2完全接管成功后,应用可以正常工作。
l
关于镜像
在镜像正常的情况下,工作机lk1到备机lk2是Mirrorring状态。在切换过程中,镜像状态会有所变化,最终会恢复到Mirrorring状态;对于异常情况,可能会出现Broken,mirror pause状态或者None状态,此时可以选择重新同步或者删除卷(不会影响卷上面的数据)。
l
开关机顺序
关机:先关备机lk2,等备机lk2关闭后,关闭工作机lk1。
开机:先开工作机lk1,等待工作机lk1完全启动后,再开备机lk2,LifeKeeper初始化结束后可以正常工作;当镜像卷状态变为mirroring后,表明LifeKeeper群集系统已正常工作。
l
卸载软件
删除建立好的所有资源,停止LifeKeeper服务后,可以安全卸载,不会影响DB2数据。
l
注意
如果网线被切断,在将网线接回网卡之前,应将相应节电重新启动。在启动过程中,将网线接回到服务器上,否则可能会有IP地址冲突或镜像卷双活的状态。如果出现该状态,只要将实际没有对外提供服务的机器进行重新启动即可。
对于有镜像卷的双机系统,一定在确保镜像卷的状态为mirroring时,才可以进行切换测试及相关操作,否则会有报错。
在进行大数据量的写入时,有可能由于网络传输的能力小于数据生成的速度,会出现数据镜像同步的状态(resynchronizing),属于正常现象,等到大数量写入操作结束,数据传输完成后,会恢复到mirroring状态。