构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx

上传人:b****6 文档编号:5873936 上传时间:2023-01-01 格式:DOCX 页数:12 大小:240.11KB
下载 相关 举报
构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx_第1页
第1页 / 共12页
构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx_第2页
第2页 / 共12页
构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx_第3页
第3页 / 共12页
构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx_第4页
第4页 / 共12页
构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx

《构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx》由会员分享,可在线阅读,更多相关《构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx(12页珍藏版)》请在冰豆网上搜索。

构建Heartbeat 303 GUI+DRBD+Oracle 10g 双机互备集群.docx

构建Heartbeat303GUI+DRBD+Oracle10g双机互备集群

构建Heartbeat3.0.3GUI+DRBD+Oracle10g双机互备集群

一、系统环境

引用

操作系统:

Asianux3.0SP2forx86_64

DRBD版本:

8.3.8

Heartbeat版本:

3.0.3

Oracle版本:

10.2.0.4

两服务器:

drbd1.linuxfly.org:

192.168.228.133

drbd2.linuxfly.org:

192.168.228.134

DRBD镜像分区:

资源名称:

oradata

设备:

/dev/drbd0

挂载点:

/oradata(存放Oracle实例)

二、安装Heartbeat3.0.3

这里将使用我自行编译的rpm包,通过yum来安装。

1、配置yum环境

假设把压缩包解压到/root/rpms目录下。

然后在/etc/yum.repos.d中创建以下文件:

引用

#catheartbeat.repo

[heartbeat]

name=Heartbeat3

baseurl=file:

///root/rpms

enabled=1

2、安装

先卸载旧的包:

#rpm-e`rpm-qa|grepheartbeat`

#rpm-e`rpm-qa|grepopenais`

然后用yum安装:

#yuminstallpacemakercorosyncheartbeatldirectordpacemaker-mgmtpacemaker-mgmt-clientldirectord

※ldirectord用于LVS环境,若您不需要,可不安装

三、配置Heartbeat3

实际上,Heartbeat3与2.x的配置差别并不大,很多内容都是相通的。

1、配置authkeys

这里我用随机数来获得密钥:

引用

#(echo-ne"auth1\n1sha1";ddif=/dev/urandombs=512count=1|opensslmd5)>authkeys

#catauthkeys

auth1

1sha10366577bdaed36f08b5f1c29431812dc

※注意,authkeys的权限必须是600

2、配置ha.cf

引用

#grep-v'^#'ha.cf

debugfile/var/log/ha-debug

logfile/var/log/ha-log

logfacilitylocal0

keepalive2

deadtime30

initdead30

udpport694

mcasteth0239.0.0.169410#使用多播方式进行相互通信

auto_failbackon

nodedrbd1.linuxfly.org

nodedrbd2.linuxfly.org

compressionbz2

compression_threshold2

crmrespawn

#以下两行是pacemaker-mgmt提供的hb_gui连接所必须的,2.1.4时没有apiauthmgmtduid=root

#注意,下面文件的路径不能有错(可查询pacemaker-mgmt包),并且一定是可执行文件

respawnroot/usr/lib64/heartbeat/mgmtd-v

两文件保存后,同步到另一节点上:

#/usr/share/heartbeat/ha_propagate

3、启动heartbeat

在两节点上启动heartbeat3:

#serviceheartbeatstart

四、pacemaker(CRM)

pacemaker是heartbeat项目将原有的crm组件独立出来形成的项目(当然,除了Heartbeat外,还支持OpenAIS),它在Heartbeat3集群中的角色就是CRM(其实如今CRMd也只是pacemaker的一个部分)。

只有heartbeat不能完成任何工作,packemaker负责整个集群资源的定义、调度,是集群的核心内容。

简单而言,整个集群的运行情况是这样的:

heartbeat确保节点之间通信;packemaker确定集群拥有那些资源,根据服务器的性能状态、资源的约束关系确定资源在哪一个节点上运行;LRM(lrm程序包含在cluster-glue中)按照CRM的要求启动相应的资源,并将资源的状态返回给pacemaker;pacemaker根据LRM的返回决定下一步的动作。

pacemaker提供crmshell工具,而pacemaker-mgmt和pacemaker-mgmt-client则提供了hb_gui图形工具。

1、设定用户

为可以使用hb_gui图形工具,需要设定一个用户。

该用户可以是默认的hacluster,可以是属于haclient组的用户:

#useraddlinuxing-Ghaclient

#passwdlinuxing

进入Xwin后,即可通过hb_bui命令打开图形的配置和管理工具:

crmshell不需要特定的用户,主要管理员登陆到机器上即可使用。

2、使用不同的管理工具

pacemaker既然提供多种管理工具,例如我这里提到的crmshell、hb_gui等,它们的作用是相同的,在其官网上还提供了其他,如基于Ajaxweb方式的管理工具等,可从这里获得源码包。

下面,我以修改其中一个属性为例简单说明一下:

关闭STONITH支持

默认的情况下pacemaker中启用了stonith,但是我们实际部署集群时可能一般都不会用到stonith资源。

当启用了stonith而集群中又没有stonith资源时,集群中的资源都是无法启动的。

在启动资源时会报错:

引用

Jul1502:

01:

19drbd1mgmtd:

[25127]:

ERROR:

unpack_resources:

Resourcestart-updisabledsincenoSTONITHresourceshavebeendefined

Jul1502:

01:

19drbd1mgmtd:

[25127]:

ERROR:

unpack_resources:

EitherconfiguresomeordisableSTONITHwiththestonith-enabledoption

Jul1502:

01:

19drbd1mgmtd:

[25127]:

ERROR:

unpack_resources:

NOTE:

ClusterswithshareddataneedSTONITHtoensuredataintegrity

解决办法,就是把stonith-enabled选项禁用。

a、crmshell方式

在pacemaker包中提供crmshell方式。

其中,crm是一个非常友好的,同时支持交互和非交互两种模式的集成命令;此外,还有一些按功能划分的独立命令,例如:

crm_mon、crm_resource、cibadmin等(可参考heartbeat2.x)。

下面两条命令都能关闭STONITH:

#crm_attribute-tcrm_config-nstonith-enabled-vfalse

#crmconfigurepropertystonith-enabled="false"

若要进入crm的交互模式,可直接运行crm即可:

引用

#crm

crm(live)#

在该环境下,敲入help可获取帮助信息。

敲入对应的命令,可进入下一层菜单,用cd、或end、up都可以返回上一层,exit退出。

※注意,独立的管理命令及非交互模式下的crm,在输入命令后会马上生效;而交互默认下的crm,必须手动用commit命令提交后,配置才能生效。

因crm使用方便,在管理时经常使用。

b、hb_gui方式

这是在Xwin下面的GUI管理方式,从heartbeat2.x就已经提供。

在heartbeat3中必须独立安装pacemaker-mgmt和pacemaker-mgmt-client才能用到,并且,需要在ha.cf中打开mgmtd支持。

以关闭STONITH为例,可在下面的窗口中修改:

在pacemaker-mgmt提供了新的管理界面,并且可以跨机器登陆管理。

远程管理时,必须使用远端机器上的hacluster用户,或属于haclinet组的管理账号(heartbeat2.x只能在本机127.0.0.1上登陆管理)。

另外,若当前连接的是本地,而手动把heartbeat服务关闭时,hb_gui会通过相同的用户名和密码尝试连接到集群节点中的其他机器上,继续追踪集群状态。

hb_gui的设定,在点击“应用”或“确认”后会马上生效。

五、使用pacemaker进行配置

为方便说明,我将以crm命令方式讲解,当然,同样的,你也可以用hb_gui来实现。

1、清空旧配置文件

执行:

#crmconfigureerase

或者以crm交互方式提交:

引用

#crm

crm(live)#configure

crm(live)configure#erase

crm(live)configure#commit

crm(live)configure#exit

bye

2、关闭quorum

pacemaker中有quorum的概念,即集群中必须有一半的节点处于online的状态,则集群被认为是havequorum(可以认为是达到合法节点数要求)。

如果少于一半的节点在线,那么pacemaker认为集群达不到节点数要求,从而拒绝启动集群中的资源。

但是这种策略对于2个节点的集群明显是不合理的,所以就会发生当2个节点的集群其中一个节点失效时所有的集群都无法启动的情况。

同样的,也关闭STONITH,执行:

#crmconfigurepropertyno-quorum-policy=ignore

#crmconfigurepropertystonith-enabled="false"

这是当前的配置情况:

引用

#crmconfigureshow

node$id="ff77dbf9-3344-42ec-86f7-955521a67387"drbd2.linuxfly.org

node$id="ffc0848a-f475-49be-814e-1b247389d819"drbd1.linuxfly.org

property$id="cib-bootstrap-options"\

dc-version="1.0.9-89bd754939df5150de7cd76835f98fe90851b677"\

cluster-infrastructure="Heartbeat"\

no-quorum-policy="ignore"\

stonith-enabled="false"

3、配置DRBD+Oracle

如[原]构建Heartbeat2.1.3GUI+DRBD+Oracle10g双机互备集群一文中提到的一样,把DRBD设置为主备资源,其他oracle资源放在同一个组里面,并通过“顺序”、“协同”等限制条件让两资源配合运行。

根据监控的情况,加入start超时、monitor间隔时间等操作。

进入crm交互模式:

引用

#crmconfigure

crm(live)configure#

然后在configure状态下输入以下内容:

引用

primitivedrbd_oracleocf:

linbit:

drbd\

paramsdrbd_resource="oradata"\

opmonitorinterval="15s"

primitivefs_oracleocf:

heartbeat:

Filesystem\

paramsdevice="/dev/drbd/by-res/oradata"directory="/oradata"fstype="ext3"

primitiveip_oracleocf:

heartbeat:

IPaddr2\

paramsip="192.168.228.136"nic="eth0"cidr_netmask="24"

primitiveoracle_instantocf:

heartbeat:

oracle\

opmonitorinterval="120"timeout="30"\

opstartinterval="0"timeout="120"\

paramssid="orcl"

primitiveoracle_lsnrctlocf:

heartbeat:

oralsnr\

paramssid="orcl"\

operations$id="oracle_lsnrctl-operations"\

opmonitorinterval="10"timeout="30"

groupgroup_oracleip_oraclefs_oracleoracle_lsnrctloracle_instant\

metatarget-role="Started"is-managed="true"

msms_drbd_oracledrbd_oracle\

metamaster-max="1"master-node-max="1"\

clone-max="2"clone-node-max="1"notify="true"

colocationoracle_on_drbdinf:

group_oraclems_drbd_oracle:

Master

orderoracle_after_drbdinf:

ms_drbd_oracle:

promotegroup_oracle:

start

最后用commit提交即可。

※说明:

引用

a、根据DRBD官网的资料,ocf:

heartbeat:

drbd已经被丢弃,不建议使用,故用ocf:

linbit:

drbd代替;

b、IP的设定RA,用ocf:

heartbeat:

IPaddr2,其用ip命令设定虚拟IP,虚拟IP生效后,用ifconfig命令看不到,可用ipaddr查看;

c、输入上述命令时,可能会提示警告,start、stop的超时时间少于建议值等,这可根据应用启动、停止的实际环境在“操作”中加入(可参考oracle_instant资源);

d、ms是设置“主备资源”;

e、colocation是设置“协同”限制,即group_oracle和ms_drbd_oracle必须在同一台机器上运行,并且若ms_drbd_oracle不能作为Master运行时,不会运行group_oracle,相反group_oracle的状态不会影响ms_drbd_oracle;

g、order是设置“顺序”限制,即先激活ms_drbd_oracle资源(把drbd设备设置为primary状态),然后再启动group_oracle组资源;

f、挂载操作中,/dev/drbd/by-res/oradata是为了方便使用,由drbd创建的一个指向/dev/drbd0的链接;

h、如果您输入的命令比较长,可以用“\”调到下一行继续,但是必须注意,下一行前面的空白只能用空格,不能用Tab等字符。

4、启动group_oracle资源组

配置提交后,两资源会自动运行(根据全局配置,有延迟),也可手动启动:

#crmresourcestartgroup_oracle

5、查看状态:

引用

#crmstatus

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

Lastupdated:

ThuJul1515:

39:

202010

Stack:

Heartbeat

CurrentDC:

drbd1.linuxfly.org(ffc0848a-f475-49be-814e-1b247389d819)-partitionwithquorum

Version:

1.0.9-89bd754939df5150de7cd76835f98fe90851b677

2Nodesconfigured,unknownexpectedvotes

2Resourcesconfigured.

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

Online:

[drbd1.linuxfly.orgdrbd2.linuxfly.org]

