配色: 字号:
NewStart HA 典型配置指导
2013-04-17 | 阅:  转:  |  分享 
  
NewstartHA典型配置指导



目前大多数企业对业务的运行要求越来越高,高可用产品应运而生,NewstartHA做为一款优秀的ha解决方案,应用越来越广泛。

NewStartHA是产品该产品为企业提供了最通用的高可用环境,不需改变任何服务和应用,在系统故障和部件故障时应用该产品支持多种平台具有,等特



业务需求(oracle服务器)

公司需搭建一个oracle服务器运行关键业务,同时要求该服务器“稳定”、“可靠”、“有效”、“持续运行”,能提供24*7的不间断NewStartHA的双机高可用集群方案。



前期准备:

2.1硬件需求:

(两台物理机A和B,以下硬件配置相同,型号品牌无限制,不详列) 服务器 数量 用途 硬盘 1 安装Linux操作系统,/var可用空间预留不少于B; 网卡 3 bond0用于工作链路(两张千兆网卡eth0/1,mode=1,也可以使用单张网卡)

eth2用于心跳链路(百兆网卡以上) 串口(可选) 1 用于心跳链路(HA包装盒里面有串口线) 磁盘阵列 1 存放共享数据,手动划分两个区,共享数据存放于/dev/sdb2

(HA提供一个仲裁盘的数据安全保障机制,需要在磁盘上划分一块小空间,需30M左右,不需格式化,手动划分/dev/sdb1)

2.2软件需求:

软件名称 版本 说明 SLES11 Sp1 操作系统 Oracle 10g 数据库软件 NewstartHA 3.0.1.07 newstartha高可用软件

安装配置

两台物理机子操作系统(suse11sp1)和业务软件(oracle)已部署好,各自都运行正常,其中oracle的数据库已存放于共享磁阵/dev/sdb2中,挂载目录为/home/db。



最新商用NewStartHA版本(如3.0.1.07)已下载,附上查询最新版本地址:http://www.gd-linux.com/htdocs/modules/xsi/index.php/node/view/id/937



3.1 安装NewStartHA



把网上下载的iso文件用二进制(bin)传输方式分别上传到两台服务器/home/目录,挂载文件到/mnt子目录

#mount-oloop/home/xxxx.iso/mnt



执行安装脚本开始安装:

#/mnt/install

HAVersion:

1)NewVersion:3.0.1.07

2)Cancel



pleaseselectVersion[1-2]?1

NewStartHAInstallationProgram

Version:3.0.1.07

Supportemail:ha-support@gd-linux.com



1)NewStartHAServerProgramandCLIAdministrativeTool1

2)Web-basedAdministrativeTool(options)(version:20121101)2

3)Allcomponents3

4)Cancel



selectthecomponentstobeinstalled[1-4]? 说明:

安装主程序包和cli命令行

安装Web管理工具

安装所有模块



安装过程:

selectthecomponentstobeinstalled[1-4]?3

CheckingNewStartHA...NOTrunning



Installing...

Installingthe

/mnt/nsha/x86/sles9/newstartha-3.0.1.07-20130107.i586.rpm...

Preparing...###########################################[100%]

1:newstartha###########################################[100%]

newstartha0:off1:off2:off3:on4:off5:on6:off

Installingliblvm2clusterlock.sook.

输入产品许可号(下面为试用SN)

pleaseentertheSN:00TB24-FC0TCF-629A1H-B00D46



Make/etc/ha.d/lic/newstartha.keysucceeded.

[OK]



web-basedadministrativetoolinstall,deploying,pleasewait...

jdkinstalledok!

tomcatinstalledok!

web-basedadministrativetoolinstalledok!



Createkeys(/usr/lib/newstartha/keystore.exp1),pleasewait...

Createtomcat.keystoreOK.



Doyouwanttostartweb-basedadministrativetoolautomaticallyasasystemservice?y(es)orn(o)?y系统启动时是否自动启动Web管理工具



StartingWeb-basedAdministrativeToolService...

[OK]

Pleaseremembertochangethedefaultwebpasswordimmediately!



Thecomponent(s)isinstalledcompletely. 至此,HA程序安装完成,两台机器都执行完上述操作后继续往下配置。



3.2 申请license文件

HA启动会验证key及license文件有效性,需按以下方法进行license申请。



把两台机子上的/etc/ha.d/lic/newstartha.key文件打包(名字区分好,如newstartha.key_node1/2,二进制(bin)方式下载),然后发送到邮箱:ha-support@gd-linux.com进行license文件的申请。

