(三)高并发负载均衡:LVS的DR模型试验搭建

一,LVS

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。

(一)早期的小型运营商使用的LVS:

使每个小区的用户在任意时间平均分配在三个server服务器上,减少单台server的并发量。
在这里插入图片描述

(二)实现DR需要隐藏VIP

一切皆文件:把程序或内核映射成文件,修改文件,相当于修改程序的变量,即时生效。
一块网卡可以配置多个IP地址。

隐藏VIP方法:对外隐藏,对内可见 :
kernel parameter:
目标mac地址为全F,交换机触发广播
/proc/sys/net/ipv4/conf/*IF*/
arp_ignore: 定义接收到ARP请求时的响应级别;
0:只要本地配置的有相应地址,就给予响应;(打我的电话可以找到我和我爱人)
1:仅在请求的目标(MAC)地址配置请求到达的接口上的时候,才给予响应;(打我的电话只能找到我)

arp_announce:定义将自己地址向外通告时的通告级别;
0:将本地任何接口上的任何地址向外通告;(三个我的两个手机号工作|生活,我通讯录内的都公布)
1:试图仅向目标网络通告与其网络匹配的地址;(两个手机号工作|生活都公布)
2:仅向与本地接口上地址匹配的网络进行通告;(一个手机号工作公布)

查看本机地址

ifconfig  
(三)本机的页面访问本机的tomcat,

请求发出后,访问内核,经过(虚拟网卡)判定就是自己的地址,发出去的包直接变成输入包,找对应端口的tomcat,然后掉头返回。

在虚拟网卡上配置,内核知道,外界不知道,就实现了:对外隐藏,对内可见。

在这里插入图片描述

(四)负载均衡调度方法

静态调度方方法:
rr : 轮循调度(Round-Robin Scheduling)
wrr : 加权轮叫调度(Weighted Round-Robin Scheduling)
dh : 目标地址散列调度(Destination Hashing Scheduling)
sh : 源地址散列调度(Source Hashing Scheduling)

动态调度方法:
lc : 最小连接调度(Least-Connection Scheduling)
wlc : 加权最小连接调度(Weighted Least-Connection Scheduling)
sed : 最短期望延迟
nq : never queue
LBLC : 基于局部性的最少链接(Locality-Based Least Connections Scheduling)
DH :
LBLCR : 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)

如何知道哪个server的连接次数。

记录了三次握手的过程后,给对应server连接次数+1

(五)ipvs内核模块

负载均衡在内核的模块

安装传递命令用的工具

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
修改:-E
删除:-D -t|u|f service-address

例 : ipvsadm -A -t 192.168.9.100:80 -s rr

管理集群服务

添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
  -t|u|f service-address:事先定义好的某集群服务
  -r server-address:RS的地址,在NAT模型中,可使用IPPORT实现端口映射;
  [-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 

-S保存规则 -R载入规则 , 相当于数据库的持久化。

二,LVS的DR模型试验搭建

(一)手册

在这里插入图片描述

浏览器  ->  vmnet-8(网卡) ->  虚拟网络 -> node01( 192.168.150.11)  -> lvs -> 192.168.150.100 ->(192.168.150.11 -> 192.168.150.12 MAC欺骗)
 -> httppd -> 192.168.150.12 -> 虚拟网络-> vmnet-8(网卡) ->浏览器 
(二)布置网络层

VIP 192.168.150.100 三台都要配置

1,node01
ifconfig eth0:2 192.168.150/24
24    :代表3个255,/16   :255.255.0.0 , 8个2进制位,255 : 8个1
ifconfig eth0:2 192.168.150.100  netmask 255.255.255.0
ifconfig eth0:2  down //禁用
2,node02 , node03

为了隐藏VIP,先调整协议修改内核,再改IP

echo  1 >  /proc/sys/net/ipv4/conf/eth0/arp_ignore 
echo  1 >  /proc/sys/net/ipv4/conf/all/arp_ignore 
echo  2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo  2 > /proc/sys/net/ipv4/conf/all/arp_announce
隐藏VIP
ifconfig lo:8 192.168.150.100 netmask 255.255.255.255
3,为什么是4个255?

从环回接口lo :2也可以到192.168.150这个网络,
eth0也可以去192.168.150这个网络,如果现在ping 目标地址192.168.150.1 ,两个口都可以走,虚拟网卡比物理网卡要近,然后发送给环回接口lo :2,然后环回接口lo :2又发给自己,最后这个包永远发布出去。
lo :2 192.168.150.100 255.255.255.255 与运算是:192.168.150.100
eth0 192.168.150.100 255.255.255.0 与运算是:192.168.150.0
规避死循环的风险
如果配成255.255.255.0,xcell会断开连接。

(三)配置应用层

RS中的服务:node02 , node03

//安装:重启生效
yum install httpd  -y
//启动:默认占用80端口
service httpd start 
//添加页面
vi /var/www/html/index.html
   from 191.168.150.12  :node02  
   from 191.168.150.13  :node03
(四)LVS服务配置

node01
先添加入包规则,再添加出包规则,即时生效

	yum install ipvsadm 
	ipvsadm -A  -t  192.168.150.100:80  -s rr
	ipvsadm -a  -t 192.168.150.100:80  -r  192.168.150.12 -g -w 1
	ipvsadm -a  -t 192.168.150.100:80  -r  192.168.150.13 -g -w 1
	ipvsadm -ln   //查看

在这里插入图片描述

(五)验证
	浏览器访问  192.168.150.100   看到负载  疯狂F5
	node01:
		netstat -natp   结论看不到socket连接
	node02~node03:
		netstat -natp   结论看到很多的socket连接
	node01:
		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没事,一定是后边网络层出问题,网络的确认包没回来。

node01
在这里插入图片描述
node02,node03上有记录
在这里插入图片描述
偷窥记录表
在这里插入图片描述

三,自己实操搭建

(一)布置网络层

node01

 ifconfig ens33:8 192.168.141.100  netmask 255.255.255.0
 ifconfig 

在这里插入图片描述
node02

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
ifconfig lo:8 192.168.141.100 netmask 255.255.255.255

在这里插入图片描述
在这里插入图片描述

(二)配置应用层
//安装:重启生效
yum install httpd  -y
yum remove ipvsadm  //卸载
//启动:默认占用80端口
service httpd start 
//添加页面
vi /var/www/html/index.html
   from 191.168.141.x  :node0x 

在这里插入图片描述

(三)LVS服务配置
	yum install ipvsadm 
	ipvsadm -A  -t  192.168.141.100:80  -s rr
	ipvsadm -a  -t 192.168.141.100:80  -r  192.168.141.138 -g -w 1
	ipvsadm -a  -t 192.168.141.100:80  -r  192.168.141.140 -g -w 1
	ipvsadm -ln   //查看

在这里插入图片描述

(四)验证和异常的处理

访问不到

//关闭防火墙
systemctl disable  firewalld
//允许80访问
iptables -I INPUT -p TCP --dport 80 -j ACCEPT  
//httpd用的是tcp6的80端口 关闭ipv6,重启httpd
sysctl net.ipv6.conf.all.disable_ipv6=1
service httpd restart

我用的是手机热点,所以每次ip都会变,下面是二次验证
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值