A机、B机HACMP不能相互接管,一般主要表现在两个方面:
1、 双机的HACMP参数配置、某些系统参数的配置以及双机应用环境设置是否符合实际需求;
2、 接管时,占有资源的机器是否能合理地释放资源
HACMP为我们测试高可用性环境提供了一个很有用的工具, 这就是停止hacmp的一种方式-----graceful
with takeover(正常关闭并让另一方接管),要测试双机,可以按照如下面步骤进行:
一、隔离应用测试
1、 检查双机卷组状态(lsvg -o),文件系统情况(df),网卡状态及IP(netstat -in),/etc/hosts表;
2、 隔离应用。为了不改变原有HACMP配置,可将应用脚本中的命令注释掉,或者将这些应用脚本的执
行权限取消掉(chmod a-x filename),或将原有文件备份,将原有文件清空,增加一banner提示;
3、 在A机、B机启动HACMP(smitty clstart);
4、 跟踪/tmp/hacmp.out(tail -f /tmp/hacmp.out),直到node_up_complete事件完毕。检查双机
hacmp状态(clstat),卷组状态(lsvg -o),文件系统状态(df),网卡及路由状态
(netstat), cluster进程状态(lssrc -g cluster)。如果不能得到预期的结果,则需要检查
hacmp及系统配置;
5、 在A机执行smitty clstop, 选择graceful with takeover;
6、 跟踪双机的/tmp/hacmp.out(tail -f /tmp/hacmp.out),检查双机hacmp状态(clstat),卷组状态
(lsvg -o),文件系统状态(df),网卡及路由状态(netstat) ,cluster进程状态
(lssrc -g cluster)。如果不能得到预期的结果,则hacmp.out文件中应有相应的FAILURE EVENT的
提示,可依此对hacmp及系统进行检查;
7、 如果情况正常,A机的资源被B机接管,则回到A机,执行smit clstart启动HACMP;
8、 跟踪双机的hacmp.out(tail -f /tmp/hacmp.out),检查双机cluster状态(clstat,lssrc -g
cluster),卷组状态(lsvg -o),文件系统状态(df),网卡及路由状态(netstat) 。如果A机不能取
回资源,检查hacmp.out文件,查找FAILURE EVENT信息,然后hacmp及系统进行检查;
9、 如果以上情况都正常,则说明hacmp在没有应用干预的情况下,双机工作正常。可停止双机hacmp
(smitty clstop)进行如下的测试。
二、加载应用测试
10、 检查双机卷组状态(lsvg -o),文件系统情况(df),网卡状态及IP(netstat -in),检查应用脚本权
限、属主,内容(将原先脚本复原)。
11、 在A机执行smitty clsart,。
12、 跟踪hacmp.out,检查是否被正常启动,检查卷组、文件系统、应用进程、网卡ip地址,同时还可
以进行简单的应用测试。如果应用没被启动,则需要检查应用启动脚本以及应用环境。
13、 如应用正常,则执行smitty clstop,选择graceful;
14、 检查hacmp.out、卷组、文件系统、cluster进程、网卡IP地址。如果其中出现以下情况将不能停止:
1) 文件系统没有被unmount,检查还有哪些进程在使用它(fuser -u filesystem),然后对应用脚
本进行优化。
2) 文件系统被unmount,但卷组没被varyoff,检查lsvg -l vgname,查看是不是还有lv是open状
态,检查还有哪些进程在使用它(fuser -u /dev/lvname),然后对应用脚本进行优
化。
* 如果以上方法都无效,可尝试如下方法,在停止应用脚本未尾增加如下几行:
sleep 30
fuser -ku /filesystem(将正在使用文件系统的进程强迫杀掉)
fuser -ku /dev/lvname(将正在使用逻辑卷的进程强迫杀掉)
15、 如果上述情况正常,则证明机器A机应用脚本没有问题。现在开始启动双机的HACMP(smitty clstart);
16、 在A机执行smitty clstop, 选择graceful with takeover;
17、 跟踪双机的/tmp/hacmp.out(tail -f /tmp/hacmp.out),检查双机hacmp状态(clstat),卷组状态
(lsvg -o),文件系统状态(df),网卡及路由状态(netstat) ,cluster进程状态(lssrc -g cluster)。
出现问题的原因可能有两种:
1) A机cluster进程一致处在stopping状态(lssrc -g cluster),A机hacmp.out有fail event信
息,这时可考虑在A机停止脚本后加一时间延迟,如sleep 100。
2) A机资源正常释放,B主机卷组、文件系统、网卡地址都正常接管,但应用未启动,此时应检
查B机应用启动脚本属性、内容以及应用环境。
18、 如果情况正常,则说明B机接管A机的资源正常。再在A机,执行smit clstart启动HACMP;
19、 跟踪双机的hacmp.out(tail -f /tmp/hacmp.out),检查双机cluster状态(clstat,lssrc -g
cluster),卷组状态(lsvg -o),文件系统状态(df),网卡及路由状态(netstat) 。如果A机不能取回
资源,参考14和17;
以上测试只是针对资源组是casscading方式,并且A机的优先级比B机高。要测试以B机为主的资源组,同样可参照
上述方法。
检查HACMP常用命令:
1、 检查文件系统状态
#df
2、 检查网卡及IP地址状态
# netstat -in
3、 查看路由表
#netstat -rn
4、 检查卷组
# lsvg
# lsvg -o 检查激活的卷组
# lsvg vgname 检查卷组的属性,卷组的有效空间、利用空间、空闲空间,卷组是否启动激活
# lsvg -l vgname 检查卷组包含的逻辑卷
5、 检查物理卷
# lspv
# lspv pvname 检查物理卷属性,空间使用情况
6、 性能分析检查
# vmstat m n (m表示显示行数,n表示间隔时间)
7、 页空间使用情况
# lsps -a
# lsps -s
8、 进程状态检查
# ps -ef
# ps aux
9、 HACMP CLUSTER进程状态检查
# lssrc -g cluster
# ps -ef | grep cluster
10、 检查双机节点运行状态
# /usr/sbin/cluster/clstat (clinfo进程必须启动)
11、 启动、停止HACMP
# smitty clstart(推荐) & # rc.cluster & # startsrc -g cluster
# smitty clstop(推荐) & # clstop & # stopsrc -g cluster
12、捕获hacmp启停事件状态信息 tail -f /tmp/hacmp.out