高并发负载均衡LVS搭建

前言

我们知道nginx是7层的代理,相对于lvs这种四层代理来说,肯定效率没有lvs来的好。一个nginx能够支撑的并发数是5w。那为什么lvs的效果会更好,可以先看下,我写的这篇关于lvs出现诞生的理论:xxx(后面补充)
今天主要是通过本地做一个实验,来验证下lvs通过DR(直接路由模型)进行负载均衡。

一、网络拓扑搭建

主要通过vmware搭建,网络地址规划如下

主机名IP地址虚拟IP地址(vip)服务
node01192.168.17.132192.168.235.100lvs服务
node02192.168.235.129192.168.235.100apache http服务
node03192.168.235.130192.168.235.100apache http服务

拓扑图如下:

在这里插入图片描述

二、操作

1.网络层操作

请按步骤进行操作,一定要先网络层操作,把内核的arp不通告出去,然后再在node02和node03上的lo回环口上新增vip地址。理由是如果先在node02和node03上新增了vip,那么这个vip就通告出去。

1.1关闭内核中arp通告

为什么需要关闭node02和node03的arp通告?
理由是,我们知道一个网络拓扑中只能有一个ip地址,不能重复,如果node02和node03都通告说自己有vip地址,那么必然和node01上面的vip地址冲突报错。
先了解下概念
我们需要在 /proc/sys/net/ipv4/conf/IF/ 目录下根据我们需要选择配置;
arp_ignore和arp_announce 默认配置为0
第一个参数arp_ignore的含义是,别人来问我,如果是默认配置0,那么我会把我机器上面所有除了lo回环口上面的所有ip的mac地址回复给对方。如果配置为1,那我只回复,我接到你arp请求接口的mac地址。

第二个参数arp_announce的含义是,当我开机或者网络重启,我会向网络中通告自己机器上面的ip和mac。如过是默认配置0,则表示会把自己机器上面除回环口,所有的ip和mac地址都通告出去。其实我对1和2的区别不是特别清楚,查看了一些资料,也没有找到具体区别。但是在lvs中一定要设置为2。意思是将我机器上与其他机器相连接口的ip地址通告出去。而回环口的地址就不会通告出去

arp_ignore: 定义接收到ARP请求时的响应级别;
  0:只要本地配置的有相应地址,就给予响应;
  1:仅在请求的目标(MAC)地址配置请求
        到达的接口上的时候,才给予响应;

arp_announce:定义将自己地址向外通告时的通告级别;
  0:将本地任何接口上的任何地址向外通告;
  1:试图仅向目标网络通告与其网络匹配的地址;
  2:仅向与本地接口上地址匹配的网络进行通告;

切记修改配置文件的时候,不能使用vi 因为使用vi会额外生成一个隐藏文件,而/proc目录本身并不存在于磁盘,他是机器开机后,把linux内存映射成这么一个/proc目录供我们查看修改。
使用echo重定向就可以

在node02和node03上执行该操作

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

1.2增加vip地址

在node02和node03上执行下面的操作,在lo回环口上新增vip地址
切记这里一定要设置掩码4个255.
理由是如果设置为192.168.235.100/24那么对于路由表就会出现两条记录都同时指向192.168.235.0/24的网络,那对于机器来说就傻了,他就不知道该把192.168.235.xx的数据包该往哪里出去了。

ifconfig lo:0 192.168.235.100 netmask 255.255.255.255

2.应用层安装

在node02和node03上执行下面的操作,安装apache服务器

yum install httpd -y
systemctl start httpd

在node02上执行

echo ”node02“ > /var/www/html/index.html

在node02上执行

echo ”node03“ > /var/www/html/index.html

在本地浏览器访问node02和node03地址看到不同页面证明应用层web服务部署ok
在这里插入图片描述
在这里插入图片描述

3.LVS安装

linux内核各个发行版默认都已经安装了LVS模块,而我们只需要安装客户端与LVS模块进行交互执行命令
在node01上安装ipvsadm

 yum install ipvsadm -y

常用一些命令

管理集群服务
添加:-A -t|u|f service-address [-s scheduler]
-t: TCP协议的集群 
-u: UDP协议的集群
service-address:     IP:PORT
-f: FWM: 防火墙标记 
service-address: Mark Number
修改:ipvsadm -E
删除:ipvsadm -D -t|u|f service-address


管理集群服务中的RS
添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
  -t|u|f service-address:事先定义好的某集群服务
  -r server-address: 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射;
  [-g|i|m]: LVS类型 
  -g: DR
  -i: TUN
  -m: NAT
  [-w weight]: 定义服务器权重
修改:-e
删除:-d -t|u|f service-address -r server-address
# ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 –g
# ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -g
查看
  -L|l
  -n: 数字格式显示主机地址和端口
  --stats:统计数据
  --rate: 速率
  --timeout: 显示tcp、tcpfin和udp的会话超时时长
  -:c 显示当前的ipvs连接状况
删除所有集群服务
  -C:清空ipvs规则
保存规则
  -S 
# ipvsadm -S > /path/to/somefile
载入此前的规则:
  -R
# ipvsadm -R < /path/form/somefile 
#指定lvs将转发哪个vip的地址
ipvsadm -A  -t  192.168.235.100:80  -s rr
#指定将vip 转发到哪几个real server 上
ipvsadm -a  -t 192.168.235.100:80  -r  192.168.235.129 -g -w 1
ipvsadm -a  -t 192.168.235.100:80  -r  192.168.235.130 -g -w 1
#查看最后的配置
ipvsadm -ln
ipvsadm -lnc    查看偷窥记录本
TCP 00:57  FIN_WAIT    192.168.150.1:51587 192.168.150.100:80 192.168.150.12:80
FIN_WAIT: 连接过,偷窥了所有的包
SYN_RECV: 基本上lvs都记录了,证明lvs没事,一定是后边网络层出问题;在搭建过程中,我就遇到过,问题现象是数据包syn包已经到达real server 但是real server 到不了我浏览器主机,问题是我windows开启了防火墙,关闭就ok

在这里插入图片描述

4.验证测试

在windows浏览器上输入http://192.168.235.100/ 然后刷新页面,查看是否页面发生变化
结果如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功搭建了简易版的lvs

总结

lvs的搭建成功。实际高并发网络环境下,我们还需要搭建lvs的高可用。今天的实验只是搭建基础版。
在lvs 中DR直接路由模型中,vip的地址和real server的地址要在同一个网段。不然real server 收到数据包就不会返回给客户端实,这个问题点,目前我还未找到原因

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值