一个VERITAS集群服务器的应用实例.doc_第1页
一个VERITAS集群服务器的应用实例.doc_第2页
一个VERITAS集群服务器的应用实例.doc_第3页
一个VERITAS集群服务器的应用实例.doc_第4页
一个VERITAS集群服务器的应用实例.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一个VERITAS集群服务器的应用实例北航SAP航材系统高可用性方案的实现邓曙康中国南方航空集团北方公司信息中心 摘要 北航SAP航材系统的实施是南航集团北方公司在航材管理ERP之路上迈出的重要一步。应用的关键性决定了实施高可用性方案的必要性。本文介绍了北航SAP系统的VCS方案和具体实现方法。主要有以下内容: 简介现有的集群方式,及本方案集群方式和软件的选择原因; 阐述VCS集群内资源的具体配置方法; 使用shell脚本实现对SAP R/3应用启停的控制,满足特定的系统管理需求。关键词 高可用性(HA) Veritas Cluster Server agent 服务组1 引言今天,大型企业的运行管理和业务操作与信息系统的结合越来越紧密,对应用和数据的可靠性要求也越来越高,高可用性(HA)已经成为企业级关键应用解决方案中不可缺少的部分。北航SAP航材系统是企业资源计划(ERP)应用于航空公司的一个实例,它采用了SAP R/3软件的财务会计(FI)、物料管理(MM)、销售和分销(SD)、设备维护(PM)四个模块,为航材存货订货和资金周转提供了管理平台,对机务维修和安全飞行起着重要的保障作用。如何将高可用性方案和北航SAP系统架构特点融合在一起,既能实现对包括SAP R/3在内的所有应用的保护,又能满足特定的系统管理需求,是这一方案要解决的主要问题。2 HA方案概述2.1 方案选择集群系统和相应的冗余配置是实现系统保护的主要方式。集群系统可分为以下几种。 共享数据,共享磁盘(Shared-data Cluster):当节点切换时备用节点会接管原来的磁盘和数据。包括切换式和并行式。 共享数据,不共享磁盘(Replicated-Data Cluster):采用复制技术将数据复制到另外的磁盘上,对承载数据的磁盘实现了冗余。只包括切换式。 不共享数据:当主节点故障后,备用节点的应用程序采用另外的不同数据。包括切换式和并行式。为了既能够保证冗余和负载能力,又相对提高系统的成本效率,本方案选择了共享数据和磁盘的切换式集群,软件选用了Veritas Cluster Server(VCS)。VCS是基于应用级的高可用性多机应用软件,可保证一旦任何应用出现故障,该应用系统会迅速切换到其它服务器上去。Cluster内的任意一个节点均可作为控制台,配置结束自动更新所有节点。VCS支持多种应用和资源的检测和切换,包括Web Server 、IP、数据库、多网卡、NFS、文件系统、Disk、进程、SNMP、Netbackup和HSM等。VCS软件捆绑的agent和其它商业agent可以实现上述诸多应用和资源的控制。本方案的难点有两个。一是在正常情况下备用节点运行自己的SAP应用,因而要求在切换时能够停掉备用节点上的应用程序(包括SAP R/3,Oracle数据库和监听器)。二是怎样对SAP R/3应用进行控制。3 方案实现3.1 北航SAP系统结构北航的SAP系统由三台服务器组成,主机名分别为sapprd、sapqas、sapdev。sapdev仅用于开发,sapqas可用于测试,sapprd作为主用生产机。操作系统平台是SUN Solaris 8,数据库软件采用oracle 8i企业版,应用程序为SAP R/3,集群软件为Veritas Cluster Server 3.5 for Solaris。由sapprd和sapqas组成集群。sapprd是主节点,正常情况下用于生产的SAP应用驻留在这台机器上。sapqas作为备用节点,正常情况下有独立的用于测试的SAP R/3应用。当主节点sapprd故障时,sapqas停掉本地的SAP R/3应用,而启动原来sapprd上SAP R/3的应用。用于生产的数据库存储在共享的磁盘阵列上。当发生failover(故障转移)时,备用节点接管磁盘阵列和上面的数据库,在本机启动整个服务组。此外,系统通过使用Veritas Cluster Server软件配置了一个虚拟的浮动IP地址,对客户端来说是唯一的服务器地址。系统结构全景如附录图A所示。3.2集群和服务组的组成本方案采用中的集群命名为vcs-cluster,由两个节点sapprd和sapqas组成,节点间用两个网口连接两条心跳线。集群内建立了一个服务组,命名为oradb。在oradb服务组中了一组资源,见下表。oradb服务组资源列表资源类型所包含的资源名称ApplicationSqlnet, SAPapp Diskdatadisk,datadisk1,datadisk2IPMultiNICipMountdatafile, datafile1, datafile2, datafile3, datafile4, datafile5, datafile6, datafile7,datafile8MultiNICAnicaOracleOracle资源之间存在依赖关系。除了底层的所有资源都依赖其下一层的资源。当服务组启动时,所有资源从下到上按层次顺序进入online状态。只有一个资源的所有下层资源都online时,它才能够online;当服务组关闭时,资源从上到下按层次顺序进入offline状态(除了那些不能进入offline状态的资源,如网卡资源MultiNICA)。oradb服务组内各个资源的依赖关系如附录图B所示。3.4资源的配置VCS中的资源可分为三种,即基本存储、网络和应用。这些资源中,Oracle使用了专用的Enterprise Agent for Oracle,其它资源都是使用VCS软件自带的agent。3.4.1 基本存储 Disk类型这一类型的三个资源都只须配置一个属性partition,属性值依次为c3t5d0s2、c3t5d1s2和c3t5d2s2,分别对应磁盘阵列上的三个逻辑卷(LUN)。 Mount类型这一类型有九个资源,对应九个文件系统,属性包括FSType,MountPoint,BlockDevice,FsckOpt和MountOpt等,用于设置文件系统的文件类型、挂接点、磁盘设备、文件系统校验选项和挂接选项。3.4.2 网络 MultiNICA类型这一类型有一个资源nica,主要的属性包括Device和Netmask。Netmask属性值根据公司局域网配置设置为255.255.255.0。Device属性值:sapprderi0 10.23.1.101 qfe2 10.23.1.101sapqasce0 10.23.1.102 qfe2 10.23.1.102Device属性的含义是,对基本IP地址10.23.1.101指定了sapprd上的两个网口eri0和qfe2,对基本IP地址10.23.1.102指定了sapqas上的两个网口ce0和qfe2。在某一时刻,每台机器上只有一个网口被赋予指定的IP地址。当第一个网口故障时,会自动failover到第二个网口。只有两个网口都故障时,才会发生服务组切换。 IPMultiNIC类型这一类型的资源ip实现一个逻辑的IP地址10.23.1.100,它被配置为MultiNICA资源nica中一个网卡的虚拟IP地址。当这个网口故障时,由下一个MultiNICA资源中的网口接管这个IP地址。需要配置的属性包括Netmask、Address和MultiNICResName,它们的值分别设为255.255.255.0、10.23.1.100和nica。3.4.3 应用 OracleOracle资源采用了VCS Enterprise Agent for Oracle 2.0。这是一个收费的商业软件,需要单独安装。它可以监控oracle数据库实例进程ora_dbw,ora_smon,ora_lgwr,ora_pmon,实现monitor、online、offline和clean等操作。Oracle资源的属性包括Home,Sid,Pfile,Envfile,Owner等,分别对应于数据库的$ORACLE_HOME,$ORACLE_SID,初始化参数文件,环境变量文件,oracle用户等设置。 ApplicationApplication类型的资源的agent可以监控应用程序的状态,使它们online或者offline,允许用户指定online,offline或clean程序。监控方式包括: 使用监控程序 指定被监控的可执行文件的进程 指定被监控的进程ID文件Application agent要求的资源属性主要有: StartProgram, StopProgram,CleanProgram,User,PidFiles,MonitorProgram,MonitorProcesses。StartProgram指定启动应用的可执行文件路径,StopProgram指定停止应用的可执行文件路径,CleanProgram指定强制停止应用的可执行文件路径。User属性的值指定执行这三个程序的用户。创建Application类型资源的工作包括确定监控方式和在两个节点上分别建立StartProgram, StopProgram和CleanProgram对应的可执行文件。本方案中Application类型的资源有两个:lsnrctl和SAPapp。lsnrctl资源使用指定PidFiles的方式来监控监听器的状态。StartProgram使用脚本startlsn,StopProgram和CleanProgram使用脚本stoplsn,内容如下:- 在sapprd节点上脚本startlsn:#!/usr/bin/shsu - orar3p -c lsnrctl startps -ef | grep /oracle/R3P/817_64/bin/tnslsnr |grep -v grep |awk print $2/export/home/r3padm/pid_lsn脚本stoplsn:#!/usr/bin/shsu - orar3p -c lsnrctl stop- 在sapqas节点上脚本startlsn:#!/usr/bin/shhostname sapqassu - r3qadm -c stopsapsu - orar3q -c lsnrctl stophostname sapprdsu - orar3p -c lsnrctl startps -ef |grep /oracle/R3P/817_64/bin/tnslsnr |grep -v grep |awk print $2 /export/home/r3padm/pid_lsn脚本stoplsn:#!/usr/bin/shhostname sapprdsu - orar3p -c lsnrctl stophostname sapqassu - orar3q -c lsnrctl startsu - r3qadm -c startsap对SAP R/3应用的控制一般可以通过购买和使用VCS agent for SAP R/3来实现。本方案采用配置Application类型资源的方法。查阅有关SAP系统的文档,可以了解到SAP R/3应用的中心实例会生成四个进程,它们是dw,se,ms,co,这四个进程存在标志着SAP系统正常运行。其中dw进程又会生成41个dw进程,实际上只需监控第一个dw进程即可。尝试不同进程监控方式的实验表明,使用指定PidFiles的方式来监控SAP中心实例最为可行。这里,PidFiles中定义了四个文件:/export/home/r3padm/pid_sap_dw,/export/home/r3padm/pid_sap_co,/export/home/r3padm/pid_sap_se,/export/home/r3padm/pid_sap_ms,它们分别保存了dw,se,ms,co四个进程在操作系统进程列表中的PID值。StartProgram使用脚本startPRD,StopProgram和CleanProgram使用脚本stopPRD,内容如下:- 在sapprd节点上脚本startPRD:#!/usr/bin/shsu - r3padm -c startsap r3DW=dw.sapR3P_DVEBMGS00CO=co.sapR3P_DVEBMGS00SE=se.sapR3P_DVEBMGS00MS=ms.sapR3P_DVEBMGS00PID_SAPSTART=ps -ef|grep sapstart|grep -v grep|awk print $2PID_SAP_DW=ps -ef|grep $PID_SAPSTART|grep -v grep|grep -v sapstart|grep $DW|awk print $2PID_SAP_CO=ps -ef|grep $PID_SAPSTART|grep -v grep|grep -v sapstart|grep $CO|awk print $2PID_SAP_SE=ps -ef|grep $PID_SAPSTART|grep -v grep|grep -v sapstart|grep $SE|awk print $2PID_SAP_MS=ps -ef|grep $PID_SAPSTART|grep -v grep|grep -v sapstart|grep $MS|awk print $2echo $PID_SAP_DW /export/home/r3padm/pid_sap_dwecho $PID_SAP_CO /export/home/r3padm/pid_sap_coecho $PID_SAP_SE /export/home/r3padm/pid_sap_seecho $PID_SAP_MS /export/home/r3padm/pid_sap_ms脚本stopPRD:#!/usr/bin/shsu - r3padm -c stopsap r3- 在sapqas节点上脚本startPRD:#!/usr/bin/shhostname sapprdsu - r3padm -c startsap r3DW=dw.sapR3P_DVEBMGS00CO=co.sapR3P_DVEBMGS00SE=se.sapR3P_DVEBMGS00MS=ms.sapR3P_DVEBMGS00PID_SAPSTART=ps -ef|grep sapstart|grep -v grep|awk print $2PID_SAP_DW=ps -ef|grep $PID_SAPSTART|grep -v grep|grep -v sapstart|grep $DW|awk print $2PID_SAP_CO=ps -ef|grep $PID_SAPSTART|grep -v grep|grep -v sapstart|grep $CO|awk print $2PID_SAP_SE=ps -ef|grep $PID_SAPSTART|grep -v grep|grep -v sapstart|grep $SE|awk print $2PID_SAP_MS=ps -ef|grep $PID_SAPSTART|grep -v grep|grep -v sapstart|grep $MS|awk print $2echo $PID_SAP_DW /export/home/r3padm/pid_sap_dwecho $PID_SAP_CO /export/home/r3padm/pid_sap_coecho $PID_SAP_SE /export/home/r3padm/pid_sap_seecho $PID_SAP_MS /export/home/r3padm/pid_sap_ms脚本stopPRD:#!/usr/bin/shhostname sapprdsu - r3padm -c stopsap r3 3.5 其它冗余配置 对sapprd主机上的文件系统使用SUN DiskSuite软件作RAID 0镜像。 对在磁盘阵列上存储数据库的磁盘采用RAID 5配置。4 方案测试通过集群和其它冗余配置,能够对整个SAP R/3应用系统进行保护。通过手工切换可以完成集群的switchover(切换转移)。用模拟故障的方式对failover(故障转移)能力进行测试: 网络资源:拔掉节点sapprd上“工作”网卡上的网线,系统自动将IP地址赋予第二块冗余网卡。接着拔掉第二块网卡上的网线,很快服务组oradb在sapprd上offline,随后在sapqas上online。 应用资源:使用kill命令终止应用进程的方式模拟应用程序故障。逐次分别终止下面的进程:SAP应用的ms. sapR3P_DVEBMGS00,Oracle数据库的ora_pmon_R3P,Sqlnet的tnslsnr。每次都能够切换到备用节点上。测试结果表明,网络资源(网卡和虚拟IP),Oracle数据库实例,Sqlnet监听器,以及SAP R/3应用都能实现failover,避免了这些资源单点故障所造成的系统崩溃。这个方案的实施大大提高了系统平均无故障时间(MTBF),保证了系统的高可用性。同时,系统能够满足在节点切换时对测试机SAP R/3应用的自动管理要求,达到了预期的效果。 5 结束语本方案是在SAP技术顾问提供的最初方案的基础上,经过修改而形成的。笔者经过尝试和研究,在原方案的基础上增加了控制Oracle数据库和SAP应用的相关内容,并对整个系统作了切换测试。进入本世纪以来,系统和数据保护越来越受到人们的关注,相关的技术也逐渐成为新的热点。集群和磁盘管理,备份和容灾,这些名词正在不断充实着系统集成这一概念的内涵。相信随着这些技术的不断成熟和发展,安全可靠的信息系统将会在人们的工作和生活当中发挥更大的作用。参考文献 VERITAS Cluster Server 3.5 Users Guide Solaris, VERITAS Software corporation VERITAS Cluster Server Enterprise Agent for Oracle,Version 2.0 Inatallation and Configuration Guide

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论