免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 大司南
打印 上一主题 下一主题

关于heartbeat双机热备active/standby疑问?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-11 10:08 |显示全部楼层 |倒序浏览
我通过网上的一些文章使用了heartbeat  配置成了 active/standby 模式
但是现在我的想法是如下: 主服务器 A  从服务器 B

1. 主服务器(A)挂掉,从服务器(B)接管主服务器资源
2. 从服务器(B)挂掉,主服务器(A)不受影响,继续服务。。

请问这个需要怎样设置?修改 ha.cf 能不能实现?还是需要其他的插件??
我现在的设置发现,从服务器挂掉,主服务器会接管从服务器资源,这样就造成主服务器的资源运行两次,使得主服务器服务受到影响。。
不知道大家有没有什么好的想法??

论坛徽章:
0
2 [报告]
发表于 2008-01-11 10:42 |显示全部楼层
主dr的ha.cf:
+++++++++++++++++++++++++++++++
logfile        /var/log/ha-log
keepalive 5
deadtime 15
warntime 10
initdead 120
udpport        7941
ucast eth0 192.168.1.100
auto_failback on
watchdog /dev/watchdog
node        MDR
node        BDR
ping_group group1 192.168.1.5 192.168.1.7
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
++++++++++++++++++++++++++++++++
备机和主的ha.cf大部分相同只是
ucast eth0 192.168.1.101
++++++++++++++++++++++++++++++++
主dr的haresources:
MDR Lvs_Dr.sh ldirectord
++++++++++++++++++++++++++++++++
备机和主的haresources相同
++++++++++++++++++++++++++++++++

论坛徽章:
0
3 [报告]
发表于 2008-01-11 11:06 |显示全部楼层
首先,谢谢您的回复
主dr :
#uname -n
MDR
备dr :
#uname -n
BDR

我的haresources里面只配置了
MDR Lvs_Dr.sh ldirectord

我发现,每次从机down后,主dr的ldirectord都会不正常,不能起作用。

论坛徽章:
0
4 [报告]
发表于 2008-01-11 11:42 |显示全部楼层
ldirecord是heartbeat的一个套件,因为我做的lvs,ldirectord做realserver的管理
/etc/hosts我已经把两台服务器都添加了.

现在我已经实现了Direct server的ha,但是,我觉得不够理想,因为我是想以MDR服务器为主
BDR只是在MDR挂掉时候,临时跑一下,不想BDR影响MDR

论坛徽章:
0
5 [报告]
发表于 2008-01-14 10:14 |显示全部楼层
原帖由 Godbach 于 2008-1-11 21:47 发表
做一个脚本啊,当前服务器如果由Master-->Slave,执行相应脚本,当然应该保持从机的状态始终和从机一致就可以了。


其实这个问题,我现在是解决了,不过是以脚本方式解决的,改了几个参数。但是我主要想问,heartbeat本身有没有这个解决方案,毕竟我们大多数做的standby的服务器,性能都稍差一些。还是以主服务器为主。

请问有没有谁能解答一下??


另外xinyv兄提出的方案 把auto_failback off 或auto_failback on 这个主要是决定如果主服务器挂掉,又恢复,是不是将resource移回主服务器,这个应该不是解决方法,不过还是非常感谢xinyv兄,提出的思路。


我上面的ha.cf和haresources文件的配置,其实目的就是把资源全部放在MDR上,BDR上的资源也是指向MDR的。
MDR-->haresources:
MDR Lvs_Dr.sh ldirectord
BDR-->haresources:
MDR Lvs_Dr.sh ldirectord
所以两台服务器开机时候MDR机会把Lvs_Dr.sh ldirectord 全部start,而BDR服务器则不会将Lvs_Dr.sh ldirectord start.
第一种情况:
MDR挂掉,BDR会去haresources找到Lvs_Dr.sh ldirectord 并将其全部start,由于ha.cf配置auto_failback on,所以当MDR恢复,BDR会将Lvs_Dr.sh ldirectord 全部stop。将资源交给MDR
BDR挂掉,MDR发现BDR挂掉,于是MDR拿到BDR的资源,并启动,由于之前MDR已经启动了Lvs_Dr.sh ldirectord start,那么此时这两个脚本将再启动一次,造成启动不正常。
以上是我的理解。。。。

[ 本帖最后由 大司南 于 2008-1-14 10:18 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-01-14 11:35 |显示全部楼层
原帖由 Godbach 于 2008-1-14 11:05 发表
那是不是指要修改一下heartbeat实现的方法,这要熟悉heartbeat的协议吧


那请你写一下你对heartbeat的理解。。。

论坛徽章:
0
7 [报告]
发表于 2008-01-14 11:47 |显示全部楼层
原帖由 root_man 于 2008-1-14 11:38 发表
auto_failback:  determines whether a resource will automatically fail back to its "primary" node, or remain on whatever node is serving it until that node fails, or an administrator intervenes.
...


因为我们用HA的目的是要提供可持续服务,那么第一种情况,如果MDR服务器挂掉,BDR可以马上接替服务,但是,不知你有没有想过,如果BDR,突然挂掉,那么MDR是不是会受影响呢。。。这个我测试了一下,确实是会受影响的,那么这个就不能保证可持续服务。。。

论坛徽章:
0
8 [报告]
发表于 2008-01-14 14:53 |显示全部楼层
原帖由 root_man 于 2008-1-14 11:57 发表
ldirectord ldirectord is a daemon to monitor and administer real servers in a LVS cluster of load balanced virtual servers.
ldirectord monitors the health of the real servers by periodically req ...


请仔细看我的需求,这个不能解决我的问题,不过还是十分感谢您。。。

论坛徽章:
0
9 [报告]
发表于 2008-01-15 09:52 |显示全部楼层
原帖由 bhuang 于 2008-1-14 20:24 发表
你是怎么解决的?我也遇到和你一样的情况,配置基本和你一样,就是当备份服务器down掉(此时资源不在备份服务器上)后会导致正在运行的主服务器重启资源,会导致主服务器上的服务中断一会,郁闷啊


我测试了很多遍,备份服务器挂掉,主服务器不是重起,如果重起,那么问题就不大了,主服务器会出现资源start 两次。。。这样就会出现不正常。。。

论坛徽章:
0
10 [报告]
发表于 2008-01-15 14:40 |显示全部楼层
原帖由 bhuang 于 2008-1-15 12:37 发表


你的应该是“Lvs_Dr.sh ldirectord”这两个脚本有问题,手工运行下Lvs_Dr.sh stop,ldirectord stop看下能否停掉资源

这个我可以确认,脚本没有问题,我单独都运行调试过,没问题的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP