[集群]详解LVS的工作模式之DR的实现
1、除特别说明外,本博客内容皆为原创,可以自由转载传播,但请署名及注明出处,不尊重别人劳动成果的不欢迎;
2、本博客内容遵守“署名-非商业性使用-禁止演绎 2.5 中国大陆”协议;
作者:张逸群
Mail:jeantoe@gmail.com
前言
Linux 服务器集群系统(以下简称 LVS), 是一个由章文嵩博士发起的自由软件项目,现在已经是 Linux 标准内核的一部分。LVS 从 Linux 内核还在 2.0 版本的时代开始,就得到广泛的应用,目前
Linux 的内核已经是 2.6 版,完全内置了 LVS 的各个模块,已经不需要在给内核打任何补丁。
如何配置 DR方式的集群是本文关注的焦点,读者可以将本文当作一篇 Howto 文档, 以一种相对简单的架构让集群“跑起来”,在生产中的应用随着我经验的增加也会陆续添加。
DR方式拓扑图
在dr模式中由realserver直接回复client的请求,流量不经过director所以速度快开销少。需要注意的是无论NAT或者DR方式都要求所有realserver必须和director位于同一个局域网内。
以DR方式部署
实验环境
OS:RHEL5U1
调度算法:rr
director 192.168.92.130(DIP) , 192.168.92.132
realserver1 192.168.92.100
realserver2 192.168.92.200
注意:DR方式中的IP全部都是公网IP
配置
director方面
ipvsadm -A -t 192.168.92.132:80 -s rr
ipvsadm -a -t 192.168.92.132:80 -r 192.168.92.100 -g
ipvsadm -a -t 192.168.92.132:80 -r 192.168.92.200 -g
echo 1 > /proc/sys/net/ipv4/ip_forward
realserver1和2中的配置
ifconfig lo:1 192.168.92.132 netmask 255.255.255.255
用lo而不用eth的原因。
eth是外部网络接口,如果配置成192.168.0.vip将导致ip地址冲突。
在realserver中关闭arp
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/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
永久修改以上位置 vim /etc/sysctl.conf
格式net.ipv4.conf.eth0.arp_ignore