WEB开发网
开发学院操作系统Linux/Unix 使用 SSA Target 模式配置 HACMP 阅读

使用 SSA Target 模式配置 HACMP

 2008-11-11 08:14:39 来源:WEB开发网   
核心提示:配置 SSA Target ModeHACMP 的工作原理是利用 LAN 来监控主机及网络、网卡的状态,在一个 HACMP 环境中有 TCP/IP 网络和非 TCP/IP 网络,使用 SSA Target 模式配置 HACMP,TCP/IP 网络即应用客户端访问的公共网,该网可以是大多数 AIX 所支持的网络,用户可以

配置 SSA Target Mode

HACMP 的工作原理是利用 LAN 来监控主机及网络、网卡的状态。在一个 HACMP 环境中有 TCP/IP 网络和非 TCP/IP 网络。TCP/IP 网络即应用客户端访问的公共网,该网可以是大多数 AIX 所支持的网络,如 Ethernet,T.R.,FDDI,ATM,SOCC,SLIP,等等。非 TCP/IP 网络用来为 HACMP 对 HA 环境(Cluster)中的各节点进行监控而提供的一个替代 TCP/IP 的通讯路径,它可以是用 RS-232 串口线将各节点连接起来,也可以是将各节点的 SCSI 卡或 SSA 卡设置成 Target Mode 方式。

我们的环境是一台 F85,一台 43P140,操作系统为 AIX5.1ML9,HACMP 版本为 5.1。由于 140 机型比较老,线序与市场上一般使用的 RS-232 线序不同,我们在市场中购买的普通 RS-232 9 针母对母串口线将两台机器连接起来并正确配置 tty0 设备后,两台机器不能正常通讯,则放弃使用 RS-232 串口线作为心跳线的方案。实验环境使用的共享存储是 IBM 7133 D40,其采用 SSA 卡与两台主机相连,我们则考虑使用 SSA 的 Target Mode 做心跳的方案。

本文假设读者已经配置过基于 RS-232 的 Cluster,了解 HACMP 的具体步骤。

配置 SSA Target Mode

如希望使用 SSA 卡的 Target Mode,则需要安装 devices.ssa.tm.rte 驱动。所有 SSA 驱动安装好后,使用:

#lsdev –C |grep ssa

系统将列出下面设备

ssa0 Available 04-01 IBM SSA 160 SerialRAID Adapter (14109100)
ssar Defined SSA Adapter Router

我们的 HACMP 环境网络部分规划如下:

43P140 F85
主机名称 test140 test85
网络掩码 255.255.255.0 255.255.255.0
IP 地址规划
en0 test140_boot:192.168.1.140

test140_svc:192.168.2.140

test185_boot:192.168.1.85

test185_svc:192.168.2.85

en1 test140_stb:192.168.3.140 test185_stb:192.168.3.85
ssatm /dev/tmssa140 /dev/tmssa85

如下图所示:

实验环境拓扑图

使用 SSA Target 模式配置 HACMP

其中,140 上采用 SSA Target Mode 设备为 /dev/tmssa140,F85 上采用 SSA Target Mode 设备为 /dev/tmssa85,因此需要在两台机器上进行如下配置。

在 43P140 上执行:

#chdev -l ssar -a node_number=85

其中 node_number=85 为 43P140 为 F85 配置的设备名称,该命令成功后,使用

#lsdev –C |grep ssa

系统将会增加 tmssar 设备:

ssa0 Available 04-01 IBM SSA 160 SerialRAID Adapter (14109100)
ssar Defined SSA Adapter Router
tmssar Available Target Mode SSA Router

在 F85 上执行:

#chdev -l ssar -a node_number=140

其中 node_number=140 为 F85 为 43P140 配置的设备名称,该命令成功后,使用命令:

#lsdev –C |grep ssa

系统将会增加 tmssar 设备:

ssa0 Available 04-01 IBM SSA 160 SerialRAID Adapter (14109100)
ssar Defined SSA Adapter Router
tmssar Available Target Mode SSA Router

此时在 43P140 上运行:

#cfgmgr -v

命令结束后,运行:

#ls –al /dev/ |grep ssa

应出现以下设备:

crw-rw-rw- 1 root system 18,4096 Oct 12 02:57 dssa0
crw-rw-rw- 1 root system 18, 0 Oct 12 02:57 ssa0
c-wx------ 1 root system 53, 0 Jan 01 13:28 tmssa140.im
cr-x------ 1 root system 53, 1 Jan 01 13:28 tmssa140.tm
cr-------- 1 root system 53,65535 Jan 01 13:28 tmssako

在 F85 上运行:

#cfgmgr -v

命令结束后,运行:

#ls –al /dev/ |grep ssa

应出现以下设备:

crw-rw-rw- 1 root system 18,4096 Oct 12 02:57 dssa0
crw-rw-rw- 1 root system 18, 0 Oct 12 02:57 ssa0
c-wx------ 1 root system 53, 0 Jan 01 13:28 tmssa85.im
cr-x------ 1 root system 53, 1 Jan 01 13:28 tmssa85.tm
cr-------- 1 root system 53,65535 Jan 01 13:28 tmssako

因为两台机器的速度差异,有可能运行 cfgmgr 命令后,上述设备未出现,此时分别在两台机器上再次运行 cfgmgr 即可。

测试 SSA Target Mode 连通性。

当在 43P140 上出现可用的设备 tmssa140.tm,tmssa140.im,F85 上出现可用的设备 tmssa85.tm,tmssa85.im 后 SSA Target Mode 配置完成。我们为了避免混淆,采用了与 IP 地址相同的 nodenum,而系统仅仅要求每个 nodenum 不同即可。下面我们测试 SSA Target Mode 的连通性

在 43P140 上执行命令 :

#cat < /dev/tmssa140.tm

在 F85 上执行

#cat /etc/hosts > /dev/tmssa85.im

在 43P140 上出现了 F85 主机上 hosts 文件的内容,表示 SSA Target Mode 通信成功。如果测试失败,需要检查 SSA 卡与 IBM 7133 D40 连接情况,查看系统 ERRPT,并使用 Diagnostic Service Aids 对 SSA 卡进行诊断。

配置 HACMP

配置 AIX 网络部分

我们先使用的是 smit mktcpip 菜单配置网络接口的 IP 地址,由于该菜单会同时修改希望的 DNS、网关、主机名称等,不太方便,因此我们使用命令行配置 IP 地址。

根据网络规划,我们在 43P140 上依次执行以下命令:

#chdev –l en0 –a netmask=255.255.255.0
#chdev –l en0 –a netaddr=192.168.1.140
#chdev –l en0 –a alias4=192.168.2.140
#chdev –l en0 –a state=up
#chdev –l en1 –a netmask=255.255.255.0
#chdev –l en1 –a netaddr=192.168.3.140
#chdev –l en1 –a state=up

我们在 F85 上依次执行以下命令:

#chdev –l en0 –a netmask=255.255.255.0
#chdev –l en0 –a netaddr=192.168.1.85
#chdev –l en0 –a alias4=192.168.2.85
#chdev –l en0 –a state=up
#chdev –l en1 –a netmask=255.255.255.0
#chdev –l en1 –a netaddr=192.168.3.85
#chdev –l en1 –a state=up

在 43P140 和 F85 的 /etc/hosts 文件和 /.rhosts 文件中增加如下内容:

/etc/hosts /.rhosts
192.168.1.140 test140_boot

192.168.2.140 test140_svc

192.168.3.140 test140_stb

192.168.1.85 test85 _boot

192.168.2.85 test85 _svc

192.168.3.85 test85 _stb

test140_boot

test140_svc

test140_stb

test85 _boot

test85 _svc

test85 _stb

规划 Cluster

我们的 Cluter 规划如下:

43P140 F85
Cluster name db2_cluster db2_cluster
node name db2_140 db2_85
Network net_ether_01 net_ether_01
Network test140_boot

test140_stb

test140_svc

test85_boot

test85_stb

test85_svc

非 IP Network net_tmssa_01 net_tmssa_01
非 IP Network tmssa_140 /dev/tmssa140 tmssa_85 /dev/tmssa85
Resource Group
Group Name db2_gr1 db2_gr2
Cluster Mode cascading cascading
Cluster Node db2_140, db2_85 db2_85 ,db2_140
Service IP Label test140_svc test85_svc
Share VG

