采用Lvs DR(直接路由)模式搭建集群

发布 : 2016-01-10 分类 : 大数据 浏览 :
1
2
3
4
5
使用3台服务器搭建lvs DR模式集群

192.168.230.10(前端调度服务器)DIP
192.168.230.11(后台服务器)RIP
192.168.230.12(后台服务器)RIP

Lvs DR(直接路由)模式

在使用nginx配置集群管理的时候,nginx会出现很多请求和响应都经过nginx,服务器集群会出现瓶颈的情况,需要使用LVS(Linux Virtual Sever)管理集群

Lvs DR(直接路由)模式原理

客户机发起请求到前端负载调度器/集群服务器,前端负载调度器/集群服务器会收到客户机的ip和vip,

前端负载调度器/集群服务器转发到后端服务器处理请求,

然后直接返回到客户端,不再经过集群服务器。

这是需要每个服务器有一个共同的vip,只有这样后端服务器响应到客户机才会接受。

VIP:虚拟服务器地址
DIP:转发的网络地址
RIP:后端真实主机(后端服务器)
CIP:客户端IP地址

1.选择192.168.230.10作为DR(前端负载调度器)

2.在DR(前端负载调度器)中设置两个ip地址:

1
2
3
4
5
6
7
a) DIP:192.168.230.10,静态IP

b) VIP:192.168.230.100,通过ifconfig eth0:1 192.168.230.100/24设置

设置虚拟ip

[root@node1 /]# ifconfig eth0:1 192.168.230.100/24

1
2
3
c) 查看window命令行窗口192.168.230.10主机的虚拟ip能否ping通

ping 192.168.230.100(VIP)

1
arp -a

3.选择192.168.230.11主机.192.168.230.12主机作为RS(RIP)

1
2
3
4
5
6
a) 两台RIP要设置静态ip

192.168.230.11主机 静态ip:192.168.230.11
192.168.230.12主机 静态ip:192.168.230.12

b) 修改报文源ip的设置,需要设置内核参数
1
在192.168.230.11主机操作:
1
2
3
4
5
[root@node2 ~]# cd /
[root@node2 /]# echo "1" > /proc/sys/net/ipv4/conf/eth0/arp_ignore
[root@node2 /]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@node2 /]# echo "2" > /proc/sys/net/ipv4/conf/eth0/arp_announce
[root@node2 /]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
1
在192.168.230.12主机操作:
1
2
3
4
5
[root@node3 ~]# cd /
[root@node3 /]# echo "1" > /proc/sys/net/ipv4/conf/eth0/arp_ignore
[root@node3 /]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@node3 /]# echo "2" > /proc/sys/net/ipv4/conf/eth0/arp_announce
[root@node3 /]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

1
c) 在两台机器(RS)上,设置网卡的别名IP:192.168.230.100
1
2
3
在192.168.230.11主机操作:

[root@node2 ~]# ifconfig lo:1 192.168.230.100 netmask 255.255.255.255 broadcast 192.168.230.100

1
2
3
在192.168.230.12主机操作:

[root@node3 ~]# ifconfig lo:1 192.168.230.100 netmask 255.255.255.255 broadcast 192.168.230.100

1
d) 在两台机器(RS)上,添加一个路由
1
2
3
在192.168.230.11主机操作:

[root@node2 ~]# route add -host 192.168.230.100 dev lo:1

1
2
3
在192.168.230.12主机操作: 

[root@node3 ~]# route add -host 192.168.230.100 dev lo:1

4.DR(前端负载调度器)上需要加一个路由设置:route add -host 192.168.230.100 dev eth0:1

1
2
3
在192.168.230.10主机DR(前端负载调度器)操作:

[root@node1 /]# route add -host 192.168.230.100 dev eth0:1

5.在RS 检查web服务是否正常

1
2
3
4
5
6
7
8
9
在192.168.230.11后台服务器操作:

[root@node2 ~]# yum -y install httpd
[root@node2 bin]# cd /var/www/html
[root@node2 html]# vi index.html
<html>
<h1>matrix2!</h1>
</html>
[root@node2 ~]# service httpd start
1
在浏览器地址栏访问:http://192.168.230.11/,查看web服务是否正常

1
2
3
4
5
6
7
8
9
在192.168.230.12后台服务器操作:

[root@node3 ~]# yum -y install httpd
[root@node3 bin]# cd /var/www/html
[root@node3 html]# vi index.html
<html>
<h1>matrix3!</h1>
</html>
[root@node3 ~]# service httpd start
1
在浏览器地址栏访问:http://192.168.230.12/,查看web服务是否正常

6.在DR上使用ipvsadm添加集群服务

1
2
3
4
LVS有两部分组成

ipvs:核心(嵌入到linux内核中)
ipvsadm:管理应用程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
在192.168.230.10前端调度服务器操作:

[root@node1 ~]# ipvsadm -C【清空】
[root@node1 ~]# yum -y install ipvsadm
[root@node1 ~]# ipvsadm -A -t 192.168.230.100:80 -s wrr
[root@node1 ~]# ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.11 -g -w 1
[root@node1 ~]# ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.12 -g -w 1
[root@node1 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.230.100:80 wrr
-> 192.168.230.11:80Route 1 00
-> 192.168.230.12:80Route 1 00

realserver是什么端口前端调度服务器就是什么端口
ipvsadm -A -t 192.168.230.100:80 -s wrr(加权)
ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.11 -g(指定模型) -w(指定权重) 1
ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.12 -g(指定模型) -w(指定权重) 1
1
在浏览器地址栏访问:http://192.168.230.100/,查看后台服务器是否正常轮循
1
第一次访问:

1
第二次访问:

1
结果:正常轮循
本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2016/01/10/采用Lvs DR(直接路由)模式搭建集群/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