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

[经验分享] 使用lvs实现负载均衡(V2.0)

[复制链接]

尚未签到

发表于 2019-1-6 09:18:05 | 显示全部楼层 |阅读模式
  0.调度算法
    0.1.静态调度
    ●rr - 轮询调度
    ●lr - 最少连接调度
    ●wlr - 加权最少连接调度
  

    0.2.静态调度
  

  

  1.LVS-nat模式
  


  

    1.1.实验结构:
      ●LVS Server(双网卡)

      ●Real Server1(后台服务器)
      ●Real Server2(后台服务器)

      ●Client pc(客户端)
  
  1.2.IP地址规划:
      Client pc:8.8.8.1/24
      VIP:无vip
      LVS Server:8.8.8.8/24;192.168.10.1/24
      Real Server1:192.168.10.2/24
      Real Server2:192.168.10.3/24
  

配置“负载均衡”
[root@LVS_Server ~]# ifconfig eth0 8.8.8.8 netmask 255.255.255.0
[root@LVS_Server ~]# ifconfig eth1 192.168.10.1 netmask 255.255.255.0配置“后台服务器1”
[root@Real_Server1 ~]# ifconfig eth0 192.168.10.2 netmask 255.255.255.0
[root@Real_Server1 ~]# route add default gw 192.168.10.1配置“后台服务器2”
[root@Real_Server2 ~]# ifconfig eth0 192.168.10.3 netmask 255.255.255.0
[root@Real_Server2 ~]# route add default gw 192.168.10.1  ping测试,全网通(路由生效,网络层贯通)。

  

    1.3.配置过程:

      LVS配置方法

检查、打开路由表转发功能
# cat /proc/sys/net/ipv4/ip_forward
# echo 1 > /proc/sys/net/ipv4/ip_forward
# ipvsadm -C
设定调度算法
# ipvsadm -At 8.8.8.8:80 -s rr
设定工作模式
# ipvsadm -at 8.8.8.8:80 -r 192.168.10.2:80 -m
# ipvsadm -at 8.8.8.8:80 -r 192.168.10.3:80 -m  

  * IP装发表   1 开启路由表 ; 0 关闭路由管道
* -s 调度算法
* -m nat模式
* -i ip tuns模式
* -g dr模式
#!/bin/bash
#lvs.sh
#启动脚本
echo 1 > /proc/sys/net/ipv4/ip_forward
ipvsadm -C
ipvsadm -At 8.8.8.8:80 -s rr
ipvsadm -at 8.8.8.8:80 -r 192.168.10.2:80 -m
ipvsadm -at 8.8.8.8:80 -r 192.168.10.3:80 -m# chmod a+x ipvs.sh
# ./ipvs.sh
# ipvsadm -L -n  

    1.4.测试:

        客户端浏览器访问 http://8.8.8.8;多次刷新。

  

  

  2.LVSip-tun模式
  


  

    2.1.实验结构(所有机器处于同一网段)

      ●LVS Server(单网卡)

      ●Real Server1(后台服务器)
      ●Real Server2(后台服务器)

      ●Client pc(客户端)
  

    2.2.IP地址规划:
      Client pc:200.168.10.4/24
      VIP:200.168.10.10
      LVS Server:200.168.10.1/24;200.168.10.10/24
      Real Server1:192.168.10.2/24
      Real Server2:192.168.10.3/24
  

配置“负载均衡”
[root@LVS_Server ~]# ifconfig eth0 200.168.10.1 netmask 255.255.255.0 up
添加虚拟网卡,配置虚拟IP
[root@LVS_Server ~]# ifconfig tun0 200.168.10.10 netmask 255.255.255 up
添加主机路由
[root@LVS_Server ~]# route add -host 200.168.10.10 dev tunl0配置“后台服务器1”网卡
[root@Real_Server1 ~]# ifconfig eth0 200.168.10.2 netmask 255.255.255.0 up
在后台服务器配置虚拟IP
[root@Real_Server1 ~]# ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up
添加主机路由
[root@Real_Server1 ~]# route add -host 200.168.10.10 dev tunl0
删除默认路由
[root@Real_Server1 ~]# route del default
[root@Real_Server1 ~]# route -n#!/bin/bash
#arp.sh
#修改网卡属性
echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce[root@Real_Server1 ~]# chmod +x arp.sh
执行脚本,修改网卡配置
[root@Real_Server1 ~]# ./arp.sh
同样需要在另外的后台服务器执行相同配置
[root@Real_Server1 ~]# scp arp.sh 200.168.10.3:~配置“后台服务器2”网卡
[root@Real_Server2 ~]# ifconfig eth0 200.168.10.3 netmask 255.255.255.0 up
在后台服务器配置虚拟IP
[root@Real_Server2 ~]# ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up
添加主机路由
[root@Real_Server2 ~]# route add -host 200.168.10.10 dev tunl0
删除默认路由
[root@Real_Server2 ~]# route del default
[root@Real_Server2 ~]# route -n
修改网卡配置
[root@Real_Server2 ~]# ./arp.sh  ping测试,全网通(路由生效,网络层贯通)。
  

    2.3.配置过程:

      LVS配置方法
# cat /proc/sys/net/ipv4/ip_forward
# echo 0 > /proc/sys/net/ipv4/ip_forward
# ipvsadm -C
# ipvsadm -A -t 200.168.10.10:80 -s rr
# ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -i
# ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -i  
  * IP装发表   1 开启路由表 ; 0 关闭路由管道
* -s 调度算法
* -m nat模式
* -i ip tuns模式
* -g dr模式
#!/bin/bash
#lvs.sh
#启动脚本
echo 1 > /proc/sys/net/ipv4/ip_forward
ipvsadm -C
ipvsadm -At 200.168.10.10:80 -s rr
ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -i
ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -i# chmod a+x ipvs.sh
# ./ipvs.sh
# ipvsadm -L -n  

    2.4.测试:

        客户端浏览器访问 http://200.168.10.10;多次刷新。

  

  

  3.LVS-dr模式
    DR模式的优点:
    ●不会形成瓶颈*(相对nat模式)
    ●适应面广*(相对于IP tuns)
    ●只需要一块网卡*(借助lo0接口)
  VS/DR 工作原理 ( Virtual Server via Direct Routing )
    VS/DR 通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回
    给客户。同 VS/TUN技术一样,VS/DR 技术可极大地提高集群系统的伸缩性。却没有IP 隧道的开
    销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有
    一块网卡连在同一物理网段上。

  

    3.1.实验结构(所有机器处于同一网段)
  
      ●LVS Server(单网卡)

      ●Real Server1(后台服务器)
      ●Real Server2(后台服务器)

      ●Client pc(客户端)
  

    3.2.IP地址规划:
      Client pc:200.168.10.4/24
      VIP:200.168.10.10
      LVS Server:200.168.10.1/24;200.168.10.10/24
      Real Server1:192.168.10.2/24
      Real Server2:192.168.10.3/24
[root@LVS_Server ~]# ifconfig eth0 200.168.10.1 netmask 255.255.255.0
[root@LVS_Server ~]# ifconfig eth0:0 200.168.10.10 netmask 255.255.255 up
[root@LVS_Server ~]# route add -host 200.168.10.10 dev eth0:0
[root@LVS_Server ~]# route -n设定后台服务器的真实ip地址
[root@Real_Server1 ~]# ifconfig eth0 200.168.10.2 netmask 255.255.255.0
[root@Real_Server1 ~]# route del default
[root@Real_Server1 ~]# route -n#!/bin/bash
#arp.sh
#修改网卡属性
echo 1 > /proc/sys/net/ipv4/conf/lo0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo0/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce[root@Real_Server1 ~]# chmod a+x arp.sh
用上边的脚本修改网卡属性
[root@Real_Server1 ~]# ./arp.sh
同样需要在另外的后台服务器执行相同配置
[root@Real_Server1 ~]# scp arp.sh 200.168.10.3:/root/为后台服务器设定VIP
[root@Real_Server1 ~]# ifconfig lo:0 200.168.10.10 netmask 255.255.255.255 up
[root@Real_Server1 ~]# route add -host 200.168.10.10 dev lo:0[root@Real_Server2 ~]# ifconfig eth0 200.168.10.3 netmask 255.255.255.0
[root@Real_Server2 ~]# route del default
[root@Real_Server2 ~]# route -n
执行类似上边的脚本,修改网卡配置
[root@Real_Server2 ~]# ./arp.sh
添加虚拟ip(vip)
[root@Real_Server2 ~]# ifconfig  lo:0 200.168.10.10 netmask 255.255.255.255 up
[root@Real_Server2 ~]# route add -host 200.168.10.10 dev lo:0 up
[root@Real_Server2 ~]# route add -host 200.168.10.10 dev lo:0 up  ping测试,全网通(路由生效,网络层贯通)。
  

    3.3.配置过程:
      LVS配置方法
# cat /proc/sys/net/ipv4/ip_forward
# echo 1 > /proc/sys/net/ipv4/ip_forward
# ipvsadm -C
# ipvsadm -A -t 200.168.10.10:80 -s rr
# ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -g
# ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -g  * IP装发表   1 开启路由表 ; 0 关闭路由管道
* -s 调度算法
* -m nat模式
* -i ip tuns模式
* -g dr模式

#!/bin/bash
#lvs.sh
#启动脚本
echo 0 > /proc/sys/net/ipv4/ip_forward
ipvsadm -C
ipvsadm -At 200.168.10.10:80 -s rr
ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -g
ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -g# chmod a+x ipvs.sh
# ./ipvs.sh
# ipvsadm -L -n  

    3.4.测试:
        客户端浏览器访问 http://200.168.10.10;多次刷新。
  

  

  4.0.附
    4.1.RealServer
#!/bin/bash
VIP=192.168.10.200
./etc/rc.d/init.d/function
case “$1” in
   start)
       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
       /sbin/route add -host $VIP dev 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
       sysctl -p >/dev/null 2>$1
       echo “RealServer Stsrt OK”
       ;;
   stop)
       ifconfig lo:0 down
       route del $VIP >/dev/null 2>$1
       echo “0” >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo “0” >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo “0” >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo “0” >/proc/sys/net/ipv4/conf/all/arp_announce
       echo “RealServer Stoped”
       ;;
   *)
       echo “Usage: $0 {start|stop}”
       exit 1
esac
exit 0  

    4.2.Directory Server

#!/bin/sh
#description:Start LVS of Director server
VIP=10.10.10.200
RIP1=172.16.10.10
RIP2=172.16.10.20
. /etc/rc.d/init.d/functions
case “$1” in
   start)
       echo “start LVS of Directory Server”
       #set the Virtual IP Address and sysctl parameter
       /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
       echo “1” > /proc/sys/net/ipv4/ip_forward
       #Clear IPVS table
       /sbin/ipvsadm -C
       #set LVS
       /sbin/ipvsadm -A -t $VIP:80 -s rr -p 600
       /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
       /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
       #run LVS
       /sbin/ipvsadm
       ;;
   stop)
       echo “close LVS Directory server”
       echo “0” > /proc/sys/net/ipv4/ip_forward
       /sbin/ipvsadm -C
       /sbin/ifconfig eth0:0 down
       ;;
   *)
       echo “Usage:$0{start|stop}”
       exit 1
esac
exit 0  

  






运维网声明 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-659860-1-1.html 上篇帖子: 实现负载均衡LVS 三种方式配置实例 下篇帖子: LVS负载均衡集群技术学习笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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