收到的license文件后改名为newstartha.lic,用二进制(bin)方式上传到服务器,放到/etc/ha.d/lic/目录,因为每个节点newstartha.lic内容不同,key文件与license文件一一对应,所以不要搞混,否则HA无法启动。



#ls-l/etc/ha.d/lic

-rw-r--r--1rootroot502Mar2911:40newstartha.key

-rw-r--r--1rootroot52Mar2915:14newstartha.lic

3.3 编写用于管控oracle的HA脚本

HA脚本功能类似于/etc/init.d/目录下的脚本,主要是规定如何启动、停止和检测程序apache、tomcat、oracle和sybase等,位于/etc/ha.d/resource.d目录下,其中oracle模版oracle_example.ps正符合此次需求。

进入上述目录,复制oracle_example.ps模版,重命名为oracle.ps,然后拷贝到/home/script/下,最后编缉oracle.ps开头几个变量即可搞定,如:

#Thefollowingthreevariantshouldbesettopropervalue

ORACLE_HOME="/home/oracle_home"

ORACLE_SID="orcl"

ALERTLOG="${ORACLE_HOME}/admin/${ORACLE_SID}/bdump/alert_${ORACLE_SID}.log"



虽然脚本编写轻松完成,但现网中还是需要验证该脚本是否能完全管控oracle应用,下面附上手动调试过程(主要是start、stope及status状态,其中关键是status状态,返回0表示running,非0为stoped.):

挂载磁阵:mount/dev/sdb2/home/db



测试脚本:



2.1业务启动:

#/home/script/oracle.psstart;echo$?

…(省略)

返回0,表示执行start成功



2.2业务状态检测:(重点)

#/home/script/oracle.psstatus;echo$?

…(省略)

0返回0,表示应用running



2.3业务停止:

#/home/script/oracle.psstop;echo$?

…(省略)

返回0,表示执行stop成功



2.4业务状态检测:(重点)

#/home/script/oracle.psstatus;echo$?

…(省略)

1返回1,表示应用stoped

另一机子执行上述操作后,HA脚本编写环节就完成,接下来是核心部份,配置集群及服务。



3.4 配置NewStartHA(重点)

主要是两方面初始化配置:分别为集群初始化和服务初始化,必须按照以上顺序进行初始化。



确定名称,配置中用

两台机子的心跳和工作链路网卡名固定IP

确定业务的浮动IP地址

确定HA脚本位置;(3.3小节已确定:/home/script/oracle.ps)

清楚两个节点的mount目录

确定第三方IP列表:HA建议配置3~5个IP,这些IP会长时间存在的(比如交换机IP等),这些IP与工作网卡属于相同网段,但不要配成双方节点的IP,作为是检测自身网络正常与否。



规划的情况如下,其中双机集群的两节点分别为suse11-sp1-1、suse11-sp1-

suse11-sp1-1 suse11-sp1-2 说明 网口链路

bond0 192.168.1.192 192.168.1.193 工作链路,IP为物理IP,可通过公网访问服务器的集群软件,进行数据配置等操作 网口链路

eth2 192.168.111.192 192.168.111.193 心跳链路,用于集群间通讯(不能与工作链路同一网段) 串口心跳 /dev/ttyS0 /dev/ttyS0 心跳链路,直连,用于集群间通讯 浮动IP 192.168.1.196 集群启动后,会自动加载到主节点(服务运行节点)工作链路网卡上,该IP需和工作链路网卡同一网段 第三方IP列表 192.168.1.190,192.168.1.200,192.168.1.201 一般配置与工作链路同一网段,配置不少于两个

3.4.1 集群初始化,格式:cluster-init

运行cli指令,进入cli管理工具,然后运行cluster-init

cli:~>cluster-init



======================================

ClusterInitializationUtility

======================================



Built:MonJan700:04:152013



Thisutilitysetsuptheinitializationinformationofa2-nodecluster.

Itpromptsyouforthefollowinginformation:

-Hostname

-Informationabouttheheartbeatchannels

-Howlongbetweenheartbeat

-Howlongtodeclareheartbeatfails

-Watchdogconfiguration

-Lockdiskconfiguration



Pleaseinputclustername:oracle_cluster

InputthefirstnodenameandIP:suse11-sp1-1192.168.1.192

InputthesecondnodenameandIP:suse11-sp1-2192.168.1.193

Howlongbetweenheartbeats(inseconds)[1]:直接回车

Howlongtodeclareheartbeathasbroken(inseconds)[60]:直接回车

Doyouwanttoenablewatchdogdevice?(yes/no)[no]:直接回车

Pleasechoosemulticastheartbeatchannel:

