本文一个简单的示例演示LVS的配置(DR模式)和测试。
使用的配置环境如下:
Director server: 192.168.8.4
Real server1: 192.168.8.5
Real server2: 192.168.8.6
VIP: 192.168.8.200
网络topology图如下:
图2中的VIP指的是虚拟IP地址,还可以叫做LVS集群的服务IP,在DR、TUN模式中,
数据包是直接返回给用户的,所以,在Director Server上以及集群的每个节点上都需要设置这个地址。
此IP在Real Server上一般绑定在回环地址上,例如lo:0。
在Director Server上,虚拟IP绑定在真实的网络接口设备上,例如eth0:0。
Linux2.6内核默认支持LVS功能,系统安装完毕,可以通过如下命令检查kernel是否已经支持LVS的ipvs模块:
[root@localhost ~]#modprobe -l |grep ipvs
/lib/modules/2.6.18-53.el5/kernel/net/ipv4/ipvs/ip_vs_sh.ko
/lib/modules/2.6.18-53.el5/kernel/net/ipv4/ipvs/ip_vs_rr.ko
如果有类似上面的输出,表明系统内核已经默认支持了IPVS模块。接着就可以安装IPVS管理软件了。
一 在Director Serve上安装IPVS管理软件下载对应的ipvsadm-1.24版本,接着进行安装:
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make
make install
注意:在make时可能会出现错误编译信息,这是由于编译程序找不到对应内核的原因,
按照如下操作就可以正常编译:
[root@localhost ~]#ln -s /usr/src/kernels/2.6.18-53.el5-i686/ /usr/src/linux
安装完成后,通过ipvsadm命令行进行配置
首先在Director Server上绑定一个虚拟IP,此IP用于对外提供服务,执行如下命令:
ifconfig eth0:0 192.168.8.200 broadcast 192.168.8.200 netmask 255.255.255.255 up
这样在eth0设备上绑定了一个虚拟设备eth0:0,同时设置了一个虚拟IP是192.168.8.200,
也就是上面我们规划的IP地址,然后指定广播地址也为192.168.8.200,需要特别注意的是,
这里的子网掩码为255.255.255.255。
然后给设备eth0:0指定一条路由,执行如下指令:
route add -host 192.168.8.200 dev eth0:0
接着启用系统的包转发功能,从而使系统充当路由器,执行如下指令:
[root@localhost ~]#echo "1" >/proc/sys/net/ipv4/ip_forward
指令中,参数值为1时启用ip转发,为0时禁止ip转发。其实在DR模式中,开启系统的包转发功能不是必须的,
而在NAT模式下此操作是必须的。
然后开始配置ipvs,执行如下操作:
ipvsadm -C
ipvsadm -A -t 192.168.8.200:8080 -s rr
ipvsadm -a -t 192.168.8.200:8080 -r 192.168.8.5:8080 -g
ipvsadm -a -t 192.168.8.200:8080 -r 192.168.8.6:8080 -g
上面操作中,第一行是清除内核虚拟服务器列表中的所有记录,
第二行是添加一条新的虚拟IP记录,同时指定策略为轮询。
第三、四行是在新加虚拟IP记录中添加两条新的Real Server记录,并且指定LVS的工作模式为直接路由模式。
在DR模式下,Director和Real Server需要在同一个物理网段中。
-g代表gateway,意思为直接路由,还可以有-i(internet)隧道模型,-m(masq)伪装,NAT模式
二、Real server 的配置在lvs的DR和TUN模式下,用户的访问请求到达真实服务器后,是直接返回给用户的,
而不再经过前端的Director Server,因此,就需要在每个Real server节点上增加虚拟的VIP地址,
这样数据才能直接返回给用户,增加VIP地址的操作可以通过下面的命令来实现:
ifconfig lo:0 192.168.8.200 broadcast 192.168.8.200 netmask 255.255.255.255 up
#子网掩码255.255.255.255表示这个整个网段只有这一个地址
route add -host 192.168.8.200 dev lo:0
#上面的命令表示网络请求地址是192.168.8.200的请求,返回的时候的源地址是lo:0网卡上配置的地址,
#这样出去的ip包的src地址就是192.168.8.200
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
sysctl -p
在回环设备上绑定了一个虚拟IP地址,并设定其子网掩码为255.255.255.255,
与Director Server上的虚拟IP保持互通,然后禁止了本机的ARP请求。
由于虚拟ip,也就是上面的VIP地址,是Director Server和所有的Real server共享的,
如果有ARP请求VIP地址时,Director Server与所有Real server都做应答的话,就会出现问题,
因此,需要禁止Real server响应ARP请求。
三、在Real server上配置tomcat服务,略。在192.18.8.5建一个html文件内容为:
this is the test page
<br>
from server 192.168.8.5
在192.18.8.6建一个html文件内容为:
this is the test page
<br>
from server 192.168.8.6
四 测试客户端通过VIP访问,如下面的url
http://192.168.8.200:8080/test/test.html
可以发现返回的内容由192.168.8.5和192.168.8.6轮流提供。
也可在Director上通过ipvsadm -lnc可以观察调度的情况。
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
配置完Keepalived+LVS-DR模式后,输出文档以做备忘。
LVS-DR模式详细叙述文档,根据安装好的服务抓包详述了LVS-DR的基本原理。 后附配置文档。
8.1: 集群及LVS简介 、 LVS-NAT集群 、 LVS-DR集群 、 总结与答疑.docx
搭建LVS-DR模式,需要注意在Director和RS上开启VIP,并且同时指定路由,使用rr模式,在刷新网页时实现178和179轮流呈现。需要注意将三台设备上防火墙关闭。
NULL 博文链接:https://javsmiles.iteye.com/blog/1867600
LVS-DR+keepalive+ldirectord 构建高可用负载均衡群集试验手册
Linux负载均衡--LVS+Keepalived(终极文档).pdf
Redhat Linux 6 操作系统LVS_DR模式配置的详细文档,按照文档的部署和配置可实现 LVS_DR模式的负载均衡。
LVS-DR原理剖析 想了解理论的可以看看
linux lvs 的DR 模式 linux lvs 的DR 模式
这里简介LVS-DR模式 LVS-DR+Nginx+Apache集群搭建 不使用keepalived 负载均衡权重,根据实际需求进行配置 网卡配置需要注意哪些问题 外网配置和VIP配置 Nginx的两种安装方式:源码包安装和yum安装 Apache的两种安装...
LVS-DR集群
CentOS上配置LVS DR集群.docx CentOS上配置LVS DR集群.docx
NULL 博文链接:https://shihuan830619.iteye.com/blog/2291978
LVS集群的体系结构以及特点 通过LVS+Keepalived搭建高可用的负载均衡集群系统 测试LVS+Keepalived高可用负载均衡集群
Linux操作系统集群LVS-ipvsadm命令参考
LVS-DR+Keepalived小型网站架构(6台).md
LVS-DR安装文档及安装介质