小Q:抱怨,是一种负能量,犹如搬起石头砸自己的脚,与人无益,于己不利,于事无补
前面我们介绍了HA高可用集群,今天我们来了解下LB负载均衡集群,在学习完基本的搭建后,在扩展中方了解到他的知识量是挺大的,详细的我会在开一个目录,重点讲解我所了解到的集群的概念与操作。下面我介绍的重点在于搭建一个简单NAT和DR模式下的LVS集群以及我对LB和LVS的理解,有错误希望大家多多指教;
========================================简介===========================================
LB=load balance 负载均衡集群
是集群中的一种集群方式,另外的有高可用集群,高性能计算机群;他主要是均衡客户所带来的巨大负载,比如我们一台服务器智能处理1k并发量,但是当网站访问量过大时,到达1w并发,我们就要用十台机子进行合作处理,而搭建这种合作处理的方式就是负载集群;
上图就是集群的本质,主要流程:大量的客户发送服务请求,当director均衡服务器接收到请求后,通过LAN/WAN传递给后端的real服务器,分工形式的完成大并发量的服务。
负载均衡建立在网络结构之上,所以实现他的软件也是被根据网络模型层次开发的:
常用的开源软件:LVS(4层tcp/ip) nginx(7层应用层) keepalived
商业的负载设备: F5、Netscale (这些我不太了解,还没接触过)
后面的我们会有nginx 和 keepalived的搭建步骤,下面主要是LVS的NAT和DR模式,采用wrr算法;
关于LVS:三种模式
VS/NAT模式(Network address translation)
VS/TUN模式(tunneling)
DR模式(Direct routing)
七种调度算法:
固定调度算法:rr,wrr,dh,sh
动态调度算法:wlc,lc,lblc,lblcr
==========================NAT模式搭建LVS负载均衡=======================
实际上NAT就是运用的一个防火墙的规则;所有请求进出都通过director server,所以造成了大量的压力,所以它配置real server的上限就是20以内。
准备阶段:
至少三台机子(我用的虚拟机)
客户端机 192.168.21.190 必须能访问外网,不能和下网段一样
均衡服务器 192.168.11.190 director =dir
真实服务器 192.168.11.30 real server=rs1
192.168.11.20 real server=rs2
三台机子都要安装nginx或者Apache,因为三台机子需要80端口开启进行连接,yum一下就行;
更改一下主机名分别为dir rs1 rs2:举例hostname dir >>> bash,方便管理;
dir主机:
安装LVS核心软件:
yum install -y ipvsadm
编写shell脚本:
vim /usr/local/sbin/Lvs_nat.sh 添加:
#! /bin/bash # director #服务器上开启路由转发功能: echo 1 > /proc/sys/net/ipv4/ip_forward # 关闭icmp的重定向 echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects # director 设置nat防火墙 iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -j MASQUERADE #从哪个网段过来的包进行MASQUERADE # director设置ipvsadm IPVSADM='/sbin/ipvsadm' $IPVSADM -C $IPVSADM -A -t 192.168.21.190:80 -s wrr -p 300 #-s是算法 -p强制转换访问某台真实机,舍去 $IPVSADM -a -t 192.168.21.190:80 -r 192.168.11.20:80 -m -w 1 $IPVSADM -a -t 192.168.21.190:80 -r 192.168.11.30:80 -m -w 3
-w 权重,交替访问的次数用于wrr算法 -m 是上边MASQUERADE,用NAT模式必须加上
-A增加一条director -a增加一条rs
当使用rr算法的时候,就是一机一次的访问,就没有下面的-w权重选项了
直接运行这个脚本就可以完成lvs/nat的配置了:
/bin/bash(bash) /usr/local/sbin/lvs_nat.sh
内网连网的话,要指定一个网关,和购买的外网IP通信,实现上网功能;而我们现在要实现rs与dir通信,所以要改网关为dir的IP;
两个rs真机:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
更改
GETWAY=192.168.11.190 指向dir的IP
保存重启:service network restart 或者 ifdown eth0 ;ifup eth0
为了测试方便,我们更改一下nginx火Apache的网站默认页面,找到所在路径,一般可在配置文件下找到:
或通过配置文件查找一些相关的配置文件,再到那些配置中查看;
rs1上: echo "1111111" >/usr/share/nginx/html/index.html
rs2上: echo "2222222" >/usr/share/nginx/html/index.html
测试:浏览器 访问192.168.21.190 刷新一次更新一次内容, 11 与22交替出现次数分别是1>3>1
有时浏览器会因为缓存等原因,出现页面一直是当前页面,其实就算不是缓存问题,对于大规模的
并发处理也没事,因为即使一个用户一直访问rs1,那另一个用户会主动访问rs2 ···········
服务器curl可以实现高效准确的访问,一直 curl 192.168.21.190 会发现明确交替现象
==============================DR模式LVS负载均衡==============================
DR模式要使用三个外网IP,他是比较浪费IP,其实我们完全可以让realserver使用局域网IP;但是他
支持负载集群多,因为她可以直接将数据传给客户端,缓解了负载均衡器;
因为我们上节配置了NAT模式的,要先清空配置和规则
查看: ipvsadm -ln
清空: ipvsadm -C
iptables -t nat -F
要求:有三个外网IP
dir 192.168.11.100
rs1 192.168.11.20
rs2 192.168.11.30
dir均衡机
DR模式下不需要客户端的外网IP了,所以 ifdown eth1
编写脚本: vim /usr/local/sbin/Lvs_dr.sh
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward ipv=/sbin/ipvsadm vip=192.168.11.110 设置虚拟IP rs1=192.168.11.20 rs2=192.168.11.30 ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up 注意网关是这个 route add -host $vip dev eth0:0 添加静态路由 $ipv -C 清空以前的规则 $ipv -A -t $vip:80 -s wrr -s 是算法 $ipv -a -t $vip:80 -r $rs1:80 -g -w 1 $ipv -a -t $vip:80 -r $rs2:80 -g -w 1 -g代表DR模式
执行 bash /usr/local/sbin/Lvs_dr.sh
两台rs真机
因为都要实现可以上网的功能,发送数据包给客户端,所一网关要改回以前可以上网的网关,就是你的路由IP
vim /usr/local/sbin/lvs_dr_rs.sh
#! /bin/bash vip=192.168.31.110 对应虚拟IP,客户连虚拟IP,和高可用方式类似 ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up VIP网卡信息对应 route add -host $vip lo:0 增加静态路由 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
启动:bash /usr/local/sbin/lvs_dr_rs.sh
测试:浏览器和curl访问同上边形式一样,只不过是访问VIP;
扩展:负载均衡http://blog.sina.com.cn/s/blog_90065bd00100wav5.html
特别好的文章 http://atong.blog.51cto.com/2393905/1348602
转载于:https://blog.51cto.com/tengxiansheng/1702222