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
|
|