0)eth2

1)bond0

Selectamulticastheartbeatchannel[0,1]:0

Anothermulticastheartbeatchannel?(yes/no)[yes]:no

Doyouwanttoaddaserialheartbeatchannel?(yes/no)[yes]:直接回车

Inputserialheartbeatchannel[/dev/ttyS0]:直接回车

Anotherserialheartbeatchannel?(yes/no)[yes]:no

Doyouwanttoenableworklink_hb?(yes/no)[yes]:直接回车

Doyouwanttoaddthird-partyiplist?[recommended3-5ip](yes/no)[yes]:直接回车

Pleaseinputathird-partyipaddress:192.168.1.190

Anotherthirdpartipaddress?(yes/no)[yes]:直接回车

Pleaseinputathird-partyipaddress:192.168.1.200

Anotherthirdpartipaddress?(yes/no)[yes]:直接回车

Pleaseinputathird-partyipaddress:192.168.1.201

Anotherthirdpartipaddress?(yes/no)[yes]:no

Doyouwanttoaddalockdisk(recommend)?(yes/no)[yes]:直接回车

Pleaseinputthepartitionname(/dev/sdb):/dev/sdb1这是最安磁阵规划时划分出来的仲裁盘,数据安全保障机制的一种,是可选,但推荐配置。



Warning:Alldatain/dev/sdb1willbedestroyed,suretoformatit?(yes/no)[no]:yes

Doyouwanttoenablekernelpanic?(yes/no)[no]:直接回车

Pleaserunservice-inittoinitializeyouservices.

到这里cluster-init集群参数初始化已经完成,这可执行cluster-show查看配置

cli:~>cluster-show



Configurationofthecluster:



clustername:oracle_cluster

node:suse11-sp1-1192.168.1.192

node:suse11-sp1-2192.168.1.193

logfile:/var/log/ha-log

keepalive:1

deadtime:60

watchdog:off

mcast:eth2226.0.86.23669410

serial:/dev/ttyS0

worklink_hb:on

thirdparty:192.168.1.190

thirdparty:192.168.1.200

thirdparty:192.168.1.201

qdisk:/dev/sdb1

kernel_panic:off

3.4.2 服务初始化,格式:service-init

cli管理工具中运行service-init.

cli:~>service-init



======================================

ServiceInitializationUtility

======================================



ThisutilitysetsuptheinitializationinformationoftheserviceintheHAsystem.

Itpromptsyouforthefollowinginformation:

-Serviceinformation

-Applicationresourceinformation

-Publicnetworkinterfaceinformation

-FloatingIPaddressinformation.

-BlockDiskinformation

-Mountinformation

-RawDiskinformation



Inputservicename:oracle

Isitenabled?(yes/no)[yes]:

Doyouwanttoconfigurepreferrednode?(yes/no)[no]:yes

Pleasechoosepreferrednode:

0)suse11-sp1-1

1)suse11-sp1-2

Selectanode:[0,1]:0

Inputstarttimeout[60]:直接回车

Inputstoptimeout[120]:直接回车

Inputcheckinterval[30]:直接回车

Inputchecktimeout[60]:直接回车

Inputmaxerrorcount[1]:直接回车

Restartaftercheckresultisfailed?(yes/no)[no]:直接回车

StartserviceanywaywhenfloatIPexist?(yes/no)[no]:直接回车

Doyouwanttoaddaapplication?(yes/no)[yes]:直接回车



======Application======

Inputnameofapplication[oracle_app_0]:直接回车

Inputscriptofapplication

[/etc/ha.d/resource.d/oracle]:/home/script/oracle.ps管控oracle脚本

Isresourcecritical?[yes]:直接回车

Isresourceenable?[yes]:直接回车

Addanotherapplication?(yes/no)[no]:直接回车

Doyouwanttoaddapubnic?(yes/no)[yes]:直接回车



======PubNIC======

InputPubNICname[oracle_net_card_0]:直接回车

Isresourcecritical?[yes]:直接回车

Pleasechoosenetworkdevice:

0)eth2

1)bond0

Selectanetworkdevice[0,1]:1

Addanotherpubnic?(yes/no)[no]:直接回车



======IP======

InputIPname[oracle_ip_0]:直接回车

InputIPaddress:192.168.1.196浮点/业务IP

Inputnetmask[255.255.255.0]:

PubNICofservice:

0)oracle_net_card_0suse11-sp1-1:bond0suse11-sp1-2:bond0

SelectaPubNIC:[0,0]:0

Isresourcecritical?[yes]:直接回车

AddanotherIP?(yes/no)[no]:直接回车

