免费注册 查看新帖 |

Chinaunix

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

lvs/DR 集群问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-12 17:55 |只看该作者 |倒序浏览
5可用积分
1.按照lvs direct routing 的定义,分发器收到连接请求后交给real server,real server 收到这个请求就直接于client通信了,我想问是不是以后所有的有关于这个请求的包都是客户端直接与real server通信不需要经过分发器了呢?还有reall server 的VIP必须添加到lo接口上吗?可以添加到其它接口吗?


2.我看了很多资料都是说用keepalived 来监视2个分发器,一个是master,一个是backup,是不是keepalived只能监视2台机器啊?比如说我想要监视数量大于2台real server呢?有没有什么好的软件啊?

3.还有就是今天我刚刚配置了一下2台real server的集群,第一次还成功了,后来就不行了访问不了,在real server上也抓不到包了。

[ 本帖最后由 lth0721 于 2009-2-12 18:09 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-02-12 18:14 |只看该作者

回复 #1 lth0721 的帖子

1.按照lvs direct routing 的定义,分发器收到连接请求后交给real server,real server 收到这个请求就直接于client通信了,我想问是不是以后所有的有关于这个请求的包都是客户端直接与real server通信不需要经过分发器了呢?还有reall server 的VIP必须添加到lo接口上吗?可以添加到其它接口吗?

不是,client发送的包都需要分发器来处理后转交;vip理论上可以绑定到任意接口,实际中一般绑定到lo上,主要是为了防止arp广播该vip。

2.我看了很多资料都是说用keepalived 来监视2个分发器,一个是master,一个是backup,是不是keepalived只能监视2台机器啊?比如说我想要监视数量大于2台real server呢?有没有什么好的软件啊?

3.还有就是今天我刚刚配置了一下2台real server的集群,第一次还成功了,后来就不行了访问不了,在real server上也抓不到包了。

请帖具体配置啊~~~

论坛徽章:
0
3 [报告]
发表于 2009-02-13 09:20 |只看该作者
首先要谢谢2位的回答
“实际中一般绑定到lo上,主要是为了防止arp广播该vip。”
具体是怎么防止的呢 这一点我一直没有搞清楚,能说清楚点吗?

我先做的是做简单的一个DR 2个real server 内核都是2.6.18
DR 10.0.1.8 (10.0.1.8是DR的真实IP,我想的是给2个real server设置vip也为10.0.1.8)
REAL SERVER1 10.0.1.7
REAL SERVER2 10.0.1.6


DR配置
ipvsadm -C
ipvsadm -A -t 10.0.1.8:81 -s rr -p 200
ipvsadm -a -t 10.0.1.8:81 -r 10.0.1.6:81 -g
ipvsadm -a -t 10.0.1.8:81 -r 10.0.1.7:81 -g
echo "1" >/proc/sys/net/ipv4/ip_forward

10.0.1.6配置
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

ifconfig lo:0 10.0.1.8 netmask 255.255.255.0


10.0.1.7配置
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

ifconfig lo:0 10.0.1.8 netmask 255.255.255.0


我第一次是把vip设置在eth0:0上的,改到lo:0上后我的机器就无法与real server 通信了。。是不是vip的netmask 必须设置为4个255 啊

还有就是如果是多台real server怎么让keepalived 和lvs 协作以达到及时无心跳接点的要求呢?能给个例子吗?

[ 本帖最后由 lth0721 于 2009-2-13 11:10 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-02-13 10:15 |只看该作者
在lvs调度器上需要把虚拟ip配置到eth0上,realserver虚拟ip绑定到lo上

论坛徽章:
0
5 [报告]
发表于 2009-02-13 10:55 |只看该作者
原帖由 lnycm 于 2009-2-13 10:15 发表
在lvs调度器上需要把虚拟ip配置到eth0上,realserver虚拟ip绑定到lo上


我的调度器就只有一个ip不可以直接作为虚拟ip使用吗?

论坛徽章:
0
6 [报告]
发表于 2009-02-13 11:35 |只看该作者
我发现在10.0.1.7上添加了ifconfig lo:0 10.0.1.8 netmask 255.255.255.255后,DR根本就ping不通10.0.1.7这个地址了啊。
经过多次试验,导致导致了在.7上抓不到包的原因是echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 也就是忽略了arp包.但是我明明只在lo这个接口上忽略的啊,怎么会影响到eth0了呢?  而且不忽略这个会引起arp问题的啊,怎么解决呢?需要打补丁吗?

[ 本帖最后由 lth0721 于 2009-2-13 11:55 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-02-13 11:55 |只看该作者
解决vip被广播的办法就是修改proc下网络参数啊,你贴的配置里有。
DR无法ping通10.0.1.7的原因就是因为没有修改proc下相关参数,导致rs上vip被arp广播,与DR的ip冲突了,在lo上添加别名ip前,先执行:

echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth2/arp_announce
... ...

goodlock~~~

论坛徽章:
0
8 [报告]
发表于 2009-02-13 12:37 |只看该作者
我的rs的vip是配置在lo:0上的
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo “2” > /proc/sys/net/ipv4/conf/lo/arp_announce
这样还不够吗?
为什么还需要对eth0也做同样的设置呢?

我在10.0.1.7上
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce
后 发现lvs是用起了但是我的机器访问也不了10.0.1.7了..

DR上也ping 不通10.0.1.7显示Destination Host Unreachable
我想可能是由于关闭了10.0.1.7上etn0 arp响应的原因

[ 本帖最后由 lth0721 于 2009-2-13 12:47 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-02-13 13:41 |只看该作者
对了我想知道DR是怎么知道real server的mac地址的呢?是不是需要在DR上手动设置啊

论坛徽章:
0
10 [报告]
发表于 2009-02-13 16:11 |只看该作者
原帖由 lth0721 于 2009-2-13 13:41 发表
对了我想知道DR是怎么知道real server的mac地址的呢?是不是需要在DR上手动设置啊


Director(调度器)需要的是 real server(真实服务器)的eth0 or eth1的mac地址,直接通过arp request就可以得到(系统自动执行)。

on director(192.168.1.245)

#ipvsadm -A -t 192.168.1.250:80 -s rr
#ipvsadm -a -t 192.168.1.250:80 -r 192.168.1.246:80 -g

那么director需要知道的是 192.168.1.246这个real server的mac地址。

请参考我的博客

http://blog.chinaunix.net/u2/74751/showart_1811155.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP