Jul 9

[原]构建Heartbeat 2.1.3 GUI+DRBD+Oracle 10g 双机互备集群 晴

linuxing , 23:14 , 网络服务 » HA , 评论(14) , 引用(0) , 阅读(62008) , Via 本站原创 | |

三、cib.xml 配置文件
Heartbeat 2.x 使用Pacemaker Cluster Resource Manager(简称CRM)作为配置、监控和管理工具。其具体使用我这里不再详细说明,请参考:[原]使用hb_gui 配置heartbeat 一文。
1、导入和导出配置文件
在我的环境中已经配置完成,这里提供resources(资源)和constraints(限制条件)的xml 文件:
使用很简单,用cibadmin 命令导入即可:

# cibadmin -E --force
# cibadmin -o resources -C -x resources.xml
# cibadmin -o constraints -C -x constraints.xml

-E 是先清空原来的cib.xml 文件(--fore是2.1.4版本需要的参数),该命令在一台机器上运行即可
同样的,下面的命令是反向的作用,可以把当前Heartbeat 2.x 的配置情况导出来备份:

# cibadmin -o resources -Q > resources.xm
# cibadmin -o constraints -Q > constraints.xml

2、配置要点
具体的配置情况,在您把配置文件导入到CRM中后即可看到。当然,如果您的环境与我不同,例如主机名、IP等,该配置文件将不能使用,但您可以用来参考。此外,我也简单描述一下在配置时需特别留意的地方:
引用
a、把对drbd的监控作为一个单独的“主从资源”来配置,并分别设定monitor操作,而不要放在与oracle相同的资源组里面;
b、只有当drbd启动完成后(RA会自动把当前节点设置为primary),然后才能挂载/dev/drbd0设备,所以说,oracle资源组是依赖于drbd资源的,这可通过配置“限制条件”中的“位置”、“顺序”、“协同”来限定;
c、在创建资源组时,会提示您“顺序启动子资源”和“同节点启动子资源”两个值(默认为true),这表示,同一个资源组中的资源会从上往下执行,若其中有一个资源启动不成功,则后续的资源将不会启动;这也是一个应用执行顺序的限定(但依赖性的设置没有“顺序”等控制强);若在创建资源时顺序不对,必须通过右键中的上下移动调整过来;
d、drbd RA必须设置drbd_resource参数,其表示您在drbd中设置的资源名称,而非/dev/drbd0等设备;
e、oralsnr RA和 oracle RA都必须设置sid值,而home值默认会从/etc/oratab中读取,user值默认会是$ORACLE_HOME/dbs/*${ORACLE_SID}.ora的宿主,其他值也有类似的默认设定,详细请见RA的说明
f、为减少Oracle启动时间,并更有效的监控Oracle,建议oralsnr RA的顺序比oracle RA的要早;
g、若在测试期间,某资源在各节点多次尝试启动均失败,则该资源会被保护起来,可通过右键中的“清理资源”重新进行启动的调试动作。

以下是我当前环境运行的截图:
点击在新窗口中浏览此图片

四、常规维护
1、查看集群当前状态
除了hb_gui 提供的GUI方式外,下面的命令是字符下查看集群状态的:
引用
# crm_mon
Defaulting to one-shot mode
You need to have curses available at compile time to enable console mode

============
Last updated: Sat Jul 10 02:37:27 2010
Current DC: drbd2.linuxfly.org (1692f6d7-6ed8-4291-8cd3-20bba7029b6e)
2 Nodes configured.
2 Resources configured.
============

Node: drbd2.linuxfly.org (1692f6d7-6ed8-4291-8cd3-20bba7029b6e): online
Node: drbd1.linuxfly.org (198dcc16-9449-4d0a-bc16-a43bd6df95b3): online

Resource Group: rg_files
    mount_data  (heartbeat::ocf:Filesystem):    Started drbd1.linuxfly.org
    resource_ip (heartbeat::ocf:IPaddr):        Started drbd1.linuxfly.org
    oralsnr     (heartbeat::ocf:oralsnr):       Started drbd1.linuxfly.org
    oracle      (heartbeat::ocf:oracle):        Started drbd1.linuxfly.org
Master/Slave Set: drbd_files
    resource_drbd:0     (heartbeat::ocf:drbd):  Master drbd1.linuxfly.org
    resource_drbd:1     (heartbeat::ocf:drbd):  Started drbd2.linuxfly.org

2、手动切换
下面的命令可手动切换某个资源或组资源:
引用
[root@drbd1 log]# crm_resource -M -r rg_files
WARNING: Creating rsc_location constraint 'cli-standby-rg_files' with a score of -INFINITY for resource rg_files on drbd1.linuxfly.org.
        This will prevent rg_files from running on drbd1.linuxfly.org until the constraint is removed using the 'crm_resource -U' command or manually with cibadmin
        This will be the case even if drbd1.linuxfly.org is the last node in the cluster
        This messgae can be disabled with -Q

但是该动作将会生成一个cli-standby-rg_files位置限制,Failover动作会被禁止。可用下面的命令删除该限制,或在hb_gui 中删除:

# crm_resource -U -r rg_files

3、DRBD Split-Brain 问题
当某一节点出现问题,而另一节点在长时间等待超时(由drbd中配置的degr-wfc-timeout 时间决定)后,则该节点将会独立运行,处于StandAlone状态,而另一节点起来后,会是WFConnection。这是,主屏幕会报Split-Brain 错误:
引用
block drbd0: Split-Brain detected,manually solved. Sync from peer node

同样的,集群中某节点出现故障,由另一节点暂时独立运行时,也是相同的情况。
由于drbd RA总是把当前节点设置为Primary,即使该节点DRBD磁盘处于Primary/Unknown状态,而另一节点为Secondary/Unknown下,所以,这时需注意数据异常的问题。
应在判断存放正确数据的节点后,采取重新同步的动作,具体可参考:[原]使用DRBD创建镜像分区一文附录。
在准备丢弃该节点数据的一方运行:

# drbdadm disconnect resource_name
# drbdadm secondary resource_name
# drbdadm -- --discard-my-data connect resource_name

而存放正确数据的节点运行:

# drbdadm connect resource_name

以让两节点恢复到ro:Primary/Secondary ds:UpToDate/UpToDate 的状态。

五、附录
1、已修正上述各Bug的Heartbeat 2.1.4 rpm包

(未修改的2.1.3版本,请从CentOS源获得,未修改的2.1.4版本,请从EPEL源获得)

2、SuSe 编写的High Availability 指南
该指南描述的就是Heartbeat 2.x ,中文版,包括DRBD、RA、主要配置脚本、命令的说明。

六、参考文档
SUSE High Availability 指南
HeartBeat(2.1.3-6)+DRBD(2:8.3.0-1)+MySQL on Debian Etch 建置/測試筆記(包括效能测试,heartbeat dopd(DRBD outdate-peer daemon)的使用)
Using DRBD in Heartbeat CRM-enabled clusters
The Linux-HA User's Guide
Using DRBD with Heartbeat v2 in CRM mode
Using Heartbeat with dopd
Strategies for dealing with outdated data
利于heartbeat构建Oracle高可用(自定义一个RA)
内文分页: [1] [2]
Tags: , , ,
浆糊
2012/03/12 01:13
奇怪了,我装了heartbeat后,禁用主节点的网卡后,VIP,可以正常切换到备用节点;但是,激活主节点的网卡后,再禁用备用节点的网卡,主节点,备用节点,都不会接管VIP;即使备用激活节点的网卡,主、备节点,都不能接管任务,不会产生VIP,这是怎么一回事?
楼主能帮忙解释一下么?
linuxing 回复于 2012/03/22 11:29
feelback是否已启用?另外,日志中应该有告诉你原因的。
老箭
2011/03/22 16:29
版主,你提供下载的<<已修正上述各Bug的Heartbeat 2.1.4 rpm包>>,是不是不能安装在centos 5.4上啊?
linuxing 回复于 2011/03/24 12:14
可以的。
ak_birdofprey Email
2010/10/01 16:05
谢谢版主,提供这么好的文档,本人已经成功在REDHAT5.5上部署了。非常感谢。
linuxing 回复于 2010/10/01 23:20
^_^
ak_birdofprey Email
2010/09/25 15:21
谢谢您的回复,我已经将两个文件改为了浮动IP,但是ORACLE的EMCTl启动后,通过网页方式无法进行管理,不知道楼主如何解决,另外在做测试时,我先将未启动ORACLE的机器关机,之后将启动了ORACLE的机器直接关机,再单独启动那台先关掉的机器,结果DRBD状态始终是SECONERY状态,无法启动oracle服务,请帮忙
ak_birdofprey Email
2010/09/24 22:29
最简单的方式,就是你在某一台机器上把Oracle安装到DRBD的分区中。而另一台机器上建立与这台机器相同的用户名和环境配置即可。另外,拷贝 /etc/oratab文件到另一台机器上,这样就完整Oracle的部署了。
我已经这样做过了,但是将ORADATA挂载到另一主机时,ORACLE就无法启动监听了。不知道哥哥的双机listener.ora和tnsnames.ora是如何配置的呀。谢谢赐教。
linuxing 回复于 2010/09/25 10:23
lisnter.ora和tnsname.ora里面都改为浮动IP,不要用实际IP地址。
ak_birdofprey Email
2010/09/23 23:46
楼主说的:在已完成上述我提到的系统环境,包括两集群主机的主机名、/etc/hosts文件配置、DRBD安装及配置、Oracle双机环境部署等工作后,即可进行Heartbeat 2.x 的配置。其中的Oracle双机环境部署是不是指的Oracle RAC的部署呀,请详解。谢谢楼主指点
linuxing 回复于 2010/09/24 13:30
建议你详细看看HA部分中的内容,例如[原]安装红旗HA 4.1实现Oracle高可用 一文,因为HA的东西,原理都是一样的,我不想每次都重复类似的内容。而Oracle在HA环境中的部署,在HA部分的文章中都有很详细的介绍的。就是hosts文件、oracle配置文件等。
ak_birdofprey Email
2010/09/23 23:04
谢谢,能不能详细讲解下Oracle双机环境部署。本人DRBD已经可以工作,但安装ORACLE老是又有问题。谢谢
linuxing 回复于 2010/09/24 13:31
最简单的方式,就是你在某一台机器上把Oracle安装到DRBD的分区中。而另一台机器上建立与这台机器相同的用户名和环境配置即可。另外,拷贝/etc/oratab文件到另一台机器上,这样就完整Oracle的部署了。
ak_birdofprey Email
2010/09/23 21:27
谢谢您的回帖,问题是虚拟机启动之后直接宕机,问题已经解决了。是因为创建虚拟机的物理磁盘小了点,所以启动两台虚拟机就出问题了。目前将两个虚拟机放在不同的分区上就好了。现在的新问题是在node1伤安装完node2上也能同步,但是在node2伤ORACLE的监听无法启动。报ORA-12541错误,请讲下ORACLE双机监听的配置,行吗?谢谢您
ak_birdofprey Email
2010/09/20 10:34
谢谢您的回复。新的问题出现了。在安装ORACLE10.2时,使用BONDING配置网卡,ORACLE10.2安装程序报网络配置错误无法安装,之后禁用BONDING,将eth0网卡配置为静态IP。在DRBD的存储oradata中安装ORACLE10.2,重启机器后备机就死机了。备机启动的时候必须要将另一台机器的网卡禁用才能启动,启动后如果启用另一台机器的网卡,备机马上就死了,同时在另一台机器上报DRBD错误 512。请指点。谢谢您
linuxing 回复于 2010/09/20 13:35
死了?这是什么意思?机器失去响应了,还是重启?看后台日志,为什么原因导致的。DRBD上有IP的设置,看是否正确。
ak_birdofprey Email
2010/09/19 13:10
谢谢,这几天我一直在做实验,发现在执行完MAKE之后,在/heartbeat-3-0STABLE-3.0.3/lib/plugins/HBcomm文件夹中有个hbaping.loT的文件,直接改名成hbaping.lo之后make; make install不再报错。但是不知道HA能不能用。谢谢,目前已经把DRBD做好了。之后是先安装ORACLE10.2还是先配双机呀,还有您文中说的“顺序”、“协同”的问题,请您再详细讲讲。谢谢了。问下您是干什么工作的。好向您学习。呵呵
linuxing 回复于 2010/09/20 09:45
配置HA,都是先部署应用,然后再调试HA的。至于限制条件,看看heartbeat的wiki,2.x和3.x的原理基本是一样的。
分页: 1/2 第一页 1 2 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]