Share LV

Share FS

db2_vg

db2_lv

db2_fs

db2_vg

db2_lv

db2_fs

Application Server db2_svr db2_svr

配置 Cluster

我们使用 smit hacmp 菜单,依次配置 Cluster Definition、Cluster Nodes、IP Network、非 IP Network、Resource Group、Application Server

我们假设读者已经配置基于 RS-232 的 Cluster,在这里不详细列举每项配置。我们把非 IP 的配置过程列出。首先增加网络选择 Pre-defined Serial Device Types 中的 tmssa:

Add a Serial Network to the HACMP Cluster
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Network Name [net_tmssa_01]
* Network Type tmssa

在完成网络增加后,增加通信设备,选择 Add Communication Interfaces/Devices,选择 Pre-Defined Communication type 中的 Communication Devices,分别增加 tmssa_140 和 tmssa_85。

Add a Communication Device
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Device Name [tmssa_140]
* Network Type tmssa
* Network Name net_tmssa_01
* Device Path [/dev/tmssa140]
* Node Name [db2_140] +
  
Add a Communication Device
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Device Name [tmssa_85]
* Network Type tmssa
* Network Name net_tmssa_01
* Device Path [/dev/tmssa85]
* Node Name [db2_85] +

在完成所有 Cluster 的定义后执行 Verify and Synchronize HACMP Configuration 即可完成配置。

验证 Cluster

网卡故障验证

网络接口故障:

用命令:# ps -ef | grep cluster,确认所有节点上的 HACMP 已启动,其中至少包括 HACMP 主进程 clstrmgr,HACMP 通讯进程 clcomd。

root 13286 7228 0 Jan 20 - 0:57 /usr/es/sbin/cluster/clcomd -d
root 84982 7228 0 09:25:45 - 0:00 /usr/es/sbin/cluster/clsmuxpd
root 88014 7228 2 09:25:34 - 0:00 /usr/es/sbin/cluster/clstrmgr

用命令:# errclear 0,清空系统错误日志。

用命令:# tail -f /tmp/hacmp.out,监控 HACMP 的运行状态。

用命令:# ifconfig en0 down,宕掉 Service 网卡。

用命令:# netstat -in,查看 Standby 网卡是否接管了宕掉的 Service 网卡的 IP 地址,,输出如下:

en1 1500 link#2 0.6.29.dc.d5.88 1289860 0 130 0 0
en1 1500 192.168.3 192.168.3.140 1289860 0 130 0 0
en1 1500 192.168.2 192.168.2.140 1289860 0 130 0 0
en0* 1500 link#3 0.6.29.bc.b.a4 1793526 0 546358 0 0
en0* 1500 192.168.1 192.168.1.140 1793526 0 546358 0 0
lo0 16896 link#1 1174 0 18305 0 0
lo0 16896 127 127.0.0.1 1174 0 18305 0 0
lo0 16896 ::1 1174 0 18305 0 0

用命令:# ifconfig en0 up 重新启动 en0,ifconfig en1 down,宕掉接管了 Service 网卡 IP 地址 Standby 网卡。

用命令:# netstat -in,查看 boot 网卡是否将 IP 地址接管回来,输出如下:

en1* 1500 link#2 0.6.29.dc.d5.88 1289860 0 130 0 0
en1* 1500 192.168.3 192.168.3.140 1289860 0 130 0 0
en0 1500 link#3 0.6.29.bc.b.a4 1793526 0 546358 0 0
en0 1500 192.168.1 192.168.1.140 1793526 0 546358 0 0
en0 1500 192.168.2 192.168.2.140 1289860 0 130 0 0
lo0 16896 link#1 1174 0 18305 0 0
lo0 16896 127 127.0.0.1 1174 0 18305 0 0
lo0 16896 ::1 1174 0 18305 0 0

网络故障

如果发往 node1 上的 service 和 standby 网卡上的 K-A (Keep-Alive 信息 ) 包全都丢失,而非 TCP/IP 网络上的 K-A 仍然存在,那么 HACMP 判断 node1 仍然正常而网络发生故障。此时 HACMP 执行一个 network_down 事件。

网卡连接电缆故障:

用命令:# ps –ef | grep cluster,确认所有节点上的 HACMP 已启动。

用命令:# errclear 0,清空系统错误日志。

用命令:# tail –f /tmp/hacmp.out,监控 HACMP 的运行状态。

断开与 Service 网卡连接的网线。

用命令:# netstat –in,查看 Standby 网卡是否接管了 Service 网卡的 IP 地址

重新连接上与原 Service 网卡连接的网线。

用命令:# netstat –in,查看此时原 Service 网卡的 IP 地址是否为原 Standby 网卡的 IP 地址。

断开与原 Standby 网卡连接的网线。

用命令:# netstat –in,查看 Service 网卡的 IP 地址是否恢复为原来的 Service 网卡的 IP 地址。

重新连接上与 Standby 网卡连接的网线。

用命令:# netstat –in,查看 Standby 网卡的 IP 地址是否恢复为原来的 Standby 网卡的 IP 地址。

节点故障

如果不仅 TCP/IP 网络上的 K-A 全部丢失,而且非 TCP/IP 网络上的 K-A 也丢

失,那么 HACMP 断定该节点发生故障,并产生 node-down 事件。此时将有资源接管,

即放在共享磁盘陈列上的资源将由备份节点接管,接管包括一系列操作:

Acquire disks

Varyon VG

Mount file systems

Export NFS file systems

Assume IP networkAddress

Restart highly available applications

其中 IP 地址接管和重新启动应用由 HACMP 来实现,而其它是由 AIX 来完成。

当整个节点发生故障时,HACMP 将故障节点的 service IP address 转移到备份节点上,使网络上的 client 仍然使用这个 IP 地址,这个过程称为 IP 地址接管

(IPAT)。当一个节点 down 掉后,如果设置了 IP 地址接管,网络上的 clients 会自动连接到接管节点上;同样,如果设置了应用接管,该应用会在接管节点上自动重启,从而使系统能继续对外服务。对于要实现接管的应用,只需在 HACMP 中把它们设置成 application server, 并告诉 HACMP 启动这个应用的 start script 的全路径名和停止该应用的 stop script 的全路径名。由此可见,应用接管的配置在 HACMP 中十分简单,重要的是 start script 和 stop script 的编写,这需要用户对自己应用的了解。

模拟操作系统崩溃

用命令:# ps –ef | grep cluster,确认所有节点上的 HACMP 已启动。

用命令:# errclear 0,清空系统错误日志。

用命令:# tail –f /tmp/hacmp.out,监控 HACMP 的运行状态。

用命令:# cat /etc/hosts > /dev/kmem,模拟操作系统崩溃状态。

用命令:# netstat –in ,# lsvg –o,# ps –ef APP_PID(APP_ID 为应用程序进程的 ID),查看备份节点是否接管了故障节点的 Service 地址、共享卷组和应用程序。

(故障节点修复中 ......................)

重新启动故障节点,并启动 HACMP。

用命令:# netstat –in,# lsvg –o,# ps –ef APP_PID,查看该节点是否将原属于他的 Service 地址、共享卷组和应用程序接管回来了。

模拟 CPU 故障

用命令:# ps –ef | grep cluster,确认所有节点上的 HACMP 已启动。

用命令:# errclear 0,清空系统错误日志。

用命令:# tail –f /tmp/hacmp.out,监控 HACMP 的运行状态。

直接断开某个节点的电源,模拟 CPU 故障(此操作有一定风险,请谨慎使用)。

用命令:# netstat –in,# lsvg –o,# ps –ef APP_PID,查看备份节点是否接管了故障节点的 Service 地址、共享卷组和应用程序。

(故障节点修复中 ......................)

重新启动故障节点,并启动 HACMP。

用命令:# netstat –in,# lsvg –o,# ps –ef APP_PID,查看该节点是否将原属于他的 Service 地址、共享卷组和应用程序接管回来。

总结

IBM HACMP 的配置和使用十分灵活,用户可以根据实际情况选择 RS-232 模式、SCSI Target 模式、SSA Target 模式或者 Enhanced Concurrent Mode Disk HB 配置 Non-IP Network。SSA Target 模式具有速度快、可靠性高等特性,在使用 IBM 7133 作为共享存储时不失为一种较好的非 IP 网络心跳选择方案。

Tags:使用 SSA Target

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接