ResourceGroup:

group_oracle

ip_oracle(ocf:

:

heartbeat:

IPaddr2):

Starteddrbd1.linuxfly.org

fs_oracle(ocf:

:

heartbeat:

Filesystem):

Starteddrbd1.linuxfly.org

oracle_lsnrctl(ocf:

:

heartbeat:

oralsnr):

Starteddrbd1.linuxfly.org

oracle_instant(ocf:

:

heartbeat:

oracle):

Starteddrbd1.linuxfly.org

Master/SlaveSet:

ms_drbd_oracle

Masters:

[drbd1.linuxfly.org]

Slaves:

[drbd2.linuxfly.org]

图形下的状态:

※注意:

因为使用的是IPaddr2的RA,虚拟IP地址用ifconfig命令是看不到的,可用ipaddr查看:

引用

#ipaddr

1:

lo:

mtu16436qdiscnoqueue

link/loopback00:

00:

00:

00:

00:

00brd00:

00:

00:

00:

00:

00

inet127.0.0.1/8scopehostlo

inet6:

:

1/128scopehost

valid_lftforeverpreferred_lftforever

2:

eth0:

mtu1500qdiscpfifo_fastqlen1000

link/ether00:

50:

56:

85:

47:

4fbrdff:

ff:

ff:

ff:

ff:

ff

inet192.168.228.133/24brd192.168.228.255scopeglobaleth0

inet192.168.228.136/24brd192.168.228.255scopeglobalsecondaryeth0

inet6fe80:

:

250:

56ff:

fe85:

474f/64scopelink

valid_lftforeverpreferred_lftforever

3:

sit0:

mtu1480qdiscnoop

link/sit0.0.0.0brd0.0.0.0

6、手动切换

执行:

#crmresourcemigrategroup_oracledrbd2.linuxfly.org

状态:

引用

#crmstatus

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

Lastupdated:

ThuJul1515:

45:

032010

Stack:

Heartbeat

CurrentDC:

drbd1.linuxfly.org(ffc0848a-f475-49be-814e-1b247389d819)-partitionwithquorum

Version:

1.0.9-89bd754939df5150de7cd76835f98fe90851b677

2Nodesconfigured,unknownexpectedvotes

2Resourcesconfigured.

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

Online:

[drbd1.linuxfly.orgdrbd2.linuxfly.org]

ResourceGroup:

group_oracle

ip_oracle(ocf:

:

heartbeat:

IPaddr2):

Starteddrbd2.linuxfly.org

fs_oracle(ocf:

:

heartbeat:

Filesystem):

Starteddrbd2.linuxfly.org

oracle_lsnrctl(ocf:

:

heartbeat:

oralsnr):

Starteddrbd2.linuxfly.org

oracle_instant(ocf:

:

heartbeat:

oracle):

Starteddrbd2.linuxfly.org

Master/SlaveSet:

ms_drbd_oracle

Masters:

[drbd2.linuxfly.org]

Slaves:

[drbd1.linuxfly.org]

※注意:

migrate的动作会添加一条位置限制cli-standby-group_oracle,因此,当备机发生问题时,不会自动返回到主机上。

要解决该问题,需要把位置限制删掉。

执行un-migrate操作:

#crmresourceunmigrategroup_oracle

这里的migrate和move、unmigrate和unmove是同义命令。

7、监控测试

可以尝试以oracle用户执行lsnrctlstop停止Oracle监听服务,从后台日志中,会发现monitor的报错信息,自动重新激活整个group_oracle组资源。

8、维护

有时候,我们需要对当前主机进行维护,这时,可先把资源迁移到备机上,然后把主机设置为“非管理”的standby状态:

引用

[root@drbd1~]#crmresourcemigrategroup_oracle

[root@drbd1~]#crmnodestandby`uname-n`

[root@drbd1~]##crmstatus

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

Lastupdated:

ThuJul1516:

00:

472010

Stack:

Heartbeat

CurrentDC:

drbd1.linuxfly.org(ffc0848a-f475-49be-814e-1b247389d819)-partitionwithquorum

Version:

1.0.9-89bd754939df5150de7cd76835f98fe90851b677

2Nodesconfigured,unknownexpectedvotes

2Resourcesconfigured.

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

Nodedrbd

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1