免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5480 | 回复: 12
打印 上一主题 下一主题

两台服务器做ha,服务无法切换到备机上 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-05 14:54 |只看该作者 |倒序浏览
我的环境是这样:heartbeat+ldirectord+ipvsadm 做一个简单的集群
总共有四台服务器,其中两台用heartbeat做双击热备做分发服务器、剩余两台做真实应用。
现在的问题是当做heartbeat的主分发服务器宕掉后虚拟ip地址可以自动切换到备机上,但是当我访问应用时无法访问,也就是备机不能接管主机的服务。

下面是ha-log日志:
heartbeat[10692]: 2009/03/05_14:03:07 info: Received shutdown notice from 'fjdr1'.
heartbeat[10692]: 2009/03/05_14:03:07 info: Resources being acquired from fjdr1.
heartbeat[25574]: 2009/03/05_14:03:07 info: acquire local HA resources (standby).
heartbeat[25574]: 2009/03/05_14:03:07 info: local HA resource acquisition completed (standby).
heartbeat[25575]: 2009/03/05_14:03:07 info: No local resources [/usr/share/heartbeat/ResourceManager listkeys fjdr2] to acquire.
heartbeat[10692]: 2009/03/05_14:03:07 info: Standby resource acquisition done [foreign].
harc[25600]:    2009/03/05_14:03:07 info: Running /etc/ha.d/rc.d/status status
mach_down[25616]:       2009/03/05_14:03:07 info: Taking over resource group 10.46.110.103/28/eth0
ResourceManager[25642]: 2009/03/05_14:03:07 info: Acquiring resource group: fjdr1 10.46.110.103/28/eth0 ipvsadm ldirectord
IPaddr[25669]:  2009/03/05_14:03:07 INFO:  Resource is stopped
ResourceManager[25642]: 2009/03/05_14:03:07 info: Running /etc/ha.d/resource.d/IPaddr 10.46.110.103/28/eth0 start
IPaddr[25769]:  2009/03/05_14:03:08 INFO: Using calculated netmask for 10.46.110.103: 255.255.255.240
IPaddr[25769]:  2009/03/05_14:03:08 INFO: eval ifconfig eth0:0 10.46.110.103 netmask 255.255.255.240 broadcast 10.46.110.111
IPaddr[25769]:  2009/03/05_14:03:08 ERROR: Could not send gratuitous arps. rc=127
IPaddr[25740]:  2009/03/05_14:03:08 INFO:  Success
ResourceManager[25642]: 2009/03/05_14:03:08 info: Running /etc/init.d/ipvsadm  start
ResourceManager[25642]: 2009/03/05_14:03:08 info: Running /etc/ha.d/resource.d/ldirectord  start
mach_down[25616]:       2009/03/05_14:03:08 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
mach_down[25616]:       2009/03/05_14:03:08 info: mach_down takeover complete for node fjdr1.
heartbeat[10692]: 2009/03/05_14:03:08 info: mach_down takeover complete.
heartbeat[10692]: 2009/03/05_14:03:38 WARN: node fjdr1: is dead
heartbeat[10692]: 2009/03/05_14:03:38 info: Dead node fjdr1 gave up resources.
heartbeat[10692]: 2009/03/05_14:03:38 info: Link fjdr1:eth1 dead.



看到ha-debug日志里面有下面报错是否和这个有关?
IPaddr[31536]:  2009/03/05_13:55:13 INFO: eval ifconfig eth0:0 10.46.110.103 netmask 255.255.255.240 broadcast 10.46.110.111
IPaddr[31536]:  2009/03/05_13:55:13 DEBUG: Sending Gratuitous Arp for 10.46.110.103 on eth0:0 [eth0]
/usr/lib/heartbeat/send_arp: error while loading shared libraries: libnet.so.0: cannot open shared object file: No such file
or directory
IPaddr[31536]:  2009/03/05_13:55:13 ERROR: Could not send gratuitous arps. rc=127
IPaddr[31507]:  2009/03/05_13:55:13 INFO:  Success
INFO:  Success

[ 本帖最后由 wdrain 于 2009-3-5 14:58 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-03-05 16:57 |只看该作者

回复 #1 wdrain 的帖子

1.问题还是比较简单的.send_arp无法运行引起的.因为它依赖的库文件libnet.so.0没有找到.或是没有安装.

2.这种情况多是没有安装某个软件开发包

or

没有正确配置ldconfig

send_arp:
如果备份LVS Router未收到来自于活动LVS Router的响应,
它将调用send_arp将虚拟IP地址再分配到备份LVS Router的公网接口上。
并在公网接口和局域网接口上分别发送一个命令去关掉活动LVS Router上的lvs进程。同时启动自己的lvs进程来调度客户端请求。

try

http://rpmfind.net/linux/rpm2htm ... p;system=&arch=

[ 本帖最后由 todayhero 于 2009-3-5 17:04 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-03-05 17:47 |只看该作者
首先感谢您的回复

libnet.so.0这个文件我应经安装了,是否就是这个软件包libnet-1.1.2.1-2.rf.i386.rpm?
可是用find命令系统还是找不到libnet.so.0这个文件。

[ 本帖最后由 wdrain 于 2009-3-5 17:49 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-03-05 18:01 |只看该作者
ldd /usr/lib/heartbeat/send_arp,看看读取的libnet.so.0属于哪个路径,如果没有的话,弄个软连接过去吧。

论坛徽章:
0
5 [报告]
发表于 2009-03-05 19:25 |只看该作者

回复 #4 wqksnl 的帖子

1.ldd命令真是不错的命令.以前没使用过.

2.但不知有没有那个命令,可以知道libnet.so.0是属于那个文件的呢?一直没有找到合适的.

论坛徽章:
0
6 [报告]
发表于 2009-03-05 20:19 |只看该作者
看看ld的路径。
LD_LIBRARY_PATH

论坛徽章:
0
7 [报告]
发表于 2009-03-05 21:21 |只看该作者

回复 #1 wdrain 的帖子

真实服务器上配置一下arp的伪装
echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

论坛徽章:
0
8 [报告]
发表于 2009-03-06 10:25 |只看该作者
谢谢各位的回复!
下满是我执行ldd命令的输出:
[root@fjdr1 ~]# ldd /usr/lib/heartbeat/send_arp
        libplumb.so.1 => /usr/lib/libplumb.so.1 (0x0073f000)
        libpils.so.1 => /usr/lib/libpils.so.1 (0x0035f000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00939000)
        libnet.so.0 => not found
        libbz2.so.1 => /usr/lib/libbz2.so.1 (0x03bc2000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0x0349e000)
        libz.so.1 => /usr/lib/libz.so.1 (0x0062b000)
        libm.so.6 => /lib/tls/libm.so.6 (0x00600000)
        libc.so.6 => /lib/tls/libc.so.6 (0x004d2000)
        libuuid.so.1 => /lib/libuuid.so.1 (0x004cd000)
        libpam.so.0 => /lib/libpam.so.0 (0x007e9000)
        librt.so.1 => /lib/tls/librt.so.1 (0x00da3000)
        libltdl.so.3 => /usr/lib/libltdl.so.3 (0x00687000)
        libdl.so.2 => /lib/libdl.so.2 (0x00625000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x0063d000)
        /lib/ld-linux.so.2 (0x004b3000)
        libaudit.so.0 => /lib/libaudit.so.0 (0x00824000)

但是不知道libnet.so.0是属于哪个软件包?

如果做软连接要和哪个模块做软连呢?

论坛徽章:
0
9 [报告]
发表于 2009-03-06 11:10 |只看该作者

论坛徽章:
0
10 [报告]
发表于 2009-03-06 13:07 |只看该作者
谢谢各位的帮助。现在问题解决了

我原来装的是libnet-1.1.2.1-2.rf.i386.rpm这个软件包,没有libnet.so.0这个文件。
换成libnet-1.1.1-42.1.i586.rpm 较低版本就有了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP