zwmbj
作者zwmbj·2016-11-16 21:12
系统架构师·深圳市华成峰实业有限公司

Linux on Power 高可用方案之TSA Redhat for Power

字数 4154阅读 4991评论 0赞 0

在互联网技术和开源大潮的影响下,Linux应用在传统行业日渐普遍。高可用性一直是传统行业IT基础架构的关键词,随着基于Linux的新兴业务的发展,如何确保架构的高可用性越来越受到关注。

Linux on Power作为基于Power芯片的Linux服务器,具备业内顶级的高RAS(高可靠性、高可用性、高可服务性)特性。目前,Linux on Power支持的高可用方案如下:

备注:Tivoli System Automation for Multiplatforms (TSA MP)是一套具备高级自动化能力的持续性高可用集群解决方案,它可以监控和自动化启停操作,并在集群中对应用和应用组件进行恢复。

本文主要介绍Linux on Power高可用方案之TSA Redhat for Power的测试方案和实践,供大家参考。

一、 方案测试目的

本次测试为Linux on Power平台,在PowerVM虚机上安装Redhat Enterprise Linux for Power 6.4版本。测试安装TSA构建Oracle 10g数据库高可用集群,并验证故障切换场景。

二、 设备拓扑

三、测试准备

预先创建两台PowerVM虚机,并安装好RHELfor Power 6.4操作系统,划分存储卷并映射到虚机,在Linux中可以看到存储卷设备。执行以下准备工作:

  1. Redhat Enterprise Linux for Power, 6.x版本,已安装在两台PowerVM虚拟机;
  2. 两台PowerVM虚拟机均已挂载FC共享存储,且可正常访问;
  3. Oracle数据库10g版本已在两台linuxon power安装,且已创建Instance,数据文件位于共享FC存储所挂载目录之上;
  4. 按故障切换所需场景手工进行切换测试:假设主机TSA01是正常服务的Oracle实例,挂载共享存储于/oradata下; TSA02是备机,未挂载共享存储,未启动oracle;
  • 4.1. TSA01上正常关闭oracle,且umount共享存储,然后手工在TSA02上挂载共享存储于/oradata下,启动oracle,验证oracle能正常启动且正常访问数据;
  • 4.2. TSA01正常关机或意外断电关机,手工在TSA02上挂载共享存储于/oradata下,启动oracle,验证oracle能正常启动且正常访问数据;
  • 4.3. TSA01上拔掉网线或光纤,手工在TSA02上挂载共享存储于/oradata下,启动oracle,验证oracle能正常启动且正常访问数据;

只有以上手工场景能够正常执行,TSA才可以检测oracle状态,自动进行故障切换。请在装TSA前确认以上条件均已满足。

5.指定一个serviceIP,作为共享ip,并在oracle中创建一个新的listener,监听此serviceIP.该serviceIP需配置到/etc/hosts中。

四、安装TSA

4.1安装前检查如下条件

  1. 检查两个node上的Hostname配置,看是否正常配置
  2. 修改两个node的etc/hosts,里面要包含两个node的主机名
  3. 检查2个node,必须采用相同的eth设备进行连接
  4. 检查/etc/rc.d,确保oracle没有自动启动
  5. 修改2个node,Fstab增加一行

/dev/dm-3 /oradata ext3 noauto 0 0

4.2安装步骤

1.先装TSA3.2.2,进入安装包解压目录

./prereqSAM

./installSAM

2.如果有SAP License,需要导入license。它提供了针对SAP, Oracle和NFS的配置向导,可以使用开箱即用的针对SAP, Oracle和NFS的高可用策略。如果没有SAP License,那么就需要自己配置生成所需的高可用策略。(本文针对SAP License配置Oracle的高可用策略).

samlicm–i license_file , 倒入License

samlicm–s ,列出查看所安装的License.

3.升级到TSA3.2.2FP4,进入安装包解压目录

./installSAM

4.打storage patch

rpm-Uvh --force rsct.opt.storagerm-3.1.4.3-13017.ppc.rpm

5.执行export CT_MANAGEMENT_SCOPE=2,并加到~/.bash_profile

6.对oracle数据卷打标签:

tune2fs-L <label> <device>

其中<label>是给一个标签名称,字符控制在10个以内;<device>为oracle数据卷的设备名,如/dev/sdb1

4.3 配置TSA高可用策略

  1. 准备TSA节点,在两台机器分别执行:preprpnode TSA01 TSA02
  2. 创建Domain,在任意节点执行:mkrpdomain oracle_domainTSA01 TSA02
  3. 启动Domain, 在任意节点执行: startrpdomain oracle_domain
  4. 运行策略生成向导:

sampolicy-w /usr/sbin/rsct/sapolicies/oracle/samora_templateOracle.tmpl.xml

一共15步,添入oracle相关参数,完成向导,并根据提示激活策略。

生成的策略文件存放地址可以通过cfgsamadapter图形化配置工具查看,以后如需重新激活策略,可以直接使用xml策略文件,手工激活策略文件

sampolicy-a -t samora_templateOracle.tmpl.xml

4.4 配置TieBreaker

mkrsrcIBM.TieBreaker Type="EXEC" Name="mynetworktb"DeviceInfo='PATHNAME=/usr/sbin/rsct/bin/samtb_net Address=172.24.23.254 Log=1'PostReserveWaitTime=30

其中Address IP地址为任意可访问的ip地址,例如网关,作为网络仲裁条件。

chrsrc-c IBM.PeerNode OpQuorumTieBreaker="mynetworktb" 激活TieBreaker

lsrsrcIBM.TieBreaker 查看TieBreaker

4.5查看集群状态

lssam –top

4.6 备注:测试中所需使用的命令

集群上线:

chrg-o online oracle-rg

集群下线:

chrg-o offline oracle-rg

集群Move:

rgreq-o move oracle-rg

samctrl-M T, 只做监控,不做切换;

samctrl–M F, 恢复监控和切换;

重置资源:

resetrsrc-s 'Name=="oracle-db"' IBM.Application

resetrsrc-s 'Name=="oracledatafs"' IBM.AgFileSystem

4.7测试场景

1.手工进行TSA切换测试

  • lssam -top观察TSA已经上线,并验证oracle数据库可以正常访问
  • 执行rgreq -o move oracle-rg进行手工切换,观察oracle实例从活跃节点转移到了热备节点,并可正常访问

2.关闭oracle实例,观察TSA动作

  • 在活跃节点上执行命令关闭oracle数据库
  • 观察TSA动作,它会尝试重新启动oracle数据库,如果活跃节点能正常启动,则不做迁移;如果不能启动,则启动oracle迁移动作,迁到热备节点

3.活跃节点关机(或断电), 观察TSA动作

  • 通过操作系统命令关机:shutdown –nfh now,执行快速关机
  • lssam -top观察oracle实例迁移到热备节点

4.拔掉活跃节点的网线,观察TSA动作

  • 拔掉网线,或ifconfig down关掉网卡,观察TSA动作
  • lssam -top观察oracle实例迁移到热备节点

5.拔掉光纤线,观察TSA动作

注:需在TSA服务器打存储补丁:rsct.opt.storagerm-3.1.4.3-13252.ppc.rpm

  • 拔掉光纤线,观察TSA动作。TSA会在该活跃节点尝试重启所有资源,直到默认的时间间隔。这个时间可以在配置文件进行设置:/var/ct/cfg/StorageRM.cfg
  • lssam -top观察oracle实例迁移到热备节点。这时候,由于被拔掉光纤的原因,资源状态会显示成红色的“Failed Offline”状态;
  • 插回光纤,需要重置改节点的文件系统资源和数据库资源:

如果在TSA01上的资源状态是'Failed Offline',插回光纤,需要以下资源重置操作:(有顺序的。等fs状态好了再起oracle-db.)

resetrsrc -s 'Name="oracledatafs" && NodeNameList="TSA01"' IBM.AgFileSystem

resetrsrc -s 'Name="oracle-db" && NodeNameList="TSA01"' IBM.Application

如果在TSA02上的资源状态是'Failed Offline',插回光纤,需要以下资源重置操作:

resetrsrc -s 'Name="oracledatafs" && NodeNameList="TSA02"' IBM.AgFileSystem

resetrsrc -s 'Name="oracle-db" && NodeNameList="TSA02"' IBM.Application

  • 可以用以下命令再把oracle切换回原始节点:

rgreq -o move oracle-rg

TSA 为构建高可用性和灾难恢复解决方案提供了出色的技术。企业应该根据业务需求、可用选项和解决方案需求来做出选择,Linux on Power是一个笔者推荐的平台。本文中讨论的这些要点可为进一步研究和评估提供一个很好的框架。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

最佳实践
不同的领域,都有先行者,实践者,用他们的最佳实践来加速更多企业的建设项目落地。

相关文章

相关问题

相关资料

X社区推广