设为首页 收藏本站
查看: 2618|回复: 0

[经验分享] 第 二 十 八 天 :LB 负 载 均 衡 搭 建 之 LVS

[复制链接]

尚未签到

发表于 2019-1-6 08:37:38 | 显示全部楼层 |阅读模式
  小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.运维网.com/2393905/1348602
  

  



  

  

  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659829-1-1.html 上篇帖子: lvs架构的单分发器DR模式 下篇帖子: LVS的持久连接和awk/sed/grep的学习笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表