Doyouwanttoaddarawdisk?(yes/no)[no]:直接回车

Doyouwanttoaddadiskmount?(yes/no)[no]:yes



======diskmount======

Inputdiskmountname[oracle_diskmount_1]:直接回车

Isresourcecritical?[yes]:直接回车

Isresourceenable?[yes]:直接回车

0)disk支持普通的块设备,如/dev/sdb2

1)nfs

2)lvm支持逻辑卷设备,如/dev/vg01/lv01

3)cancel

pleasechooseadisktype?[0,3]:0

Inputblockdiskdevice[/dev/hda1]:/dev/sdb2(共享数据所在设备)

Inputmountpoint:/home/db(挂载目录)

Inputtypeoffilesystem[ext3]:直接回车

Inputuser[root]:oracle(挂载目录的操作用户

Inputgroup[root]:oinstall(操作用户的群组

Inputmode[755]:直接回车

Inputoptions[rw]:直接回车

Inputthequotaofthedevice[90]:直接回车

doyouwanttostopservicewhenthediskisreadonly?[yes]:直接回车

Addanotherdiskmount?(yes/no)[no]:直接回车

Addanotherservice?(yes/no)[no]:直接回车

Pleaseruncluster-starttostarttheHAsystem,

orruncluster-restarttorestarttheHAsystem.

服务初始化完成,可运行service-show查看配置结果。

cli:~>service-show

Currentservice:

0)name:oracle

1)cancel

Selecta(n)service[0,1]:0



service

------

name:oracle

enabled:yes

preferrednode:suse11-sp1-1

starttimeout:60

stoptimeout:120

checkinterval:30

checktimeout:60

maxerrcount:1

restartaftercheckfail:no

startanyway:no



Application

------

displayname:oracle_app_0

script:/home/script/oracle.ps

enable:yes

critical:yes



PubNIC

------

displayname:oracle_net_card_0

critical:yes



member

------

nodename:suse11-sp1-1

device:bond0



member

------

nodename:suse11-sp1-2

device:bond0



IP

------

displayname:oracle_ip_0

ipaddr:192.168.1.196

netmask:255.255.255.0

PubNICResName:oracle_net_card_0

critical:yes



DiskMount

-------

displayname:oracle_diskmount_1

critical:yes

enable:yes

type:disk

device:/dev/sdb2

mountpoint:/home/db

fstype:ext3

user:oracle

group:oinstall

mode:755

options:rw

limitation:90

stopWhenRO:yes



Showotherservice?(yes/no)[no]: 至此,HA配置完成,接下来是集群启动和调试。



3.5 启动集群

Cli管理工具中输入指令:cluster-start

cli:~>cluster-start

[suse11-sp1-1]StartingHigh-Availabilityservices:

Configurationfilecheckedok.

..done



.

Configurationfilecheckedok.

[suse11-sp1-2]StartingHigh-Availabilityservices:

..done



. 集群启动成功。



3.6 查询集群状态

集群状态包括节点、心跳链路,工作链路和服务状态,在cli管理工具中输入指令:cluster-start(动态周期性刷新),show-status(显示一次当前状态).



cli中输入指令cluster-stat:

cli:~>cluster-stat

PressCtrl-Cor''Q''toexit

Date:WedApr1009:45:132013



Memberstatus

suse11-sp1-1UP

suse11-sp1-2UP



WorkLinksuse11-sp1-1suse11-sp1-2

bond0ONLINEONLINE



HeartbeatLinksuse11-sp1-1suse11-sp1-2status

networketh2eth2ONLINE

serial/dev/ttyS0/dev/ttyS0ONLINE

LockDisk/dev/sdb1/dev/sdb1ONLINE



ServiceNamesuse11-sp1-1suse11-sp1-2Enable

oraclerunningstoppedYES





cli中输入指令show-status:

cli:~>show-status

Memberstatus

----------------

suse11-sp1-1UP

suse11-sp1-2UP



WorkLinksuse11-sp1-1suse11-sp1-2

------------------------

bond0ONLINEONLINE



HeartbeatLinksuse11-sp1-1suse11-sp1-2status

--------------------------------

networketh2eth2ONLINE

serial/dev/ttyS0/dev/ttyS0ONLINE

LockDisk/dev/sdb1/dev/sdb1ONLINE



ServiceNamesuse11-sp1-1suse11-sp1-2Enable

-------------------------------

oraclerunningstoppedYES 从上述集群状态图可以看出,节点(Member)状态都是”UP”(正常),工作链路(WorkLink)bond0都是”ONLINE”(正常),心跳链路(HeartbeatLink)都是”ONLINE(正常),接下来重点来了,就是服务oracle的状态,现成功运行(running)在suse11-sp1-1上,suse11-sp1-2节点状态是stoped,即充当备用机子的状态存在,当主节点上的业务发生异常时就会接管过来,保障业务持续运行,后面的Enable表示该服务是受HA管控。



3.7 集群测试验证

这是最后一个环节,就是测试当主节点故障(如业务异常,机子挂掉等)时,备机能否成功接管,实现业务持续运行;这里模拟两种现网中比较常见故障:

主节点业务故障(模拟方式:杀掉oracle进程)

查看双机状态:

cli:~>cluster-stat

PressCtrl-Cor''Q''toexit

Date:WedApr1011:21:132013



Memberstatus

suse11-sp1-1UP

suse11-sp1-2UP



WorkLinksuse11-sp1-1suse11-sp1-2

bond0ONLINEONLINE



HeartbeatLinksuse11-sp1-1suse11-sp1-2status

networketh2eth2ONLINE

serial/dev/ttyS0/dev/ttyS0ONLINE

LockDisk/dev/sdb1/dev/sdb1ONLINE



ServiceNamesuse11-sp1-1suse11-sp1-2Enable

oraclerunningstoppedYES

杀掉主节点suse11-sp1-1上的oracle关键进程,kill-92245(pmon进程号)

持续查看备机suse11-sp1-2的集群状态,cluster-stat.

cli:~>cluster-stat

PressCtrl-Cor''Q''toexit

Date:WedApr1011:40:102013



Memberstatus

suse11-sp1-1UP

suse11-sp1-2UP



WorkLinksuse11-sp1-1suse11-sp1-2

bond0ONLINEONLINE



HeartbeatLinksuse11-sp1-1suse11-sp1-2status

networketh2eth2ONLINE

serial/dev/ttyS0/dev/ttyS0ONLINE

LockDisk/dev/sdb1/dev/sdb1ONLINE



ServiceNamesuse11-sp1-1suse11-sp1-2Enable

oraclestopped:stu(A)runningYES



strstartfail,stpstopfail,stustatusfail,opoperationfail

AApplication,IIP,MMount,SStorage,WWorklink,BSplitBrain

PPing,TTimeout,LLockorunlockfail 几分钟后查看oracle的状态,其中的stu(A)表示1节点运行的业务检测到异常并停止,2节点running表示服务已接管过来。



主节点机器故障(模拟方式:关机),备机能否接管。

继续上面的集群状态,服务oracle在suse11-sp1-2上运行(见上图)。

use11-sp1-2上运行shutdown指令

#shutdown-hnow



Broadcastmessagefromroot(pts/1)(WedApr1013:40:262013):



ThesystemisgoingdownforsystemhaltNOW! 持续查看use11-sp1-1的集群运行状态,cluster-stat

cli:~>cluster-stat



PressCtrl-Cor''Q''toexit

Date:WedApr1013:49:092013



Memberstatus

suse11-sp1-1UP

suse11-sp1-2DOWN



WorkLinksuse11-sp1-1suse11-sp1-2

bond0ONLINEUNKNOWN



HeartbeatLinksuse11-sp1-1suse11-sp1-2status

networketh2eth2OFFLINE

serial/dev/ttyS0/dev/ttyS0OFFLINE

LockDisk/dev/sdb1/dev/sdb1OFFLINE



ServiceNamesuse11-sp1-1suse11-sp1-2Enable

oraclerunningunknownYES 从1节点集群状态图来看,oracle已在上面运行(running),说明已成功接管服务;同时,2节点显示已down掉,其它链路及服务状态显示显示也是正常。



总结:上述常见故障中,HA能够保障业务持续运行,达到预期要求。





4、附录:

4.1 一些操作技巧:

cli中双按tab键,能把所有命令列出;输入help+命令可查看其用法;

ha运行日志位于/var/log/ha-log,按需查看;

web工具的访问方式如下,建议用于后期维护:

地址:http://节点IP:10001 缺省帐户/密码:SuperAdmin/123456



4.2 HA厂家联系方式:



24小时咨询热线:400-033-0108转2

NewStartHA技术服务专线:(86)13318772180

NewStartHA技术服务邮箱:ha-support@gd-linux.com

公司电话:(86-20)87048510/87048575/87048576/87048587

公司名称:广东新支点技术服务有限公司

公司地址:广东省广州市天河区高唐软件园基地高普路1021号E栋601室

公司网站:http://www.gd-linux.com



献花(0)
+1
(本文系广东新支点首藏)