linux集群技术(一)--LVS(负载均衡)(二)

  1. LVS-NAT案例
  2. LVS-DR案例

1.LVS-NAT案例

        1.1 环境

拓扑图:
    

 

地址分配:
    client:   VMNET0        192.168.88.128
    LVS: VMNET0               192.168.88.129
               VMNET2         192.168.176.128
    web1:    VMNET2        192.168.176.129           提前安装httpd
    web2:   VMNET2          192.168.176.130

        1.2  步骤

查看路由信息:ip route

web1配置网站和路由:          注意网络连通性问题
    #yum  install -y httpd
    #systemctl  start httpd
    #systemctl enable httpd
    #echo   web1 >  /var/www/html/index.html
    # route add -net 192.168.88.0/24 gw 192.168.176.128
        配置真实服务器的网络出口。
        -net  外部网络            gw 网关,网络的唯一出口

web2配置网站和路由:
    #yum  install -y httpd
    #systemctl  start httpd
    #systemctl enable httpd
    #echo   web2 >   /var/www/html/index.html
    # route add -net 192.168.88.0/24 gw 192.168.176.128

LVS-NAT配置路由功能和负载策略:
    # echo  1  > /proc/sys/net/ipv4/ip_forward             启动路由功能
    # yum install -y ipvsadm                                 正在安装LVS
   # ipvsadm -A -t 192.168.88.129:80 -s rr
        -A 添加一个VIP        -t TCP协议        -s   schedule调度        rr  轮训策略类型

    #ipvsadm -a -t 192.168.88.129:80 -r 192.168.176.129:80 -m
        -a  添加一个真实服务        -r  真实服务器IP 地址        -m    nat 模式工作
     #ipvsadm -a -t 192.168.88.129:80 -r 192.168.176.130:80 -m

client测试:
    elinks   --dump   http://192.168.88.129             每次访问的结果都不一样

 

1.LVS的健康状态检查 :
    在LVS中,目录服务器不负责检查真实服务器的健康状况,这就使得当有的真实服务器出故障了,目录服务器还会将服务请求派发至此服务器,这种情况对用户、企业都是很不爽的,哪个用户倒霉说不定就遇到类似了,为了让目录更人性化、可靠还要给目录服务器提供健康检查功能;如何实现?目录服务器没有自带检查工具,只有手动编写脚本

2.LVS持久连接 :
    定义:
        持久连接是指无论LVS使用什么算法,LVS持久都能实现在一定时间内,将来自同一个客户端请求派发至此前选定的RS
    原理:
        无论使用LVS任何调度算法,LVS持久连接都能实现在一定时间内,将来自同一个客户端请求派发至此前选定的服务器;当一个新的客户端请求连接时,LVS就会在内存的缓冲区内记录客户端的IP以及所选的服务器,在一定时间内用户再次访问时,LVS会通过内存缓冲区来查找是否有此用户记录,如果有将直接连接到已选定的服务器上,否则记录IP及连接的服务器;这个内存缓冲区称之为持久连接模板,它存储了每一个客户端,及分配给它的RS的映射关系。

    持久连接在一定环境下还是非常有用的,由于在SSL会话中,比如当用户和服务器好不容易建立了SSL会话,用户一不小心刷新了页面,director有给用户分发了一个新的服务器,用户还要从新建立SSL连接请求,这是很不爽的!这种连接方式称为持久端口连接(PPC),将来自于同一个客户端对同一个集群服务的请求,始终定向至此前选定的RS。 
        -p timeout

2.LVS-DR实战案例

        2.1    DR

direct routing          直连路由

        2.2   环境

192.168.0.106   client  真机
192.168.0.124  dr1    负载均衡器      192.168.26.144
    虚拟IP地址:192.168.0.123        虚拟IP的设计,遵循本网段未使用的IP即可。
192.168.0.120  rs1     web1               192.168.26168
    虚拟IP地址:192.168.0.123
192.168.0.121  rs2     web2                192.168.26.167
    虚拟IP地址:192.168.0.123            192.168.26.170

        2.3   步骤

LVS服务器:

1.LVS准备VIP和路由
    --添加VIP:        

        # ifconfig ens33:0 192.168.26.170 broadcast 192.168.26.255 netmask 255.255.255.0 up         

        # route add -host 192.168.26.170 dev ens33:0

        当有主机预知通信时使用192.168.26.170 与之通信
        VIP与RIP要配到同一个网卡上
    --设置路由转发:
        服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能
        # vi /etc/sysctl.conf   

        net.ipv4.ip_forward = 1            开启路由功能
        net.ipv4.conf.all.send_redirects = 0            #禁止转发重定向报文
        net.ipv4.conf.ens33.send_redirects = 0             禁止ens33转发重定向报文
        net.ipv4.conf.default.send_redirects = 0            禁止转发默认重定向报文

2.LVS设置负载均衡条目/规则

    --设置IPVSADM:
    # yum install ipvsadm  -y
        ipvsadm:  internet protocol virtual server admin    互联网 协议 虚拟 服务器 管理器
    ipvsadm     -C                     【 -C   Clear the virtual server table.】
     # ipvsadm -A -t 192.168.26.170:80 -s rr                  添加VIP规则

     # ipvsadm -a -t 192.168.26.170:80 -r 192.168.26.168:80 -g

     # ipvsadm -a -t 192.168.26.170:80 -r 192.168.26.167:80 -g
    --参数说明:
        -A 添加virtual server
        -t  指定使用tcp协议
        -s 指定调度策略/负载算法为rr
        -a 添加realserver
        -r 指定realserver是谁
        -g    LVS类型DR
                  LVS类型:
                  -g:Gateway,DR(默认使用的类型)
                  -i:ipip,TUN
                  -m:masquerade(地址伪装),NAT

3.LVS让配置永久生效:
    # ipvsadm-save > /etc/sysconfig/ipvsadm
    # systemctl enable ipvsadm

WEB集群:

1.两个web上部署web服务
    安装web服务        #yum install nginx  -y
    修改主页内容        # vim /usr/share/nginx/html/index.html
    启动服务:
            #systemctl start nginx
            #systemctl enable nginx

2.给两个web服务器的lo网卡设置子网掩码为32位vip 
    rs1:
        # ifconfig lo:0 192.168.0.123/32  
    rs2:
        # ifconfig lo:0 192.168.0.123/32 

3.给两个web服务器设置内核参数

    --# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

        忽略arp响应 ,不允许收

        arp_ignore:定义对目标地址为本地IP的ARP询问不同的应答模式0 

        0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求 

        1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求 

        2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内 

        3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应 

        4-7 - 保留未使用 

        8 -不回应所有(本地地址)的arp查询

    --# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce  

        为了让vip发包出去,但允许发

        arp_announce:对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口 

        0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址 

        1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理. 

        2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.

关于对arp_announce 理解的一点补充

        2.4   客户端测试

图示:

 ipvsadm状态测试:

        [root@localhost ~]# ipvsadm -Lnc

        2.5  命令解释

1. 管理虚拟服务
        添加一个虚拟服务192.168.1.100:80,使用轮询算法
      ipvsadm -A -t 192.168.1.100:80 -s rr
        修改虚拟服务的算法为加权轮询
      ipvsadm -E -t 192.168.1.100:80 -s wrr
        删除虚拟服务
      ipvsadm -D -t 192.168.1.100:80

2. 管理真实服务
        添加一个真实服务器192.168.1.123,使用DR模式,权重2
      ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 2
        增加真实服务器的权重
      ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 5
        修改真实服务器的权重
      ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.123 -g -w 2
        删除真实服务器
      ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.123

3. 查看统计
        查看当前配置的虚拟服务和各个RS的权重
      ipvsadm -Ln
        查看当前ipvs模块中记录的连接(可用于观察转发情况)
      ipvsadm -lnc
        查看ipvs模块的转发情况统计
      ipvsadm -Ln --stats  --rate

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值